Перейти к основному содержимому

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

Превратите баланс и отчёт о прибылях и убытках публичной компании в сбалансированную книгу Beancount, используя соглашения Open Ledger, с проработанным кварталом PepsiCo и стартовым шаблоном.

Превратите балансовый отчёт и отчёт о прибылях и убытках из отчётности в сбалансированный реестр Beancount, используя те же соглашения, что и каждая компания в Open Ledger.

Это руководство моделирует квартальный отчёт о прибылях и убытках PepsiCo и фрагмент балансового отчёта из пресс-релиза PepsiCo о результатах за Q2 2026. Используйте колонку за 12 недель, заканчивающуюся 13 июня 2026 года, на печатной странице A-1 (страница 6 PDF), и балансовый отчёт на ту же дату на A-4 (страница 9 PDF). Пресс-релиз был опубликован 9 июля 2026 года. Все суммы указаны в миллионах долларов США (MUSD).

Что вы получите​

В итоге у вас будет пять подтверждений баланса и одна транзакция отчёта о прибылях и убытках с нулевой суммой. bea check проходит успешно. Отчёт о прибылях и убытках воспроизводит консолидированную чистую прибыль; фрагмент балансового отчёта охватывает оборотные активы и одну объединённую строку текущих обязательств. Это не полный балансовый отчёт компании. Этот же шаблон используется для каждой компании в Open Ledger и в каждой публикации под тегом open-ledger.

Выберите единицу и финансовый год​

Установите operating_currency в единицу измерения миллионов, соответствующую отчётности. Используйте MUSD для компаний, отчитывающихся в долларах США. Используйте MEUR, MJPY или другую форму M<CCY>, когда отчётность представлена в этой валюте.

Один MUSD означает 1 000 000 долларов США. Баланс 10251 MUSD означает $10,251 млрд денежных средств.

Отчётный квартал содержит 12 недель, или 84 дня, до 13 июня 2026 года. Включительный подсчёт даёт период с 22 марта по 13 июня 2026 года. Используйте эти финансовые даты, а не апрель–июнь. Колонка предыдущего года в балансовом отчёте — 27 декабря 2025 года; не заменяйте окончания финансовых лет на 31 декабря.

Поместите каждый финансовый период в отдельный файл в директории года. Назовите годовые файлы FY2025/FY2025.bean. Назовите квартальные файлы FY2026/FY2026Q2.bean. Включайте их из main.bean от самого старого к самому новому.

Откройте план счетов​

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

Откройте каждый счёт на 1970-01-01 в MUSD. Сохраняйте основные имена идентичными во всех компаниях, чтобы читатели могли сравнивать один реестр с другим.

option "title" "PepsiCo, Inc. FY2026Q2 income statement and partial balance sheet"
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
;   Source: PepsiCo Q2 2026 earnings release, A-1 and A-4.
;   Fiscal quarter: 2026-03-22 through 2026-06-13 (12 weeks).
;   Partial balance sheet: current assets and combined payables only.
 
; ── 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  ; opening balances when needed
1970-01-01 open Equity:Adjustments                         MUSD  ; balancing offset for this statement model
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"

План счетов предоставляет имена счетов для других компаний и последующих расширений. Неиспользуемые счета не подразумевают отчётный ноль. Только счета, проводки по которым приведены ниже, имеют сопоставленные суммы в этом примере. Счета …:Other требуют явной строки-источника или расчёта остатка; они не дают права придумывать разбивку.

Подтвердите баланс с помощью pad и balance​

Выполните pad из Equity:Adjustments в день перед окончанием периода. Подтвердите значение из отчётности на дату окончания периода. Напишите одну пару pad и balance на каждый счёт.

Активы имеют положительные балансы. Обязательства имеют отрицательные балансы. Эти пять подтверждений сопоставляют колонку на 13 июня 2026 года на A-4:

