پرش به محتوای اصلی

مدلسازی یک شرکت سهامی عام در Beancount

تبدیل ترازنامه و صورت سود و زیان یک شرکت سهامی عام به یک دفتر کل متوازن در Beancount با استفاده از قراردادهای Open Ledger، همراه با یک فصل کاری PepsiCo و یک قالب شروع.

ترازنامه و صورت سود و زیان یک گزارش مالی را به یک دفتر کل متوازن Beancount با همان قراردادهایی تبدیل کنید که هر شرکت Open Ledger از آن استفاده می‌کند.

این راهنما صورت سود و زیان فصلی PepsiCo و بخشی از ترازنامه را از گزارش درآمد PepsiCo فصل دوم ۲۰۲۶ مدل‌سازی می‌کند. از ستون ۱۲ هفته‌ای منتهی به ۱۳ ژوئن ۲۰۲۶ در صفحه چاپی A-1 (صفحه ۶ PDF) و ترازنامه با همان تاریخ در A-4 (صفحه ۹ PDF) استفاده کنید. این گزارش در ۹ ژوئیه ۲۰۲۶ منتشر شده است. همه ارقام به میلیون دلار آمریکا (MUSD) باقی می‌مانند.

چیزی که به دست میآورید​

در پایان پنج تأییدیه ترازنامه و یک تراکنش صورت سود و زیان با جمع صفر خواهید داشت. bea check موفق می‌شود. صورت سود و زیان، سود خالص تلفیقی را بازتولید می‌کند؛ بخش ترازنامه، دارایی‌های جاری و یک ردیف ترکیبی بدهی‌های جاری را پوشش می‌دهد. این ترازنامه کامل شرکت نیست. همین الگو موتور محرک هر شرکت در Open Ledger و هر نوشته زیر برچسب open-ledger است.

واحد و سال مالی را انتخاب کنید​

operating_currency را روی یک واحد میلیونی متناسب با گزارش تنظیم کنید. برای شرکت‌هایی که به دلار آمریکا گزارش می‌دهند از MUSD استفاده کنید. اگر گزارش به آن ارز ارائه شده، از MEUR، MJPY یا شکل دیگری از M<CCY> استفاده کنید.

یک MUSD یعنی ۱٬۰۰۰٬۰۰۰ دلار آمریکا. موجودی 10251 MUSD یعنی ۱۰٫۲۵۱ میلیارد دلار وجه نقد.

فصل گزارش‌شده شامل ۱۲ هفته، یعنی ۸۴ روز، منتهی به ۱۳ ژوئن ۲۰۲۶ است. شمارش شامل دو سر بازه، ۲۲ مارس تا ۱۳ ژوئن ۲۰۲۶ را به دست می‌دهد. از همین تاریخ‌های مالی استفاده کنید نه آوریل–ژوئن. ستون سال قبل ترازنامه ۲۷ دسامبر ۲۰۲۵ است؛ پایان سال مالی را با ۳۱ دسامبر جایگزین نکنید.

هر دوره مالی را در فایل خودش زیر یک پوشه سال قرار دهید. فایل‌های سالانه را FY2025/FY2025.bean بنامید. فایل‌های فصلی را FY2026/FY2026Q2.bean بنامید. آن‌ها را از main.bean از قدیمی‌ترین شروع کنید.

نمودار حسابها را باز کنید​

main.bean شامل گزینه‌ها، بازکردن حساب‌ها و 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"

نمودار، نام حساب‌هایی برای شرکت‌های دیگر و افزونه‌های بعدی فراهم می‌کند. حساب‌های بی‌استفاده به معنای صفر گزارش‌شده نیستند. تنها حساب‌هایی که در ادامه ثبت شده‌اند در این مثال مقدار نگاشت‌شده دارند. حساب‌های …:Other به یک خط منبع صریح یا محاسبه باقیمانده نیاز دارند؛ مجوزی برای ساختن یک تفکیک ساختگی نیستند.

