Este guia sintetiza as melhores práticas para contabilidade em texto simples usando a ferramenta poderosa, de código aberto e de texto simples, Beancount. Ele cobre a filosofia fundamental, sintaxe do básico ao avançado, estudos de caso práticos para ativos complexos e estratégias de gerenciamento de razão contábil de longo prazo.
Parte 1: O "Porquê" - Fundamentos da Escrituração Inteligente
Antes de mergulhar no "como", é crucial entender o "porquê". Uma escrituração eficaz é a base do gerenciamento financeiro pessoal e um passo necessário em direção à clareza e liberdade financeira.
Além do Controle de Despesas: O Caminho para a Clareza Financeira
Aplicativos simples de controle de despesas dizem para onde seu dinheiro foi. Um sistema contábil robusto diz isso e muito mais: ele fornece um quadro completo da sua saúde financeira, incluindo seu patrimônio líquido, fluxo de caixa e o desempenho dos seus investimentos. O objetivo principal é a observabilidade — obter uma compreensão clara e baseada em dados da sua vida financeira, o que permite tomar decisões informadas, avaliar riscos e trabalhar em direção a metas de longo prazo, como a aposentadoria.
Por que Partidas Dobradas? O Poder de um Sistema Balanceado
Ao contrário da escrituração de partidas simples (uma lista simples de despesas), o método de partidas dobradas registra cada transação como um fluxo de valor entre pelo menos duas contas. Seu princípio central é a equação contábil fundamental:
Este sistema garante que seus livros estejam sempre balanceados, reduzindo drasticamente os erros. Ele fornece um quadro financeiro completo ao gerar relatórios essenciais como o Balanço Patrimonial (o que você possui e deve) e a Demonstração de Resultados (o que você ganhou e gastou).
Parte 2: Começando com o Beancount
Beancount é uma ferramenta poderosa baseada em Python para contabilidade em texto simples.
Sua Primeira Visão com o Fava no Beancount.io
O Beancount.io fornece um ambiente poderoso que combina o mecanismo Beancount com um aplicativo móvel (iOS, Android) e aplicativo web - Fava, uma interface web fantástica para visualizar seu razão contábil. Não há necessidade de instalação. Ao usar a plataforma, você está interagindo diretamente com um editor de texto para seu arquivo de razão (por exemplo, main.bean) e vendo os relatórios gerados pelo Fava serem atualizados em tempo real.
O Fava pega o texto simples que você escreve e o transforma em gráficos interativos, demonstrações financeiras e listas de transações filtráveis, dando a você uma visão clara dos seus relatórios financeiros.
Ou comece no Terminal com o bea
Se preferir trabalhar a partir de um shell, o bea é a linha de comando do Beancount.io. Nenhuma conta é necessária: instale-o com brew install bex-co/tap/bea ou uv tool install beancount-io, e ele cria, valida, consulta e gera relatórios sobre o mesmo arquivo de texto simples. O início rápido da CLI fornece seu primeiro livro-razão em poucos minutos, e Seu primeiro mês com o bea fecha um mês completo de ponta a ponta.
Os Cinco Tipos Principais de Contas
O Beancount usa cinco tipos principais de contas, que formam a estrutura do seu razão:
| Tipo de Conta | Descrição | Saldo Típico |
|---|---|---|
Ativos | O que você possui (dinheiro, contas bancárias, investimentos, propriedades). | Positivo |
Passivos | O que você deve (dívidas de cartão de crédito, empréstimos, hipotecas). | Negativo |
Rendimentos | De onde o dinheiro vem (salário, bônus, juros). | Negativo |
Despesas | Para onde o dinheiro vai (alimentação, aluguel, viagens, impostos). | Positivo |
Patrimônio Líquido | Seu patrimônio líquido; usado para saldos iniciais. | Negativo |
A Equação do Beancount
O Beancount impõe sua própria versão da equação contábil onde a soma de todos os lançamentos em todo o seu razão é igual a zero:
É por isso que, por convenção, as contas de Rendimentos, Passivos e Patrimônio Líquido mantêm valores negativos — elas são as fontes de fundos que aumentam seus Ativos e Despesas.
Parte 3: A Linguagem do Beancount - Sintaxe Principal
Todas as entradas no Beancount são diretivas que começam com uma data.
Definindo Contas (open) e Commodities
Antes de usar uma conta, você deve declará-la com a diretiva open. Você também pode opcionalmente especificar as moedas ou "commodities" que ela conterá.
; YYYY-MM-DD open Account:Name [Commodity1, Commodity2, ...]
2020-01-01 open Assets:Bank:US:Chase:Checking USD
2020-01-01 open Liabilities:CreditCard:US:Discover USD
2020-01-01 open Expenses:Food:Groceries
2020-01-01 open Income:Salary:GoogleCommodities podem ser moedas do mundo real (por exemplo, USD, JPY) ou qualquer unidade personalizada que você definir, como milhas aéreas (MILES_UA) ou tickers de ações (HOOL).
Registrando Sua Primeira Transação (*)
Transações são a entrada mais comum. Elas começam com uma data, uma flag (* para transação completa ou ! para incompleta), um pagador opcional e uma descrição. Cada linha seguinte (recuada por dois espaços) é um "lançamento" em uma conta.
; YYYY-MM-DD * "Payee" "Description"
; Account1 Amount Commodity
; Account2 -Amount Commodity
2024-07-28 * "Trader Joe's" "Weekly groceries"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover -125.50 USDPor conveniência, se uma transação tiver apenas dois lançamentos, você pode omitir o valor na segunda linha, e o Beancount o calculará automaticamente.
2024-07-28 * "Trader Joe's" "Weekly groceries"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:DiscoverBalanceamento em Nível de Transação: Mais importante para o uso diário, cada transação individual também deve ser balanceada — a soma de todos os lançamentos dentro de uma única transação deve ser igual a zero. Se uma transação não balancear, o Beancount mostrará um erro como este:

