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

1 پست با برچسب "financial reporting"

مشاهده همه برچسب‌ها

هزینه‌های معوق در Beancount: راهنمای عملی (با مثال‌های دفترچه کپی-پیست)

· 8 دقیقه مطالعه
Mike Thrift
Mike Thrift
Marketing Manager

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

TL;DR ⚡

  • هزینه‌های معوق هزینه‌هایی هستند که در این دوره متحمل شده‌اید اما هنوز پرداخت نکرده‌اید. تا زمانی که نقدینگی خارج نشود به‌عنوان بدهی ثبت می‌شوند.
  • در Beancount این کار ساده است: یک حساب Expenses: را بدهکار و یک حساب Liabilities:Accrued: را بستانکار می‌کنید. بعداً وقتی پرداخت می‌کنید بدهی را پاک می‌کنید.
  • برای گزارش می‌توانید با اجرای bean-query همراه با CLOSE ON و CLEAR، مانیتی از ترازنامه در تاریخ مشخصی بگیرید.

2025-08-24-accrued-expenses-in-beancount-a-practical-guide

هزینه معوق چیست؟

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

نمونه‌های رایج شامل:

  • دستمزدهای کارمندان که در پایان ماه کسب شده‌اند اما در ماه بعد پرداخت می‌شوند.
  • آب و برق که در دسامبر مصرف شده‌اند اما تا ژانویه صورتحساب نمی‌شود.
  • بهره وام که در طول ماه انباشته شده اما هنوز از حساب شما برداشت نشده است.

با ثبت این هزینه‌ها در زمان وقوع، تصویر دقیق‌تری از عملکرد مالی شرکت در آن دوره به دست می‌آورید.

نگاه Beancount به این موضوع (در ۳۰ ثانیه)

Beancount یک سیستم حسابداری دوطرفه مبتنی بر متن ساده است. همه چیز یک دستور یا تراکنش تاریخ‌دار در یک فایل متنی است. سیستم بر پایه پنج نوع حساب اصلی ساخته شده است: Assets, Liabilities, Equity, Income, و Expenses.

ورودی‌ها همیشه بر اساس تاریخ مرتب می‌شوند. نکته مهم این است که بررسی‌های balance قبل از پردازش تراکنش‌های همان روز انجام می‌شود. این برای زمانی که بررسی‌ها و ورودی‌های معکوس می‌گذارید، اهمیت دارد.

در نهایت، زبان bean-query روشی قدرتمند شبیه SQL برای تولید گزارش‌ها فراهم می‌کند. با عملگرهایی مثل OPEN ON, CLOSE ON و CLEAR می‌توانید نماهای دقیق «به تاریخ» برای صورت‌های مالی بسازید.

نمودار حساب‌ها (پیشنهادی)

یک نمودار حساب‌های تمیز و سلسله‌مراتبی بهترین دوست شماست. برای هزینه‌های معوق، ساختار به‌سادگی قابل‌درک است. شما به موارد زیر نیاز دارید:

  • یک حساب هزینه: به عنوان مثال Expenses:Utilities, Expenses:Payroll:Wages
  • یک حساب بدهی متناظر: به عنوان مثال Liabilities:Accrued:Utilities, Liabilities:Accrued:Payroll
  • حساب نقدی شما: به عنوان مثال Assets:Bank:Checking

Beancount پنج نوع حساب سطح‑بالا را تحمیل می‌کند. نگه داشتن نام‌های حساب به‌صورت منظم، پرس‌و‌جو و گزارش‌گیری را در آینده بسیار ساده می‌کند.

الگوی اصلی (بدون افزونه، بدون جادو)

این مستقیم‌ترین روش برای مدیریت تعهدات در Beancount است. دو گام شامل تعهد هزینه در پایان ماه و پاک‌سازی بدهی هنگام پرداخت می‌شود.

گام ۱: تعهد هزینه در پایان ماه

در آخرین روز دوره، هزینه را ثبت کرده و بدهی را ایجاد می‌کنید.

2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities

گام ۲: پاک‌سازی تعهد هنگام پرداخت

