Pular para o conteúdo principal

Modelar uma empresa de capital aberto no Beancount

Transforme o balanço patrimonial e a demonstração de resultados de uma empresa de capital aberto em um razão Beancount balanceado usando as convenções do Open Ledger, com um trimestre trabalhado da PepsiCo e um modelo inicial.

Transforme o balanço patrimonial e a demonstração de resultados de um arquivo em um razão Beancount balanceado com as mesmas convenções usadas por todas as empresas do Open Ledger.

Este guia percorre um trimestre real da PepsiCo de ponta a ponta. Os números correspondem ao comunicado de resultados do 2º trimestre de 2026 da PepsiCo. Todos os valores permanecem em milhões de dólares americanos (MUSD).

O que você obtém

Você termina com um razão que afirma o balanço patrimonial do final do período e registra a demonstração de resultados como uma única transação de soma zero. bea check passa. Os relatórios de demonstração de resultados e balanço patrimonial correspondem aos totais publicados no arquivo. O mesmo padrão alimenta todas as empresas no Open Ledger e todos os posts sob a tag open-ledger.

Escolha a unidade e o ano fiscal

Defina operating_currency como uma unidade de milhões que corresponda ao arquivo. Use MUSD para relatórios em dólares americanos. Use MEUR, MJPY ou outra forma M<CCY> quando o arquivo reportar nessa moeda.

Um MUSD significa USD 1.000.000. Um saldo de 25998 MUSD significa cerca de $26,0 bilhões em dinheiro.

Coloque cada período fiscal em seu próprio arquivo sob um diretório de ano. Nomeie arquivos anuais como FY2025/FY2025.bean. Nomeie arquivos trimestrais como FY2026/FY2026Q2.bean. Inclua-os de main.bean do mais antigo para o mais recente.

Abra o plano de contas

main.bean contém opções, aberturas de contas e includes. Não contém saldos nem lançamentos de receita.

Abra todas as contas em 1970-01-01 em MUSD. Mantenha os nomes principais idênticos entre empresas para que os leitores possam comparar um razão com outro.

option "title" "PepsiCo, Inc. Financial Statements FY2021-FY2026Q2"
option "operating_currency" "MUSD"
 
; Currency convention:
;   MUSD = Millions of USD (custom unit for readability)
;   1 MUSD = USD 1,000,000
;   Example: "1000 MUSD" means USD 1,000,000,000
;   All figures sourced from PepsiCo, Inc. annual reports / filings.
;   Fiscal years end Dec 31 (52/53-week year; Dec 31 shown).
 
; ── ASSETS ──────────────────────────────────────────────────────────────────
1970-01-01 open Assets:Current:Cash                        MUSD
1970-01-01 open Assets:Current:ShortTermInvestments        MUSD
1970-01-01 open Assets:Current:AccountsReceivable          MUSD
1970-01-01 open Assets:Current:Other                       MUSD
1970-01-01 open Assets:NonCurrent:PropertyPlantEquipment   MUSD
1970-01-01 open Assets:NonCurrent:Goodwill                 MUSD
1970-01-01 open Assets:NonCurrent:IntangibleAssets         MUSD
1970-01-01 open Assets:NonCurrent:Other                    MUSD
 
; ── LIABILITIES ─────────────────────────────────────────────────────────────
1970-01-01 open Liabilities:Current:AccountsPayable        MUSD
1970-01-01 open Liabilities:Current:ShortTermDebt          MUSD
1970-01-01 open Liabilities:Current:DeferredRevenue        MUSD
1970-01-01 open Liabilities:Current:Other                  MUSD
1970-01-01 open Liabilities:NonCurrent:LongTermDebt        MUSD
1970-01-01 open Liabilities:NonCurrent:Other               MUSD
 
; ── EQUITY ──────────────────────────────────────────────────────────────────
1970-01-01 open Equity:OpeningBalance                      MUSD  ; FY2021 initialization
1970-01-01 open Equity:Adjustments                         MUSD  ; year-over-year BS differences
1970-01-01 open Equity:CommonStockAndAPIC                  MUSD
1970-01-01 open Equity:RetainedEarnings                    MUSD
1970-01-01 open Equity:OtherComprehensiveIncome            MUSD
 
; ── INCOME ──────────────────────────────────────────────────────────────────
1970-01-01 open Income:Revenue                             MUSD
1970-01-01 open Income:OtherNet                            MUSD  ; net other income (interest income, etc.)
 
; ── EXPENSES ────────────────────────────────────────────────────────────────
1970-01-01 open Expenses:CostOfRevenue                     MUSD
1970-01-01 open Expenses:ResearchAndDevelopment            MUSD
1970-01-01 open Expenses:SellingGeneralAdministrative      MUSD
1970-01-01 open Expenses:OtherNet                          MUSD
1970-01-01 open Expenses:IncomeTax                         MUSD
 
include "FY2026/FY2026Q2.bean"

Assets:Current:Other e as outras folhas …:Other absorvem resíduos. Os itens de linha modelados mais esse resíduo sempre reconciliam com o subtotal do arquivo.

Afirme o balanço patrimonial com pad e balance