СчётСопоставление с источником (MUSD)
Assets:Current:CashДенежные средства и их эквиваленты: 10 251
Assets:Current:ShortTermInvestmentsКраткосрочные инвестиции: 465
Assets:Current:AccountsReceivableСчета и векселя к получению, нетто: 13 496
Assets:Current:OtherИтого оборотные активы 32 775 − 10 251 − 465 − 13 496 = 8 563; запасы 6 734 + предоплаченные и прочие оборотные активы 1 829
Liabilities:Current:OtherОбъединённые счета к оплате и прочие текущие обязательства: −24 504

Пресс-релиз не разделяет последнюю строку на отдельные счета к оплате и прочие обязательства. Оставьте агрегат вместе; не проводите придуманную сумму на Liabilities:Current:AccountsPayable.

; PepsiCo, Inc. FY2026Q2 — 2026-03-22 through 2026-06-13; MUSD
; Source: https://investors.pepsico.com/docs/pepsico-5v9wci20/media/Files/investors/q2-2026-earnings-release.pdf
; A-4, 2026-06-13 column: partial balance-sheet snapshot
2026-06-12 pad Assets:Current:Cash                        Equity:Adjustments
2026-06-13 balance Assets:Current:Cash                     10251 MUSD
 
2026-06-12 pad Assets:Current:ShortTermInvestments        Equity:Adjustments
2026-06-13 balance Assets:Current:ShortTermInvestments     465 MUSD
 
2026-06-12 pad Assets:Current:AccountsReceivable          Equity:Adjustments
2026-06-13 balance Assets:Current:AccountsReceivable       13496 MUSD
 
2026-06-12 pad Assets:Current:Other                       Equity:Adjustments
2026-06-13 balance Assets:Current:Other                    8563 MUSD  ; 32775 - 10251 - 465 - 13496 = 6734 + 1829
 
2026-06-12 pad Liabilities:Current:Other                  Equity:Adjustments
2026-06-13 balance Liabilities:Current:Other               -24504 MUSD  ; combined payables and other current liabilities

Beancount проверяет баланс на начало своей даты. Pad предыдущего дня создают синтетические снапшот-проводки, а не фактические движения денежных средств 12 июня. В этом примере нет последующих проводок по активам или обязательствам 13 июня, поэтому подтверждённые суммы также остаются его конечными балансами.

Этот фрагмент опускает внеоборотные активы, краткосрочный долг и остальные обязательства и капитал. Полная модель должна сопоставить и эти строки, включая казначейские акции и неконтролирующие доли. Полные итоги из отчётности: активы 112 189 = обязательства 89 919 + капитал 22 270 MUSD; фрагмент не воспроизводит эти итоги. Equity:Adjustments — это балансирующий остаток, а не отчётный акционерный капитал. Начинайте каждый файл периода с баннера, указывающего компанию, финансовый период, единицу измерения и URL источника.

Запишите отчёт о прибылях и убытках как одну транзакцию​

Датируйте транзакцию окончанием финансового периода. Проводки по доходам отрицательные. Проводки по расходам положительные. Equity:Adjustments поглощает чистую прибыль, чтобы запись в сумме давала ноль.

Поместите арифметическую проверку в комментарий над транзакцией. Проверка должна давать ноль, прежде чем вы доверитесь записи.

; Check: -24181 + 11070 + 9088 + 171 + 848 + 3004 = 0
 
2026-06-13 * "PepsiCo, Inc." "FY2026Q2 Income Statement"
  Income:Revenue                         -24181 MUSD
  Expenses:CostOfRevenue                   11070 MUSD
  Expenses:SellingGeneralAdministrative     9088 MUSD
  Expenses:OtherNet                         171 MUSD  ; 230 expense - 59 pension income
  Expenses:IncomeTax                        848 MUSD
  Equity:Adjustments                       3004 MUSD  ; consolidated net income offset

