Pular para o conteúdo principal

59 postagens marcado com "Beancount"

Ver todas as tags

Beancount: Folha de Consulta Rápida

· 2 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Exemplo de Nome de Conta

Assets:US:BofA:Checking

cheatsheet-en

Tipos de Conta

Assets          +
Liabilities -
Income -
Expenses +
Equity -

Commodities

CNY, EUR, CAD, AUD
GOOG, AAPL, RBF1005
HOME_MAYST, AIRMILES
HOURS

Diretivas

Sintaxe geral

YYYY-MM-DD <Directive> <Parameters...>

Abertura e Fechamento de Contas

2001-05-29 open Expenses:Restaurant
2001-05-29 open Assets:Checking USD,EUR ; Restrições de moeda

2015-04-23 close Assets:Checking

Declaração de Commodities (Opcional)

1998-07-22 commodity AAPL
nome: "Apple Computer Inc."

Preços

2015-04-30 price AAPL   125.15 CNY
2015-05-30 price AAPL 130.28 CNY

Notas

2013-03-20 note Assets:Checking "Ligado para perguntar sobre o reembolso"

Documentos

2013-03-20 document Assets:Checking "caminho/para/extrato.pdf"

Transações

2015-05-30 * "Alguma narração sobre esta transação"
Liabilities:CreditCard -101.23 CNY
Expenses:Restaurant 101.23 CNY

2015-05-30 ! "Cable Co" "Phone Bill" #tag ˆlink
id: "TW378743437" ; Metadados
Expenses:Home:Phone 87.45 CNY
Assets:Checking ; Você pode deixar um valor de fora

Lançamentos

  ...    123.45 USD                             Simples
