تصور کنید که بیمه سالانه ماشین خود را به صورت یک جا به مبلغ ۶۰۰ دلار پرداخت میکنید. اگر این مبلغ را به عنوان یک هزینه یکباره ثبت کنید، در حسابهای آن ماه یک هزینه بزرگ نشان داده میشود، در حالی که ۱۱ ماه بعدی هیچ هزینه بیمهای نخواهند داشت. این موضوع تصویر مالی ماهانه شما را مخدوش میکند و درک هزینههای عملیاتی واقعی و بودجهبندی مؤثر را دشوار میسازد.
راه حل استهلاک است: روش حسابداری برای پخش یک هزینه واحد در بازه زمانی که به آن مربوط میشود. این آموزش به شما نشان میدهد که چگونه با استفاده از یک افزونه Fava، استهلاک را بهطور یکپارچه در Beancount پیادهسازی کنید.
استهلاک چیست؟
استهلاک فرآیند هزینه کردن تدریجی بهای یک دارایی نامشهود یا یک قلم پیشپرداخت شده در طول عمر مفید آن است.
مزایای کلیدی:
- گزارشدهی دقیق: هزینههای بزرگ را هموار میکند تا دید واقعیتری از سودآوری ماهانه ارائه دهد.
- بودجهبندی بهتر: امکان بودجهبندی برای یک هزینه ماهانه ثابت را به جای یک هزینه بزرگ و نامنظم فراهم میکند.
- تحلیل جریان نقدی واضحتر: زمان پرداخت نقدی را از زمان شناسایی هزینه جدا میکند.
راهحل Beancount: fava.plugins.amortize_over
Beancount به همراه رابط وب Fava، یک افزونه ساده و قدرتمند برای خودکارسازی استهلاک ارائه میدهد.
مرحله ۱: فعالسازی افزونه
ابتدا باید با افزودن خط زیر به ابتدای فایل Beancount خود، افزونه را فعال کنید:
plugin "fava.plugins.amortize_over"مهم: تراکنشهای مجازی توجه داشته باشید که این افزونه آیتمهای مجازی (virtual postings) ایجاد میکند. این آیتمها به صورت پویا در گزارشهای Fava و ابزارهایی مانند
bean-report(در صورت بارگذاری افزونه) نمایش داده میشوند، اما به فایل.beanشما بازنویسی نمیشوند. فایل منبع شما بدون تغییر باقی میماند.
مرحله ۲: ساختاربندی حسابهای خود
برای یک هزینه پیشپرداخت شده معمولی، به سه حساب کلیدی نیاز دارید:
Assets:Bank:Checking: منبع پرداخت نقدی.Assets:Prepaid:Insurance: یک حساب نگهداری موقت برای ارزشی که پرداخت کردهاید اما هنوز استفاده نکردهاید.Expenses:Insurance:Auto: مقصد نهایی هزینه ماهانه.
2024-01-01 open Assets:Bank:Checking
2024-01-01 open Assets:Prepaid:Insurance
2024-01-01 open Expenses:Insurance:Autoمرحله ۳: ثبت تراکنش استهلاک
بیایید پرداخت ۶۰۰ دلاری بیمه را برای یک بیمهنامه ۶ ماهه ثبت کنیم. وجه را از حساب بانکی خود به حساب دارایی پیشپرداخت منتقل کرده و برچسب فراداده را اضافه میکنیم.
2024-06-01 * "پرداخت حق بیمه ۶ ماهه ماشین"
amortize_months: 6
Assets:Prepaid:Insurance 600.00 USD
Assets:Bank:Checking -600.00 USD
Expenses:Insurance:Autoamortize_months: 6: به افزونه میگوید که ارزش را در ۶ ماه پخش کند.- تراکنش وجه نقد را به یک دارایی پیشپرداخت منتقل میکند.
Expenses:Insurance:Auto: این پایانه نهایی بدون عدد به افزونه میگوید که هزینه ماهانه را در کجا ثبت کند.
افزونه هر ماه یک ورودی ایجاد میکند که از روز اول ماه تراکنش، Expenses:Insurance:Auto را بدهکار و Assets:Prepaid:Insurance را به مبلغ ۱۰۰ دلار بستانکار میکند.
مثالهای عملی
مجوز نرمافزار سالانه
2024-01-15 * "مجوز سالانه Adobe Creative Suite"
amortize_months: 12
Assets:Prepaid:Software 1200.00 USD
Assets:Bank:Checking -1200.00 USD
Expenses:Software:Adobeنتیجه: هزینه ۱۰۰ دلار هر ماه به مدت ۱۲ ماه در Expenses:Software:Adobe شناسایی میشود.
حقالزحمه خدمات حرفهای
; حقالزحمه سه ماهه حقوقی، پیشپرداخت از حساب جاری
2024-01-05 * "حقالزحمه خدمات حقوقی سهماهه اول"
amortize_months: 3
Assets:Prepaid:Professional 4500.00 USD
Assets:Bank:Checking -4500.00 USD
Expenses:Professional:Legalنتیجه: هزینه حقوقی ۱۵۰۰ دلار هر ماه برای سهماهه اول شناسایی میشود.
استهلاک تجهیزات (داراییهای ثابت)
استهلاک برای داراییهای ثابت نیازمند رویکردی رسمیتر است تا بهای تمامشده اصلی دارایی در دفاتر حفظ شود. این کار با استفاده از یک حساب ضد دارایی (contra-asset) که معمولاً Accumulated-Depreciation نامیده میشود، انجام میشود.
این فرآیند شامل دو تراکنش جداگانه است:
; افتتاح حسابهای مورد نیاز، از جمله حساب ضد دارایی
2024-01-01 open Assets:Equipment:Computers:Cost
2024-01-01 open Assets:Equipment:Computers:AccumDep
2024-01-01 open Expenses:Depreciation:Computers
; مرحله ۱: ثبت خرید اولیه. این یک تراکنش ساده و غیر مستهلکشونده است.
2024-01-20 * "خرید MacBook Pro برای کسب و کار"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD
; مرحله ۲: تنظیم برنامه استهلاک. این تراکنش با جمع صفر
; به افزونه میگوید که ورودیهای استهلاک ماهانه را ایجاد کند.
2024-01-20 * "برنامه استهلاک برای MacBook Pro"
amortize_months: 36
Expenses:Depreciation:Computers 3000.00 USD
Assets:Equipment:Computers:AccumDep -3000.00 USDنتیجه: افزونه به مدت ۳۶ ماه یک ورودی ماهانه ایجاد میکند که Expenses:Depreciation:Computers را به مبلغ ۸۳,۳۳ دلار بدهکار و حساب ضد دارایی Assets:Equipment:Computers:AccumDep را به مبلغ ۸۳,۳۳ دلار بستانکار میکند.
گزارشدهی و تأیید
۱. نظارت بر ماندههای پیشپرداخت با استفاده از assertions
از دستور balance در Beancount برای تأیید کاهش صحیح حساب پیشپرداخت خود استفاده کنید.
توجه: تاریخ assertion باید در تاریخ یا پس از تاریخ آیتم مجازی (که بهطور پیشفرض روز اول ماه است) باشد. یک روش خوب، تنظیم تاریخ در روز دوم ماه است.
; برای مثال بیمه، مانده را پس از ماه اول بررسی کنید.
2024-07-02 balance Assets:Prepaid:Insurance 500.00 USD۲. تأیید پیشرفته با bean-query
برای یک نمای کلی سریع از تغییرات ماندههای پیشپرداخت خود در طول زمان، میتوانید از bean-query در ترمینال خود استفاده کنید:
bean-query your-ledger.beancount "SELECT date, account, SUM(position) WHERE account ~ 'Prepaid' GROUP BY date, account ORDER BY date"محدودیتها و نکات نهایی
- تقسیمبندی مساوی: افزونه
amortize_overبرای تقسیمبندی مساوی در یک تعداد صحیح از ماهها طراحی شده است. این افزونه برنامههای نامنظم یا تناسب روزانه را مدیریت نمیکند. برای این موارد، رویکرد دستی مورد نیاز است. - حسابداری مالیاتی در مقابل مدیریتی: برنامههای استهلاک نشان داده شده در اینجا برای حسابداری مدیریتی (داشتن دید واضح از امور مالی شما) هستند. اگر حسابداری قانونی انجام میدهید، اطمینان حاصل کنید که برنامههای استهلاک شما با مقررات محلی (GAAP/IFRS) مطابقت دارند.
- مدیریت تاریخ: افزونه ورودیهای ماهانه را در روز اول هر ماه، از ماه تراکنش مبدأ، ایجاد میکند. اگر میخواهید استهلاک از فوریه شروع شود، به عنوان مثال، تراکنش مبدأ را در تاریخ
2024-02-01یا بعد از آن ثبت کنید.