Сопоставьте квартальную колонку A-1 следующим образом: выручка 24 181 минус себестоимость продаж 11 070 даёт валовую прибыль 13 111. Вычтите коммерческие, общие и административные расходы 9 088, чтобы получить операционную прибыль 4 023; строка обесценения равна нулю. Пресс-релиз не раскрывает отдельную квартальную строку НИОКР, поэтому оставьте Expenses:ResearchAndDevelopment неиспользуемым.

Доход по пенсионным и медицинским льготам для пенсионеров в размере 59 компенсирует чистые процентные расходы и прочее в размере 230. Проведите их чистый расход 171 на Expenses:OtherNet. Это даёт прибыль до налогообложения 3 852. Налог 848 оставляет консолидированную чистую прибыль 3 004 MUSD. Если та же агрегация в другом периоде даёт иную чистую прибыль, используйте Income:OtherNet для агрегата и оставьте Expenses:OtherNet неиспользуемым.

Пресс-релиз также сообщает о чистой прибыли, причитающейся PepsiCo, в размере 2 981 MUSD. Мост: 3 004 − 23, причитающихся неконтролирующим долям = 2 981. Эта транзакция моделирует консолидированный показатель; 23 — это распределение прибыли, а не ещё один расход. Не подставляйте 2 981 в качестве балансирующего остатка.

Проверьте и прочитайте отчёты​

Запустите проверку корневого реестра:

bea --file main.bean check

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

Читайте отчёт о прибылях и убытках за финансовый период компании, а не за календарный квартал, который случайно носит ту же метку:

bea --json --no-input --file main.bean report income-statement --time '2026-03-22 - 2026-06-13'

Откройте тот же файл в Fava, чтобы просмотреть балансовый отчёт и отчёт о прибылях и убытках. Проверяйте арифметику и соответствие источнику отдельно: комментарий ; Check: суммируется в ноль, каждая проведённая сумма соответствует сопоставленному источнику, а отчёт показывает консолидированную чистую прибыль 3 004 MUSD. Неверная сумма выручки всё ещё может балансироваться, если остаток тоже неверен. Только после расширения этого фрагмента в полную модель её итоги балансового отчёта должны совпасть с итогами отчётности.

Начните с шаблона​

Клонируйте форму, прежде чем изобретать новый план счетов. Живой шаблон ниже — это вымышленный реестр Example Industries Inc. за FY2025 в MUSD. Он использует те же имена счетов, шаблон pad и balance и единственную транзакцию отчёта о прибылях и убытках.

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

Скачайте реальный фрагмент PepsiCo как public-company-starter.bean, затем запустите bea --file public-company-starter.bean check. Он объединяет три приведённых выше блока Beancount, отдельно от вымышленного живого шаблона. Денежные средства в итоге составляют 10251 MUSD, объединённые счета к оплате и прочие текущие обязательства −24504 MUSD, выручка −24181 MUSD, а налог на прибыль 848 MUSD. Пять pad компенсируют 32775 − 24504 = 8271 MUSD на Equity:Adjustments; добавление остатка консолидированной прибыли оставляет там −5267 MUSD. Этот остаток не является строкой отчётности. Скачанный файл — пример частичного балансового отчёта, а не полный реестр PepsiCo. Замените его цифры и финансовые даты своими сопоставлениями с источниками.

Просмотрите каждую реальную компанию в Open Ledger. Скопируйте структуру шаблона, затем замените вымышленные суммы цифрами из вашей отчётности.

Куда двигаться дальше​

  • Изучите больше живых реестров компаний в Open Ledger.
  • Читайте разборы отчётности о прибылях под тегом open-ledger.
  • Копируйте шаблоны личных финансов из Working Ledger Examples, когда вам нужен стартовый набор для домохозяйства или фрилансера вместо 10-K.
  • Ознакомьтесь с Financial Reporting Templates для формы отчётов о прибылях и убытках и балансовых отчётов в меньших книгах.

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