زمانی که فاکتور می‌آید و پرداخت می‌کنید، دیگر حساب هزینه را دوباره استفاده نمی‌کنید. به‌جای آن، حساب بدهی را بدهکار می‌کنید تا پاک شود.

2025-03-05 * "Pay Feb electricity - City Power"
Liabilities:Accrued:Utilities 120.00 USD
Assets:Bank:Checking

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

جایگزین: ورودی معکوس در روز اول

اگر سبک کلاسیک «معکوس خودکار» را ترجیح می‌دهید، می‌توانید معکوس ورودی تعهد را در اولین روز ماه بعدی ثبت کنید. سپس فاکتور واقعی فروشنده را همان‌طور که معمولاً می‌کنید، به حساب هزینه بگذارید.

گام ۱: تعهد در پایان ماه (همان‌طور که قبلاً)

2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities

گام ۲: معکوس در اولین روز ماه بعد

2025-03-01 * "Reverse Feb electricity accrual" #reversal
Liabilities:Accrued:Utilities 120.00 USD
Expenses:Utilities

گام ۳: ثبت پرداخت به‌صورت معمول

2025-03-05 * "City Power - February bill"
Expenses:Utilities 120.00 USD
Assets:Bank:Checking

نکته درباره بررسی‌ها: به‌خاطر داشته باشید که بررسی‌های balance قبل از تراکنش‌های همان روز ارزیابی می‌شوند. اگر می‌خواهید مانده حساب Liabilities:Accrued:Utilities را بررسی کنید، بررسی را در 2025-02-28 قرار دهید تا تعهد را تأیید کنید یا در 2025-03-01 بعد از ورودی معکوس تا صفر باشد. قرار دادن آن قبل از معکوس در 2025-03-01 منجر به شکست نادرست می‌شود.

شش تعهد رایج (الگوهای کپی‑پیست) 📋

در ادامه مثال‌های آماده برای تعهدهای رایج کسب‌وکار آورده شده است.

۱. اجاره‌ای که هنوز فاکتور نشده

2025-01-31 * "Accrue January rent" #accrual
Expenses:Rent 3000.00 USD
Liabilities:Accrued:Rent

۲. دستمزدهای کسب‌شده اما پرداخت‌نشده

2025-03-31 * "Accrue March wages" #accrual
Expenses:Payroll:Wages 8500.00 USD
Liabilities:Accrued:Payroll

۳. پرداخت مرخصی (PTO) کسب‌شده

2025-03-31 * "Accrue PTO earned in March" #accrual
Expenses:Payroll:PTO 900.00 USD
Liabilities:Accrued:Payroll

۴. بهره انباشته بر وام

2025-02-29 * "Accrue monthly loan interest" #accrual
Expenses:Interest 210.00 USD
Liabilities:Accrued:Interest

۵. هزینه‌های حرفه‌ای (حسابرسی/حقوقی)

2025-12-31 * "Accrue year-end audit fees" #accrual
Expenses:Professional:Audit 4200.00 USD
Liabilities:Accrued:Professional

۶. آب و برق مصرف‌شده اما هنوز فاکتور نشده

2025-04-30 * "Accrue April utilities" #accrual
Expenses:Utilities 95.00 USD
Liabilities:Accrued:Utilities

گزارش‌گیری: «چه مقدار بدهکارم تا تاریخ معینی؟»

bean-query ابزار شما برای یافتن پاسخ‌هاست. در اینجا نحوه دریافت یک تصویر دقیق از ترازنامه برای هزینه‌های معوق آورده شده است.

دریافت تمام مانده‌های بدهی معوق در پایان دوره

این پرس‌و‌جو مانده هر حساب بدهی معوق را تا ۳۱ مارس ۲۰۲۵ نشان می‌دهد.

bean-query main.beancount '
SELECT account, UNITS(SUM(position)) AS balance
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued"
GROUP BY 1
ORDER BY 1;
'
  • OPEN ON بالانس‌های شروع دوره را تنظیم می‌کند.
  • CLOSE ON تراکنش‌ها را قبل از این تاریخ قطع می‌کند (به‌صورت انحصاری). به همین دلیل از 2025-04-01 استفاده می‌کنیم تا داده‌ها تا و شامل 2025-03-31 باشند.
  • CLEAR درآمدها و هزینه‌ها را صفر می‌کند تا نمایی تمیز از ترازنامه (دارایی‌ها، بدهی‌ها، حقوق صاحبان سهام) داشته باشید.

