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

راه‌اندازی‌های نمودار حساب‌های Beancount بر اساس صنعت

نمونه نمودارهای حساب Beancount برای فریلنسرها، کسب‌وکارهای کوچک و امور مالی خانگی، همراه با دلیل هر حساب و یک تکه دفتر کل.

نمونه پیکربندی‌ها برای فریلنسرها، کسب‌وکارهای کوچک و امور مالی شخصی

در این راهنما، بررسی می‌کنیم که چگونه می‌توان یک دفتر کل Beancount را برای نیازهای مختلف تنظیم کرد: یک متخصص فریلنسر، یک کسب‌وکار کوچک بوتیک، و امور مالی خانوار شخصی. هر سناریو ساختار حساب‌ها و ملاحظات منحصربه‌فرد خود را دارد. ما منطق پشت هر تنظیم را توضیح می‌دهیم، نمونه‌کدهای Beancount ارائه می‌کنیم، و ویژگی‌های مفیدی (مانند برچسب‌های سفارشی و واردکردن خودکار) را که ردیابی را آسان‌تر می‌کنند، برجسته می‌کنیم. لحن آموزشی و در عین حال قابل‌دسترس است – چه توسعه‌دهنده باشید، چه متخصص آشنا با فناوری، یا علاقه‌مند به امور مالی، این مثال‌ها به شما کمک می‌کنند تا Beancount را در دنیای واقعی به کار ببرید.

فریلنسرها​

فریلنسرها (مانند توسعه‌دهندگان نرم‌افزار یا طراحان گرافیک) اغلب بین چندین مشتری و هزینه‌های پروژه سر و کار دارند. یک تنظیم ساده Beancount می‌تواند به ردیابی درآمد از هر مشتری، هزینه‌های کسب‌وکار (شامل هر پیمانکار فرعی استخدام‌شده)، و پولی که برای مالیات کنار گذاشته می‌شود، کمک کند. هدف این است که آن را ساده نگه دارید تا با رشد کسب‌وکار فریلنسری شما مقیاس‌پذیر باشد، بدون پیچیدگی غیرضروری.

حساب‌های کلیدی برای یک فریلنسر: یک دفتر کل فریلنسری معمولاً امور مالی کسب‌وکار را از امور مالی شخصی جدا می‌کند. برای مثال، ممکن است از این‌ها استفاده کنید:

  • Assets:Business:Checking – یک حساب بانکی کسب‌وکار برای تمام پرداخت‌های مشتریان و هزینه‌های کسب‌وکار.
  • Assets:Business:TaxSavings – یک حساب پس‌انداز برای کنار گذاشتن بخشی از درآمد برای پرداخت مالیات (چون هیچ کارفرمایی مالیات را برای شما کسر نمی‌کند).
  • Income:Client:Name – حساب‌های درآمد برای پرداخت‌های مشتریان. می‌توانید برای هر مشتری اصلی حساب‌های فرعی ایجاد کنید (مثلاً Income:Client:ACME)، یا از یک حساب واحد Income:Freelance با نام مشتریان برچسب‌گذاری‌شده در تراکنش‌ها استفاده کنید.
  • Expenses:Business:Contractors – برای پرداخت به هر پیمانکار فرعی یا کار برون‌سپاری‌شده.
  • Expenses:Business:Software (و دسته‌های دیگر مانند Travel، Supplies) – برای هزینه‌های معمول کسب‌وکار (اشتراک‌های نرم‌افزاری، تجهیزات، سفر به محل مشتری، و غیره).
  • Equity:OwnerDraw – (اختیاری) برای ثبت انتقال سود از کسب‌وکار به خودتان به‌صورت شخصی. این به تفکیک وجوه کسب‌وکار از وجوه شخصی هنگام پرداخت به خودتان کمک می‌کند.

منطق: این ساختار تضمین می‌کند که تمام پول مرتبط با کسب‌وکار در حساب‌های اختصاصی ردیابی می‌شود. درآمد از هر مشتری ثبت می‌شود (که مشاهده بهترین مشتریان شما را آسان می‌کند)، و هزینه‌ها برای کسر مالیات دسته‌بندی می‌شوند. کنار گذاشتن مالیات در یک حساب دارایی جداگانه (یا ثبت یک بدهی برای مالیات بدهکار) از خرج کردن تصادفی پولی که به دولت تعلق دارد جلوگیری می‌کند. دفتر کل ساده باقی می‌ماند: اگر مشتریان جدید یا دسته‌های هزینه جدیدی به دست می‌آورید، می‌توانید حساب‌های جدید اضافه کنید یا از برچسب‌ها استفاده کنید بدون اینکه همه چیز را دوباره سازماندهی کنید. یک دام رایج، مخلوط کردن تراکنش‌های شخصی و کسب‌وکار در یک حساب است؛ با نگه‌داشتن یک حساب جاری اختصاصی کسب‌وکار (و حساب دارایی متناظر)، تطبیق و گزارش‌گیری تمیزتر می‌شود. دام دیگری که باید از آن اجتناب کرد، فراموش کردن ثبت انتقال نقدی برای مالیات یا برداشت‌های مالک است – با استفاده از حساب‌هایی مانند TaxSavings و OwnerDraw، هر دلار حسابرسی می‌شود.

برای اجرای این ساختار به‌صورت یک دفتر کل میزبانی‌شده با درآمد به تفکیک مشتری، مطالبات فاکتور و اندوخته مالیات، Beancount.io برای فریلنسرها را ببینید.

