مقدمه ای بر Beancount.io
این راهنما، بهترین شیوهها را برای حسابداری متن ساده با استفاده از ابزار قدرتمند، متنباز و حسابداری متن ساده Beancount، خلاصه میکند. این راهنما، فلسفه اساسی، دستور زبان (syntax) اولیه تا پیشرفته، مطالعات موردی عملی برای داراییهای پیچیده و استراتژیهای مدیریت دفتر کل بلندمدت را پوشش میدهد.
بخش 1: "چرایی" - مبانی دفترداری هوشمند
قبل از پرداختن به "چگونگی"، درک "چرایی" بسیار مهم است. دفترداری مؤثر، سنگ بنای مدیریت مالی شخصی و یک گام ضروری به سوی وضوح و آزادی مالی است.
فراتر از ردیابی هزینه: مسیری به سوی وضوح مالی
برنامههای ساده ردیابی هزینه به شما میگویند که پول شما کجا رفته است. یک سیستم حسابداری قوی این را و خیلی بیشتر به شما میگوید: این سیستم، یک تصویر کامل از سلامت مالی شما، از جمله ارزش خالص، جریان نقدی و عملکرد سرمایهگذاریهای شما را ارائه میدهد. هدف اصلی مشاهدهپذیری (observability) است—به دست آوردن یک درک روشن و مبتنی بر داده از زندگی مالی خود، که شما را قادر میسازد تا تصمیمات آگاهانه بگیرید، ریسک را ارزیابی کنید و برای اهداف بلندمدت مانند بازنشستگی تلاش کنید.
چرا حسابداری دوطرفه؟ قدرت یک سیستم متوازن
برخلاف دفترداری یکطرفه (یک لیست ساده از هزینهها)، روش حسابداری دوطرفه هر تراکنش را به عنوان جریان ارزش بین حداقل دو حساب ثبت میکند. اصل اساسی آن، معادله اساسی حسابداری است:
این سیستم تضمین میکند که دفاتر شما همیشه متوازن هستند و به طور چشمگیری خطاها را کاهش میدهد. این سیستم، با تولید گزارشهای ضروری مانند ترازنامه (آنچه دارید و بدهکارید) و صورت سود و زیان (آنچه به دست آوردهاید و خرج کردهاید)، یک تصویر مالی کامل ارائه میدهد.
بخش 2: شروع به کار با Beancount
Beancount یک ابزار قدرتمند مبتنی بر پایتون برای حسابداری متن ساده است.
اولین نگاه شما با Fava در Beancount.io
Beancount.io یک محیط قدرتمند فراهم می کند که موتور Beancount را با یک اپلیکیشن موبایل (iOS, Android) و اپلیکیشن وب - Fava، یک رابط مبتنی بر وب فوق العاده برای تجسم دفتر کل شما، ترکیب می کند. نیازی به نصب نیست. وقتی از این پلتفرم استفاده میکنید، مستقیماً با یک ویرایشگر متن برای فایل دفتر کل خود (به عنوان مثال، main.bean) تعامل دارید و میبینید که گزارشهای تولید شده توسط Fava در زمان واقعی بهروزرسانی میشوند.
Fava متن ساده ای را که می نویسید می گیرد و آن را به نمودارهای تعاملی، صورت های مالی و لیست های تراکنش قابل فیلتر تبدیل می کند و نمای واضحی از گزارش های مالی خود به شما می دهد.
پنج نوع حساب اصلی
Beancount از پنج نوع حساب سطح بالا استفاده میکند که ساختار دفتر کل شما را تشکیل میدهند:
| نوع حساب | شرح | مانده معمول |
|---|---|---|
داراییها (Assets) | آنچه که شما دارید (وجه نقد، حسابهای بانکی، سرمایهگذاریها، ملک). | مثبت |
بدهیها (Liabilities) | آنچه که شما بدهکارید (بدهی کارت اعتباری، وامها، رهن). | منفی |
درآمد (Income) | منبع ورود پول (حقوق، پاداش، بهره). | منفی |
هزینهها (Expenses) | محل خروج پول (غذا، اجاره، سفر، مالیات). | مثبت |
حقوق صاحبان سهام (Equity) | ارزش خالص شما؛ برای ماندههای اولیه استفاده میشود. | منفی |
معادله Beancount
Beancount نسخه خود از معادله حسابداری را اعمال میکند که در آن مجموع تمام ثبتها در کل دفتر کل شما برابر با صفر است:
به همین دلیل است که طبق قرارداد، حسابهای درآمد (Income)، بدهیها (Liabilities) و حقوق صاحبان سهام (Equity) مقادیر منفی دارند—آنها منابع وجوهی هستند که داراییها (Assets) و هزینههای (Expenses) شما را افزایش میدهند.
بخش 3: زبان Beancount - دستور زبان اصلی
همه ورودیها در Beancount دستورالعملهایی هستند که با یک تاریخ شروع میشوند.
تعریف حسابها (open) و کالاها
قبل از اینکه بتوانید از یک حساب استفاده کنید، باید آن را با دستورالعمل open اعلام کنید. همچنین میتوانید به صورت اختیاری ارزها یا "کالاها"یی را که در آن نگهداری میشوند، مشخص کنید.
; YYYY-MM-DD open Account:Name [Commodity1, Commodity2, ...]
2020-01-01 open Assets:Bank:US:Chase:Checking USD
2020-01-01 open Liabilities:CreditCard:US:Discover USD
2020-01-01 open Expenses:Food:Groceries
2020-01-01 open Income:Salary:Google
کالاها میتوانند ارزهای دنیای واقعی باشند (به عنوان مثال، USD، JPY) یا هر واحد سفارشی که تعریف میکنید، مانند مایلهای پرواز (MILES_UA) یا نمادهای سهام (HOOL).
ثبت اولین تراکنش خود (*)
تراکنشها رایجترین ورودی هستند. آنها با یک تاریخ، یک علامت (* برای یک تراکنش کامل یا ! برای یک تراکنش ناقص)، یک پرداختکننده اختیاری و یک شرح شروع میشوند. هر خطی که در ادامه میآید (با دو فاصله تورفتگی دارد) یک "ثبت" در یک حساب است.
; YYYY-MM-DD * "Payee" "Description"
; Account1 Amount Commodity
; Account2 -Amount Commodity
2024-07-28 * "Trader Joe's" "خواربار هفتگی"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover -125.50 USD
برای راحتی، اگر یک تراکنش فقط دو ثبت دارد، میتوانید مقدار را در خط دوم حذف کنید و Beancount آن را به طور خودکار محاسبه میکند.
2024-07-28 * "Trader Joe's" "خواربار هفتگی"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover
تراز کردن در سطح تراکنش: مهمتر از آن برای استفاده روزمره، هر تراکنش جداگانه نیز باید متوازن باشد—مجموع تمام ثبتها در یک تراکنش واحد باید برابر با صفر باشد. اگر یک تراکنش متوازن نباشد، Beancount یک خطا مانند این نشان میدهد:

مدیریت تراکنشهای چند ارزی (@ و @@)
Beancount در حسابداری چند ارزی عالی است.
- از
@برای مشخص کردن قیمت تبدیل به ازای هر واحد استفاده کنید. - از
@@برای مشخص کردن کل هزینه تبدیل استفاده کنید.
; خرید بلیط هواپیما به EUR با کارت USD
2024-08-01 * "Lufthansa" "پرواز به برلین"
Expenses:Travel:Flights 500.00 EUR @@ 545.00 USD ; 500 EUR برای من در مجموع 545 USD هزینه داشت
Liabilities:CreditCard:US:Discover -545.00 USD
بخش 4: اطمینان از صحت - هنر تطبیق
یک عمل کلیدی برای حفظ یک دفتر کل دقیق، تطبیق منظم است. این شامل مقایسه ماندهها در دفتر کل Beancount شما با صورتحسابهای رسمی از مؤسسات مالی شما است.