... 10 GOOG {502.12 USD} Com custo por unidade
... 10 GOOG {{5021.20 USD}} Com custo total
... 10 GOOG {502.12 # 9.95 USD} Com ambos os custos
... 1000.00 USD @ 1.10 CAD Com preço por unidade
... 10 GOOG {502.12 USD} @ 1.10 CAD Com custo e preço
... 10 GOOG {502.12 USD, 2014-05-12} Com data
! ... 123.45 USD ... Com sinalizador

Asserções de Saldo e Preenchimento

; Afirma o valor apenas para a moeda fornecida:
2015-06-01 balance Liabilities:CreditCard -634.30 CNY

; Inserção automática de transação para cumprir a seguinte asserção:
2015-06-01pad Assets:Checking Equity:Opening-Balances

Eventos

2015-06-01 event "localização" "Nova Iorque, EUA"
2015-06-30 event "endereço" "123 May Street"

Opções

option "title" "Meu Livro Razão Pessoal"

Outros

pushtag #trip-to-peru
...
poptag #trip-to-peru
; Comentários começam com um ponto e vírgula

A Magia da Contabilidade em Texto Simples com Beancount

· 6 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Descubra a Magia da Contabilidade em Texto Simples com Beancount

Beancount.io banner

Introdução

2023-04-18-introduction-to-beancount

Bem-vindo a um mundo onde a contabilidade não é mais uma tarefa assustadora. Hoje, apresentamos o Beancount, uma ferramenta de contabilidade em texto simples poderosa, flexível e intuitiva. O Beancount permite que você assuma o controle de suas finanças, fornecendo uma abordagem transparente e direta para gerenciar seu dinheiro.

Neste guia abrangente, vamos nos aprofundar nos conceitos básicos do Beancount, explicar seus conceitos centrais e guiá-lo por seus recursos simples, mas poderosos. Ao final deste blog, você terá uma compreensão sólida do Beancount e estará pronto para começar a usá-lo para organizar e analisar sua vida financeira.

O que é Beancount?

Beancount é um sistema de contabilidade em texto simples de código aberto criado por Martin Blais. Inspirado no sistema Ledger de John Wiegley, o Beancount visa fornecer um método robusto e confiável para gerenciar finanças pessoais e de pequenas empresas usando arquivos de texto simples. Com o Beancount, você pode rastrear suas receitas, despesas, investimentos e muito mais com facilidade.

Por que Beancount?

A contabilidade em texto simples oferece várias vantagens sobre os sistemas de contabilidade tradicionais baseados em planilhas ou software:

  • Transparência: Os arquivos Beancount são legíveis por humanos, tornando fácil entender e auditar seus dados financeiros.
  • Flexibilidade: O Beancount pode ser facilmente personalizado para atender às suas necessidades específicas, e você pode usar seu editor de texto e sistema de controle de versão favoritos para gerenciar seus dados financeiros.
  • Portabilidade: Seus dados financeiros podem ser acessados em qualquer dispositivo, e é fácil transferir entre sistemas ou compartilhar com outras pessoas.
  • À prova de futuro: Arquivos de texto simples são universalmente compatíveis, garantindo que seus dados financeiros permanecerão acessíveis, mesmo com a evolução da tecnologia.

Conceitos Centrais do Beancount

Para usar o Beancount de forma eficaz, é crucial entender seus conceitos centrais:

  • Transações: Eventos financeiros, como receitas, despesas ou transferências entre contas, são registrados como transações.
  • Contas: As transações envolvem uma ou mais contas, como ativos, passivos, receitas ou despesas.
  • Contabilidade de partidas dobradas: O Beancount impõe a contabilidade de partidas dobradas, garantindo que cada transação tenha débitos e créditos equilibrados.
  • Diretivas: O Beancount usa um conjunto de diretivas para definir transações, aberturas de contas e outros eventos financeiros.

Começando com Beancount

Para começar a usar o Beancount, siga estes passos simples:

  • Instale o Beancount: Instale o Beancount em seu sistema usando as instruções de instalação fornecidas para seu sistema operacional.
  • Crie seu arquivo Beancount: Crie um novo arquivo de texto simples com a extensão .beancount (por exemplo, minhas_financas.beancount).
  • Defina suas contas: Use a diretiva "open" para definir as contas que você usará em suas transações.
  • Registre transações: Use a diretiva "txn" para registrar suas transações financeiras.

Ou simplesmente cadastre-se em https://beancount.io. Aqui estão alguns exemplos de contabilidade em texto simples -

Exemplo 1: Transação Básica

2023-04-01 open Assets:Checking
2023-04-01 open Expenses:Groceries

2023-04-10 txn "Grocery Store" "Buying groceries"
Assets:Checking -50.00 USD
Expenses:Groceries 50.00 USD

Neste exemplo, abrimos duas contas, Assets:Checking e Expenses:Groceries. Em 10 de abril de 2023, registramos uma transação de compra de mantimentos no valor de US50.Atransac\ca~oreduzosaldodeAssets:CheckingemUS 50. A transação reduz o saldo de Assets:Checking em US 50 (débito) e aumenta o saldo de Expenses:Groceries em US$ 50 (crédito).

Exemplo 2: Transação de Receita e Despesa

2023-04-01 open Assets:Checking
2023-04-01 open Income:Salary
2023-04-01 open Expenses:Rent

2023-04-05 txn "Employer" "Salary payment"
Assets:Checking 2000.00 USD
Income:Salary -2000.00 USD

2023-04-06 txn "Landlord" "Monthly rent payment"
Assets:Checking -1000.00 USD
Expenses:Rent 1000.00 USD

Neste exemplo, abrimos três contas: Assets:Checking, Income:Salary e Expenses:Rent. Em 5 de abril de 2023, registramos uma transação de pagamento de salário de US2000.Atransac\ca~oaumentaosaldodeAssets:CheckingemUS 2000. A transação aumenta o saldo de Assets:Checking em US 2000 (crédito) e diminui o saldo de Income:Salary em US2000(deˊbito).Em6deabrilde2023,registramosumatransac\ca~odepagamentodealugueldeUS 2000 (débito). Em 6 de abril de 2023, registramos uma transação de pagamento de aluguel de US 1000. A transação reduz o saldo de Assets:Checking em US1000(deˊbito)eaumentaosaldodeExpenses:RentemUS 1000 (débito) e aumenta o saldo de Expenses:Rent em US 1000 (crédito).

Exemplo 3: Transferência Entre Contas

2023-04-01 open Assets:Checking
2023-04-01 open Assets:Savings

2023-04-15 txn "Bank" "Transfer from Checking to Savings"
Assets:Checking -500.00 USD
Assets:Savings 500.00 USD

Neste exemplo, abrimos duas contas: Assets:Checking e Assets:Savings. Em 15 de abril de 2023, registramos uma transação para transferir US500dacontacorrenteparaacontapoupanc\ca.Atransac\ca~oreduzosaldodeAssets:CheckingemUS 500 da conta corrente para a conta poupança. A transação reduz o saldo de Assets:Checking em US 500 (débito) e aumenta o saldo de Assets:Savings em US$ 500 (crédito).

Esses exemplos ilustram os conceitos básicos do sistema de contabilidade de partidas dobradas do Beancount. Ao registrar corretamente as transações, os usuários podem manter registros precisos de suas atividades financeiras e gerar relatórios para obter insights sobre sua situação financeira.

Gerando Relatórios e Analisando Dados

O Beancount vem com um conjunto de ferramentas poderosas para gerar relatórios financeiros, incluindo balanços patrimoniais, demonstrações de resultados e muito mais. Você também pode usar o Fava, uma interface de usuário baseada na web para o Beancount, para visualizar e interagir com seus dados financeiros. O https://beancount.io é construído sobre o Fava com licença MIT.

Conclusão

Abrace o poder e a simplicidade da contabilidade em texto simples com o Beancount. Ao entender seus conceitos centrais e seguir os passos descritos neste guia, você estará no caminho certo para gerenciar suas finanças pessoais ou de pequenas empresas com facilidade e precisão. À medida que você se sentir mais confortável com o Beancount, poderá explorar recursos avançados e personalizações para adaptar o sistema às suas necessidades exclusivas.

Seja para rastrear seus gastos, planejar o futuro ou obter insights sobre seus hábitos financeiros, o Beancount oferece a flexibilidade e a transparência necessárias para atingir seus objetivos. Com sua abordagem amigável, o Beancount tem o potencial de revolucionar a maneira como você gerencia suas finanças e capacitá-lo a assumir o controle de seu futuro financeiro.

Agora que você tem uma base sólida em Beancount, é hora de embarcar em sua jornada de contabilidade em texto simples. Diga adeus às planilhas complicadas e ao software confuso, e dê as boas-vindas ao mundo do Beancount. Boa contabilidade!

Aprimorando Sua Experiência Beancount com Links e Consultas Personalizadas

· 4 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Beancount, o sistema de contabilidade de dupla entrada amado por desenvolvedores e entusiastas de finanças, é poderoso em sua simplicidade. Mas para aqueles que desejam mais controle e navegação mais rápida dentro do Fava, a interface web do Beancount, links personalizados na barra lateral e consultas SQL podem levar seu fluxo de trabalho para o próximo nível.

Neste guia, mostraremos como:

  • Adicionar links de acesso rápido à barra lateral do Fava
  • Usar consultas SQL para filtragem e análise avançadas
  • Personalizar seu fluxo de trabalho para revisões mensais ou detecção de anomalias

Por que Personalizar o Fava?

O Fava já é uma interface bonita para visualizar seu livro-razão Beancount, mas à medida que seu diário cresce, também cresce a necessidade de atalhos melhores e consultas mais inteligentes.

Problemas que isso resolve:

  • Navegar por intervalos de tempo repetidamente
  • Filtrar transações em contas aninhadas
  • Identificar saldos negativos ou anomalias mais rapidamente

Vamos começar a melhorar seu fluxo de trabalho diário com atalhos simples na barra lateral. Esses links aparecem na barra lateral esquerda do Fava e podem levá-lo diretamente a visualizações filtradas, como as transações deste mês ou a receita do mês passado.

Adicione estas linhas ao seu arquivo Beancount:

2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="

O que Eles Fazem:

  • Mês Atual: Abre a visualização de transações filtrada para o mês atual.
  • Mês Passado: Salta instantaneamente para o mês anterior — ótimo para revisões de fim de mês.
  • Limpar Tudo: Reinicia os filtros, mostrando todas as entradas novamente.

Esses atalhos eliminam a entrada manual de tempo e tornam sua experiência com o Fava mais fluida e personalizada.

🔍 Consultas SQL Personalizadas

Para uma visão mais aprofundada, a interface SQL do Fava é incrivelmente poderosa. Aqui está uma consulta que encontra todos os saldos negativos em contas que correspondem a um padrão — perfeita para sinalizar transações incomuns ou problemáticas.

SELECT account, units(sum(position)), sum(position)
WHERE number(units(position)) < 0
AND account ~ '.*:BCM:.*'
AND date >= DATE(2021,12,9)
AND date < DATE(2022,1,9)

Análise:

  • account ~ '.*:BCM:.*': Filtra contas que contêm :BCM: em seu nome.
  • number(units(position)) < 0: Sinaliza saldos negativos (por exemplo, orçamentos excedidos).
  • Filtros de data restringem o resultado a uma janela específica de 1 mês.

Casos de uso:

  • Identificar erros como despesas duplicadas ou lançamentos incorretos
  • Auditar um fornecedor ou categoria específica
  • Extrair rapidamente insights acionáveis para orçamentação

Embora o Fava não permita links diretos para consultas personalizadas, você pode criar um hábito de revisão mensal ao:

  • Usar o link “Mês Atual” para iniciar sua revisão
  • Abrir sua aba de consultas salvas em outro painel
  • Revisar ambos simultaneamente — filtre primeiro, depois aprofunde-se

Essa combinação ajuda você a detectar anomalias antes que elas se agravem e a garantir que seu livro-razão permaneça limpo.

Considerações Finais

Beancount é minimalista por design, mas pequenas melhorias como estas trazem grandes ganhos de eficiência. Esteja você revisando seu orçamento, depurando saldos estranhos ou simplesmente economizando cliques, links personalizados e consultas SQL lhe dão mais poder e menos atrito.

Bônus: Se você estiver usando os relatórios personalizados do Fava, você pode até construir painéis completos adaptados aos seus rituais de finanças pessoais.

Pronto para assumir o controle?

Comece pequeno: adicione o link “Mês Atual”. Em seguida, crie suas próprias consultas. Seu eu futuro agradecerá.

Quer mais dicas como esta? Assine nossa newsletter ou explore mais receitas Beancount em Beancount.io.

Previsão de Transações Futuras no Beancount

· Um minuto de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Existe um plugin para o Beancount prever transações recorrentes futuras. Como aplicá-lo no beancount.io? Insira o seguinte conteúdo no seu arquivo de razão.

; import the plugin
plugin "fava.plugins.forecast"

; add a monthly HOA fee
2022-05-30 # "HOA fee [MONTHLY]"
Expenses:Hoa 1024.00 USD
Assets:Checking -1024.00 USD

Captura de tela do plugin de previsão

2022-05-30-forecast-plugin

E então, você verá a previsão no gráfico de Lucro Líquido.

Plugin de Previsão

A tag [MONTHLY] acima significa que ela se repetirá para sempre. Se você tiver mais condições para aplicar, tente [MONTHLY UNTIL 2022-06-01], [MONTHLY REPEAT 5 TIMES], [YEARLY REPEAT 5 TIMES], ou [WEEKLY SKIP 1 TIME REPEAT 5 TIMES].

Criando e Rastreando Faturas com o Beancount

· 6 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Um modelo em texto simples, um fluxo de trabalho repetível e uma única consulta para “Quem ainda me deve?”


2022-02-12-crafting-tracking-invoices-with-beancount

O faturamento pode parecer uma tarefa árdua, presa entre o trabalho que você concluiu e o pagamento que está aguardando. Mas um bom processo de faturamento é a espinha dorsal de um fluxo de caixa saudável. Ele tem dupla função: informa claramente aos seus clientes o que eles devem e quando, e alimenta seu sistema de contabilidade com os fatos incontestáveis de que ele precisa.

Embora aplicativos SaaS dedicados possam enviar PDFs sofisticados e automatizados, eles geralmente vêm com taxas mensais e bloqueiam seus dados em um silo proprietário. Uma abordagem leve em texto simples usando o Beancount oferece uma alternativa poderosa. Você pode transformar cada fatura em um conjunto claro de lançamentos contábeis, dando a você todos os benefícios do controle de versão, metadados poderosos e consultas instantâneas - sem necessidade de assinatura.


A Fatura Minimamente Viável (Campos que Você Nunca Deve Ignorar)

Antes de tocar em seu livro-razão, você precisa de uma fatura profissional. O formato pode ser simples, mas o conteúdo deve ser preciso. Esses campos, emprestados da prática comprovada de pequenas empresas, são inegociáveis.

  • Detalhes do vendedor: Nome da sua empresa e endereço físico.
  • Detalhes do cliente: Nome do seu cliente e (idealmente) o endereço dele.
  • Número da fatura: Um ID sequencial exclusivo que nunca é reutilizado. FAT-045 segue FAT-044.
  • Datas de emissão e vencimento: Indique claramente quando a fatura foi emitida e quando o pagamento é esperado.
  • Itens da linha: Uma descrição clara dos serviços ou produtos, juntamente com a quantidade, taxa e o total da linha.
  • Subtotal, imposto e total: Mostre a matemática para que o cliente possa acompanhá-la facilmente.
  • Observações opcionais: Um local para um agradecimento, instruções de transferência bancária ou um número de ordem de compra fornecido pelo cliente.

Para você começar, criamos um conjunto de modelos prontos para editar que incluem todos esses campos. As versões de planilha até pré-calculam os totais para você.

Obtenha nossos modelos aqui: beancount.io/invoice‑templates (Disponível nos formatos Google Docs, Word, Planilhas, Excel e PDF)


Registre a Fatura em Seu Livro-Razão

Depois de enviar o PDF da fatura para o seu cliente, você deve registrá-la no Beancount. Esta é uma etapa crucial que reconhece a receita quando ela é ganha, não apenas quando é paga. O processo envolve duas transações distintas.

1. Quando você emite a fatura:

Você cria uma transação que move o valor total da sua conta Receita para Ativo:Contas a Receber. Isso cria um IOU digital em seus livros.

; 2025‑07‑21 Fatura #045  Sprint de design web para Acme Corp.
2025-07-21 * "Acme Corp" "FAT-045 Sprint de design web"
Ativo:ContasReceber 3500.00 USD ; vencimento:2025-08-04
Receita:Design:Web
id_fatura: "FAT-045"
email_contato: "ap@acme.example"
link: "docs/faturas/2025-07-21_Acme_FAT-045.pdf"

Aqui, você debita Contas a Receber e credita sua conta Receita. Observe os metadados ricos: a data de vencimento, um id_fatura exclusivo e até um link: direto para o PDF que você enviou.

2. Quando o cliente paga:

Quando o dinheiro chega à sua conta bancária, você registra uma segunda transação para "fechar" o IOU. Isso move o saldo de Contas a Receber para sua conta corrente.

2025-08-01 * "Acme Corp" "Pagamento FAT-045"
Ativo:Banco:ContaCorrente 3500.00 USD
Ativo:ContasReceber
id_fatura: "FAT-045"

O saldo para FAT-045 em Ativo:Contas a Receber agora é zero e seus livros estão perfeitamente balanceados.

Anexe o PDF: A chave de metadados link: é especialmente poderosa quando usada com o Fava, a interface web do Beancount. O Fava renderizará um link clicável diretamente na visualização da transação, para que o documento de origem nunca esteja a mais de um clique de distância. Este fluxo de trabalho foi previsto já em 2016 em uma solicitação de recurso (GitHub).


Uma Consulta para Listar Todas as Faturas em Aberto

Então, quem ainda lhe deve dinheiro? Com este sistema, você não precisa procurar em e-mails ou planilhas. Você só precisa de uma consulta simples.

Salve o seguinte como um arquivo chamado faturas-em-aberto.sql:

SELECT
meta('id_fatura') AS id,
beneficiario,
descricao,
data,
number(saldo) AS pendente
WHERE
conta = "Ativo:ContasReceber"
AND saldo != 0
ORDER BY
data;

Agora, execute-o na sua linha de comando:

bean-query books.beancount faturas-em-aberto.sql

Em segundos, você obterá um relatório de envelhecimento limpo e atualizado de todas as faturas pendentes, mostrando o ID da fatura, cliente, data de emissão e valor devido. Nenhum software extra necessário.


Automatize o Trabalho Pesado

A beleza do texto simples é a capacidade de script. Você pode automatizar as partes tediosas deste fluxo de trabalho.

  • Modelo + Pandoc = PDF: Mantenha seu modelo de fatura em Markdown. Um pequeno script Python pode preencher as variáveis (nome do cliente, itens de linha, número da fatura) e a ferramenta de linha de comando Pandoc pode convertê-lo instantaneamente em um PDF profissional.
  • Git Pre-commit Hook: Se você armazena seu livro-razão no Git, um gancho de pré-commit simples pode executar verificações antes de salvar seu trabalho. Ele pode verificar se cada novo id_fatura é único, se os lançamentos da transação estão zerados e se o arquivo referenciado nos metadados link: realmente existe.
  • Cron Job: Configure uma tarefa agendada (um cron job) para executar sua consulta faturas-em-aberto.sql todas as noites e enviar o resumo por e-mail para você. Você começará cada dia sabendo exatamente quem precisa de um lembrete amigável.

Uma Ressalva Realista

O Beancount é uma ferramenta de contabilidade, não um serviço de faturamento. Ele não enviará lembretes de pagamento automaticamente para seus clientes nem processará os pagamentos com cartão de crédito. O fluxo de trabalho é: você cria e envia a fatura usando o método escolhido (como os modelos acima) e, em seguida, registra os lançamentos contábeis em seu livro-razão.

Para a maioria dos freelancers e pequenas empresas, esta etapa manual é um pequeno preço a pagar por um sistema de contabilidade à prova de balas, auditável e gratuito que você possui e controla completamente (beancount.io).


Próximos Passos

Pronto para assumir o controle do seu faturamento? Veja como começar.

  1. Baixe um modelo e use-o para criar sua próxima fatura real, certificando-se de usar um número de fatura sequencial.
  2. Armazene seus PDFs enviados em uma pasta dedicada como docs/faturas/ e use a chave de metadados link: em sua transação Beancount para referenciá-los.
  3. Salve a consulta faturas-em-aberto.sql e torne sua execução parte da sua revisão financeira semanal.

A contabilidade em texto simples não significa abrir mão do refinamento ou do controle - significa apenas que o banco de dados pode ser pesquisado com grep. Com um modelo simples e os trechos acima, você receberá mais rápido e manterá seus livros imaculados.

Lançamentos de Ajustes no Beancount: Seu Ajuste de Fim de Mês

· 5 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

A contabilidade não termina quando a última venda chega ao banco. Para obter uma visão real da saúde do seu negócio, você precisa realizar um ajuste de fim de mês. A cada fechamento de período, você fará lançamentos de ajustes — ajustes no diário que colocam corretamente as receitas e despesas na janela de tempo adequada e mantêm seu balanço patrimonial honesto.

Em um livro-razão Beancount de texto simples, esses lançamentos cruciais são transparentes, controlados por versão e fáceis de auditar, transformando uma tarefa tediosa em um processo claro e repetível.

2022-01-25-lançamentos-de-ajustes-no-beancount-seu-ajuste-de-fim-de-mes


Por que os Lançamentos de Ajustes Importam

Fazer esses ajustes é fundamental para uma contabilidade sólida. Eles garantem que suas demonstrações financeiras sejam precisas e confiáveis.

  • Precisão do Regime de Competência: Os lançamentos de ajustes são o motor da contabilidade de regime de competência. Eles movem a receita e os custos para o período em que foram realmente ganhos ou incorridos, independentemente de quando o dinheiro mudou de mãos. Isso satisfaz os princípios básicos de reconhecimento de receita e casamento que formam a base da contabilidade moderna (AccountingCoach.com).

  • KPIs Confiáveis: Os indicadores-chave de desempenho são tão bons quanto os dados por trás deles. Métricas como margem bruta, lucro líquido e previsões de fluxo de caixa só dizem a verdade depois que os diferimentos, acréscimos e estimativas são devidamente lançados (Corporate Finance Institute).

  • Trilha de Auditoria Limpa: Os ajustes explícitos de fim de mês criam um registro claro do seu raciocínio financeiro. Isso ajuda os auditores (e seu futuro eu) a rastrear facilmente o que mudou e porquê, criando confiança em seus números (Accountingverse).


Seis Categorias Comuns (com Trechos de Beancount)

Aqui estão os seis tipos mais comuns de lançamentos de ajustes, com exemplos de como registrá-los em seu livro-razão Beancount. Observe o uso de metadados como adj:"accrual" para tornar esses lançamentos fáceis de encontrar e analisar posteriormente.

1. Receita Acumulada

Isso é para receita que você ganhou, mas ainda não faturou ou recebeu o pagamento.

2025-07-31 * "Consultoria—Horas de julho"
Assets:AccountsReceivable 12000.00 USD
Income:Consulting
; adj:"accrual" period:"Jul-25"

2. Despesa Acumulada

Uma despesa que você incorreu, mas ainda não pagou, como uma conta de serviços públicos que chegará no próximo mês.

2025-07-31 * "Advogado—Honorários de julho"
Expenses:Legal 2500.00 USD
Liabilities:AccruedPayables
; adj:"accrual"

3. Receita Diferida (Não Realizada)

Isso se aplica quando um cliente paga antecipadamente. Você reconhece uma parte dessa receita à medida que ela é ganha ao longo do tempo.

2025-07-31 * "Pagamento antecipado anual de SaaS (reconhecer 1/12)"
Liabilities:UnearnedRevenue 833.33 USD
Income:SaaS
; adj:"deferral"

4. Despesa Pré-paga (Diferida)

Quando você paga por uma despesa antecipadamente (como uma apólice de seguro anual), você lança uma parte dela a cada mês.

2025-07-31 * "Seguro—Despesa de 1 mês do pré-pago"
Expenses:Insurance 400.00 USD
Assets:PrepaidInsurance
; adj:"deferral"

5. Depreciação e Amortização

Este lançamento aloca o custo de um ativo de longo prazo (como um computador ou veículo) ao longo de sua vida útil.

2025-07-31 * "Depreciação do Mac Studio"
Expenses:Depreciation 1250.00 USD
Assets:Computers:AccumDepr
; asset_id:"MAC-03" adj:"estimate"

6. Provisão para Devedores Duvidosos

Uma estimativa de contas a receber que você não espera receber, que é registrada como uma despesa de crédito incobrável.

2025-07-31 * "Provisão para devedores duvidosos (2% das contas a receber)"
Expenses:BadDebt 700.00 USD
Assets:AllowanceForBadDebt
; basis:"A/R" rate:0.02 adj:"estimate"

Um Fluxo de Trabalho Repetível

Para manter o fechamento do seu mês eficiente e livre de erros, adote um fluxo de trabalho consistente.

  • Use um arquivo separado. Mantenha todos os ajustes para um período em um só lugar, como adjustments-2025-07.bean. Em seu arquivo de livro-razão principal, use uma diretiva include para importá-lo por último. Isso garante que os ajustes sejam aplicados imediatamente antes de você gerar os relatórios finais.

  • Padronize seus metadados. Sempre use chaves e valores de metadados consistentes, como adj:"accrual|deferral|estimate" e period:"Jul-25". Isso torna a consulta e a revisão de tipos específicos de ajustes muito fáceis.

  • Execute uma verificação prévia. Antes de confirmar suas alterações no Git, execute bean-check no seu arquivo de ajustes para detectar erros de digitação ou lançamentos desbalanceados.

  • Execute uma verificação de sanidade de uma linha. Esta consulta confirma que todos os seus ajustes para o período se equilibram, dando-lhe confiança de que você não introduziu erros.

    bean-query main.bean "SELECT account, SUM(number) WHERE meta('adj') AND meta('period') = 'Jul-25' GROUP BY account"

Dicas Rápidas para Solução de Problemas 🤔

  • Seu saldo de Liabilities:UnearnedRevenue está subindo? Revise os marcos do seu contrato. Você pode estar reconhecendo a receita muito lentamente em comparação com o trabalho que está entregando.

  • Seu saldo de Assets:PrepaidInsurance está negativo? Você provavelmente está gastando mais rápido do que o cronograma do ativo permite. Verifique novamente seu cronograma de amortização.

  • Seus Dias de Vendas em Aberto (DSO) estão piorando após os acréscimos? Sua receita acumulada pode estar mascarando problemas subjacentes de cobrança. Combine este KPI com um relatório de envelhecimento de contas a receber para identificar clientes com pagamentos atrasados antes que se torne um problema de fluxo de caixa.


Considerações Finais

Os lançamentos de ajustes podem parecer tediosos, mas seu valor se torna cristalino quando você compara suas demonstrações de resultados "antes" e "depois" — a diferença costuma ser material. Com o Beancount, esses ajustes se tornam pequenos patches pesquisáveis que você pode automatizar e revisar como código.

Crie o hábito de fim de mês e seus números permanecerão tão precisos quanto sua engenharia.

Feliz balanceamento!

Revolucionando a Gestão de Finanças Pessoais com Beancount.io

· 4 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Tradicionalmente, os usuários de Beancount utilizam ferramentas de linha de comando ou servidores auto-hospedados com redes privadas, onde precisam operar através de um computador ou de um editor de texto de uso geral no celular. Beancount.io reduz as complicações ao oferecer aplicativos móveis Android e iOS de código aberto e uma nuvem segura, para que seu livro-razão esteja agora a poucos toques de sua impressão digital.

Beancount é uma linguagem de computador que permite a escrituração contábil de dupla entrada em arquivos de texto. Uma vez que você define as transações financeiras no arquivo, ele gerará vários relatórios. Martin Blais, o criador desta linguagem, argumenta que a escrituração contábil por linha de comando tem muitas vantagens - É rápida, portátil, aberta e personalizável.

Concordamos fortemente com o argumento e compartilhamos o sentimento de empoderamento trazido pela linguagem Beancount. E queríamos fazer mais - introduzir a tecnologia a mais pessoas. Isso significa que temos que melhorar a usabilidade e torná-la mais acessível a um público mais amplo.

2022-01-08-instant-access-to-your-beancount-cloud-ledger-anytime-anywhere

Nem todo mundo é um entusiasta de linha de comando, e é por isso que construímos Beancount.io - o gerenciador de finanças pessoais para todos. Veja como funciona:

Para trabalhos pesados, os usuários de Beancount ainda podem usar seus computadores para editar ou visualizar o livro-razão com seus navegadores visitando https://beancount.io ou sincronizando com o Dropbox. Isso mantém a flexibilidade das ferramentas de linha de comando, sem perder o acesso entre dispositivos da solução baseada em nuvem.

Para operações diárias leves, como adicionar uma entrada instantaneamente, os usuários de Beancount podem usar o aplicativo móvel para se conectar à nuvem segura.

Mike Thrift, um engenheiro de backend trabalhando neste produto, diz

Eu costumava configurar um lembrete todos os dias para mim mesmo para abrir meu laptop e inserir registros nos meus arquivos Beancount. Agora, com beancount.io, é muito mais fácil para mim modificar meu livro-razão sempre que preciso, mesmo quando estou comprando algo na loja.

Zhi Li, um engenheiro de software do Facebook, nos diz

Migrei todos os meus arquivos Beancount para beancount.io, e agora funciona perfeitamente para o meu uso diário. Paguei por recursos Pro como backup automático de dados, mas sinto que vocês poderiam fazer mais para melhorar o serviço.

Você pode se inscrever agora em https://beancount.io/sign-up/ ou baixar o aplicativo iOS ou Android. Simplificamos o registro para coletar o mínimo de informações possível de você para iniciar o serviço. Em seguida, você receberá um livro-razão vazio predefinido, pronto para você adicionar uma entrada imediatamente.

Perguntas Frequentes

O beancount.io venderia meus dados do livro-razão para terceiros?

  • Não. Estamos comprometidos em manter seus dados seguros e privados, e nunca venderemos seus dados do livro-razão.

Meus dados estão seguros?

  • Sim. Protegemos seu e-mail e livro-razão com AES256, sua senha com BCrypt e suas solicitações de rede com SSL.

Meus dados do livro-razão são criptografados de ponta a ponta?

  • Não. Devido a restrições técnicas, ainda precisamos descriptografar seus dados na memória ao indexar o arquivo do livro-razão em servidores de produção. Portanto, restringimos o acesso direto de qualquer membro de nossa equipe. Infelizmente, não podemos fazer isso no Intel SGX ou em qualquer cofre de segurança devido aos altos custos.

Este é um serviço confiável no qual posso confiar nos próximos anos?

  • Sim. Lançamos inicialmente o Beancount.io em 4 de julho de 2019, e já se passaram mais de dois anos desde que operamos o serviço de forma segura e confiável. Portanto, não temos motivos para não continuar o serviço no futuro.

Posso solicitar novos recursos e patrocinar o projeto?

Guia Prático de Migração do QuickBooks para o Beancount

· 34 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Etapa 1: Exportando Dados do QuickBooks

A migração de cinco anos de dados começa com a extração de todos os registros do QuickBooks em um formato utilizável. O QuickBooks Desktop e o QuickBooks Online têm opções de exportação diferentes:

2021-12-01-from-quickbooks-to-plain-text-a-migration-playbook

1.1 QuickBooks Desktop – Opções de Exportação

IIF (Intuit Interchange Format): O QuickBooks Desktop pode exportar listas (como plano de contas, clientes, fornecedores) para arquivos de texto .IIF. No QuickBooks Desktop, vá para File → Utilities → Export → Lists to IIF e selecione as listas que você precisa (ex: Plano de Contas, Clientes, Fornecedores). Isso gera um arquivo de texto que inclui nomes de contas, tipos e dados da lista. O IIF é um formato proprietário, mas de texto simples, que é relativamente fácil de analisar. Use-o para capturar seu Plano de Contas e listas de contatos para referência no Beancount.

Razão Geral/Diário via CSV: Para dados de transações, o QuickBooks Desktop não oferece uma exportação completa com um clique, mas você pode usar relatórios. O método recomendado é exportar o Diário Geral (todas as transações) no intervalo de datas desejado. No QuickBooks Desktop, abra Reports → Accountant & Taxes → Journal, defina as Datas desde a primeira transação até hoje e clique em Export → Excel. Salve o resultado como CSV após remover quaisquer cabeçalhos/rodapés de relatório e colunas vazias. Certifique-se de que os dados numéricos estejam limpos: inclua centavos (ex: 3.00, não 3), sem aspas extras e sem símbolos de moeda ou negativos duplos no CSV. O CSV deve ter colunas como Date, Trans #, Name, Account, Memo, Debit, Credit, Balance (ou uma única coluna de Valor, dependendo do formato do relatório).

Dica: O QuickBooks Desktop 2015+ também pode exportar transações através da caixa de diálogo Find. Use Edit → Find → Advanced, defina o intervalo de datas para cinco anos e, em seguida, exporte os resultados para CSV. Aviso: Algumas versões limitam a exportação a 32.768 linhas. Se você tiver dados muito grandes, exporte ano a ano (ou em partes menores) para evitar o truncamento e, depois, combine-os. Garanta que os intervalos de datas não se sobreponham para evitar duplicatas.

Outros Formatos (QBO/QFX/QIF): O QuickBooks Desktop pode importar transações bancárias via arquivos .QBO (Web Connect) ou .QFX/.OFX, mas para exportar do QuickBooks, estes não são típicos. Se seu objetivo é extrair apenas transações bancárias, você talvez já as tenha em QBO/OFX do seu banco. No entanto, para uma exportação completa do livro-razão, mantenha-se com IIF e CSV. O QuickBooks Desktop não pode exportar diretamente para QIF (Quicken Interchange Format) sem ferramentas de terceiros. Se você encontrar uma maneira de obter QIF, note que algumas ferramentas de contabilidade (Ledger 2.x mais antigo) podiam ler QIF, mas é melhor trabalhar com CSV em nosso processo.


1.2 QuickBooks Online – Opções de Exportação

Exportação Integrada para Excel/CSV: O QuickBooks Online (QBO) oferece uma ferramenta de Exportar Dados. Vá para Configurações ⚙ → Ferramentas → Exportar Dados. Na caixa de diálogo de exportação, use a guia Relatórios para selecionar dados (ex: Razão Geral ou Lista de Transações) e a guia Listas para listas (plano de contas, etc.), escolha Todas as datas e exporte para Excel. O QuickBooks Online fará o download de um ZIP contendo vários arquivos Excel para os relatórios e listas selecionados (por exemplo, Demonstração de Resultados, Balanço Patrimonial, Razão Geral, Clientes, Fornecedores, Plano de Contas, etc.). Você pode então converter esses arquivos Excel para CSV para processamento.

Relatório de Detalhe de Transações: Se a exportação padrão do QBO não incluir um único arquivo de Razão Geral, você pode gerar manualmente um relatório detalhado:

  1. Navegue para Relatórios e encontre Detalhe de Transações por Conta (ou Razão Geral em algumas versões do QBO).
  2. Defina o Período do relatório para o intervalo completo de cinco anos.
  3. Nas opções do relatório, defina Agrupar por = Nenhum (para listar transações individuais sem subtotais).
  4. Personalize as colunas para incluir pelo menos: Data, Tipo de Transação, Número, Nome (Beneficiário/Cliente), Memo/Descrição, Conta, Débito, Crédito (ou uma única coluna de Valor) e Saldo. Inclua qualquer classe ou local, se usado.
  5. Execute o relatório e, em seguida, Exporte para Excel.

Isso gera um razão detalhado de todas as transações. Salve-o como CSV. Cada linha representará uma divisão (lançamento) de uma transação. Mais tarde, você precisará agrupar as linhas por transação para a conversão.

Plano de Contas e Outras Listas: O QuickBooks Online pode exportar o plano de contas via Contabilidade → Plano de Contas → Ações em Lote → Exportar para Excel. Faça isso para obter os nomes e tipos de contas. Da mesma forma, exporte Clientes, Fornecedores, etc., se quiser transferir nomes para metadados.

API do QuickBooks Online (Opcional): Para uma abordagem programática, a Intuit fornece uma API REST para dados do QBO. Usuários avançados podem criar um aplicativo do QuickBooks Online (requer uma conta de desenvolvedor) e usar a API para buscar dados em JSON. Por exemplo, você poderia consultar o endpoint Account para o plano de contas e os endpoints de relatório JournalEntry ou GeneralLedger para as transações. Existem SDKs em Python como python-quickbooks que encapsulam a API. No entanto, usar a API envolve autenticação OAuth e é excessivo para uma migração única, a menos que você prefira a automação. Para a maioria dos casos, a exportação manual para CSV/Excel é mais simples e menos propensa a erros.


Etapa 2: Transformando e Limpando os Dados

Uma vez que você tenha os dados do QuickBooks em CSV (e/ou IIF), o próximo passo é convertê-los para o formato de livro-razão em texto simples do Beancount. Isso envolve analisar as exportações, mapear as contas do QuickBooks para um plano de contas do Beancount e formatar as transações na sintaxe do Beancount.

2.1 Analisando Exportações do QuickBooks com Python

Usar Python garantirá precisão e reprodutibilidade para a transformação. Descreveremos scripts para duas tarefas principais: importar o plano de contas e converter transações.

Importação e Mapeamento de Contas: É crucial configurar suas contas no Beancount antes de adicionar transações. As contas do QuickBooks têm tipos (Banco, Contas a Receber, Despesa, etc.) que mapearemos para a hierarquia do Beancount (Ativos, Passivos, Receitas, Despesas, etc.). Por exemplo, podemos usar um mapeamento como:

# Mapeia o tipo de conta do QuickBooks para a categoria raiz do Beancount
AccountTypeMap = {
'BANK': 'Ativos',
'CCARD': 'Passivos',
'AR': 'Ativos', # Contas a Receber como ativo
'AP': 'Passivos', # Contas a Pagar como passivo
'FIXASSET': 'Ativos',
'OASSET': 'Ativos', # Outro Ativo
'OCASSET': 'Ativos', # Outro Ativo Circulante
'LTLIAB': 'Passivos', # Passivo de Longo Prazo
'OCLIAB': 'Passivos', # Outro Passivo Circulante
'EQUITY': 'PatrimonioLiquido',
'INC': 'Receitas',
'EXP': 'Despesas',
'EXINC': 'Receitas', # Outras Receitas
'EXEXP': 'Despesas', # Outras Despesas
}

Usando a exportação IIF do QuickBooks Desktop ou o CSV da lista de contas do QBO, recuperamos o nome e o tipo de cada conta. Então:

  • Crie nomes de conta do Beancount: O QuickBooks às vezes usa dois pontos (:) nos nomes das contas para denotar subcontas (ex: "Ativos Circulantes:Conta Corrente"). O Beancount usa a mesma notação de dois pontos para hierarquia. Você pode frequentemente reutilizar o nome diretamente. Se os nomes das contas do QuickBooks não começarem com uma categoria, adicione a categoria mapeada. Por exemplo, uma conta do QuickBooks do tipo BANK chamada "Conta Corrente" se tornará Ativos:ContaCorrente no Beancount. Uma conta EXP (despesa) "Refeições" se torna Despesas:Refeicoes, etc.

  • Garanta nomes válidos: Remova ou substitua quaisquer caracteres que possam confundir o Beancount. O QuickBooks permite caracteres como & ou / nos nomes. É prudente remover ou substituir caracteres especiais (ex: substituir & por e, remover barras ou espaços). Além disso, garanta que todos os nomes de contas sejam únicos após a transformação – o QuickBooks pode ter permitido o mesmo nome de subconta sob pais diferentes, o que é aceitável, mas no Beancount o nome completo (com os pais) deve ser único. Se necessário, renomeie ou anexe um qualificador para distingui-los.

  • Gere as aberturas de conta: No Beancount, cada conta usada deve ser aberta com uma diretiva open. Você pode escolher uma data anterior à sua primeira transação (ex: se estiver migrando dados de 2019–2023, use 2018-12-31 ou uma data ainda anterior para todas as aberturas). O script escreverá linhas como: 2018-12-31 open Ativos:ContaCorrente USD 2018-12-31 open Despesas:Refeicoes USD para cada conta (assumindo que USD é a moeda principal). Use a moeda apropriada para cada conta (veja notas sobre múltiplas moedas abaixo).

Conversão de Transações: O principal desafio é converter a exportação de transações do QuickBooks (CSV) em lançamentos do Beancount. Cada transação do QuickBooks (fatura, conta, cheque, lançamento de diário, etc.) pode ter múltiplas divisões (linhas) que devem ser agrupadas em uma única transação do Beancount.

Usaremos o leitor de CSV do Python para iterar sobre as linhas exportadas e acumular as divisões:

import csv
from collections import defaultdict

# Lê todas as linhas do CSV do Diário exportado do QuickBooks
rows = []
with open('quickbooks_exported_journal.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for line in reader:
rows.append(line)

# Agrupa as linhas por transação (assumindo que 'Trans #' identifica as transações)
transactions = defaultdict(list)
for line in rows:
trans_id = line.get('Trans #') or line.get('Transaction ID') or line.get('Num')
transactions[trans_id].append(line)

Agora transactions é um dicionário onde cada chave é um ID/número de transação e o valor é a lista de divisões para essa transação. Em seguida, convertemos cada grupo para o formato Beancount:

def format_date(qb_date):
# Datas do QuickBooks podem ser como "12/31/2019"
m, d, y = qb_date.split('/')
return f"{y}-{int(m):02d}-{int(d):02d}"

output_lines = []
for trans_id, splits in transactions.items():
# Ordena as divisões pela ordem da linha, se necessário (geralmente já vêm em ordem)
splits = sorted(splits, key=lambda x: x.get('Line') or 0)
first = splits[0]
date = format_date(first['Date'])
payee = first.get('Name', "").strip()
memo = first.get('Memo', "").strip()
# Cabeçalho da transação
output_lines.append(f"{date} * \"{payee}\" \"{memo}\"")
if first.get('Num'): # inclui o número de referência se disponível
output_lines.append(f" number: \"{first['Num']}\"")
# Itera sobre cada divisão/lançamento
for split in splits:
acct_name = split['Account'].strip()
# Mapeia o nome da conta do QuickBooks para a conta do Beancount (usando o mapeamento anterior)
beancount_acct = account_map.get(acct_name, acct_name)
# Determina o valor com sinal:
amount = split.get('Amount') or ""
debit = split.get('Debit') or ""
credit = split.get('Credit') or ""
if amount:
# Algumas exportações têm uma única coluna de Valor (negativo para créditos)
amt_str = amount
else:
# Se houver colunas separadas de Débito/Crédito
amt_str = debit if debit else f"-{credit}"
# Remove quaisquer vírgulas nos números por segurança
amt_str = amt_str.replace(",", "")
# Anexa a moeda
currency = split.get('Currency') or "USD"
amt_str = f"{amt_str} {currency}"
# Memo/descrição para a divisão
line_memo = split.get('Memo', "").strip()
comment = f" ; {line_memo}" if line_memo else ""
output_lines.append(f" {beancount_acct:<40} {amt_str}{comment}")
# Fim da transação – linha em branco
output_lines.append("")

Essa lógica de script faz o seguinte:

  • Formata a data para AAAA-MM-DD para o Beancount.

  • Usa o beneficiário (Name) e o memo para a narração da transação. Por exemplo: 2020-05-01 * "ACME Corp" "Pagamento de fatura" (Se não houver beneficiário, você pode usar o Tipo de transação do QuickBooks ou deixar as aspas do beneficiário vazias).

  • Adiciona metadados de number se houver um número de referência (nº do cheque, nº da fatura, etc.).

  • Itera sobre cada linha de divisão:

    • Mapeia o nome da conta do QuickBooks para a conta do Beancount usando um dicionário account_map (preenchido na etapa do plano de contas).
    • Determina o valor. Dependendo da sua exportação, você pode ter uma única coluna de Valor (com valores positivos/negativos) ou colunas separadas de Débito e Crédito. O código acima lida com ambos os casos. Ele garante que os créditos sejam representados como valores negativos para o Beancount (já que no Beancount, um único número com sinal é usado por lançamento).
    • Anexa a moeda (assumindo USD, a menos que uma coluna de moeda diferente esteja presente).
    • Escreve a linha de lançamento do Beancount com a conta, o valor e um comentário com o memo da linha. Por exemplo: Ativos:ContaCorrente 500.00 USD ; Depósito Receitas:Vendas -500.00 USD ; Depósito Isso reflete um depósito de $500 (de Receitas para Conta Corrente).
  • Após listar todas as divisões, uma linha em branco separa a transação.

Tratamento de múltiplas moedas: Se seus dados do QuickBooks envolvem múltiplas moedas, inclua o código da moeda em cada lançamento (como mostrado acima). Garanta que as contas em moedas estrangeiras sejam abertas com essa moeda. Por exemplo, se você tem uma conta bancária em EUR, você geraria open Ativos:Banco:ContaCorrente EUR e as transações nessa conta usarão EUR. O Beancount suporta livros-razão com múltiplas moedas e rastreará conversões implícitas, mas você pode precisar adicionar entradas de preço para taxas de câmbio se quiser a conversão para uma moeda base nos relatórios. Também é recomendado declarar sua moeda operacional principal no topo do arquivo Beancount (ex: option "operating_currency" "USD").

Executando a conversão: Salve o script Python (por exemplo, como qb_para_beancount.py) e execute-o em seus arquivos exportados. Ele deve produzir um arquivo .beancount contendo todas as contas e transações.


2.2 Lidando com Casos Especiais e Limpeza de Dados

Durante a transformação, esteja atento a estes problemas comuns e como resolvê-los:

  • Incompatibilidades de Nomes de Contas: O QuickBooks pode ter nomes de contas que entram em conflito com os nomes hierárquicos do Beancount. Por exemplo, o QuickBooks pode ter duas contas-pai diferentes, cada uma com uma subconta chamada "Seguro". No Beancount, Despesas:Seguro deve ser único. Resolva isso renomeando uma delas (ex: "Seguro-Veiculo" vs "Seguro-Saude") antes da exportação ou mapeie-as para contas Beancount únicas em seu script. Convenções de nomenclatura consistentes (sem caracteres especiais e uso de hierarquia) economizarão dores de cabeça. Use a abordagem de arquivo de remapeamento, se necessário: mantenha um CSV ou dicionário de nome antigo → novo nome Beancount e aplique-o durante a conversão (nosso código de exemplo usa um account_map e poderia carregar substituições de um arquivo).

  • Datas e Formatos: Garanta que todas as datas estejam formatadas de forma consistente. O script acima normaliza M/D/A para o formato ISO. Além disso, cuidado com problemas de ano fiscal vs ano calendário se seu período de cinco anos cruzar o final de um ano. O Beancount não se importa com limites de ano fiscal, mas você pode querer dividir os arquivos por ano mais tarde por conveniência.

  • Precisão Numérica: O QuickBooks lida com moeda com centavos, então trabalhar com centavos geralmente está bom. Todos os valores devem, idealmente, ter duas casas decimais no CSV. Se algum valor se transformou em inteiro (sem decimal) ou tem vírgulas/parênteses (para negativos), limpe-os no script (remova vírgulas, converta (100.00) para -100.00, etc.). A exportação CSV, se feita corretamente (conforme as instruções), já deve evitar esses problemas de formatação.

  • Valores Negativos e Sinais: Relatórios do QuickBooks às vezes mostram negativos como -100.00 ou como (100.00) ou até mesmo --100.00 em certas exportações do Excel. A etapa de limpeza deve lidar com isso. Garanta que os débitos e créditos de cada transação se equilibrem para zero. O Beancount aplicará isso (se não estiver balanceado, ele lançará um erro na importação).

  • Duplicatas de Transações: Se você teve que exportar transações em lotes (ex: ano a ano ou conta a conta), tenha cuidado para mesclá-las sem sobreposição. Verifique se a primeira transação de um ano não é também a última do lote anterior, etc. É fácil duplicar acidentalmente algumas transações nas fronteiras. Se suspeitar de duplicatas, você pode ordenar as entradas finais do Beancount por data e procurar por entradas idênticas, ou usar as tags de transação únicas do Beancount para pegá-las. Uma estratégia é incluir os números de transação do QuickBooks como metadados (ex: usar o Trans # ou número da fatura como uma tag txn ou metadados quickbooks_id) e então garantir que não existam duplicatas desses IDs.

  • Divisões não Balanceadas / Contas de Suspensão: O QuickBooks pode ter casos estranhos como uma transação com um desequilíbrio que o QuickBooks ajustou automaticamente para uma conta de “Patrimônio de Saldo Inicial” ou “Lucros Retidos”. Por exemplo, ao configurar saldos iniciais de contas, o QuickBooks frequentemente lança diferenças para uma conta de Patrimônio. Isso aparecerá nas transações exportadas. O Beancount exigirá um balanceamento explícito. Você pode precisar introduzir uma conta de Patrimônio para saldos iniciais (comumente PatrimonioLiquido:Saldos-Iniciais) para espelhar o QuickBooks. É uma boa prática ter um lançamento de saldo inicial no primeiro dia do seu livro-razão que estabelece os saldos iniciais de todas as contas (veja a Etapa 5).

  • Casos Especiais de Múltiplas Moedas: Se estiver usando múltiplas moedas, a exportação do QuickBooks pode listar todos os valores na moeda local ou em sua moeda nativa. Idealmente, obtenha os dados na moeda nativa para cada conta (os relatórios do QuickBooks Online geralmente fazem isso). No Beancount, cada lançamento carrega uma moeda. Se o QuickBooks forneceu taxas de câmbio ou uma conversão para a moeda local, você pode ignorá-las e confiar nas entradas de preço do Beancount. Se o QuickBooks não exportou taxas de câmbio, você pode querer adicionar manualmente registros de preço (ex: usando a diretiva price do Beancount) para datas-chave para corresponder à avaliação. No entanto, para a integridade básica do livro-razão, é suficiente que as transações se equilibrem em suas moedas originais – ganhos/perdas não realizados não precisam ser registrados explicitamente, a menos que você queira os mesmos relatórios.

  • Contas a Receber / Contas a Pagar: O QuickBooks rastreia detalhes de faturas e contas (datas de vencimento, status de pagamento, etc.) que não serão totalmente transferidos em um livro-razão simples. Você obterá as transações de Contas a Receber e a Pagar (faturas aumentando C/R, pagamentos diminuindo C/R, etc.), mas não os documentos das faturas ou os saldos de clientes por fatura. Como resultado, após a migração, você deve verificar se os saldos de suas contas de C/R e C/P no Beancount são iguais aos saldos em aberto de clientes/fornecedores no QuickBooks. Se precisar rastrear faturas, pode usar os metadados do Beancount (ex: incluir uma tag ou link fatura). Os números das faturas do QuickBooks devem ter vindo nos campos Num ou Memo – nosso script preserva o Num como number: "..." nos metadados da transação.

  • Contas Inativas ou Fechadas: A exportação IIF pode incluir contas inativas (se você optou por incluí-las). Não há problema em importá-las (elas apenas não terão transações e um saldo zero se estiverem verdadeiramente inativas). Você pode marcá-las como fechadas no Beancount após a data da última transação com uma diretiva close. Isso mantém seu livro-razão organizado. Por exemplo: 2023-12-31 close Despesas:ContaAntiga ; fechada após a migração Isso é opcional e principalmente para fins de limpeza.

Ao limpar e mapear cuidadosamente os dados como acima, você terá um arquivo de livro-razão Beancount que espelha estruturalmente seus dados do QuickBooks. O próximo passo é verificar se ele também espelha numericamente o QuickBooks.


Etapa 3: Validação e Reconciliação dos Dados

A validação é uma etapa crítica em uma migração de dados contábeis. Precisamos garantir que o livro-razão do Beancount corresponda aos livros do QuickBooks centavo por centavo. Várias estratégias e ferramentas podem ser usadas:

3.1 Reconciliação do Balancete de Verificação

Um relatório de balancete de verificação lista os saldos finais de todas as contas (com débitos e créditos ou positivo/negativo indicado) e deve totalizar zero. Gerar um balancete de verificação em ambos os sistemas para a mesma data é a maneira mais rápida de confirmar a precisão geral.

  • No QuickBooks: Gere um relatório de Balancete de Verificação para o último dia do ano final (ex: 31 de dezembro de 2023). Este relatório mostra o saldo de cada conta. Exporte-o ou anote os números principais.

  • No Beancount: Use os relatórios do Beancount para gerar um balancete de verificação. Um método fácil é via linha de comando:

    bean-report migrado.beancount balances

    O relatório balances é um balancete de verificação que lista todas as contas e seus saldos. Você também pode abrir o arquivo no Fava (a interface web do Beancount) e olhar a seção Balances ou Balance Sheet. O saldo de cada conta no Beancount deve corresponder ao balancete de verificação do QuickBooks. Por exemplo, se o QuickBooks mostra *Contas a Receber = 5,000,enta~oacontaAtivos:ContasAReceberdoBeancountdevetotalizar5,000*, então a conta Ativos:ContasAReceber do Beancount deve totalizar 5,000 (débito). Se *Receita de Vendas = 200,000,acontaReceitas:VendasnoBeancountdevemostrar200,000*, a conta Receitas:Vendas no Beancount deve mostrar 200,000 (crédito, que pode ser exibido como -200,000 se usar um balancete que apresenta créditos como negativos).

Se houver discrepâncias, identifique-as:

  • Verifique se uma conta inteira está faltando ou a mais (esquecemos uma conta ou incluímos uma que já estava fechada antes do período de migração?).
  • Se um saldo estiver incorreto, aprofunde a análise: o QuickBooks pode gerar um Relatório Rápido de Conta ou detalhe do razão para essa conta, e você pode comparar com o registro do Beancount para essa conta (bean-report migrado.beancount register -a NomeDaConta). Às vezes, as diferenças vêm de uma transação ausente ou duplicada.

Verifique também se a soma de todas as contas é zero no balancete de verificação do Beancount (ele imprime um total que deve ser zero ou muito próximo de zero). O Beancount impõe a partida dobrada, então se você tiver algum desequilíbrio diferente de zero, significa que ativos menos passivos-patrimônio líquido não totalizaram zero, indicando um problema (o que o QuickBooks normalmente também não permitiria, mas poderia acontecer se alguns dados fossem perdidos).


3.2 Comparações de Saldo de Contas

Além do balancete de verificação, você pode comparar demonstrações financeiras específicas:

  • Balanço Patrimonial: Gere um Balanço Patrimonial do QuickBooks para a data final e um balanço patrimonial do Beancount (bean-report migrado.beancount balsheet). Isso é semelhante ao balancete de verificação, mas organizado por Ativos, Passivos e Patrimônio Líquido. Os números devem se alinhar por categoria. Para uma verificação mais granular, compare os totais das contas principais: caixa, contas a receber, ativos fixos, contas a pagar, patrimônio líquido, etc.

  • Demonstração de Resultados (DRE): Gere uma DRE para o período de cinco anos (ou ano a ano) no QuickBooks e no Beancount (bean-report migrado.beancount income para uma DRE do período completo). O lucro líquido do Beancount deve ser igual ao do QuickBooks para cada período. Se você migrou todos os cinco anos, o lucro líquido acumulado deve corresponder. Você também pode comparar os totais de receitas e despesas individuais para garantir que nenhuma categoria foi omitida ou duplicada.

  • Amostragem Aleatória de Transações: Escolha algumas transações aleatórias (especialmente de cada ano e de cada conta principal) e verifique se elas foram migradas corretamente. Por exemplo, encontre uma fatura de 3 anos atrás no QuickBooks e depois procure por seu valor ou memo no arquivo Beancount (como todas as transações são texto, você pode abrir o arquivo .beancount em um editor de texto ou usar ferramentas de busca). Verifique se a data, valores e contas correspondem. Isso ajuda a capturar quaisquer problemas de formatação de data ou contas mal mapeadas.


3.3 Verificações de Integridade Automatizadas

Aproveite as próprias ferramentas de validação do Beancount:

  • bean-check: Execute bean-check migrado.beancount. Isso analisará o arquivo e relatará quaisquer erros de sintaxe ou de balanceamento. Se o script esqueceu algo como uma conta não aberta ou uma transação não balanceada, bean-check irá sinalizá-lo. Uma passagem limpa (sem saída) significa que o arquivo é, pelo menos, internamente consistente.

  • Asserções de Saldo: Você pode adicionar asserções de saldo explícitas no livro-razão para contas-chave como uma verificação extra. Por exemplo, se você sabe o saldo da conta bancária em uma determinada data, adicione uma linha: 2023-12-31 balance Ativos:Banco:ContaCorrente 10000.00 USD Então bean-check garantirá que, no livro-razão, a partir daquela data, o saldo seja de fato $10.000. Isso é opcional, mas pode ser útil para contas de alta importância. Você poderia pegar os saldos finais do QuickBooks (ex: final de cada ano) e declará-los no arquivo Beancount. Se alguma asserção falhar, o Beancount relatará uma diferença.

  • Acompanhamento do Balancete de Verificação: Se preferir, você pode fazer uma verificação período a período. Para cada ano, compare a variação líquida. Por exemplo, o lucro líquido no QuickBooks 2020 vs Beancount 2020, etc., para garantir que cada ano fechou corretamente no patrimônio líquido (o QuickBooks automaticamente transfere o lucro líquido para Lucros Retidos a cada novo ano; no Beancount você apenas verá o patrimônio líquido acumulado). Se vir diferenças, isso pode indicar um problema nos dados de um ano específico.

  • Contagens e Duplicatas de Transações: Conte o número de transações no QuickBooks vs Beancount. O QuickBooks não mostra uma contagem direta facilmente, mas você pode estimar contando linhas no CSV (cada cabeçalho de transação vs divisões). No Beancount, uma maneira rápida é contar as ocorrências de txn ou * " no arquivo. Elas devem ser iguais ou ligeiramente acima do QuickBooks (se você adicionou transações de saldo inicial ou ajustes). Uma incompatibilidade significativa significa que algo pode ter sido omitido ou duplicado. Nosso uso de IDs únicos nos metadados pode ajudar: se suspeitar de duplicatas, procure no arquivo Beancount pelo mesmo número de cheque ou fatura aparecendo duas vezes quando não deveria.

  • Status de Reconciliação: Incluímos um metadado rec: "y" ou "n" com base no status de compensado do QuickBooks em nosso script (como rec no exemplo). Isso não é um recurso padrão do Beancount (o Beancount não rastreia compensado/pendente da mesma forma que o Ledger), mas pode ser um metadado útil. Você pode verificar se todas as transações que foram reconciliadas no QuickBooks estão presentes. Em última análise, reconciliar as contas bancárias no Beancount novamente (usando seus extratos) pode ser a prova final de que nada está faltando.

Ao realizar essas validações, você constrói confiança de que a migração preservou os dados. Leve o tempo que precisar nesta etapa – é mais fácil corrigir anomalias agora do que meses depois, quando os livros podem ser utilizados para decisões. Problemas comuns se a validação falhar: um saldo inicial de conta faltando, uma transação datada fora do intervalo ou uma inversão de sinal em um lançamento. Todos são corrigíveis uma vez identificados.


Etapa 4: Consolidando no Livro-Razão Beancount

Após limpar e validar, é hora de formalizar os dados em sua estrutura de livro-razão Beancount. “Consolidar” aqui significa tanto finalizar os arquivos do livro-razão quanto, potencialmente, enviá-los para um sistema de controle de versão para auditoria.

4.1 Organizando Arquivos de Livro-Razão e Configuração

Decida como estruturar os arquivos do livro-razão Beancount. Para cinco anos de dados, você pode manter tudo em um único arquivo ou dividir por ano ou categoria. Uma estrutura comum e clara é:

  • Arquivo Principal do Livro-Razão: ex., livro_razao.beancount – Este é o ponto de entrada que pode usar include para outros arquivos. Pode conter opções globais e, em seguida, incluir arquivos anuais.
  • Arquivo de Contas: Defina o plano de contas e os saldos de abertura. Por exemplo, contas.beancount com todas as diretivas open (conforme gerado pelo script). Você também pode listar commodities (moedas) aqui.
  • Arquivos de Transações: Um por ano, ex., 2019.beancount, 2020.beancount, etc., contendo as transações daquele ano. Isso mantém cada arquivo com um tamanho gerenciável e permite que você se concentre em um ano, se necessário. Alternativamente, você pode dividir por entidade ou conta, mas a divisão baseada em tempo é direta para dados financeiros.

Exemplo de arquivo principal:

option "title" "Meu Livro-Razão Empresarial"
option "operating_currency" "USD"

include "contas.beancount"
include "2019.beancount"
include "2020.beancount"
...
include "2023.beancount"

Dessa forma, todos os dados são agregados quando você gera relatórios, mas você mantém a ordem.

O Beancount não exige múltiplos arquivos – você poderia ter um único arquivo grande – mas a estrutura acima melhora a clareza e o controle de versão. De acordo com as melhores práticas do Beancount, é bom usar cabeçalhos de seção claros e agrupar entradas relacionadas de forma lógica.


4.2 Definindo Saldos Iniciais e Patrimônio Líquido

Se sua migração não for de um início absoluto do zero, você precisará lidar com os saldos iniciais. Dois cenários:

  • Livros começando do zero: Se o período de cinco anos começa na criação da empresa (ex: você começou a usar o QuickBooks em Jan de 2019 com todas as contas zeradas, exceto pelo patrimônio inicial), então você pode não precisar de uma transação de saldo inicial separada. As primeiras transações em 2019 (como o financiamento inicial para uma conta bancária) estabelecerão naturalmente os saldos iniciais. Apenas garanta que qualquer capital inicial ou lucros retidos anteriores sejam contabilizados por meio de transações de patrimônio.

  • Livros em andamento (histórico parcial): Se você começou a usar o QuickBooks antes e 2019 é um ponto intermediário, então, em 1 de janeiro de 2019, cada conta tinha um saldo transportado. O QuickBooks teria esses saldos como saldos iniciais ou lucros retidos. No Beancount, é típico criar um lançamento de Saldos Iniciais no dia anterior à sua data de início:

    • Use uma conta de patrimônio chamada PatrimonioLiquido:Saldos-Iniciais (ou similar) para compensar a soma de todos os valores de abertura.
    • Exemplo: se em 31/12/2018, o Caixa era 10.000,ContasaReceber10.000, Contas a Receber 5.000 e Contas a Pagar 3.000(creˊdito),voce^escreveriaumatransac\ca~o:20181231"SaldosIniciais"Ativos:Caixa10000.00USDAtivos:ContasAReceber5000.00USDPassivos:ContasAPagar3000.00USDPatrimonioLiquido:SaldosIniciais12000.00USDIssodeixaacontaSaldosIniciaiscomasomanegativa(3.000 (crédito), você escreveria uma transação: `2018-12-31 * "Saldos Iniciais"` ` Ativos:Caixa 10000.00 USD ` ` Ativos:ContasAReceber 5000.00 USD ` ` Passivos:ContasAPagar -3000.00 USD ` ` PatrimonioLiquido:Saldos-Iniciais -12000.00 USD ` Isso deixa a conta Saldos-Iniciais com a soma negativa (–12k), o que equilibra o lançamento. Agora todas as contas de ativos/passivos começam 2019 com os saldos corretos. Isso deve espelhar quaisquer saldos de “Lucros Retidos” ou saldos transportados do QuickBooks.
    • Alternativamente, use as diretivas pad e balance do Beancount: Para cada conta, você pode usar pad a partir de PatrimonioLiquido:Saldos-Iniciais e afirmar o saldo. Esta é uma maneira mais automatizada. Por exemplo: 2018-12-31 pad Ativos:Caixa PatrimonioLiquido:Saldos-Iniciais 2018-12-31 balance Ativos:Caixa 10000.00 USD Isso diz ao Beancount para inserir qualquer lançamento necessário (para Saldos-Iniciais) para que o Caixa seja igual a 10000 USD naquela data. Faça isso para cada conta. O resultado é semelhante, mas escrever uma transação explícita como no primeiro método também é direto.
  • Lucros Retidos: O QuickBooks não exporta explicitamente uma transação de “Lucros Retidos” – ele apenas a calcula. Após a migração, você pode notar que PatrimonioLiquido:LucrosRetidos está zerado se você não o criou. No Beancount, lucros retidos são apenas o lucro de anos anteriores. Você pode optar por criar uma conta de Lucros Retidos e transferir lucros anteriores para ela no primeiro dia de cada novo ano, ou simplesmente deixar o patrimônio ser a soma de todas as receitas/despesas (que aparece na seção de Patrimônio nos relatórios). Para transparência, alguns usuários registram lançamentos de encerramento anualmente. Isso é opcional e principalmente para apresentação. Como migramos todas as transações, o lucro de cada ano será naturalmente acumulado se você gerar um relatório por ano.

  • Verificações Comparativas: Após definir os saldos iniciais, gere um balanço patrimonial na data de início para garantir que tudo está correto (ele deve mostrar esses saldos iniciais contra o Patrimônio Inicial se anulando).


4.3 Finalização e Controle de Versão

Agora que os dados estão no formato Beancount e estruturados, é prudente enviar os arquivos para um repositório de controle de versão (ex: git). Cada alteração no livro-razão pode ser rastreada, e você tem uma trilha de auditoria de todas as modificações. Esta é uma grande vantagem da contabilidade em texto simples. Por exemplo, no QuickBooks as alterações podem não ser facilmente comparáveis, mas no Beancount, você pode ver as diferenças linha por linha. Como alguns usuários observam, com o Beancount você obtém transparência e a capacidade de reverter alterações se necessário – cada lançamento pode ser vinculado a um histórico de alterações.

Considere marcar o commit desta migração inicial como v1.0 ou similar, para que você saiba que representa o estado dos livros conforme importado do QuickBooks. Daqui para frente, você registrará novas transações diretamente no Beancount (ou importará de feeds bancários, etc.), e poderá usar práticas normais de desenvolvimento de software (fazer commits mensais ou diários, usar branches para experimentos, etc.).

Configurando Fava ou outras ferramentas: Fava é uma interface web para o Beancount que facilita a visualização de relatórios. Após o commit, execute fava livro_razao.beancount para navegar pelas demonstrações financeiras e compará-las com seus relatórios do QuickBooks uma última vez. Você pode detectar pequenas diferenças mais facilmente em uma interface de usuário (por exemplo, uma conta que deveria ser zero, mas mostra um pequeno saldo, indica um lançamento de fechamento ausente ou uma transação perdida).

Convenções de nomenclatura e consistência: Você tem controle total agora, então garanta a consistência:

  • Todas as contas devem ter nomes claros, começando com nomes de categorias em maiúsculas (Ativos, Passivos, etc.). Se algum parecer estranho (ex: Ativos:ativos:AlgumaConta devido a uma inconsistência de caixa do QuickBooks), renomeie-os no arquivo de contas e atualize as transações (uma busca/substituição rápida no arquivo pode fazer isso, ou use o bean-format do Beancount ou o multicursor do editor).
  • Os símbolos de commodity (códigos de moeda) devem ser consistentes. Para USD, use USD em todos os lugares (não $ ou US$). Para outros, use códigos padrão (EUR, BRL, etc.). Essa consistência é importante para as buscas de preços e relatórios do Beancount.
  • Remova quaisquer contas temporárias ou fictícias que possam ter sido criadas (por exemplo, se você usou Despesas:Diversas para contas desconhecidas no script como um paliativo, tente eliminá-las mapeando corretamente todas as contas).

Fechando o QuickBooks: Neste ponto, você deve ter livros paralelos no Beancount que correspondem ao QuickBooks. Alguns optam por executar ambos os sistemas em paralelo por um curto período para garantir que nada foi perdido. Mas se a validação for sólida, você pode “fechar” os livros do QuickBooks:

  • Se este for um ambiente corporativo, considere exportar todos os documentos de origem do QuickBooks (faturas, contas, recibos) para seus registros, já que eles não existirão no Beancount, a menos que você os anexe manualmente.
  • Mantenha um backup dos dados do QuickBooks (tanto o arquivo da empresa quanto os arquivos de exportação).
  • Daqui para frente, mantenha o livro-razão Beancount como o principal sistema de registro.

Ao consolidar os dados no livro-razão Beancount, você completou o pipeline de migração. O passo final é realizar uma auditoria e demonstrar a consistência das demonstrações financeiras, para satisfazer a si mesmo (e a quaisquer partes interessadas ou auditores) de que a migração foi bem-sucedida.


Etapa 5: Auditoria Pós-Migração e Exemplos

Para ilustrar o sucesso da migração, prepare uma comparação antes e depois das demonstrações financeiras e, possivelmente, uma diferença das transações. Isso fornece evidências de que os livros são consistentes.

5.1 Verificando as Demonstrações Financeiras

Produza os principais relatórios financeiros tanto do QuickBooks quanto do Beancount para as mesmas datas e compare:

  • Balanço Patrimonial em 31 de dez de 2023: Compare os totais de Ativos, Passivos e Patrimônio Líquido linha por linha. Eles devem corresponder. Por exemplo, se o QuickBooks mostrou Total de Ativos = 150.000eTotaldePassivos+Patrimo^nioLıˊquido=150.000** e **Total de Passivos + Patrimônio Líquido = 150.000, o balanço patrimonial do Beancount deve mostrar os mesmos totais. Se você estruturou as contas de forma um pouco diferente (digamos que você fundiu algumas subcontas), ajuste para isso na comparação ou detalhe para o próximo nível para garantir que as somas sejam iguais.

  • Demonstração de Resultados 2019–2023: Garanta que a Receita total, as Despesas totais e o Lucro Líquido de cada ano (ou de todo o período) sejam idênticos. Pequenas diferenças podem surgir se o QuickBooks fez algum arredondamento nos relatórios, mas as transações geralmente carregam os centavos exatamente, então o lucro líquido deve ser exato. Se o lucro de algum ano diferir, aprofunde-se nos dados desse ano – muitas vezes é um indicador de um lançamento ausente ou duplicado naquele período.

  • Diferenças no Balancete de Verificação: Se possível, crie uma planilha onde você lista cada conta e o saldo do QuickBooks vs. Beancount. Como esperamos que eles correspondam, esta pode ser uma coluna de diferença toda zerada. Isso é essencialmente a verificação cruzada do balancete que discutimos, mas escrevê-la ajuda a documentá-la.


5.2 Exemplo de Comparação (Antes vs. Depois)

Abaixo está um trecho de exemplo demonstrando a consistência dos dados. Digamos que nosso balancete de verificação do QuickBooks para 31 de dezembro de 2023 fosse:

ContaSaldo no QuickBooks (31 de dez de 2023)
Ativos
  Ativos:Banco:ContaCorrente$12.500,00 (débito)
  Ativos:ContasAReceber$3.200,00 (débito)
Passivos
  Passivos:CartaoDeCredito$-1.200,00 (crédito)
  Passivos:EmprestimosAPagar$-5.000,00 (crédito)
Patrimônio Líquido
  PatrimonioLiquido:Saldos-Iniciais$-7.500,00 (crédito)
  PatrimonioLiquido:LucrosRetidos$-2.000,00 (crédito)
  PatrimonioLiquido:LucroDoAno$0,00

No Beancount, após importar e lançar todas as transações até 2023, um bean-report balances (balancete de verificação) resulta em:

ContaSaldo no Beancount (31 de dez de 2023)
Ativos
  Ativos:Banco:ContaCorrente12.500,00 USD (débito)
  Ativos:ContasAReceber3.200,00 USD (débito)
Passivos
  Passivos:CartaoDeCredito-1.200,00 USD (crédito)
  Passivos:EmprestimosAPagar-5.000,00 USD (crédito)
Patrimônio Líquido
  PatrimonioLiquido:Saldos-Iniciais-7.500,00 USD (crédito)
  PatrimonioLiquido:LucrosRetidos-2.000,00 USD (crédito)
  PatrimonioLiquido:Lucro(2019-23)0,00 USD

(Nota: As seções de Patrimônio Líquido podem ser estruturadas de forma diferente; o principal é que os totais se alinhem. Aqui, "Lucro (2019-2023)" no Beancount desempenha o papel do lucro do ano corrente/lucros retidos combinados, mostrando zero porque o lucro foi encerrado em Lucros Retidos.)

Como mostrado, cada conta corresponde ao centavo. A soma dos débitos é igual à soma dos créditos em ambos os lados.

Além disso, se executarmos uma Demonstração de Resultados para 2023:

  • QuickBooks: Receita 50.000,Despesas50.000, Despesas 48.000, Lucro Líquido $2.000.
  • Beancount: Receita 50.000,Despesas50.000, Despesas 48.000, Lucro Líquido $2.000 (que foi então encerrado em Lucros Retidos ou aparece sob Patrimônio no balanço de fim de ano).

Você pode criar uma comparação de transações se necessário, mas como os dados do QuickBooks não estão em formato de livro-razão, é mais eficaz confiar nos relatórios. Pode-se ordenar tanto o CSV do QuickBooks quanto as transações do Beancount por data e comparar campos-chave como uma verificação final (isso pode ser feito no Excel ou com um script). No entanto, dado que confiamos em nossa validação anterior, a verificação das demonstrações financeiras geralmente é suficiente.


5.3 Dicas de Auditoria

  • Se um auditor ou parte interessada precisar de garantias, apresente as demonstrações financeiras antes e depois lado a lado. A transparência do Beancount pode, na verdade, simplificar as auditorias, porque você pode rastrear cada número de uma demonstração de volta à entrada de origem rapidamente (especialmente usando a funcionalidade de detalhamento do Fava).
  • Mantenha o backup do QuickBooks e os CSVs exportados como parte de sua trilha de auditoria. Documente quaisquer ajustes feitos durante a migração (por exemplo, “Renomeada a conta X para Y por consistência” ou “Dividida a transação Z em dois lançamentos por clareza”, se você fez tais alterações).
  • Daqui para frente, implemente verificações regulares no Beancount. Por exemplo, a reconciliação mensal de contas bancárias e uma asserção de seu saldo final ajudam a detectar quaisquer problemas de dados ou erros de entrada. A migração fornece uma boa base; manter a disciplina no novo sistema garantirá a precisão contínua.

Finalmente, comemore a conclusão da migração: você transferiu com sucesso cinco anos de dados contábeis do QuickBooks para o Beancount. Os dados agora estão em um formato de texto leve, com controle de versão e integridade total de partida dobrada. Você exportou os dados, transformou-os com scripts Python, validou a integridade por meio de balancetes e relatórios, e os consolidou em um livro-razão Beancount bem organizado. Este processo abrangente garante que o livro-razão Beancount seja uma réplica precisa e fiel de seus livros do QuickBooks ao longo do período de cinco anos, preparando você para uma contabilidade simplificada daqui para frente.

Apresentando o Suporte a Múltiplos Arquivos no Beancount

· 2 min de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Muitos de nossos clientes têm nos perguntado desde fevereiro como adicionar múltiplos arquivos a um único livro-razão. Eles precisam da estrutura de arquivos para arquivar ou categorizar transações. Então, finalmente, após alguns meses de trabalho, temos o prazer de anunciar que o recurso foi lançado gratuitamente.

Veja como usá-lo:

Arquivo > criar um novo arquivo

2021-09-24-multi-file-one-ledger

Vá para a aba do editor de arquivos na barra lateral de navegação esquerda. Em seguida, siga o menu suspenso "Arquivo" e clique em "Criar um novo arquivo".

Arquivo > criar um novo arquivo

Nomeie seu novo arquivo

Dê ao seu arquivo um nome de arquivo válido e salve-o. Todos os nomes de arquivos devem terminar com ".bean".

Nomeie seu novo arquivo

Inclua o arquivo

Aqui está um passo crucial, você deve incluir o arquivo recém-criado em main.bean.

Por exemplo, se você adicionou stock.bean, então especifique include "stock.bean" em main.bean.

Inclua o arquivo

Atualize e navegue até o arquivo

Atualize a página, e você verá o arquivo aparecer no menu suspenso "Arquivo".

Atualize e vá para o arquivo

Renomeie ou exclua o arquivo

Ao navegar até o arquivo, você pode renomeá-lo ou excluí-lo no menu suspenso "Editar".

Renomear ou excluir o arquivo

Tendo problemas?

Faça perguntas em https://t.me/beancount.

Atualização do Fava para a Versão 1.19: Principais Mudanças e Melhorias

· Um minuto de leitura
Mike Thrift
Mike Thrift
Marketing Manager

Atualizamos o software de código aberto Fava, licenciado sob a MIT, para a versão 1.19. Aqui estão as mudanças desde nossa última atualização:

  • v1.19 (2021-05-18)
    • migração das opções conversion e interval para a opção default-page
    • adição da opção invert-income-liabilities-equity
    • atualização para o CodeMirror 6
    • adiciona uma tradução para o búlgaro
    • outras pequenas melhorias e correções de bugs
  • v1.18 (2021-01-16)
    • algumas pequenas melhorias e várias correções de bugs.

Sentindo-se animado? Experimente agora em https://beancount.io/ledger/

2021-07-16-upgrade-fava-to-1-19

Tem perguntas? Estaremos lá para você em https://t.me/beancount :)