تأیید ترازنامه با pad و balance​

از Equity:Adjustments در روز پیش از پایان دوره pad کنید. مقدار گزارش را در تاریخ پایان دوره تأیید کنید. برای هر حساب یک جفت pad و balance بنویسید.

دارایی‌ها موجودی مثبت دارند. بدهی‌ها موجودی منفی دارند. این پنج تأییدیه ستون ۱۳ ژوئن ۲۰۲۶ در A-4 را نگاشت می‌کنند:

حسابنگاشت منبع (MUSD)
Assets:Current:Cashوجه نقد و معادل‌های نقدی: ۱۰٬۲۵۱
Assets:Current:ShortTermInvestmentsسرمایه‌گذاری‌های کوتاه‌مدت: ۴۶۵
Assets:Current:AccountsReceivableحساب‌ها و اسناد دریافتنی، خالص: ۱۳٬۴۹۶
Assets:Current:Otherجمع دارایی‌های جاری ۳۲٬۷۷۵ − ۱۰٬۲۵۱ − ۴۶۵ − ۱۳٬۴۹۶ = ۸٬۵۶۳؛ موجودی کالا ۶٬۷۳۴ + پیش‌پرداخت‌ها و سایر دارایی‌های جاری ۱٬۸۲۹
Liabilities:Current:Otherحساب‌های پرداختنی و سایر بدهی‌های جاری ترکیبی: −۲۴٬۵۰۴

گزارش، خط آخر را به حساب‌های پرداختنی مستقل و سایر بدهی‌ها تفکیک نمی‌کند. مجموع را یکجا نگه دارید؛ مبلغ ساختگی به 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های روز قبل، ورودی‌های عکس فوری مصنوعی می‌سازند، نه جابجایی واقعی وجه نقد در ۱۲ ژوئن. این مثال هیچ ثبت دارایی یا بدهی بعدی در ۱۳ ژوئن ندارد، بنابراین مبالغ تأییدشده موجودی پایانی آن نیز باقی می‌مانند.

این بخش، دارایی‌های غیرجاری، بدهی کوتاه‌مدت و باقی بدهی‌ها و حقوق صاحبان سهام را حذف می‌کند. یک مدل کامل باید آن خطوط را نیز نگاشت کند، از جمله سهام خزانه و منافع غیرکنترلی. مجموع کامل گزارش عبارت است از دارایی‌ها ۱۱۲٬۱۸۹ = بدهی‌ها ۸۹٬۹۱۹ + حقوق صاحبان سهام ۲۲٬۲۷۰ 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 را این‌گونه نگاشت کنید: درآمد ۲۴٬۱۸۱ منهای بهای فروش ۱۱٬۰۷۰ سود ناخالص ۱۳٬۱۱۱ را می‌دهد. هزینه‌های فروش، عمومی و اداری ۹٬۰۸۸ را کم کنید تا سود عملیاتی ۴٬۰۲۳ به دست آید؛ خط کاهش ارزش صفر است. گزارش خط تحقیق و توسعه فصلی جداگانه‌ای افشا نمی‌کند، بنابراین Expenses:ResearchAndDevelopment را بی‌استفاده بگذارید.

درآمد مزایای بازنشستگی و درمانی بازنشستگان به مبلغ ۵۹، هزینه خالص بهره و سایر ۲۳۰ را جبران می‌کند. هزینه خالص آن‌ها یعنی ۱۷۱ را به Expenses:OtherNet ثبت کنید. این سود پیش از مالیات ۳٬۸۵۲ را می‌دهد. مالیات ۸۴۸، سود خالص تلفیقی ۳٬۰۰۴ MUSD را باقی می‌گذارد. اگر همان تجمیع در دوره دیگری به سود خالص منجر شود، از Income:OtherNet برای جمع استفاده کنید و Expenses:OtherNet را بی‌استفاده بگذارید.

