본문으로 건너뛰기

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

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

신고서의 대차대조표와 손익계산서를 모든 Open Ledger 회사가 사용하는 동일한 규칙으로 균형 잡힌 Beancount 원장으로 변환하세요.

이 가이드는 실제 PepsiCo 분기를 처음부터 끝까지 안내합니다. 숫자는 PepsiCo 2026년 2분기 실적 발표와 일치합니다. 모든 수치는 미국 달러(백만 단위, MUSD)로 표시됩니다.

얻을 수 있는 것

기간 말 대차대조표를 검증하고 손익계산서를 하나의 영(zero-sum) 거래로 기록한 원장을 완성합니다. bea check가 통과합니다. 손익계산서 및 대차대조표 보고서는 신고서에 게시된 합계와 일치합니다. 동일한 패턴이 Open Ledger의 모든 회사와 open-ledger 태그 아래의 모든 게시물에서 사용됩니다.

단위 및 회계연도 선택

operating_currency를 신고서와 일치하는 백만 단위로 설정하세요. 미국 달러로 보고하는 경우 MUSD를 사용하세요. 해당 통화로 신고서가 작성된 경우 MEUR, MJPY 또는 다른 M<CCY> 형식을 사용하세요.

1 MUSD는 USD 1,000,000을 의미합니다. 25998 MUSD의 잔액은 약 260억 달러의 현금을 의미합니다.

각 회계 기간을 연도 디렉토리 아래의 별도 파일에 넣으세요. 연간 파일은 FY2025/FY2025.bean으로, 분기 파일은 FY2026/FY2026Q2.bean으로 이름을 지정하세요. main.bean에서 오래된 순서대로 포함하세요.

계정과목표 열기

main.bean에는 옵션, 계정 개설, 포함(include)이 들어 있습니다. 잔액이나 수입 항목은 포함하지 않습니다.

모든 계정을 1970-01-01MUSD로 개설하세요. 핵심 이름은 회사 간에 동일하게 유지하여 독자가 한 원장을 다른 원장과 비교할 수 있게 하세요.

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 말단은 잔차(residuals)를 흡수합니다. 모델링된 라인 항목과 해당 잔차는 항상 신고서의 소계와 일치합니다.

pad 및 balance로 대차대조표 검증

기간 말 전날에 Equity:Adjustments에서 pad를 시작하세요. 기간 말 날짜에 신고서의 값을 검증하세요. 계정당 하나의 pad와 balance 쌍을 작성하세요.

자산은 양수 잔액을, 부채와 자본은 음수 잔액을 가집니다. 잔차 라인은 일치하는 신고서 소계를 명명하는 주석을 유지합니다.

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는 순이익을 흡수하여 항목의 합계가 0이 되게 합니다.

산술 검증을 거래 위의 주석에 넣으세요. 항목을 신뢰하기 전에 검증이 0이 되어야 합니다.

; 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에 포스팅하세요. 한 기간에 둘 다 사용하지 마세요.

검증 및 보고서 읽기

루트 원장에서 검증을 실행하세요:

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-04-01 - 2026-06-30'

Fava에서 동일한 파일을 열어 대차대조표와 손익계산서를 탐색하세요. 신고서와 다음 세 가지를 확인하세요: ; Check: 주석의 합계가 0인지, 총자산이 총부채+자본과 같은지, 거래의 순이익이 신고서의 순이익과 일치하는지.

템플릿에서 시작

새로운 과목표를 만들기 전에 형태를 복사하세요. 아래의 라이브 템플릿은 가상의 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, 미지급금(Accounts Payable)은 -8318 MUSD, 매출은 -23000 MUSD, 법인세(Income Tax)는 688 MUSD, 그리고 Equity:Adjustments는 pad와 순이익 오프셋 후 -56690 MUSD입니다. PepsiCo의 금액을 신고서의 수치로 바꾸고 계정 이름은 유지하세요.

Open Ledger에서 모든 실제 회사를 탐색하세요. 템플릿 구조를 복사한 다음 가상 금액을 신고서의 수치로 교체하세요.

다음 단계

  • Open Ledger에서 더 많은 실제 회사 원장을 연구하세요.
  • open-ledger 태그 아래의 실적 해설을 읽으세요.
  • 가계나 프리랜서 시작이 필요하면 Working Ledger Examples에서 개인 재무 패턴을 복사하세요 (10-K 대신).
  • 더 작은 장부에서 손익계산서 및 대차대조표 보고서 형태를 검토하려면 Financial Reporting Templates를 참조하세요.

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