Lidando com Transações Multimoeda (@ e @@)
O Beancount é excelente em contabilidade multimoeda.
- Use
@para especificar um preço de conversão por unidade. - Use
@@para especificar o custo total da conversão.
; Buying a flight in EUR with a USD card
2024-08-01 * "Lufthansa" "Flight to Berlin"
Expenses:Travel:Flights 500.00 EUR @@ 545.00 USD ; 500 EUR cost me 545 USD in total
Liabilities:CreditCard:US:Discover -545.00 USDParte 4: Garantindo a Precisão - A Arte da Conciliação
Uma prática fundamental para manter um razão preciso é a conciliação regular. Isso envolve comparar os saldos do seu razão Beancount com os extratos oficiais das suas instituições financeiras.
Automatizando Verificações com Asserções de Saldo (balance)
A diretiva balance é sua principal ferramenta para verificações automatizadas. Você afirma que, em uma determinada data, uma conta tinha um saldo específico. O Beancount levantará um erro se o saldo calculado não corresponder à sua afirmação. Isso é inestimável para localizar erros rapidamente.
Nota: A asserção de saldo verifica o estado da conta no início do dia especificado (antes de quaisquer transações naquele dia).
; From your monthly credit card statement
2024-08-01 balance Liabilities:CreditCard:US:Discover -1432.78 USDVinculando Documentos de Apoio (document)
Você pode vincular arquivos externos como extratos bancários ou recibos, criando uma trilha auditável. O Fava torna esses links clicáveis.
2024-08-01 document Liabilities:CreditCard:US:Discover "statements/discover-2024-07.pdf"Corrigindo Erros e Inicializando Saldos
Quando você inicia seu razão ou encontra uma discrepância que não consegue rastrear, você precisa fazer um ajuste. A prática padrão é usar uma conta especial de Patrimônio Líquido.
; Initializing a cash account when starting your ledger
2020-01-01 * "Initial Balance" "Setting up cash account"
Assets:Cash:Wallet 200.00 USD
Equity:Opening-Balances -200.00 USDA conta Equity:Opening-Balances detém valores que entram no seu razão de fontes desconhecidas ou externas.
Para correções rápidas onde a discrepância exata não é importante, a diretiva pad pode ajustar automaticamente o saldo de uma conta para atender a uma asserção de balance subsequente, registrando a diferença em uma conta de patrimônio líquido. Use isso com cautela, pois pode ocultar problemas maiores. Ajustes explícitos são geralmente mais seguros.
Parte 5: Padrões de Transação Avançados e Realistas
Rastreando Dívidas: Gerenciando Valores a Receber e a Pagar
A contabilidade de partidas dobradas é perfeita para rastrear dinheiro devido a você (Assets:Receivables) ou por você (Liabilities:Payable).
Exemplo: Você paga por um jantar em grupo de $90, e seu amigo Bob lhe deve sua parte de $45.
-
Registre a despesa inicial e o valor a receber:
2024-08-05 * "Dinner Place" "Dinner with Bob" Expenses:Food:Restaurant 45.00 USD ; Your share Assets:Receivables:Bob 45.00 USD ; Bob owes you Assets:Bank:US:Chase:Checking -90.00 USD -
Quando Bob lhe pagar de volta:
2024-08-06 * "Bob" "Paid me back for dinner" Assets:Bank:US:Chase:Checking 45.00 USD Assets:Receivables:Bob -45.00 USD
A conta Assets:Receivables:Bob agora está zerada, e seus livros estão perfeitamente balanceados.
Ativos vs. Despesas: Compra de um Carro e Depreciação
Uma compra grande como um carro não é uma despesa simples; é a aquisição de um ativo que perde valor ao longo do tempo (depreciação).
-
Registre a compra como um ativo:
2023-01-15 * "Toyota Dealer" "Purchase of a new car" Assets:Car:ToyotaCamry 30000.00 USD Assets:Bank:US:Chase:Checking -30000.00 USD -
Registre a depreciação anual: Suponha que você estime que o carro perde $3.000 em valor a cada ano. No final do ano, você registra isso como uma despesa.
2023-12-31 * "Depreciation" "Annual car value depreciation" Expenses:Depreciation:Car 3000.00 USD Assets:Car:ToyotaCamry -3000.00 USD
Após esta entrada, sua conta Assets:Car:ToyotaCamry reflete corretamente o novo valor do carro ($27.000), e você contabilizou adequadamente o custo de uso como uma despesa para aquele ano.
Parte 6: Mergulho Profundo - Modelando Ativos Complexos do Mundo Real
Estudo de Caso 1: Contabilizando Imóveis
Uma casa é frequentemente seu maior ativo e passivo. Veja como modelá-la.
-
Crie Contas e uma Commodity Personalizada:
2022-01-01 commodity HOUSE_123MAIN name: "Property at 123 Main St" 2022-01-01 open Assets:Property:Home:123Main HOUSE_123MAIN 2022-01-01 open Liabilities:Mortgage:HomeLoan USD 2022-01-01 open Expenses:Home:Interest 2022-01-01 open Expenses:Home:PropertyTax -
Registre a Compra: Digamos que você compre uma casa de $500 mil com um pagamento inicial de $100 mil e um empréstimo de $400 mil.
2022-03-15 * "Settlement Company" "Purchase of 123 Main St" Assets:Property:Home:123Main 1 HOUSE_123MAIN {500000.00 USD} Assets:Bank:DownPayment -100000.00 USD Liabilities:Mortgage:HomeLoan -400000.00 USD -
Registre os Pagamentos Mensais da Hipoteca: Seu pagamento mensal consiste em principal (reduz o passivo) e juros (uma despesa).
2022-04-01 * "Mortgage Bank" "Monthly Mortgage Payment" Liabilities:Mortgage:HomeLoan 800.00 USD ; Principal Expenses:Home:Interest 1200.00 USD ; Interest Assets:Bank:US:Chase:Checking -2000.00 USD -
Rastreando a Valorização (Ganhos Não Realizados): O valor de mercado de uma casa muda. Para rastrear isso sem afetar seu patrimônio líquido oficial (já que o ganho não é realizado até você vender), você pode usar uma diretiva de preço com uma moeda "virtual".
; The purchase price is the real cost basis 2022-03-15 price HOUSE_123MAIN 500000.00 USD ; An updated market estimate is an unrealized gain 2024-01-01 price HOUSE_123MAIN 550000.00 USD.UNREALIZED
Isso permite que você veja o valor estimado nos gráficos do Fava sem inflar indevidamente seu balanço patrimonial.
Explore um razão de exemplo de imóvel ao vivo com rastreamento de hipoteca, depreciação e venda de propriedade:
Estudo de Caso 2: Rastreando Unidades de Ações Restritas (RSUs)
RSUs são uma forma comum de remuneração em ações. Contabilizá-las envolve rastrear a concessão inicial, eventos de aquisição e retenção de impostos.
-
Configuração Inicial: Crie commodities para ações adquiridas (
HOOL) e não adquiridas (HOOL.UNVEST), junto com todas as contas que as entradas posteriores tocam. Declarar todas elas antecipadamente é o que faz as duas transações abaixo carregarem por conta própria.2021-01-01 commodity HOOL 2021-01-01 commodity HOOL.UNVEST 2021-01-01 open Assets:Brokerage:Etrade:HOOL HOOL 2021-01-01 open Assets:Grant:Unvested HOOL.UNVEST 2021-01-01 open Income:Grant:Awards HOOL.UNVEST 2021-01-01 open Expenses:Grant:Vested HOOL.UNVEST 2021-01-01 open Income:Salary:Hooli:RSU USD 2021-01-01 open Expenses:Taxes:Federal USD 2021-01-01 open Expenses:Taxes:State USD -
Registre a Concessão Inicial: Esta transação mostra a concessão total entrando em uma conta de ativos não adquiridos. Nada é tributável ainda, então a entrada inteira é denominada na commodity de rastreamento
HOOL.UNVEST.2021-02-01 * "Hooli" "Initial RSU Grant" Assets:Grant:Unvested 1000 HOOL.UNVEST Income:Grant:Awards -1000 HOOL.UNVEST -
Registre um Evento de Aquisição: Esta é a transação chave. Quando as ações são adquiridas, você reconhece renda, o empregador retém ações para pagar o imposto, e você fica com o restante. Suponha que 100 ações sejam adquiridas a $150,00, então:
- Compensação bruta: 100 × $150,00 = $15.000,00
- Ações retidas para imposto: 40 × $150,00 = $6.000,00 (federal $4.800,00 + estadual $1.200,00)
- Ações que você mantém: 60 × $150,00 = $9.000,00 de base de custo
- Dinheiro para você: $0,00 — toda a retenção é paga em ações
Esses valores são a entrada, e eles reconciliam: $6.000,00 de imposto mais $9.000,00 de ações retidas é exatamente os $15.000,00 de renda.
2022-02-01 * "Hooli" "RSU Vesting Event" ; Ordinary income: 100 shares * $150.00 Income:Salary:Hooli:RSU -15000.00 USD ; Tax withheld, funded by 40 of the 100 shares (40 * $150.00 = $6,000.00) Expenses:Taxes:Federal 4800.00 USD Expenses:Taxes:State 1200.00 USD ; The 60 shares you keep, at their $150.00 vesting-day basis Assets:Brokerage:Etrade:HOOL 60 HOOL {150.00 USD} ; Retire the 100 unvested units the grant was tracking Assets:Grant:Unvested -100 HOOL.UNVEST Expenses:Grant:Vested 100 HOOL.UNVEST
Esta única transação balanceada modela o evento inteiro: a concessão não adquirida é reduzida, a renda é reconhecida, o imposto é retido, e as 60 ações adquiridas líquidas aparecem na sua conta de corretagem com a base de custo correta para cálculos futuros de ganhos de capital.
Dois detalhes valem ser copiados para o seu próprio razão. Primeiro, escreva a retenção conta por conta em vez de deixar uma conta de balanceamento geral absorvê-la — se os lançamentos federais e estaduais não somarem ao valor das ações retidas, a transação não será balanceada e o Beancount lhe dirá isso. Segundo, não deixe uma linha em branco entre os lançamentos: uma linha em branco encerra a transação, e o Beancount relata um erro de sintaxe nos lançamentos que a seguem.
Se seu empregador vender as ações retidas no mercado aberto em vez de retomá-las ao preço de aquisição, a venda é uma transação separada — uma redução de Assets:Brokerage:Etrade:HOOL contra dinheiro — e qualquer diferença entre o preço de venda e a base de $150,00 é um pequeno ganho ou perda de capital. Mantenha isso fora da entrada de aquisição.
Parte 7: Gerenciamento de Projeto para Seu Razão
À medida que seu razão cresce, a organização se torna fundamental.
Usando Controle de Versão (Git) para Proteger Seus Dados
Como seu razão é um arquivo de texto, é perfeito para controle de versão com Git. Isso lhe dá um histórico completo de todas as mudanças, protegendo-o contra exclusões acidentais ou erros. Aviso: Seus dados financeiros são altamente sensíveis. Use um repositório privado em serviços como GitHub/GitLab, ou hospede o seu próprio.
Organizando com Tags (#) e Links (^)
O Beancount fornece duas maneiras de agrupar transações além das contas:
- Tags (
#): Use para eventos ou projetos. Você pode filtrar todas as transações relacionadas a uma viagem específica, por exemplo.2024-07-20 * "Hotel" "Viena" #viagem-europa-2024 - Links (
^): Use para conectar transações financeiramente relacionadas que ocorrem em momentos diferentes, como um saque em dinheiro e a taxa bancária associada.
Uma Estratégia Escalável para Estruturar Seus Arquivos (include)
Um único arquivo massivo é difícil de gerenciar. Use a diretiva include para dividir seu razão em vários arquivos.
main.bean:
; Main ledger file
; Global options
option "title" "My Personal Ledger"
option "operating_currency" "USD"
; Include account declarations and other files
include "accounts.bean"
include "years/2023.bean"
include "years/2024.bean"
include "events/trip-europe-2024.bean"Uma estratégia organizacional robusta, em ordem de precedência:
- Por Evento: Crie um arquivo separado para um evento importante e autocontido (por exemplo,
viagem-europa-2024.bean). - Por Categoria/Pagador: Para transações altamente regulares e recorrentes, como contas de serviços públicos ou salário, agrupe-as em seu próprio arquivo (por exemplo,
aluguel-recorrente.bean). - Por Conta: Para transações fortemente acopladas a uma conta específica (juros, taxas, pagamentos de cartão de crédito), considere um arquivo específico da conta.
- Por Data: Para todas as outras transações gerais, uma divisão simples por ano (
2024.bean) ou mês (2024/07.bean) é eficaz.
Parte 8: Conclusão
O Beancount oferece uma curva de aprendizado íngreme, mas recompensa o esforço com poder, flexibilidade e controle incomparáveis sobre seus dados financeiros. Ao adotar os princípios da contabilidade de partidas dobradas e as ferramentas práticas que o Beancount fornece, você pode passar do simples controle de despesas para um sistema completo, preciso e perspicaz de gerenciamento financeiro pessoal. Seu razão se torna um ativo permanente, privado e inestimável para entender seu passado e planejar seu futuro.
Começando com o Beancount.io
O Beancount.io é uma plataforma moderna de gerenciamento financeiro baseada em nuvem que transforma seus registros de transações baseados em texto em demonstrações financeiras abrangentes, incluindo demonstrações de resultados, balanços patrimoniais e balancetes. Ao combinar a confiabilidade de arquivos de texto simples com ferramentas poderosas de visualização, o Beancount.io ajuda você a manter controle preciso sobre sua vida financeira enquanto obtém insights valiosos sobre o desempenho dos seus investimentos.
Comece sua jornada financeira com o Beancount.io — veja os planos e preços atuais para o que cada nível inclui.