ویژگی‌های Beancount که باید برجسته شوند: برچسب‌ها و فراداده برای فریلنسرها بسیار مفید هستند. برای مثال، می‌توانید تراکنش‌ها را با شماره پروژه یا فاکتور برچسب‌گذاری کنید، یا از یک فیلد فراداده برای یادداشت نام مشتری استفاده کنید اگر انتخاب می‌کنید حساب‌های درآمد جداگانه برای هر مشتری نداشته باشید. این کار فیلتر کردن یا پرس‌وجوی تراکنش‌ها برای یک مشتری یا پروژه خاص را آسان می‌کند (مثلاً جمع کردن تمام هزینه‌های برچسب‌خورده با #ProjectX). علاوه بر این، واردکننده‌های خودکار Beancount می‌توانند ورود داده را ساده‌کنند – برای مثال، می‌توانید یک واردکننده برای صورت‌حساب‌های بانکی یا کارت اعتباری خود تنظیم کنید تا تراکنش‌ها را به دفتر کل شما وارد کند، و سپس فقط نام حساب‌های هزینه یا درآمد مناسب را اضافه کنید. این در زمانی که تراکنش‌های کوچک زیادی دارید (مانند اشتراک‌های نرم‌افزاری یا هزینه‌های سفر) در وقت صرفه‌جویی می‌کند.

نمونه قطعه‌کد دفتر کل فریلنسر​

در زیر یک نمونه‌کد ساده‌شده Beancount برای یک توسعه‌دهنده فریلنسر آورده شده است. این نشان می‌دهد که چند حساب کلیدی باز می‌شود، یک پرداخت ورودی از یک مشتری، یک پرداخت به یک پیمانکار فرعی، یک هزینه معمول کسب‌وکار، و انتقال پول به یک حساب پس‌انداز مالیات. (در عمل، شما هزینه‌های دیگر مانند سفر یا خرید تجهیزات را نیز به همین شکل ثبت می‌کنید.)

1970-01-01 open Assets:Business:Checking
1970-01-01 open Assets:Business:TaxSavings
1970-01-01 open Income:Client:ACME
1970-01-01 open Expenses:Business:Contractors
1970-01-01 open Expenses:Business:Software
 
; Client income – payment for an invoice
2025-08-15 * "Invoice payment from ACME Corp"
  invoice: "INV-2025-08-15"
  Assets:Business:Checking       5000 USD
  Income:Client:ACME           -5000 USD
 
; Regular expense – e.g. software subscription for the business
2025-08-05 * "GitHub Subscription"
  Expenses:Business:Software       15 USD
  Assets:Business:Checking        -15 USD
 
; Contractor expense – paying a subcontractor for help
2025-08-20 * "Contractor payment – Jane Doe"
  Expenses:Business:Contractors   2000 USD
  Assets:Business:Checking      -2000 USD
 
; Tax withholding – moving money to tax savings
2025-08-31 * "Set aside Q3 taxes" #tax
  Assets:Business:TaxSavings     1500 USD
  Assets:Business:Checking     -1500 USD

بیایید تجزیه کنیم چه اتفاقی می‌افتد:

  • ما حساب‌های لازم را در بالا باز می‌کنیم (با یک تاریخ شروع). Beancount نیاز دارد که هر حساب قبل از استفاده باز شود — یک پست به یک حساب اعلام‌نشده یک خطای بارگذاری است — بنابراین این دستورات open اجباری هستند، نه سبک اختیاری. حساب‌های Assets:Business:Checking و Assets:Business:TaxSavings موجودی دلار آمریکا را نگه می‌دارند؛ حساب‌های درآمد و هزینه می‌توانند در دستور open بدون ارز رها شوند چون ارز تراکنش‌ها را به ارث می‌برند (در این مورد USD).
  • پرداخت فاکتور از مشتری: در 2025-08-15، یک تراکنش درآمد یک پرداخت مشتری به مبلغ $5,000 برای یک فاکتور ثبت می‌کند. ما Income:Client:ACME را بستانکار می‌کنیم (درآمد در حسابداری دوطرفه با مبلغ منفی افزایش می‌یابد) و حساب جاری را بدهکار می‌کنیم. یک فیلد فراداده invoice: "INV-2025-08-15" برای یادداشت شماره فاکتور گنجانده شده است – این اختیاری است اما نشان می‌دهد چگونه می‌توانید اطلاعات اضافی به یک تراکنش پیوست کنید. همچنین می‌توانید این تراکنش را با #ACME یا #client-ACME برای فیلتر کردن سریع برچسب‌گذاری کنید. اگر چندین مشتری داشتید، ممکن است از یک حساب عمومی Income:Clients استفاده کنید و برای تفکیک مشتریان به چنین فراداده‌ای یا فیلد Payee تکیه کنید، به جای ایجاد حساب‌های فرعی زیاد.
  • هزینه کسب‌وکار (نرم‌افزار): در 2025-08-05، ما یک هزینه $15 برای اشتراک GitHub ثبت می‌کنیم (شاید برای مخازن خصوصی یا سایر خدمات). پست به Expenses:Business:Software می‌رود و حساب جاری کسب‌وکار را کاهش می‌دهد. هزینه‌های کوچک مکرر مانند این می‌توانند برچسب‌گذاری شوند (برای مثال، ما #tax را روی تراکنش مالیات در زیر اضافه کردیم؛ به‌طور مشابه ممکن است هزینه‌های خاصی را به‌عنوان #recurring برچسب‌گذاری کنید اگر ماهانه اتفاق می‌افتند، و غیره). در این مورد، نام حساب خودش (Software) آن را واضح می‌کند.
  • پرداخت به پیمانکار: در 2025-08-20، فریلنسر به یک پیمانکار فرعی (Jane Doe) مبلغ $2,000 پرداخت کرد. این به‌عنوان یک هزینه در Expenses:Business:Contractors و خروج نقدی از حساب جاری ثبت می‌شود. می‌توانید نام پیمانکار را در شرح (آنطور که ما انجام دادیم) یا به‌عنوان یک فیلد فراداده (مثلاً contractor: "Jane Doe") بگنجانید. این یک رد حسابرسی از اینکه به چه کسی و چرا پرداخت کردید نگه می‌دارد (مفید اگر در هنگام تنظیم مالیات یا بودجه‌بندی به جزئیات نیاز داشته باشید).
  • انتقال پس‌انداز مالیات: در 2025-08-31، فریلنسر $1,500 از حساب جاری اصلی به یک حساب پس‌انداز مالیات اختصاصی منتقل می‌کند. ما این تراکنش را با #tax برای دیدپذیری برچسب‌گذاری کردیم. این یک هزینه نیست (شما فقط پول خودتان را جابه‌جا می‌کنید)، بنابراین بین دو حساب دارایی می‌رود. با انجام این کار هر ماه یا فصل، وجوهی برای پوشش مالیات‌های تخمینی جمع می‌کنید. وقتی زمان پرداخت واقعی مالیات‌ها به دولت فرا رسید، یک هزینه (مثلاً Expenses:Taxes) و یک کسر از حساب TaxSavings (یا Checking) ثبت می‌کنید. یک دام رایج این است که این انتقال را به‌عنوان یک هزینه در گزارش‌های خود در نظر بگیرید – به یاد داشته باشید، این یک هزینه نیست، فقط یک تخصیص احتیاطی است. تنها پرداخت واقعی مالیات به IRS/مرجع مالیاتی یک هزینه خواهد بود (یا کاهش یک بدهی مالیاتی تعهدی اگر آن را به آن شکل ردیابی کنید).

خلاصه: دفتر کل Beancount یک فریلنسر بر سادگی و شفافیت تأکید دارد. تمام درآمد و خروجی‌های مرتبط با کسب‌وکار به‌صورت روش‌مند ثبت می‌شوند. با استفاده از نام‌های معنادار حساب و برچسب‌ها/فراداده گاه‌به‌گاه، می‌توانید به‌راحتی گزارش‌هایی به تفکیک مشتری یا دسته هزینه تولید کنید (مثلاً کل درآمد به تفکیک مشتری، کل هزینه‌شده روی پیمانکاران امسال، و غیره). این تنظیم مقیاس‌پذیر است – می‌توانید مشتریان جدید یا دسته‌های هزینه جدید را با تحول کسب‌وکار خود اضافه کنید. با ویژگی‌هایی مانند واردکردن خودکار (برای کشیدن تراکنش‌های بانکی) و برچسب‌گذاری سفارشی برای پروژه‌ها یا فاکتورها، Beancount می‌تواند سربار دفترداری را برای فریلنسرها به‌طور قابل‌توجهی کاهش دهد و در همان حال تصویری واضح از امور مالی در هر زمان ارائه کند.

کسب‌وکارهای کوچک​

در مرحله بعد، یک کسب‌وکار کوچک تجارت الکترونیک بوتیک را در نظر بگیرید – برای مثال، یک فروشگاه آنلاین که کالاهای دست‌ساز می‌فروشد. این سناریو پیچیدگی‌هایی مانند مدیریت موجودی کالا، بهای تمام‌شده کالای فروش‌رفته (COGS)، و رسیدگی به پردازشگرهای پرداخت آنلاین را اضافه می‌کند. Beancount می‌تواند این‌ها را با یک ساختار حساب متفکرانه و روش ثبت تراکنش accommodate کند. ما از موردی استفاده می‌کنیم که کسب‌وکار محصولات موجود در انبار را ردیابی می‌کند، فروش را از طریق یک پلتفرم آنلاین ثبت می‌کند (مانند Shopify با Stripe برای پرداخت‌ها)، و هزینه‌های معمول کسب‌وکار را ثبت می‌کند.

حساب‌های کلیدی برای یک کسب‌وکار کوچک تجارت الکترونیک بوتیک: علاوه بر حساب‌های بانکی و هزینه پایه، یک دفتر کل کسب‌وکار خرده‌فروشی شامل حساب‌هایی برای ردیابی موجودی کالا و جریان‌های فروش خواهد بود:

  • Assets:Bank:Checking – حساب جاری کسب‌وکار (برای پرداخت به تأمین‌کنندگان، هزینه‌های عملیاتی، و دریافت انتقال‌ها از پردازشگرهای پرداخت).
  • Assets:Stripe:Balance (یا Assets:PayPal، و غیره) – یک حساب تسویه برای وجوه جمع‌آوری‌شده از طریق پرداخت‌های آنلاین که هنوز به بانک نرسیده‌اند. برای مثال، وقتی مشتری از طریق Stripe پرداخت می‌کند، پول ممکن است در یک حساب Stripe بماند قبل از اینکه در دسته‌هایی به بانک شما واریز شود.
  • Assets:Inventory:Product – حساب‌های موجودی کالا برای محصولات شما. می‌توانید هر محصول (یا دسته محصولات) را به‌عنوان یک کالا در Beancount در نظر بگیرید تا مقادیر موجود را ردیابی کنید. برای مثال، Assets:Inventory:Widgets ممکن است مقدار اقلام «Widget» که در حال حاضر در انبار است را نگه دارد، به ارزش قیمت تمام‌شده آن‌ها.
  • Income:Sales – درآمد حاصل از فروش محصولات را ثبت می‌کند. ممکن است برای کانال‌های فروش مختلف از حساب‌های فرعی استفاده کنید (مثلاً Income:Sales:Online در برابر Income:Sales:InStore) اگر کسب‌وکار کانال‌های متعددی داشت، اما ما آن را با یک حساب درآمد فروش ساده نگه می‌داریم.
  • Expenses:COGS – بهای تمام‌شده کالای فروش‌رفته، برای ثبت مبنای بهای موجودی اقلام وقتی فروخته می‌شوند. این حساب به‌طور مؤثر نشان می‌دهد که موجودی فروخته‌شده در یک دوره چقدر برای شما (به‌عنوان صاحب کسب‌وکار) هزینه داشته است. این یک مؤلفه کلیدی برای محاسبه سود ناخالص است.
  • Expenses:Fees – برای کارمزدهای پردازش پرداخت و کارمزدهای پلتفرم (هزینه‌های Stripe، هزینه‌های Shopify، هزینه‌های PayPal، و غیره همه می‌توانند اینجا ثبت شوند). می‌توانید این را به حساب‌های دقیق‌تر جدا کنید (مثلاً Expenses:Fees:Stripe و Expenses:Fees:Shopify) در صورت تمایل، اما یک حساب ممکن است برای تمام کارمزدهای تراکنش کافی باشد.
  • Expenses:Operating – هزینه‌های عمومی کسب‌وکار که مستقیماً به COGS مرتبط نیستند، مانند بازاریابی، میزبانی وب، نرم‌افزار، لوازم حمل‌ونقل، و غیره. این‌ها می‌توانند به حساب‌های فرعی شکسته شوند (مثلاً Expenses:Marketing، Expenses:WebHosting، Expenses:Shipping) تا مراکز هزینه مختلف را تحلیل کنید.
  • Liabilities:SalesTax – (اختیاری، در صورت لزوم) اگر کسب‌وکار باید مالیات فروش یا VAT بر فروش جمع‌آوری کند، این حساب بدهی مالیات‌های جمع‌آوری‌شده اما هنوز واریزنشده به دولت را ردیابی می‌کند. هر فروش سپس بخش مالیات را به این حساب جدا می‌کند. این تضمین می‌کند که مالیات‌های جمع‌آوری‌شده به‌عنوان درآمد حساب نشوند و برای پرداخت به مراجع مالیاتی اختصاص داده شوند.
  • Equity:OwnerEquity – (اختیاری) نشان‌دهنده سرمایه‌گذاری مالک و سود انباشته است. وقتی کسب‌وکار شروع شد، هر تأمین مالی اولیه توسط مالک اینجا بستانکار می‌شود (با یک بدهکار به بانک یا موجودی کالا اگر نقدی یا موجودی کالا کمک کرده باشند). همچنین، اگر مالک سود را خارج کند (توزیع‌ها)، آن می‌تواند در برابر این حساب حقوق صاحبان سهام ثبت شود. این ترازنامه را متعادل نگه می‌دارد اما برای عملیات روزمره، اغلب وارد عمل نمی‌شود.

منطق: این تنظیم جریان کالا و پول را جدا می‌کند. خریدهای موجودی کالا در ابتدا در ترازنامه (به‌عنوان دارایی) ثبت می‌شوند نه بلافاصله به‌عنوان هزینه. تنها وقتی محصولات را می‌فروشید، بهای آن‌ها را هزینه می‌کنید (COGS)، درآمد را با هزینه مربوطه تطبیق می‌دهید برای محاسبه صحیح سود. درآمد از فروش به قیمت فروش ناخالص ثبت می‌شود، در حالی که کارمزدها جداگانه ثبت می‌شوند تا بتوانید هم درآمد ناخالص و هم کارمزدهای پرداخت‌شده را ببینید (و بنابراین درآمد خالص). استفاده از یک حساب تسویه مانند Assets:Stripe:Balance به تطبیق واریزها کمک می‌کند – پول از Stripe به بانک شما در مبالغ کلان جابه‌جا می‌شود، و می‌توانید آن انتقال‌ها را بدون سردرگمی ثبت کنید. یک دام رایج برای صاحبان فروشگاه جدید، غفلت از ثبت صحیح موجودی کالا است – برای مثال، هزینه کردن تمام خریدهای موجودی کالا به‌طور فوری. این ممکن است برای ردیابی جریان نقدی خوب باشد، اما سود شما را منحرف می‌کند: در ماه‌هایی که انبار می‌کنید کمتر سودآور به نظر می‌رسید، و در ماه‌هایی که می‌فروشید سودآورتر، حتی اگر موجودی کالا قبلاً خریداری شده باشد. با استفاده از یک حساب دارایی موجودی و COGS، هزینه را با فروش هم‌راستا می‌کنید. دام دیگر این است که کارمزدها یا بازپرداخت‌ها را حساب نکنید، که می‌تواند باعث شود موجودی بانک یا Stripe شما با درآمد ثبت‌شده شما مطابقت نداشته باشد. ما با ثبت صریح کارمزدها و استفاده از حساب دارایی Stripe برای ردیابی آنچه Stripe بدهکار است یا پرداخت کرده، از آن اجتناب می‌کنیم.

برای اینکه دفاتر یک کسب‌وکار کوچک به‌صورت میزبانی‌شده نگهداری شود، همراه با گزارش‌هایی که حسابدار شما بتواند بخواند و دفتری که هر زمان بتوانید صادر کنید، Beancount.io برای کسب‌وکارهای کوچک را ببینید.

ویژگی‌های Beancount که باید برجسته شوند: ردیابی موجودی کالا در Beancount از توانایی آن در رسیدگی به کالاها و هزینه‌ها بهره می‌برد. هر محصول می‌تواند یک نماد کالا باشد (مثلاً WIDGET)، که به شما اجازه می‌دهد هم مقدار و هم هزینه واحد را ثبت کنید. وقتی اقلام را می‌فروشید، مشخص می‌کنید کدام دسته هزینه را کاهش می‌دهید، و Beancount از آن برداشت می‌کند — برای مجموعه کامل به موجودی کالا و روش‌های تخصیص مراجعه کنید. روش تخصیص پیش‌فرض STRICT است، که نیاز دارد دسته بدون ابهام باشد؛ به همین دلیل مثال آن را به‌صراحت با {10 USD} نام‌گذاری می‌کند. برای اینکه Beancount به‌طور خودکار دسته را انتخاب کند (قدیمی‌ترین اول)، حساب را در دستور open خود به FIFO وادار کنید: open Assets:Inventory:Widgets WIDGET "FIFO". ما در مثال از فرم STRICT صریح استفاده خواهیم کرد. همچنین می‌توانید از فراداده یا پیوندها برای پیوند دادن فروش و ورودی‌های COGS متناظر استفاده کنید (برای مثال، استفاده از همان شماره سفارش در هر دو تراکنش، یا یک برچسب مشترک مانند #order1001 روی فروش و کاهش موجودی، که پرس‌وجو یا بررسی دوباره اینکه هر فروش یک ورودی COGS متناظر دارد را آسان می‌کند). علاوه بر این، واردکردن خودکار می‌تواند اینجا کمک کند: ممکن است از یک اسکریپت برای واردکردن داده‌های فروش از Shopify یا گزارش‌های پرداخت Stripe استفاده کنید، یا صورت‌حساب‌های بانکی خود را وارد کنید تا تراکنش‌های هزینه و پرداخت‌ها را بگیرید. خودکارسازی این کارهای ورود داده تکراری به این معناست که زمان بیشتری صرف تحلیل و زمان کمتری صرف تایپ اعداد می‌کنید.

تکه کد نمونه دفتر کل برای کسب‌وکارهای کوچک​

در زیر یک مثال Beancount مختصر برای کسب‌وکار تجارت الکترونیک بوتیک ما آورده شده است. ما خرید موجودی کالا، ثبت یک فروش (با کسر کارمزد پردازشگر پرداخت)، و ثبت بهای تمام‌شده کالای فروش‌رفته برای آن فروش را نشان می‌دهیم. در عمل، شما هزینه‌های دیگر (مانند کارمزدهای پلتفرم، هزینه‌های تبلیغات، و غیره) را نیز به‌طور مشابه مثال کارمزد نشان‌داده‌شده ثبت می‌کنید. ما USD را به‌عنوان ارز و محصولی به نام «Widget» را فرض می‌کنیم که آن را به‌عنوان یک کالا در موجودی ردیابی می‌کنیم.

1970-01-01 open Assets:Bank:Checking
1970-01-01 open Assets:Stripe:Balance
1970-01-01 open Assets:Inventory:Widgets WIDGET
1970-01-01 open Income:Sales
1970-01-01 open Expenses:COGS
1970-01-01 open Expenses:Fees
 
; Purchase inventory (50 units of Widget at $10 cost each)
2025-03-10 * "Bought 50 Widgets from SupplierCo"
  Assets:Inventory:Widgets      50 WIDGET {10 USD}
  Assets:Bank:Checking        -500 USD
 
; Sale to customer (Order #1001 via online store, 2 Widgets sold)
2025-04-05 * "Sale Order #1001 (2x Widget via Shopify)"
  Assets:Stripe:Balance         58 USD   ; net payment received after fees
  Expenses:Fees                  2 USD   ; processing fee (Stripe)
  Income:Sales                 -60 USD   ; revenue for 2 Widgets (@ $30 each)
 
; Cost of goods sold for the above sale (2 Widgets at $10 cost each)
2025-04-05 * "COGS for Order #1001 (2x Widget)"
  Expenses:COGS                 20 USD
  Assets:Inventory:Widgets     -2 WIDGET {10 USD}

اینجا گام‌به‌گام چه اتفاقی می‌افتد:

  • باز کردن حساب‌ها: ما حساب جاری، حساب موجودی Stripe، یک حساب موجودی برای Widgets (اعلام‌شده با کالای WIDGET برای ردیابی واحدها)، و حساب‌های درآمد و هزینه اصلی (Sales، COGS، Fees) را باز می‌کنیم. با اعلام Assets:Inventory:Widgets WIDGET، علامت می‌دهیم که این حساب مقادیری از کالای «WIDGET» را نگه می‌دارد. این تضمین می‌کند که Beancount می‌داند انتظار واحدهای کالا را آنجا داشته باشد، و می‌توانیم هزینه را به آن واحدها پیوست کنیم.

  • خرید موجودی کالا: در 2025-03-10، ما موجودی کالا می‌خریم – 50 واحد Widget از یک تأمین‌کننده به قیمت $10 هر کدام، با هزینه کل $500. تراکنش Assets:Inventory:Widgets را با 50 WIDGET {10 USD} بدهکار می‌کند. این یعنی 50 واحد کالای WIDGET، هر کدام با هزینه ثبت‌شده 10 USD، به حساب موجودی اضافه می‌شوند. بستانکار Assets:Bank:Checking -500 USD است (خروج نقدی). توجه کنید که ما اینجا مستقیماً یک حساب هزینه را لمس نکردیم؛ ما خرید را به‌عنوان دارایی موجودی سرمایه‌ای می‌کنیم. حالا ترازنامه ما 50 Widget به ارزش کل $500 در موجودی دارد. (اگر گزارش تراز را اجرا کنید، حساب موجودی 50 واحد WIDGET به ارزش $500 نشان می‌دهد.)

  • ثبت یک فروش (سفارش #1001): در 2025-04-05، ما یک فروش 2 Widget از طریق فروشگاه آنلاین خود ثبت می‌کنیم. شرح شامل یک شماره سفارش برای وضوح است. این تراکنش شامل سه پست است:

    • Assets:Stripe:Balance 58 USD: پول دریافت‌شده از فروش، اما در حال حاضر در Stripe (خالص از کارمزدها). فرض کنید مشتری در کل $60 پرداخت کرد؛ Stripe یک کارمزد $2 گرفت، و $58 اکنون در حساب Stripe ما است (که بعداً به بانک ما منتقل می‌شود). ما $58 را به‌عنوان یک دارایی در Stripe ثبت می‌کنیم.
    • Expenses:Fees 2 USD: کارمزد $2 به‌عنوان یک هزینه کسب‌وکار ثبت می‌شود. این تضمین می‌کند که صورت سود و زیان ما آن هزینه را منعکس کند، و دارایی Stripe به‌علاوه هزینه کارمزد با هم برابر با کل پرداخت مشتری هستند.
    • Income:Sales -60 USD: ما $60 درآمد از فروش ثبت می‌کنیم. (حساب‌های درآمد با بستانکارها افزایش می‌یابند، از این‌رو مبلغ منفی در نشانه‌گذاری Beancount).

    پس از این تراکنش، اثر خالص این است: Income:Sales به مقدار 60 افزایش می‌یابد، یک دارایی اضافی $58 (دریافتنی از Stripe)، و $2 هزینه برای کارمزد. اگر Stripe بعداً $58 را به بانک ما واریز کند، ما یک انتقال ساده مانند Assets:Bank:Checking 58 USD / Assets:Stripe:Balance -58 USD در تاریخ پرداخت ثبت می‌کنیم – این دارایی را از حساب Stripe به بانک منتقل می‌کند، بدون تأثیر بر درآمد یا هزینه (فقط جابه‌جایی دارایی). ما آن انتقال را در بالا نشان ندادیم، اما این یک گام مهم در دفترداری واقعی است تا حساب Stripe شما را پس از اینکه همه چیز منتقل شد در $0 نگه دارید.

  • ثبت COGS برای فروش: همچنین در 2025-04-05، ما یک تراکنش جداگانه برای ثبت بهای 2 Widget فروخته‌شده داریم. ما Expenses:COGS 20 USD را بدهکار می‌کنیم و Assets:Inventory:Widgets -2 WIDGET {10 USD} را بستانکار می‌کنیم. کاری که این انجام می‌دهد حذف 2 واحد از موجودی است (هر کدام هزینه $10 ثبت‌شده قبلی داشتند، بنابراین مجموع $20). ما {10 USD} را مشخص می‌کنیم تا به Beancount بگوییم از کدام دسته هزینه برداشت کند – در این مورد، با دسته‌ای که در 2025-03-10 اضافه کردیم مطابقت دارد. حالا حساب موجودی 48 Widget باقی‌مانده خواهد داشت، و یک هزینه مرتبط $480. $20 به هزینه COGS منتقل می‌شود، که در صورت سود و زیان ظاهر می‌شود و سود ناخالص را به اندازه بهای آن کالاها کاهش می‌دهد. (اگر این را ثبت نمی‌کردیم، درآمد ما نسبت به هزینه‌ها بیش‌ازحد بیان می‌شد.) ما برای وضوح از یک تراکنش جداگانه استفاده می‌کنیم، اما ممکن است فروش و COGS را در یک تراکنش چندخطی ترکیب کنید. برخی ترجیح می‌دهند آن‌ها را همانطور که نشان داده شد برای خوانایی و تطبیق جدا کنند (می‌توانید هر ورودی COGS را به‌وضوح به یک سفارش پیوند دهید). ما همچنین شماره سفارش را در شرح تکرار کردیم تا به‌راحتی ببینیم که این ورودی COGS با سفارش #1001 مطابقت دارد. یک رویه خوب این است که اطمینان حاصل کنید هر فروش یک ورودی COGS متناظر دارد وقتی موجودی کالا دخیل است – از دست دادن یکی به این معناست که شمارش موجودی شما اشتباه است. دامی که باید از آن اجتناب کرد فراموش کردن حذف موجودی برای یک فروش است، که ترازنامه شما را با سهام خیالی و هزینه‌های کم‌بیان‌شده رها می‌کند. استفاده از ویژگی‌های موجودی Beancount (نشانه‌گذاری هزینه {}) کمک می‌کند اگر بخواهید واحدهای بیشتری از آنچه در دست دارید حذف کنید (نرم‌افزار در آن صورت خطا می‌دهد).

خلاصه: یک کسب‌وکار کوچک با استفاده از Beancount می‌تواند یک سیستم حسابداری به‌طور شگفت‌آوری قوی حفظ کند. با ساختاربندی حساب‌ها برای ردیابی پول کجاست، از کجا می‌آید، و هزینه‌ها چگونه جریان دارند، تصویری دقیق از سودآوری به دست می‌آورید. مثال ما نشان داد چگونه موجودی کالا و فروش را مدیریت کنید؛ شما به‌طور مشابه تراکنش‌های دیگر مانند پرداخت قبض اینترنت (Expenses:Operating:Internet در برابر Assets:Bank:Checking)، دریافت وام یا سرمایه‌گذاری (Assets:Bank در برابر Liabilities:Loan یا Equity:OwnerEquity)، یا پرداخت مالیات فروش (Liabilities:SalesTax در برابر Assets:Bank در زمان واریز) را ثبت می‌کنید. کلید کار ثبات است: هر نوع تراکنش را با همان الگو ثبت کنید، و Beancount دفاتر را متعادل نگه می‌دارد. با ویژگی‌هایی مانند واردکردن خودکار داده (برای مثال، کشیدن کارمزدهای ماهانه Stripe یا تراکنش‌های بانکی) و برچسب‌ها/پیوندهای سفارشی (برای مرتبط کردن تراکنش‌های مرتبط مانند فروش و بازپرداخت‌ها)، سیستم می‌تواند هم منعطف و هم کارآمد باشد. نتیجه یک دفتر کل سازمان‌یافته است که می‌تواند با رشد کسب‌وکار مقیاس‌پذیر باشد – می‌توانید حساب‌های موجودی محصول جدید، دسته‌های هزینه جدید، یا جریان‌های درآمد اضافی (مثلاً یک بازار آنلاین جدید) را بدون بازسازی کل سیستم اضافه کنید.

امور مالی شخصی​

در نهایت، استفاده از Beancount برای امور مالی شخصی یا خانوار را در نظر بگیرید. این تنظیم برای یک فرد یا خانواده است که هزینه‌های روزانه، حساب‌های بانکی، کارت‌های اعتباری، وام‌ها، و سرمایه‌گذاری‌ها را مدیریت می‌کند. تأکید اینجا بر ردیابی پول شما کجا می‌رود (هزینه‌ها)، از کجا می‌آید (درآمد)، و چگونه ذخیره یا سرمایه‌گذاری می‌شود (دارایی‌ها و بدهی‌ها) است. Beancount می‌تواند اپلیکیشن‌های بودجه‌بندی را جایگزین یا تقویت کند با ارائه یک نمای شفاف و قابل‌سفارشی‌سازی از امور مالی شما، با دقت حسابداری دوطرفه که تضمین می‌کند هیچ چیز دوبار حساب یا فراموش نشود.

حساب‌های کلیدی برای امور مالی شخصی: یک دفتر کل امور مالی شخصی معمولاً شامل انواع مختلفی از حساب‌های دارایی، بدهی، درآمد و هزینه خواهد بود:

  • Assets:Bank:Checking – حساب جاری اصلی شما برای واریز درآمد و پرداخت قبوض.
  • Assets:Bank:Savings – حساب پس‌انداز برای صندوق اضطراری یا اهداف خاص. (ممکن است چندین حساب پس‌انداز یا سرمایه‌گذاری داشته باشید – هر کدام می‌تواند یک حساب دارایی باشد).
  • Assets:Cash – اگر از پول نقد برای هزینه‌ها استفاده می‌کنید، ممکن است یک حساب نقدی برای ردیابی برداشت‌ها و خرج کردن نقدی داشته باشید.
  • Assets:Investments:Broker – حساب‌های سرمایه‌گذاری، مانند کارگزاری، بازنشستگی 401(k)/IRA، و غیره. این‌ها ممکن است بر اساس انواع سرمایه‌گذاری بیشتر شکسته شوند یا فقط به‌عنوان یک حساب به ازای هر مؤسسه جمع شوند. برای مثال، Assets:Investments:VanguardIRA یا Assets:Investments:Robinhood. ردیابی سرمایه‌گذاری‌ها ممکن است شامل کالاها برای سهام یا صندوق‌ها باشد، اما اگر این خیلی دقیق است، می‌توانید به‌سادگی کمک‌ها و موجودی حساب را ردیابی کنید.
  • Liabilities:CreditCard:Name – یک حساب به ازای هر کارت اعتباری (مثلاً Liabilities:CreditCard:Visa یا بر اساس نام بانک). تمام خریدها روی کارت اینجا ثبت می‌شوند (با یک هزینه معادل)، و پرداخت‌ها به کارت انتقال‌هایی هستند که این بدهی را کاهش می‌دهند.
  • Liabilities:Loan:Name – هر وامی (وام دانشجویی، وام مسکن، وام خودرو) می‌تواند با یک حساب بدهی ردیابی شود. موجودی اصل را ثبت می‌کنید و هر پرداخت را به بهره (هزینه) و اصل (کاهش بدهی) تقسیم می‌کنید. این یک جنبه پیشرفته است، اما برای تصویر مالی کامل مهم است.
  • Income:Salary (و/یا Income:Bonus، Income:Interest، و غیره) – برای ثبت حقوق، پاداش‌ها، درآمد بهره، سود سهام، و غیره. حساب‌های درآمد به شما اجازه می‌دهند کل درآمد خود را از منابع مختلف ببینید. (اگر حقوق شما قبلاً مالیات کسر شده دارد، ممکن است واریز خالص به حساب جاری را به‌عنوان درآمد ثبت کنید، یا ناخالص و کسر مالیات را به‌عنوان هزینه یا بدهی ثبت کنید – رویکردهای مختلفی وجود دارد، اما بسیاری فقط حقوق خالص را به‌عنوان درآمد برای سادگی در دفاتر شخصی ثبت می‌کنند.)
  • Expenses: معمولاً متعدد، تقسیم‌شده به دسته‌های معنادار برای شما. برای مثال: Expenses:Housing:Rent، Expenses:Food:Groceries، Expenses:Food:DiningOut، Expenses:Utilities:Electricity، Expenses:Entertainment، Expenses:Travel، Expenses:Taxes، Expenses:Misc – هر دسته‌ای که عادات خرج کردن شما را منعکس کند. می‌توانید به هر میزان که می‌خواهید دقیق یا کلی باشید. سلسله‌مراتب حساب به جمع‌آوری کمک می‌کند (مثلاً Expenses:Food هم خواربار و هم غذا خوردن در بیرون را جمع می‌کند). رویه رایج داشتن یک سلسله‌مراتب برای گروه‌های اصلی است (Housing، Food، Transportation، Healthcare، و غیره).
  • Equity:Opening-Balances – برای مقداردهی اولیه موجودی حساب‌ها وقتی دفتر کل خود را شروع می‌کنید استفاده می‌شود (به‌طوری که کل دارایی منهای بدهی برابر با ارزش خالص شروع شما ثبت‌شده در حقوق صاحبان سهام باشد). پس از شروع، ممکن است همچنین از Equity:Retained-Earnings یا مشابه آن برای نشان دادن سود خالص انباشته استفاده کنید (هرچند در امور مالی شخصی، معمولاً به‌سادگی اجازه می‌دهید درآمد منهای هزینه به ارزش خالص تبدیل شود). حساب‌های حقوق صاحبان سهام در روزمره کمتر قابل مشاهده‌اند اما تضمین می‌کنند معادله حسابداری متعادل باشد.

منطق: تنظیم امور مالی شخصی درباره ثبت زندگی مالی شما در یک سیستم منسجم است. هر حساب بالا برای جدا کردن انواع مختلف امور مالی خدمت می‌کند تا بتوانید به سؤالاتی مانند «این ماه چقدر خرج غذا کردم؟» (با جمع کردن Expenses:Food:*)، «چقدر بدهی باقی‌مانده دارم؟» (با نگاه به حساب‌های Liabilities)، یا «ارزش خالص من چقدر است؟» (دارایی‌ها منهای بدهی‌ها) پاسخ دهید. یک مزیت بزرگ حسابداری دوطرفه اینجا دقت است: برای مثال، وقتی یک قبض خواربار $100 را به کارت اعتباری خود شارژ می‌کنید، آن را به‌عنوان یک هزینه و افزایش بدهی ثبت می‌کنید. بعداً، وقتی کارت اعتباری را پرداخت می‌کنید، یک انتقال از بانک به کارت ثبت می‌کنید – این بدهی را پرداخت می‌کند اما هزینه خواربار را دوبار حساب نمی‌کند (که قبلاً ثبت شده بود). یک دام رایج بدون حسابداری دوطرفه این است که پرداخت کارت اعتباری را خودش به‌عنوان یک هزینه در نظر بگیرید، که به‌طور مؤثر $100 را دو بار می‌شمارد. Beancount این را به‌طور طراحی‌شده جلوگیری می‌کند. دام دیگری که باید از آن اجتناب کرد، عدم تطبیق حساب‌ها است: با Beancount، می‌توانید از تأییدهای موجودی یا دستور balance استفاده کنید تا مطمئن شوید، برای مثال، موجودی حساب جاری شما در دفتر کل با صورت‌حساب واقعی بانک مطابقت دارد. این ورودی‌های گم‌شده یا تکراری را می‌گیرد.

ویژگی‌های Beancount که باید برجسته شوند: برای امور مالی شخصی، واردکردن خودکار به‌ویژه مفید است به دلیل حجم تراکنش‌ها. می‌توانید از چارچوب واردکننده Beancount یا اسکریپت‌های جامعه برای واردکردن تراکنش‌های بانکی، صورت‌حساب‌های کارت اعتباری، و حتی تراکنش‌های سرمایه‌گذاری از CSV، OFX، یا منابع API استفاده کنید. این یعنی زمان کمتری صرف تایپ دستی هر خرید قهوه می‌کنید. برچسب‌های سفارشی برای برش داده‌ها به روش‌هایی که حساب‌ها ممکن است نتوانند مفید هستند. برای مثال، تمام هزینه‌های مرتبط با تعطیلات را با #vacation2025 برچسب‌گذاری کنید بدون توجه به اینکه پرواز، هتل، یا غذا خوردن در بیرون هستند – سپس می‌توانید کل هزینه آن تعطیلات را به‌راحتی پرس‌وجو کنید. یا هزینه‌های خاصی را به‌عنوان #deductible برچسب‌گذاری کنید اگر نیاز دارید اقلام قابل‌کسر مالیات را برای مرجع بعدی ردیابی کنید. همچنین می‌توانید قبوض مکرر را برچسب‌گذاری کنید (مثلاً #monthly) تا همه اشتراک‌ها و هزینه‌های ثابت خود را سالانه بررسی کنید. فراداده می‌تواند برای پیوست یادداشت یا رسید استفاده شود (برای مثال، receipt: "path/to/file.jpg" برای یادداشت اینکه یک تصویر رسید ذخیره‌شده دارید، یا category: "Work Expense" اگر اقلام قابل‌بازپرداخت را ردیابی می‌کنید). انعطاف‌پذیری برچسب‌ها و فراداده به این معناست که می‌توانید سیستم را با نیازهای ردیابی شخصی خود تطبیق دهید بدون ایجاد ده‌ها حساب اضافی.

تبدیل‌کننده را قبل از نوشتن واردکننده امتحان کنید

خروجی بانک ماه گذشته را از طریق تبدیل‌کننده CSV به Beancount، یا یک دانلود .ofx، .qfx یا .qif از طریق OFX & QIF به Beancount اجرا کنید. برای بیشتر دفاتر کل شخصی این کافی است، و شکل ورودی‌ای که یک واردکننده سفارشی باید تولید کند را به شما نشان می‌دهد.

نمونه قطعه کد دفتر کل امور مالی شخصی​

در زیر یک نمونه‌کد مثال از یک دفتر کل Beancount شخصی آورده شده است که چند تراکنش معمولی را ثبت می‌کند: یک هزینه روزانه شارژشده به کارت اعتباری، یک قبض مکرر پرداخت‌شده از حساب جاری، و یک کمک به یک حساب سرمایه‌گذاری بازنشستگی. (برای اختصار، فرض می‌کنیم یک تنظیم اولیه برای باز کردن حساب‌ها و ثبت هر درآمد حقوقی انجام شده است؛ اینجا ما روی سمت خرج کردن و پس‌انداز تمرکز می‌کنیم.)

1970-01-01 open Assets:Bank:Checking
1970-01-01 open Liabilities:CreditCard:Visa
1970-01-01 open Expenses:Food:Coffee
1970-01-01 open Expenses:Housing:Rent
1970-01-01 open Assets:Investment:401k
 
; Daily spending example (coffee on a credit card)
2025-09-10 * "Starbucks Coffee" #daily
  Expenses:Food:Coffee       5.50 USD
  Liabilities:CreditCard:Visa   -5.50 USD
 
; Recurring monthly bill (rent paid from checking)
2025-09-01 * "Apartment Rent September" #recurring
  Expenses:Housing:Rent    1200 USD
  Assets:Bank:Checking    -1200 USD
 
; Retirement contribution (transfer from checking to 401k investment)
2025-09-15 * "401(k) Contribution" #retirement
  Assets:Investment:401k    500 USD
  Assets:Bank:Checking     -500 USD

بیایید این تراکنش‌ها را تفسیر کنیم:

  • باز کردن حساب‌ها: ما حساب جاری، یک حساب کارت اعتباری Visa، یک حساب هزینه قهوه (به‌عنوان مثال یک زیردسته از هزینه‌های Food)، یک حساب هزینه اجاره، و یک حساب سرمایه‌گذاری 401k را باز می‌کنیم. در یک دفتر کل واقعی، تمام حساب‌هایی که قصد استفاده از آن‌ها را دارید باز می‌کنید (پس‌انداز، سایر دسته‌های هزینه، درآمد، و غیره). ما آن را فقط به آنچه برای نمونه‌کد لازم است محدود می‌کنیم.
  • هزینه روزانه – قهوه: در 2025-09-10، یک خرید قهوه $5.50 ثبت می‌شود. هزینه تحت Expenses:Food:Coffee دسته‌بندی می‌شود، و چون با کارت اعتباری Visa پرداخت شد، ما Liabilities:CreditCard:Visa را بستانکار (افزایش) می‌کنیم. برچسب #daily اضافه شده تا نشان دهد این یک قلم خرج روزمره بود – شاید بعداً بخواهید تمام خرج‌های اختیاری روزانه را فیلتر کنید. توجه کنید که پس از این، حساب کارت اعتباری موجودی $5.50 نشان می‌دهد (یعنی $5.50 به Visa بدهکار هستید). اگر این قهوه را نقدی پرداخت کرده بودید، تراکنش به جای آن Assets:Cash را بستانکار می‌کرد (کاهش نقدی موجود). اگر خرید با کارت نقدی بود، Assets:Bank:Checking را بستانکار می‌کرد. مکانیک مشابه است، فقط حساب‌های متفاوت.
  • قبض مکرر – اجاره: در 2025-09-01، ما پرداخت اجاره ماهانه $1200 را ثبت می‌کنیم. این از حساب جاری بیرون می‌آید (بستانکار Assets:Bank:Checking) و به‌عنوان Expenses:Housing:Rent دسته‌بندی می‌شود. ما آن را با #recurring برچسب‌گذاری کردیم تا علامت‌گذاری کنیم که این یک قبض تکراری است. در یک دفتر کل کامل، ممکن است هر ماه یک ورودی دقیقاً مانند این داشته باشید. (Beancount یک ویژگی تراکنش مکرر خودکار داخلی ندارد، اما می‌توانید آن را با اسکریپت‌ها به دست آورید یا به‌سادگی هر ماه کپی-پیست کنید. برچسب‌ها کمک می‌کنند بعداً اطمینان حاصل کنید که یک ماه را از دست نداده‌اید یا اجاره یک سال را سریع جمع کنید.) برخی کاربران از ویژگی تراکنش دوره‌ای از طریق چارچوب واردکننده Beancount برای تولید خودکار این‌ها استفاده می‌کنند، اما این یک کاربرد پیشرفته فراتر از دامنه اینجا است. نکته کلیدی این است که این تراکنش به‌وضوح نشان می‌دهد پول شما کجا رفت – یک هزینه برای مسکن – و موجودی بانک کاهش‌یافته شما. یک دام که باید مراقب آن بود: اگر هزینه‌ها را به اشتراک می‌گذارید یا هم‌خانه دارید، ممکن است فقط بخشی از اجاره را پرداخت کنید؛ در آن صورت، می‌توانید تراکنش را به سهم خود و سهمی که شخص دیگری پرداخت می‌کند تقسیم کنید (احتمالاً ثبت سهم دیگر به‌عنوان Income:Reimbursements اگر به شما پرداخت می‌کنند). در مورد ساده ما، ما مبلغ کامل را پرداخت می‌کنیم.
  • کمک بازنشستگی: در 2025-09-15، $500 از حساب جاری به یک حساب سرمایه‌گذاری 401(k) منتقل می‌شود. این یک هزینه نیست بلکه انتقال دارایی از یک شکل (نقد) به شکل دیگر (صندوق بازنشستگی) است. تراکنش Assets:Investment:401k را بدهکار و Assets:Bank:Checking را بستانکار می‌کند. ما آن را با #retirement برای وضوح برچسب‌گذاری کردیم. پس از این، موجودی حساب جاری شما 500 کاهش می‌یابد، و موجودی حساب 401k شما در دفتر کل به هر آنچه 500 USD نشان می‌دهد افزایش می‌یابد (بسته به اینکه چگونه سرمایه‌گذاری‌ها را ردیابی می‌کنید، ممکن است متعاقباً با آن نقد واحدهای صندوق مشترک بخرید – که یک تراکنش دیگر در حساب سرمایه‌گذاری خواهد بود، مثلاً خرید X سهم از یک صندوق به قیمت Y، با خروج نقد از دارایی 401k). در یک دفتر کل شخصی پایه، ممکن است به‌سادگی 401k را مانند یک حساب پس‌انداز در نظر بگیرید و موجودی آن را به‌طور دوره‌ای به‌روزرسانی کنید یا کمک‌هایی مانند این را ثبت کنید و شاید از نقل‌قول‌های قیمت برای رشد استفاده کنید. نکته مهم این است که این تراکنش یک انتقال است، نه یک هزینه – این دارایی‌های شما را می‌سازد. بسیاری از ابزارهای بودجه‌بندی کمک‌های بازنشستگی را به‌عنوان «هزینه» حساب می‌کنند (چون از حساب جاری شما خارج می‌شود)، اما از نظر حسابداری، این فقط جابه‌جایی پول به یک جیب دیگر است. این تمایز به شما کمک می‌کند نرخ پس‌انداز را در برابر خرج کردن درک کنید.

برای سرمایه‌گذاری‌های ثبت‌شده به‌عنوان واحدهای اوراق بهادار پشتیبانی‌شده، Live Prices می‌تواند نقل‌قول‌های ارزیابی را در یک دفتر کل میزبانی‌شده نگه دارد. یک موجودی بازنشستگی فقط نقدی نمی‌تواند ارزش‌های بازار اوراق بهادار را از یک فید به دست آورد؛ دارایی‌های واقعی را ثبت کنید و هزینه‌های خرید آن‌ها را صریح نگه دارید.

اگر تراکنشی برای پرداخت قبض کارت اعتباری داشتیم، مانند انتقال پول از Checking به بدهی CreditCard به نظر می‌رسید (مثلاً Liabilities:CreditCard:Visa 100 USD / Assets:Bank:Checking -100 USD). این موجودی کارت اعتباری را دوباره کاهش می‌دهد (شاید به صفر اگر آن را کامل پرداخت کرده باشید) و موجودی بانک شما را به همان نسبت کاهش می‌دهد، با هیچ تأثیری بر حساب‌های هزینه – چون شما هزینه‌ها را قبلاً در زمان خرید ثبت کرده بودید. به یاد داشتن مدیریت کارت‌های اعتباری به این روش برای ردیابی دقیق امور مالی شخصی حیاتی است. ممکن است پرداخت را نیز برچسب‌گذاری کنید (برخی از #cc-payment یا مشابه استفاده می‌کنند) یا دوره صورت‌حساب را در شرح برای وضوح بگنجانید.

خلاصه: یک دفتر کل امور مالی شخصی در Beancount به تحمیل نظم و ساختار بر ردیابی پول شما کمک می‌کند. با دسته‌بندی تراکنش‌ها با حساب‌ها (و اختیاری برچسب‌ها)، می‌توانید گزارش‌های روشنگری تولید کنید: خرج ماهانه به تفکیک دسته، مجموع سالانه، چقدر پس‌انداز کردید، و غیره. رویکرد دوطرفه به این معناست که هر دلار حسابرسی می‌شود: اگر موجودی یک حساب کاهش می‌یابد، جایی رفته است (حساب دیگری افزایش می‌یابد). این خطاها را می‌گیرد و از مشکل رایج «پول گم‌شده» در ابزارهای ردیابی ساده‌تر جلوگیری می‌کند. با خودکارسازی، می‌توانید بیشتر تراکنش‌ها را وارد کنید و سپس فقط آن‌ها را بررسی و طبقه‌بندی کنید، که نگهداری را کاملاً امکان‌پذیر می‌کند. به مرور زمان، یک دفتر خاطرات مالی جامع می‌سازید – حتی می‌تواند چیزهایی مانند تقسیم صورت‌حساب با دوستان (با استفاده از حساب‌های حقوق صاحبان سهام یا حساب‌های پرداختنی/دریافتنی)، ردیابی استهلاک وام، یا عملکرد سرمایه‌گذاری را مدیریت کند، اگر انتخاب کنید به آن حوزه‌ها گسترش دهید. حتی در ابتدایی‌ترین شکل خود (همانطور که در نمونه‌کد نشان داده شد)، Beancount وضوحی درباره خرج روزانه، تعهدات مکرر، و پیشرفت به سمت اهداف بلندمدت (مانند پس‌انداز بازنشستگی) به شما می‌دهد. و چون متن ساده است، کنترل کامل دارید: می‌توانید اسکریپت‌نویسی کنید، پرس‌وجو کنید، یا آن را با ابزارهای دیگر ادغام کنید (مانند رابط وب Fava برای یک نمای دوستانه). به‌طور خلاصه، این تنظیم امور مالی شخصی شما را به داده‌ای تبدیل می‌کند که می‌توانید تحلیل کنید و به آن اعتماد کنید، در حالی که به‌قدر کافی ساده می‌ماند تا زحمت‌آور نباشد.


با تطبیق دفتر کل Beancount خود با موقعیت خود – چه فریلنسری باشید، چه کسب‌وکار کوچکی را اداره کنید، یا وجوه شخصی را مدیریت کنید – از مزیت یک رویکرد سیستماتیک دوطرفه به ردیابی مالی با انعطاف‌پذیری یک سیستم متن ساده بهره‌مند می‌شوید. این پیکربندی‌های نمونه الگوهای اصلی را نشان می‌دهند که می‌توانید بر آن‌ها بسازید. با رشد کسب‌وکار شما یا پیچیده‌تر شدن زندگی مالی شما، می‌توانید نمودار حساب‌ها را گسترش دهید یا از ویژگی‌های پیشرفته (مانند بودجه‌ها، تحلیل واریانس، یا مدیریت چندارزی) در صورت نیاز استفاده کنید. کلید کار شروع با یک ساختار تمیز و منطقی (مانند آنچه نشان داده شد) و ثبت مداوم تراکنش‌ها است. با آن در جای خود، Beancount یک متحد قدرتمند در درک و مدیریت امور مالی شما خواهد بود، در تمام صنایع و سناریوهای شخصی به یک اندازه. حسابداری خوش بگذرد!

منبع: https://beancount.io/fa/docs/industry-specific-setups