Към основното съдържание
Beancount.io Logo

Моделирайте публична компания в Beancount

Преобразувайте баланса и отчета за приходите и разходите на публична компания в балансиран Beancount ledger, използвайки конвенциите на Open Ledger, с работен пример за тримесечие на PepsiCo и стартов шаблон.

Преобразувайте баланса и отчета за приходите и разходите от даден filing в балансиран Beancount ledger със същите конвенции, които използва всяка компания в Open Ledger.

Това ръководство преминава през едно реално тримесечие на PepsiCo от начало до край. Числата съответстват на отчета за приходите за Q2 2026 на PepsiCo. Всички стойности са в милиони щатски долара (MUSD).

Какво получавате

Финалният резултат е ledger, който потвърждава баланса към края на периода и записва отчета за приходите и разходите като една транзакция с нулева сума. bea check преминава успешно. Отчетите за приходите и разходите и балансът съответстват на публикуваните общи суми от filing. Същият модел захранва всяка компания в Open Ledger и всяка публикация под етикета open-ledger.

Изберете единицата и фискалната година

Задайте operating_currency на единица в милиони, която съответства на filing. Използвайте MUSD за компании, отчитащи се в щатски долари. Използвайте MEUR, MJPY или друга форма M<CCY>, когато filing е в съответната валута.

Един MUSD означава USD 1 000 000. Баланс от 25998 MUSD означава около $26,0 милиарда в брой.

Поставете всеки фискален период в отделен файл под директория с годината. Наименувайте годишните файлове FY2025/FY2025.bean. Наименувайте тримесечните файлове FY2026/FY2026Q2.bean. Включете ги в main.bean от най-стария към най-новия.

Отворете сметкоплана

main.bean съдържа опции, откриване на сметки и включвания. Той не съдържа баланси и не съдържа записи за приходи.

Отворете всяка сметка на 1970-01-01 в MUSD. Запазете основните имена идентични между компаниите, за да могат читателите да сравняват един ledger с друг.

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 и другите листа …:Other поемат остатъците. Моделираните редове плюс този остатък винаги се съгласуват с междинната сума от filing.

Потвърдете баланса с pad и balance

Направете pad от Equity:Adjustments ден преди края на периода. Потвърдете стойността от filing на датата на края на периода. Напишете по една двойка pad и balance за всяка сметка.

Активите имат положителни баланси. Пасивите и собственият капитал имат отрицателни баланси. Остатъчните редове запазват коментар, който назовава междинната сума от filing, с която се съгласуват.

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

Покрийте целия отчет по същия начин: всяка сметка за активи и пасиви, плюс Equity:CommonStockAndAPIC, Equity:RetainedEarnings и Equity:OtherComprehensiveIncome. Започнете всеки файл за период с банер, който назовава компанията, периода, единицата и URL източника.

Запишете отчета за приходите и разходите като една транзакция

Датирайте транзакцията на края на фискалния период. Постъпленията за приходи са отрицателни. Постъпленията за разходи са положителни. Equity:Adjustments поема нетния доход, така че записът да е с нулева сума.

Поставете аритметичната проверка в коментар над транзакцията. Проверката трябва да даде нула, преди да се доверите на записа.

; 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

Приходите са 23 000 MUSD. Нетният доход е 2 592 MUSD. Когато други приходи са нетно положителни, ги запишете към Income:OtherNet вместо към Expenses:OtherNet. Никога не използвайте и двете в един период.

Валидирайте и прочетете отчетите

Изпълнете проверка на основния ledger:

bea --file main.bean check

Чист ledger излиза с код 0 и без изход. Предпочитайте bea --json --no-input --file main.bean check, когато искате машинно четим резултат за валидност и изисквате data.valid: true.

Прочетете отчета за приходите и разходите за фискалния прозорец на компанията, а не за календарно тримесечие, което случайно носи същия етикет:

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

Отворете същия файл в Fava, за да разгледате баланса и отчета за приходите и разходите. Потвърдете три неща спрямо filing: коментарът ; Check: дава нула, общите активи са равни на общите пасиви плюс собствения капитал, и нетният доход в транзакцията е равен на нетния доход от filing.

Започнете от шаблона

Копирайте формата, преди да измислите нов сметкоплан. Живият шаблон по-долу е измислен ledger за Example Industries Inc. за FY2025 в MUSD. Той използва същите имена на сметки, модела pad и balance и единична транзакция за отчета за приходите и разходите.

Отворете Шаблон за публична компания Example Industries Inc. в нов раздел

Изтеглете този модел като public-company-starter.bean, след което изпълнете bea --file public-company-starter.bean check. Файлът съответства на сметкоплана, pad/balance и огражденията за отчета за приходите и разходите по-горе: Паричните средства завършват на 25998 MUSD, Задълженията към доставчици на -8318 MUSD, Приходите на -23000 MUSD, Данъкът върху дохода на 688 MUSD и Equity:Adjustments на -56690 MUSD след pads и компенсирането на нетния доход. Заменете сумите на PepsiCo с цифри от вашия filing и запазете имената на сметките.

Разгледайте всяка реална компания в Open Ledger. Копирайте структурата на шаблона, след което заменете измислените суми с цифри от вашия filing.

Къде да продължите

  • Проучете още живи компании в Open Ledger.
  • Прочетете обяснения на отчетите за приходи под етикета open-ledger.
  • Копирайте модели за лични финанси от Работни примери за Ledger, когато ви трябва старт за домакинство или свободна практика вместо 10-K.
  • Прегледайте Шаблони за финансови отчети за формата на отчета за приходите и разходите и баланса в по-малки книги.

Източник: https://beancount.io/bg/docs/model-a-public-company-in-beancount