مشاهده ثبت تمام ورودی‌های معوق

اگر می‌خواهید تاریخچهٔ خام تراکنش‌های حساب‌های معوق را ببینید:

bean-query main.beancount '
SELECT date, payee, narration, position
WHERE account "^Liabilities:Accrued"
ORDER BY date;
'

دریافت مجموع کلی تمام معوق‌ها

برای یک خلاصهٔ سریع از کل مبلغی که بدهکار هستید:

bean-query main.beancount '
SELECT UNITS(SUM(position)) AS total_accruals
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued";
'

کنترل‌ها و «نکات» خاص Beancount

  • زمان‌بندی بررسی‌های بالانس: همان‌طور که گفته شد، بررسی‌ها در شروع روز انجام می‌شوند. 2025-03-01 balance … قبل از هر تراکنش در همان روز اجرا می‌شود. برنامه‌ریزی مناسب ضروری است.
  • نام‌گذاری و سلسله‌مراتب: درخت منظم مانند Liabilities:Accrued:* فقط برای ظاهر نیست؛ پرس‌و‌جوها را ساده می‌کند و گزارش‌ها را بلافاصله قابل‌فهم می‌سازد.
  • استفاده محتاطانه از Pad: دستور pad می‌تواند بالانس‌های افتتاحیه را تنظیم کند، اما از استفادهٔ آن برای «رفع» تعهدات مکرر خودداری کنید. ورودی‌های صریح ردپای حسابرسی واضح‌تری می‌گذارند.
  • گزارش‌گیری به‌صورت «به تاریخ»: برای تصاویر ترازنامه، همیشه از ترکیب OPEN … CLOSE … CLEAR در bean-query استفاده کنید. این کار از آلودگی مجموع بدهی‌ها توسط حساب‌های درآمد و هزینه جلوگیری می‌کند.

پیش‌پرداخت در مقابل معوق (مقایسهٔ سریع)

آسان است که این دو را با هم اشتباه بگیرید؛ آن‌ها تصویرهای آینه‌ای یکدیگرند:

  • هزینه معوق: سرویس اکنون مصرف شده، نقدینگی بعداً پرداخت می‌شود. این یک بدهی ایجاد می‌کند.
  • هزینه پیش‌پرداخت: نقدینگی اکنون پرداخت می‌شود، سرویس بعداً مصرف می‌شود. این یک دارایی ایجاد می‌کند.

منطق حسابداری در Beancount یکسان است؛ فقط حساب‌ها متفاوتند (Assets:Prepaid:* در مقابل Liabilities:Accrued:*).

قالب آماده (در ابتدای فایل)

در ادامه دستورات open مورد نیاز برای مثال‌های این مقاله آورده شده است. یک‌بار این خطوط را در بالای فایل دفترچهٔ خود اضافه کنید.

; --- Accounts (open once) ---
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Expenses:Utilities
2025-01-01 open Expenses:Payroll:Wages
2025-01-01 open Expenses:Interest
2025-01-01 open Expenses:Professional:Audit
2025-01-01 open Liabilities:Accrued:Utilities
2025-01-01 open Liabilities:Accrued:Payroll
2025-01-01 open Liabilities:Accrued:Interest
2025-01-01 open Liabilities:Accrued:Professional

نکات نهایی

اگر دفاتر خود را بر پایه نقدی نگه می‌دارید، اصلاً تعهدی ثبت نمی‌کنید—هزینه‌ها دقیقاً زمانی که پرداخت می‌شوند ثبت می‌شوند. اگر بر پایه تعهدی کار می‌کنید، استفاده از الگوهای بالا برای تطبیق هزینه‌ها با دوره‌ای که سرویس را مصرف کرده‌اید، ضروری است.

این مثال‌ها راهنمای کلی آموزشی هستند. برای موارد خاص صنعتی—به‌ویژه پاداش‌ها، مالیات‌های حقوقی و آستانه‌های سرمایه‌گذاری—همیشه با حسابدار خود مشورت کنید.