본문으로 건너뛰기

Beancount에서 공개 회사 모델링하기

Open Ledger 규칙을 사용하여 공개 회사의 대차대조표와 손익계산서를 균형 잡힌 Beancount 원장으로 변환하고, PepsiCo 분기 사례와 시작 템플릿을 제공합니다.

공시 자료의 재무상태표와 손익계산서를 모든 Open Ledger 기업이 사용하는 동일한 관례로 균형 잡힌 Beancount 원장으로 바꿔보세요.

이 가이드는 PepsiCo Q2 2026 실적 발표의 분기 손익계산서와 재무상태표 일부 발췌를 모델링합니다. 인쇄 페이지 A-1(PDF 6페이지)의 2026년 6월 13일로 끝나는 12주 열과, A-4(PDF 9페이지)의 동일 날짜 재무상태표를 사용합니다. 이 발표는 2026년 7월 9일에 공개되었습니다. 모든 수치는 미국 달러 백만 단위(MUSD)로 유지합니다.

얻을 수 있는 것​

다섯 개의 잔액 검증(balance assertion)과 합계가 0이 되는 하나의 손익계산서 거래로 마무리합니다. bea check가 통과합니다. 손익계산서는 연결 순이익을 재현하고, 재무상태표 발췌는 유동자산과 하나로 합쳐진 유동부채 항목을 다룹니다. 이는 완전한 기업 재무상태표가 아닙니다. 동일한 패턴이 Open Ledger의 모든 기업과 open-ledger 태그가 붙은 모든 글을 뒷받침합니다.

단위 및 회계연도 선택​

공시 자료와 일치하는 백만 단위로 operating_currency를 설정하세요. 미국 달러로 보고하는 기업에는 MUSD를 사용합니다. 공시 자료가 다른 통화로 보고한다면 MEUR, MJPY 또는 다른 M<CCY> 형식을 사용하세요.

MUSD 하나는 USD 1,000,000을 의미합니다. 10251 MUSD 잔액은 102억 5,100만 달러의 현금을 의미합니다.

보고된 분기는 2026년 6월 13일까지 12주, 즉 84일입니다. 양 끝을 포함해 세면 2026년 3월 22일6월 13일입니다. 4월6월 대신 이 회계 날짜를 사용하세요. 재무상태표의 전년도 열은 2025년 12월 27일입니다. 회계연도 말을 12월 31일로 바꾸지 마세요.

각 회계 기간을 연도 디렉터리 아래 별도 파일로 두세요. 연간 파일은 FY2025/FY2025.bean으로 명명합니다. 분기 파일은 FY2026/FY2026Q2.bean으로 명명합니다. main.bean에서 오래된 순서로 포함하세요.

계정과목표 열기​

main.bean은 옵션, 계정 open, include를 담습니다. 잔액과 수익 항목은 담지 않습니다.

모든 계정을 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"

이 계정과목표는 다른 기업과 이후 확장을 위한 계정 이름을 제공합니다. 사용되지 않은 계정이 보고된 0을 의미하지는 않습니다. 이 예시에서는 아래에 기표된 계정만 금액이 매핑됩니다. …:Other 계정은 명시적인 출처 라인이나 잔여값 계산이 필요합니다. 이는 분할을 임의로 만들어낼 수 있는 허가가 아닙니다.

pad 및 balance로 대차대조표 검증​

기간 말 전날에 Equity:Adjustments에서 pad합니다. 기간 말 날짜에 공시 자료의 값을 검증합니다. 계정마다 하나의 pad와 balance 쌍을 작성하세요.

자산은 양수 잔액을 가집니다. 부채는 음수 잔액을 가집니다. 다음 다섯 개의 검증이 A-4의 2026년 6월 13일 열을 매핑합니다:

계정출처 매핑 (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는 합성 스냅샷 항목을 만들 뿐, 6월 12일의 실제 현금 이동이 아닙니다. 이 예시는 6월 13일에 이후 자산이나 부채 기표가 없으므로, 검증된 금액이 기말 잔액이기도 합니다.

이 발췌는 비유동자산, 단기 차입금, 나머지 부채와 자본을 생략합니다. 완전한 모델은 자기주식과 비지배지분을 포함해 그러한 항목도 모두 매핑해야 합니다. 공시 자료의 완전한 합계는 자산 112,189 = 부채 89,919 + 자본 22,270 MUSD입니다. 이 발췌는 그러한 합계를 재현하지 않습니다. Equity:Adjustments는 균형 잡기용 상쇄 항목이지 보고된 주주자본이 아닙니다. 각 기간 파일은 기업, 회계 기간, 단위, 출처 URL을 명시한 배너로 시작하세요.

손익계산서를 하나의 거래로 기록​

회계 기간 말에 거래 날짜를 지정하세요. 수익 기표는 음수입니다. 비용 기표는 양수입니다. Equity:Adjustments가 순이익을 흡수하여 분개가 0이 되도록 합니다.

거래 위 주석에 산술 검증을 넣으세요. 분개를 신뢰하기 전에 검증값이 0이어야 합니다.

; 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이 됩니다. 손상차손 항목은 0입니다. 이 발표는 별도의 분기 R&D 항목을 공시하지 않으므로 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으로 끝납니다. 기계가 읽을 수 있는 유효성과 data.valid: true가 필요할 때는 bea --json --no-input --file main.bean check를 선호하세요.

라벨이 우연히 일치하는 달력 분기가 아니라, 기업의 회계 기간에 대한 손익계산서를 읽으세요:

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

Fava에서 같은 파일을 열어 재무상태표와 손익계산서를 살펴보세요. 산술과 출처 일치를 별도로 확인하세요: ; Check: 주석이 0으로 합산되고, 기표된 각 금액이 매핑된 출처와 일치하며, 보고서가 연결 순이익 3,004 MUSD를 보여줍니다. 상쇄값도 함께 틀리면 잘못된 매출 금액도 여전히 균형이 맞을 수 있습니다. 이 발췌를 완전한 모델로 확장한 뒤에야 재무상태표 합계가 공시 자료의 합계와 일치해야 합니다.

템플릿에서 시작​

새 계정과목표를 만들기 전에 형태를 복제하세요. 아래 라이브 템플릿은 MUSD로 표시된 가상의 Example Industries Inc. FY2025 원장입니다. 동일한 계정 이름, 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 태그 아래의 실적 해설을 읽어보세요.
  • 10-K 대신 가계나 프리랜서용 시작 자료가 필요하면 Working Ledger Examples에서 개인 재무 패턴을 복사하세요.
  • 더 작은 장부에서 손익계산서와 재무상태표 보고서 형태를 보려면 Financial Reporting Templates를 검토하세요.

출처: https://beancount.io/ko/docs/model-a-public-company-in-beancount