گزارش همچنین سود خالص قابل انتساب به PepsiCo را ۲٬۹۸۱ MUSD اعلام می‌کند. پل ارتباطی ۳٬۰۰۴ − ۲۳ قابل انتساب به منافع غیرکنترلی = ۲٬۹۸۱ است. این تراکنش معیار تلفیقی را مدل‌سازی می‌کند؛ ۲۳ یک تخصیص سود است، نه هزینه‌ای دیگر. ۲٬۹۸۱ را به عنوان تعدیل ترازکننده آن جایگزین نکنید.

اعتبارسنجی و خواندن گزارشها​

بررسی دفتر کل ریشه را اجرا کنید:

bea --file main.bean check

دفتر کل پاک با کد خروجی ۰ و بدون خروجی پایان می‌یابد. وقتی اعتبار قابل خواندن توسط ماشین می‌خواهید و به 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: به صفر می‌رسد، هر مبلغ ثبت‌شده با منبع نگاشت‌شده‌اش مطابقت دارد، و گزارش سود خالص تلفیقی ۳٬۰۰۴ MUSD را نشان می‌دهد. یک مبلغ درآمد نادرست می‌تواند همچنان متوازن باشد اگر تعدیل هم نادرست باشد. تنها پس از گسترش این بخش به یک مدل کامل، مجموع‌های ترازنامه آن باید با مجموع‌های گزارش برابر شوند.

از قالب شروع کنید​

شکل را کلون کنید پیش از آنکه نمودار جدیدی بسازید. قالب زنده زیر یک دفتر کل خیالی Example Industries Inc. سال ۲۰۲۵ در MUSD است. از همان نام‌های حساب، الگوی pad و balance، و تراکنش تک‌صورت سود و زیان استفاده می‌کند.

باز کردن قالب شرکت سهامی عام Example Industries Inc. در برگه جدید

بخش واقعی PepsiCo را به صورت public-company-starter.bean دانلود کنید، سپس bea --file public-company-starter.bean check را اجرا کنید. این فایل سه قطعه Beancount بالا را با هم ترکیب می‌کند، جدا از قالب زنده خیالی. وجه نقد در ۱۰۲۵۱ MUSD، حساب‌های پرداختنی ترکیبی و سایر بدهی‌های جاری در −۲۴۵۰۴ MUSD، درآمد در −۲۴۱۸۱ MUSD، و مالیات بر درآمد در ۸۴۸ MUSD پایان می‌یابد. پنج pad مقدار ۳۲۷۷۵ − ۲۴۵۰۴ = ۸۲۷۱ MUSD را به Equity:Adjustments تعدیل می‌کنند؛ افزودن تعدیل سود تلفیقی مقدار −۵۲۶۷ MUSD را در آنجا باقی می‌گذارد. آن تعدیل یک خط گزارش نیست. دانلود یک نمونه ترازنامه جزئی است، نه دفتر کل کامل PepsiCo. ارقام و تاریخ‌های مالی آن را با نگاشت‌های منبع خودتان جایگزین کنید.

هر شرکت واقعی را در Open Ledger مرور کنید. ساختار قالب را کپی کنید، سپس مبالغ خیالی را با ارقام گزارش خودتان جایگزین کنید.

کجا ادامه دهید​

  • دفترهای کل زنده شرکت‌های بیشتر را در Open Ledger مطالعه کنید.
  • راهنماهای گزارش درآمد را زیر برچسب open-ledger بخوانید.
  • وقتی به یک شروع‌کننده خانگی یا فریلنسری نیاز دارید نه یک 10-K، الگوهای مالی شخصی را از نمونه‌های دفتر کل کاری کپی کنید.
  • قالب‌های گزارش‌دهی مالی را برای شکل گزارش صورت سود و زیان و ترازنامه در دفاتر کوچک‌تر مرور کنید.

منبع: https://beancount.io/fa/docs/model-a-public-company-in-beancount