Faça pad de Equity:Adjustments no dia anterior ao final do período. Afirme o valor do arquivo na data do final do período. Escreva um par de pad e balance para cada conta.

Ativos têm saldos positivos. Passivos e patrimônio líquido têm saldos negativos. Linhas residuais mantêm um comentário que nomeia o subtotal do arquivo com o qual reconciliam.

2026-06-29 pad Assets:Current:Cash                        Equity:Adjustments
2026-06-30 balance Assets:Current:Cash                     25998 MUSD
 
2026-06-29 pad Assets:Current:ShortTermInvestments        Equity:Adjustments
2026-06-30 balance Assets:Current:ShortTermInvestments     15600 MUSD
 
2026-06-29 pad Assets:Current:AccountsReceivable          Equity:Adjustments
2026-06-30 balance Assets:Current:AccountsReceivable       10398 MUSD
 
2026-06-29 pad Assets:Current:Other                       Equity:Adjustments
2026-06-30 balance Assets:Current:Other                    15604 MUSD  ; current assets residual (67600 total current)
 
2026-06-29 pad Liabilities:Current:AccountsPayable        Equity:Adjustments
2026-06-30 balance Liabilities:Current:AccountsPayable     -8318 MUSD

Cubra toda a demonstração da mesma forma: todas as contas de ativos e passivos, além de Equity:CommonStockAndAPIC, Equity:RetainedEarnings e Equity:OtherComprehensiveIncome. Comece cada arquivo de período com um banner que nomeie a empresa, o período, a unidade e a URL da fonte.

Registre a demonstração de resultados como uma única transação

Datite a transação no final do período fiscal. Lançamentos de receita são negativos. Lançamentos de despesas são positivos. Equity:Adjustments absorve o lucro líquido para que a entrada some a zero.

Coloque a verificação aritmética em um comentário acima da transação. A verificação deve resultar em zero antes de confiar na entrada.

; Check: -23000 + 10350 + 400 + 8740 + 230 + 688 + 2592 = 0 ✓
 
2026-06-30 * "PepsiCo, Inc." "FY2026Q2 Income Statement"
  Income:Revenue                         -23000 MUSD
  Expenses:CostOfRevenue                   10350 MUSD
  Expenses:ResearchAndDevelopment          400 MUSD
  Expenses:SellingGeneralAdministrative    8740 MUSD
  Expenses:OtherNet                        230 MUSD
  Expenses:IncomeTax                       688 MUSD
  Equity:Adjustments                      2592 MUSD  ; net income offset

A receita é de 23.000 MUSD. O lucro líquido é de 2.592 MUSD. Quando outras receitas forem líquidas positivas, lance para Income:OtherNet em vez de Expenses:OtherNet. Nunca use ambos em um período.

Valide e leia os relatórios

Execute uma verificação no razão raiz:

bea --file main.bean check

Um razão limpo sai com código 0 e sem saída. Prefira bea --json --no-input --file main.bean check quando quiser validade legível por máquina e exigir data.valid: true.

Leia a demonstração de resultados para a janela fiscal da empresa, não para um trimestre civil que por acaso tenha o mesmo rótulo:

bea --json --no-input --file main.bean report income-statement --time '2026-04-01 - 2026-06-30'

Abra o mesmo arquivo no Fava para navegar pelo balanço patrimonial e a demonstração de resultados. Confirme três coisas em relação ao arquivo: o comentário ; Check: soma zero, o total de ativos é igual ao total de passivos mais patrimônio líquido, e o lucro líquido na transação é igual ao lucro líquido do arquivo.

Comece pelo modelo

Copie a forma antes de inventar um novo plano de contas. O modelo ativo abaixo é um razão fictício da Example Industries Inc. do ano fiscal de 2025 em MUSD. Usa os mesmos nomes de contas, padrão de pad e balance, e transação única de demonstração de resultados.

Abrir Modelo de empresa de capital aberto da Example Industries Inc. em uma nova aba

Baixe este padrão como public-company-starter.bean e execute bea --file public-company-starter.bean check. O arquivo corresponde ao plano de contas, pad/balance e estruturas de demonstração de resultados acima: Dinheiro termina em 25998 MUSD, Contas a Pagar em -8318 MUSD, Receita em -23000 MUSD, Imposto de Renda em 688 MUSD, e Equity:Adjustments em -56690 MUSD após os pads e a compensação do lucro líquido. Substitua os valores da PepsiCo pelos números do seu arquivo e mantenha os nomes das contas.

Navegue por todas as empresas reais no Open Ledger. Copie a estrutura do modelo, depois substitua os valores fictícios pelos números do seu arquivo.

Para onde ir a seguir

  • Estude mais razões de empresas ativas no Open Ledger.
  • Leia os guias de resultados sob a tag open-ledger.
  • Copie padrões de finanças pessoais de Working Ledger Examples quando precisar de um modelo doméstico ou freelancer em vez de um 10-K.
  • Revise Financial Reporting Templates para a forma dos relatórios de demonstração de resultados e balanço patrimonial em livros menores.

Fonte: https://beancount.io/pt/docs/model-a-public-company-in-beancount