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

8 پست با برچسب "Fava"

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

Beancount.io v3.0: داده‌های مالی شما، تحت کنترل شما

· زمان مطالعه 9 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

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

امروز، ما نسل بعدی Beancount.io را راه‌اندازی می‌کنیم که بر اساس یک اصل ساده ساخته شده است: داده‌های مالی شما باید متعلق به شما باشد، نه ما. با ادغام Git بومی، می‌توانید دفتر کل حسابداری کامل خود را به دستگاه خود بکشید، آن را با هر ابزاری که می‌خواهید ویرایش کنید و تغییرات را دوباره فشار دهید. بدون محدودیت. بدون فرمت‌های اختصاصی. فقط داده‌های شما، تحت کنترل شما.

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

  1. مالکیت واقعی داده از طریق ادغام Git بومی
  2. همکاری یکپارچه برای تیم‌ها، شرکا و حسابداران
  3. یک رابط بصری که حسابداری متن ساده را برای همه در دسترس قرار می‌دهد

نمای کلی داشبورد

گزارش‌های مالی قدرتمند در دسترس شما

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

صورت سود و زیان

داشبورد صورت سود و زیان

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

ترازنامه

داشبورد ترازنامه

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

تراز آزمایشی

داشبورد تراز آزمایشی

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

نمای جزئیات حساب

داشبورد جزئیات حساب

با نمای جزئیات حساب، عمیقاً در هر حساب غوطه ور شوید. مقادیر مانده حساب و تغییرات را در طول زمان با نمودارها و نمودارهای بصری مشاهده کنید. این نما شامل یک دفتر روزنامه حساب جامع است که تمام تراکنش‌های مؤثر بر حساب، از جمله حساب‌های فرعی را نشان می‌دهد و به شما دید کاملی از نحوه جریان پول در سیستم مالی شما می‌دهد.

ویرایشگر فایل مدرن

داشبورد ویرایشگر فایل

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

ادغام Git: دفتر کل شما، به روش شما

یکی از پرطرفدارترین ویژگی‌ها اکنون اینجاست: ادغام Git بومی. با نسخه جدید، می‌توانید به طور یکپارچه حساب‌های دفتر کل خود را با استفاده از پروتکل‌های استاندارد Git بکشید و کنترل کاملی بر داده‌های مالی خود به شما می‌دهد.

کاری که می توانید انجام دهید:

# شبیه سازی دفتر کل خود به دستگاه خود
git clone ssh://[email protected]:2222/you/ledger.git

# به صورت محلی با ابزارهای مورد علاقه خود ویرایش کنید
vim 2025.bean

# تغییرات را دوباره فشار دهید
git commit -am "تراکنش های Q4 اضافه شد"
git push

چرا این موضوع مهم است (حاکمیت داده):

  • برنامه خروج واقعی: تاریخچه مالی کامل شما در یک مخزن Git استاندارد است. پرداخت به ما را متوقف می کنید؟ شما همه چیز را نگه می دارید.
  • ابزار آگنوستیک: با VS Code، Vim، Emacs یا ابزارهای تخصصی Beancount ویرایش کنید. انتخاب شما، نه ما.
  • پیگیری حسابرسی کامل: هر تغییر با تاریخچه کامل Git پیگیری می شود و دقیقاً نشان می دهد چه کسی چه چیزی را و چه زمانی تغییر داده است. ایده آل برای انطباق و آرامش خاطر.
  • پشتیبان گیری توزیع شده: ماهیت توزیع شده Git به این معنی است که شما پشتیبان گیری خودکار و نسخه بندی شده در دستگاه خود دارید.

این باعث می شود Beancount.io تنها پلتفرمی باشد که داده های شما را قابل حمل تر می کند، نه کمتر.

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

چه در حال اداره یک کسب و کار کوچک باشید، چه با یک حسابدار کار کنید، چه امور مالی خانوار را با یک شریک مدیریت کنید، همکاری مهم است.

با تیم خود همکاری کنید

سیستم همکاری جدید این کار را طبیعی و مقرون به صرفه می کند:

  • دعوت از همکاران: به سادگی دیگران را از طریق ایمیل دعوت کنید تا به عنوان همکار به دفتر کل شما بپیوندند
  • به روز رسانی های بلادرنگ: تغییرات ایجاد شده توسط همکاران را در زمان واقعی مشاهده کنید و همه را همگام نگه دارید
  • تاریخچه فعالیت: پیگیری کنید که چه کسی چه تغییراتی را ایجاد کرده و چه زمانی، و مسئولیت پذیری کامل را حفظ کنید

ایده آل برای مشاغل کوچک، فریلنسرهایی که با حسابداران کار می کنند، یا هر کسی که نیاز به تقسیم مسئولیت های مدیریت مالی دارد. همکاری هرگز آسان تر یا ایمن تر نبوده است.

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

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

مزایای پشتیبانی از چند دفتر کل:

  • جداسازی نگرانی ها: امور مالی شخصی و تجاری را کاملاً جدا نگه دارید
  • سازماندهی مبتنی بر پروژه: دفاتر اختصاصی برای پروژه ها یا مشتریان مختلف ایجاد کنید
  • ساختار انعطاف پذیر: سیستم حسابداری خود را به گونه ای سازماندهی کنید که برای شرایط منحصر به فرد شما منطقی باشد
  • جابجایی آسان: به طور یکپارچه با سوئیچ دفتر کل بصری بین دفاتر حرکت کنید

هر تعداد دفتر کل که نیاز دارید ایجاد کنید تا سوابق مالی خود را سازماندهی و مدیریت کنید.

دفاتر کل عمومی: به اشتراک بگذارید و از جامعه بیاموزید

نسخه جدید به اشتراک گذاری دفتر کل عمومی را معرفی می کند که به شما امکان می دهد دفاتر کل ساختار یافته خود را با جامعه Beancount به اشتراک بگذارید. این ویژگی اشتراک گذاری دانش را ترویج می کند و به دیگران کمک می کند تا بهترین روش ها را برای سازماندهی سیستم های حسابداری خود بیاموزند.

نحوه کار دفاتر کل عمومی:

  • تخصص خود را به اشتراک بگذارید و اجازه دهید ویروسی شود: دفتر کل خود را عمومی کنید تا به دیگران کمک کنید از تنظیمات شما یاد بگیرند
  • بهترین شیوه ها را کشف کنید: دفاتر کل عمومی را مرور کنید تا ببینید دیگران چگونه امور مالی خود را سازماندهی می کنند
  • یادگیری جامعه و شبکه اجتماعی: از مثال های دنیای واقعی استفاده موثر از Beancount بیاموزید
  • کنترل حریم خصوصی: شما تصمیم می گیرید که کدام دفاتر کل را عمومی کنید - دفاتر کل خصوصی شما کاملاً خصوصی باقی می مانند

با به اشتراک گذاری نمونه های عالی دفتر کل، ما در حال ساختن یک جامعه قوی تر و آگاه تر Beancount هستیم که در آن همه می توانند با هم یاد بگیرند و پیشرفت کنند.

ویژگی های پیشرفته Fava & Beancount Community

ما ویژگی های محبوب از جامعه Beancount را ادغام کرده ایم که مشکلات گردش کار واقعی را حل می کنند:

  • استهلاک هزینه (amortize_over): اشتراک های سالانه یا هزینه های پیش پرداخت را به طور خودکار در ماه ها پخش کنید
  • پیش بینی مالی (forecast): جریان نقدی آینده را بر اساس تراکنش های مکرر پیش بینی کنید
  • پیوند سند (link_documents): رسیدها و فاکتورها را به تراکنش ها متصل نگه دارید
  • کشف خودکار سند (tag_discovered_documents): به طور خودکار اسناد پشتیبانی را برچسب گذاری و سازماندهی کنید

اینها ویژگی های تجربی نیستند - آنها ابزارهای آزمایش شده در نبرد از جامعه Beancount هستند که اکنون به طور یکپارچه ادغام شده اند.

عملکرد سریعتر، تجربه روان تر

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

  • زمان بارگذاری سریعتر: صفحات و گزارش ها به طور محسوسی سریعتر بارگیری می شوند، حتی با دفاتر بزرگ
  • تعاملات نرم تر: تعاملات UI پاسخگوتر هستند، با کاهش تاخیر هنگام حرکت بین نماها
  • پردازش داده بهینه شده: محاسبات پیچیده و تولید گزارش به طور موثرتری انجام می شود
  • مدیریت بهتر منابع: سیستم از منابع به طور هوشمندانه تری استفاده می کند و از عملکرد ثابت حتی در اوج استفاده اطمینان می دهد

این پیشرفت ها به این معنی است که شما زمان کمتری را صرف انتظار می کنید و زمان بیشتری را به طور موثر به مدیریت امور مالی خود اختصاص می دهید.

حریم خصوصی و امنیت: داده های شما، قوانین شما

ما از حاکمیت داده‌های شما با ایمن کردن دفتر کل شما در یک مخزن Git رمزگذاری شده و خصوصی که کاملاً متعلق به شماست، از آن محافظت می‌کنیم. این کنترل مستلزم مسئولیت است: شما با مدیریت همکاران مورد اعتماد دسترسی را تعیین می‌کنید و باید هنگام انتشار دفاتر کل احتیاط کنید، با درک اینکه داده‌های عمومی برای همیشه در اینترنت قابل مشاهده هستند و باید از جزئیات حساس کاملاً پاک شوند. در نهایت، داده‌های شما متعلق به شما باقی می‌مانند—محافظت شده توسط زیرساخت ما اما کاملاً تحت حاکمیت قوانین شما.

بعدش چی؟

نسخه جدید تنها آغاز سفر ما به سوی تبدیل Beancount.io به بهترین پلتفرم حسابداری متن ساده موجود است که هدف آن GitHub of Finance است. نرم افزارهای مالی سنتی متکی به "قفل شدن داده" هستند. Beancount.io در حال ساختن نوع متفاوتی از دفاع است: قفل شدن پروتکل. ما در حال حاضر روی موارد زیر کار می کنیم:

  • بهبود اپلیکیشن موبایل برای حسابداری در حال حرکت
  • ادغام های اضافی با خدمات مالی محبوب
  • گزارش دهی پیشرفته تر و ویژگی های تجزیه و تحلیل
  • ابزارهای همکاری پیشرفته برای تیم ها

خوشحال می شویم نظرات شما را در مورد نسخه جدید بشنویم! ورودی شما به ما کمک می کند تا اولویت بندی کنیم که چه چیزی را بعدا بسازیم.

حسابداری مبارک!

تیم Beancount.io

10 گام عملی برای بسته شدن سریع و قابل اعتماد ماهانه در Beancount

· زمان مطالعه 7 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

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

در اینجا فهرست بررسی برای یک بسته شدن بدون دردسر آمده است:

2025-09-02-month-end-close

  1. جمع‌آوری صورت‌حساب‌ها و وارد کردن تمام تراکنش‌های خام.
  2. نرمال‌سازی پرداخت‌کنندگان، توضیحات و متادیتا.
  3. تطبیق هر حساب نقدی، بانکی و اعتباری با ادعای balance.
  4. همسان‌سازی انتقال‌ها و جابجایی‌های بین‌حسابی.
  5. به‌روزرسانی قیمت‌ها برای سرمایه‌گذاری‌ها و تأیید ارزش‌گذاری‌ها.
  6. پیوست یا منبع اسناد (رسیدها، فاکتورها) در دفتر کل.
  7. اجرای پرس‌وجوها و داشبوردها برای بررسی سود و زیان و انحراف‌ها.
  8. ثبت هزینه‌های پیش‌دستی و تنظیمات لازم.
  9. اعتبارسنجی دفتر کل با بررسی‌های خودکار.
  10. کامیت، برچسب‌گذاری و بایگانی ماه.

1. تعیین قوانین پایه (و استفاده مجدد از آن‌ها)

یک بسته شدن منسجم با پایه‌ای ثابت آغاز می‌شود. نمودار حساب‌ها و گزینه‌های کلیدی Beancount باید به‌صورت مرکزی تعریف شوند و به ندرت تغییر یابند. گزینه‌هایی مانند operating_currency و مدیریت documents اطمینان می‌دهند که گزارش‌ها و وارد کردن‌ها هر بار به‌صورت پیش‌بینی‌پذیر رفتار می‌کنند.

نکته: فایل گزینه‌ها را مانند «زیرساخت» در نظر بگیرید. تغییر آن می‌تواند نحوهٔ محاسبهٔ اعداد شما را تغییر دهد. با دقت در Git نسخه‌بندی کنید.


2. همه چیز را وارد کنید — سپس دیگر به‌صورت دستی وارد نکنید

اتوماتیک‌سازی وارد کردن داده‌ها بزرگ‌ترین سرعت‌بخش برای بسته شدن کتاب‌هاست. از ابزارهای قدرتمند وارد کردن Beancount و واردکننده‌های ساخته‌شده توسط جامعه برای دریافت خوراک‌های بانکی، فایل‌های CSV/OFX کارت‌های اعتباری، داده‌های کارگزاری و گزارش‌های حقوق و دستمزد استفاده کنید.

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


3. نرمال‌سازی پرداخت‌کنندگان و متادیتا در ابتدا

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

سیستم افزونهٔ Beancount به شما اجازه می‌دهد تا تبدیل‌ها و اعتبارسنجی‌های سبک را هنگام بارگذاری فایل‌ها اضافه کنید. این برای اعمال چک‌های سفارشی سازگاری یا استفاده از افزونهٔ داخلی noduplicates برای پرچم‌گذاری تراکنش‌های تکراری پیش از تبدیل به مشکل، ایده‌آل است.


4. تطبیق با ادعای balance

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

; ادعا می‌کند که تراز دقیقاً 1234.56 در ابتدای روز است
2025-09-01 balance Assets:Bank:Checking 1234.56 USD

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


5. همسان‌سازی انتقال‌های بین‌حسابی

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

از دستور pad فقط برای تنظیم ترازهای افتتاحیه تاریخی هنگام اولین تنظیم یک حساب استفاده کنید. این یک ابزار تنظیم است، نه یک تکیه‌گاه برای رفع اختلافات ماهانه.


6. تأیید موقعیت‌ها و قیمت‌ها برای سرمایه‌گذاری‌ها

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

2025-08-31 price VTI  290.14 USD
2025-08-31 price EUR 1.11 USD

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


7. پیوست رسیدها و اسناد منبع

یک مسیر حسابرسی تمیز با لینک کردن تراکنش‌ها به اسناد منبع حفظ کنید. از گزینه documents در فایل اصلی Beancount برای اشاره به آرشیو رسیدها و فاکتورها استفاده کنید.

option "documents" "/path/to/Finance/Documents"

اگر فایل‌هایتان را بر اساس تاریخ نام‌گذاری کنید (مثلاً 2025-08-13.vendor.receipt.pdf)، Beancount و Fava می‌توانند به‌صورت خودکار آن‌ها را کشف و لینک کنند و نمایش رسید برای هر تراکنش تنها با یک کلیک امکان‌پذیر می‌شود.


8. مرور ماه با Fava و BQL

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

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

SELECT
account,
ROUND(SUM(position), 2) AS total
WHERE
date >= 2025-08-01 AND date < 2025-09-01
AND account 'Expenses'
GROUP BY
account
ORDER BY
total DESC;

9. ثبت هزینه‌های پیش‌دستی و تنظیمات

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


10. اعتبارسنجی، برچسب‌گذاری و بایگانی

قبل از نهایی‌سازی ماه، یک بررسی نهایی برای یکپارچگی ساختاری انجام دهید:

bean-check your-ledger.beancount

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

پس از اطمینان از صحت همه چیز، تغییرات را در کنترل نسخه (مانند Git) با پیام واضح و برچسب، مثلاً close-2025-08، کامیت کنید. در نهایت صورت‌حساب‌های بانکی خود را بایگانی کنید و ماه را قفل کنید.


یک اسکریپت سادهٔ بسته شدن که می‌توانید تطبیق دهید

می‌توانید اکثر این گام‌ها را با یک اسکریپت سادهٔ شل خودکار کنید. این کار بسته شدن را به یک فرمان تکرارپذیر تبدیل می‌کند.

#!/usr/bin/env bash
set -euo pipefail

# Example: ./close.sh 2025-08
MONTH=${1:?Please provide a month in YYYY-MM format}
LEDGER= /finance/ledger.beancount

# 1. Import new transactions
echo "Importing transactions for $MONTH..."
make import MONTH="$MONTH"

# 2. Update market prices for the last day of the month
PRICE_DATE=$(date -d "$MONTH-01 +1 month -1 day" +%F)
echo "Fetching prices for $PRICE_DATE..."
make prices DATE="$PRICE_DATE"

# 3. Validate the entire ledger
echo "Running bean-check..."
bean-check "$LEDGER"

# 4. Generate a key report (e.g., expense breakdown)
echo "Generating expense report for $MONTH..."
bean-query "$LEDGER" -f txt "
SELECT account, SUM(position)
WHERE date >= '${MONTH}-01' AND date < '${MONTH}-01' + 1 month
AND account 'Expenses'
GROUP BY account ORDER BY SUM(position) DESC;
" > "reports/${MONTH}-expenses.txt"

# 5. Commit and tag the close in Git
echo "Committing and tagging the close..."
git -C /finance add .
git -C /finance commit -m "Close ${MONTH}"
git -C /finance tag "close-${MONTH}"

echo "Month ${MONTH} is closed and tagged."

چرا این روش کار می‌کند

این فرآیند سریع و قابل اعتماد است زیرا بر پایهٔ چند اصل اساسی ساخته شده:

  • ادعاها، نه نگاه چشمی: دستور balance تطبیق را به یک چک دقیق و خودکار تبدیل می‌کند.
  • ورودی‌های تعیین‌پذیر: واردکننده‌های خودکار و متادیتای نرمال‌شده دفتر کل شما را بازتولیدپذیر و سازگار می‌سازند.
  • داده‌های قابل کاوش: Fava و BQL ابزارهای قدرتمندی برای اعتبارسنجی نتایج و بررسی سریع ناهنجاری‌ها فراهم می‌کنند.
  • تغییرات حسابرسی‌شدنی: تنظیمات به‌صورت ورودی‌های متن ساده هستند و مرور و درک آن‌ها ماه‌ها یا سال‌ها بعد آسان است.

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

داده‌های مالی خود را به تجسم‌های زیبا تبدیل کنید

· زمان مطالعه 5 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

ما هیجان‌زده‌ایم که به‌روزرسانی بزرگی را در اکوسیستم Beancount.io اعلام کنیم: یکپارچه‌سازی رسمی beancount-dashboard. این ویژگی قدرتمند مجموعه‌ای از تجسم‌های غنی و تعاملی را مستقیماً به Fava می‌آورد و به شما امکان می‌دهد داستان مالی‌تان را به‌صورت واضح، جذاب و قابل اقدام ببینید.

نمای کلی داشبورد Beancount


beancount-dashboard چیست؟

beancount-dashboard افزونه‌ای منبع باز برای Fava، رابط وب Beancount است. این افزونه داده‌های مالی متنی ساده شما را به داشبوردهای پویا و بینش‌دار تبدیل می‌کند و درک سلامت مالی و اتخاذ تصمیمات آگاهانه را آسان‌تر از همیشه می‌سازد.

این افزونه مجموعه‌ای گسترده از تجسم‌های قدرتمند ارائه می‌دهد:

  • 📊 نمای کلی دارایی‌ها: ثروت خود را با نمودار خطی ارزش خالص پیگیری کنید، عملکرد را با ردیابی پرتفوی دقیق بررسی کنید و توزیع دارایی‌ها را با نمودارهای دایره‌ای تخصیص دارایی به تصویر بکشید.
  • 💰 تحلیل درآمد و هزینه: جریان نقدی خود را با دقت درک کنید. متوسط‌های ماهانه را تجزیه و تحلیل کنید، هزینه‌ها را بر حسب دسته‌بندی تقسیم کنید و ببینید عادات شما در تحلیل سال به سال چگونه تغییر کرده‌اند.
  • ✈️ مدیریت هزینه‌های سفر: هزینه‌های سالانه سفر را ردیابی کنید و الگوهای هزینه بر حسب مقصد را تجزیه و تحلیل کنید تا برای سفرهای آینده بودجه‌بندی مؤثرتری داشته باشید.
  • 🔄 نمودارهای سنکی: جریان پول خود را با نمودارهای تعاملی که نشان می‌دهند وجوه بین منابع درآمد، حساب‌ها و دسته‌های هزینه چگونه جابجا می‌شوند، به تصویر بکشید.
  • 📈 پیش‌بینی‌های مالی: با استفاده از داده‌های تاریخی خود، اهداف تعیین کنید و مسیر مالی آینده‌تان را پیش‌بینی کنید.

داشبورد تحلیل مالی


چرا beancount-dashboard را یکپارچه کردیم

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

1. تجربه کاربری بهبود یافته

Beancount بر پایه حسابداری دوطرفه مستحکم ساخته شده است، اما داده‌های خام می‌توانند طاقت‌فرسا باشند. افزونه beancount-dashboard دفترکل‌های پیچیده را به تجسم‌های بصری شهودی تبدیل می‌کند و مدیریت مالی را برای همه دسترس‌پذیر و جذاب می‌سازد.

2. تصمیم‌گیری مالی هوشمندتر

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

3. تحلیل‌های سطح حرفه‌ای

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

4. برتری منبع باز

هر دو Beancount و beancount-dashboard به اصول منبع باز پایبند هستند. این به این معنی است که شما شفافیت کامل در نحوه‌ٔ پردازش داده‌هایتان دارید، حریم خصوصی شما حفظ می‌شود (چون داده‌ها روی زیرساخت خودتان می‌مانند) و از جامعه فعال و نوآور پشتیبانی می‌کنید.

ردیابی پیشرفته پرتفوی


مزایای دنیای واقعی

این یکپارچه‌سازی مزایای فوری و ملموسی برای کاربران مختلف به ارمغان می‌آورد:

برای مدیریت مالی شخصی:

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

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

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

برای مشاوران مالی:

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

آماده‌اید تا زندگی مالی‌تان را تحول بخشید؟

سفر شما به سمت مدیریت بهتر مالی همین حالا آغاز می‌شود. با قدرت beancount-dashboard تمام ابزارهای لازم برای کنترل مالی‌تان در دسترس است.

  1. به beancount.io مراجعه کنید
  2. حساب رایگان خود را ایجاد کنید تا به اکوسیستم کامل Beancount دسترسی پیدا کنید.
  3. به هزاران کاربری بپیوندید که هم‌اکنون با اطمینان مالی خود را مدیریت می‌کنند.

بازخورد شما برای ما ارزشمند است

بینش‌های شما در بهبود مستمر پلتفرم‌مان نقش کلیدی دارد. با به اشتراک‌گذاری داستان‌های موفقیت داشبورد، درخواست ویژگی و هر گزارش خطایی که با آن مواجه می‌شوید، به ما کمک کنید. می‌توانید از طریق انجمن‌های جامعه، مسائل GitHub یا شبکه‌های اجتماعی با تیم Beancount.io در ارتباط باشید.

به جامعه‌ای پویا بپیوندید

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

این یکپارچه‌سازی گامی مهم به جلوست. با ترکیب موتور حسابداری قدرتمند Beancount و تجسم‌های بصری beancount-dashboard، ما تحلیلات سطح سازمانی را در بسته‌ای منبع باز، متمرکز بر حریم خصوصی ارائه می‌دهیم.

آماده‌اید تا ردیابی مالی‌تان را متحول کنید؟ همین امروز در beancount.io ثبت‌نام کنید، قدرت beancount-dashboard را تجربه کنید و به ما در ساختن آیندهٔ مدیریت مالی کمک کنید!

اکوسیستم بین‌کانت: یک تحلیل جامع

· زمان مطالعه 42 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

قابلیت‌های اصلی و فلسفه Beancount

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

2025-04-15-beancount-ecosystem

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

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

قابلیت توسعه از طریق پلاگین‌ها و زبان پرس‌وجو: Beancount در پایتون پیاده‌سازی شده است و نقاط اتصالی را برای تزریق منطق سفارشی به خط لوله پردازش فراهم می‌کند. کاربران می‌توانند پلاگین‌هایی در پایتون بنویسند که بر روی جریان تراکنش‌ها عمل می‌کنند (به عنوان مثال، برای اعمال یک قانون سفارشی یا تولید ورودی‌های خودکار). این پلاگین‌ها هنگام پردازش فایل اجرا می‌شوند و به طور موثری قابلیت‌های اصلی Beancount را بدون نیاز به تغییر کد منبع گسترش می‌دهند. Beancount همچنین شامل یک زبان پرس‌وجوی قدرتمند (الهام گرفته از SQL) برای برش و تحلیل دفتر کل است. ابزار bean-query دفتر کل تجزیه شده را به عنوان یک پایگاه داده در نظر می‌گیرد و به شما امکان می‌دهد پرس‌وجوهای تحلیلی را روی آن اجرا کنید – به عنوان مثال، جمع‌بندی هزینه‌ها بر اساس دسته‌بندی یا استخراج تمام تراکنش‌ها برای یک دریافت‌کننده مشخص. در Beancount 3.x، این قابلیت پرس‌وجو به یک بسته مستقل beanquery منتقل شد، اما از دیدگاه کاربر همچنان گزارش‌دهی انعطاف‌پذیر را از طریق پرس‌وجوهای شبیه SQL فراهم می‌کند.

متن ساده و کنترل نسخه: به عنوان یک ابزار حسابداری متن ساده، Beancount بر کنترل کاربر و ماندگاری داده‌ها تأکید دارد. دفتر کل به سادگی یک فایل متنی .beancount است که می‌توانید آن را در هر ویرایشگر متنی ویرایش کنید. این بدان معناست که کل تاریخچه مالی شما در قالبی قابل خواندن برای انسان ذخیره می‌شود و می‌توانید آن را در Git یا یک سیستم کنترل نسخه دیگر قرار دهید تا تغییرات را در طول زمان ردیابی کنید. کاربران اغلب فایل Beancount خود را تحت کنترل نسخه نگه می‌دارند تا یک رد حسابرسی از هر ویرایش (با پیام‌های کامیت که تغییرات را توصیف می‌کنند) حفظ کنند. این رویکرد با فلسفه Beancount همسو است که داده‌های حسابداری، به ویژه امور مالی شخصی یا کسب‌وکارهای کوچک، باید شفاف و "مقاوم در برابر آینده" باشند – نه اینکه در یک پایگاه داده اختصاصی قفل شوند. به گفته خود مارتین بلایس، Beancount "کاری از روی عشق" است که برای جامعه ساده، بادوام و رایگان ساخته شده است. این سیستم برای اولین بار حدود سال ۲۰۰۷ توسعه یافت و از طریق بازنویسی‌های عمده (نسخه ۱ به نسخه ۲، و اکنون نسخه ۳ در سال ۲۰۲۴) تکامل یافته است تا طراحی خود را بهبود بخشد و در عین حال فلسفه اصلی خود یعنی مینیمالیسم و صحت را حفظ کند.

ابزارها، پلاگین‌ها و افزونه‌ها در اکوسیستم بین‌کانت

اکوسیستم بین‌کانت مجموعه‌ای غنی از ابزارها، پلاگین‌ها و افزونه‌ها را در خود جای داده است که قابلیت‌های اصلی دفتر کل را ارتقا می‌دهند. این‌ها شامل وارد کردن داده‌ها، ویرایش دفترهای کل، مشاهده گزارش‌ها و افزودن ویژگی‌های تخصصی حسابداری می‌شوند. در ادامه مروری بر اجزای کلیدی و افزودنی‌ها در دنیای بین‌کانت ارائه شده است:

ابزارهای واردات داده (واردکننده‌ها)

یکی از مهم‌ترین نیازها برای استفاده عملی، وارد کردن تراکنش‌ها از بانک‌ها، کارت‌های اعتباری و سایر مؤسسات مالی است. بین‌کانت یک چارچوب واردات و اسکریپت‌های وارداتی که توسط جامعه مشارکت‌کنندگان ارائه شده‌اند را برای این منظور فراهم می‌کند. در بین‌کانت 2.x، ماژول داخلی beancount.ingest (با دستوراتی مانند bean-extract و bean-identify) برای تعریف پلاگین‌های واردکننده در پایتون و اعمال آن‌ها بر صورت‌حساب‌های دانلود شده استفاده می‌شد. در بین‌کانت 3.x، این با یک پروژه خارجی به نام بین‌گالپ جایگزین شده است. بین‌گالپ یک چارچوب اختصاصی برای واردکننده‌ها است که از beancount.ingest تکامل یافته و اکنون روش توصیه شده برای خودکارسازی واردات تراکنش‌ها برای بین‌کانت 3.0 است. این امکان نوشتن اسکریپت‌های پایتون یا ابزارهای خط فرمان را فراهم می‌کند که فایل‌های خارجی (مانند صورت‌حساب‌های CSV یا PDF) را می‌خوانند و خروجی ورودی‌های بین‌کانت را تولید می‌کنند. این رویکرد جدید، منطق واردات را از هسته بین‌کانت جدا می‌کند – برای مثال، دستور قدیمی bean-extract در نسخه 3 حذف شده است، و به جای آن، اسکریپت‌های وارداتی شما خودشان تراکنش‌ها را از طریق رابط خط فرمان (CLI) بین‌گالپ تولید می‌کنند.

ده‌ها واردکننده آماده برای بانک‌ها و فرمت‌های مختلف وجود دارد که توسط جامعه مشارکت‌کنندگان ارائه شده‌اند. اسکریپت‌های واردکننده برای مؤسسات در سراسر جهان – از علی‌پی و وی‌چت‌پی در چین، تا بانک‌های مختلف اروپایی (کومرزبانک، آی‌ان‌جی، ای‌بی‌ان آمرو و غیره)، تا بانک‌های آمریکایی مانند چیس و امکس – موجود است. بسیاری از این‌ها در مخازن عمومی (اغلب در گیت‌هاب) یا در بسته‌هایی مانند beancount-importers جمع‌آوری شده‌اند. به عنوان مثال، پروژه ابزارهای بین‌کانت تاریوخ (tariochbctools) واردکننده‌هایی برای بانک‌های سوئیس و بریتانیا فراهم می‌کند و حتی واردات تراکنش‌های رمزنگاری را نیز مدیریت می‌کند. مثال دیگر لیزی بین‌کانت است که مجموعه‌ای از واردکننده‌های رایج (برای وایز، مونزو، ریوولوت، آی‌بی‌کی‌آر و غیره) را بسته‌بندی می‌کند و یک راه‌اندازی مبتنی بر داکر برای خودکارسازی آسان فراهم می‌آورد. مهم نیست از کدام بانک یا سرویس مالی استفاده می‌کنید، به احتمال زیاد کسی یک واردکننده بین‌کانت برای آن نوشته است – یا می‌توانید با استفاده از چارچوب بین‌گالپ، واردکننده خود را بنویسید. انعطاف‌پذیری پایتون به این معنی است که واردکننده‌ها می‌توانند فایل‌های CSV/اکسل، دانلودهای OFX/QIF، یا حتی اسکرپینگ APIها را تجزیه کنند، سپس تراکنش‌ها را در فرمت استاندارد بین‌کانت منتشر کنند.

ویرایش و یکپارچه‌سازی با ویرایشگرها

از آنجایی که دفاتر حسابداری بین‌کانت (Beancount ledgers) صرفاً متن هستند، کاربران اغلب از ویرایشگرهای متنی یا IDEهای مورد علاقه خود برای نگهداری آن‌ها استفاده می‌کنند. اکوسیستم، افزونه‌های پشتیبانی ویرایشگر را برای روان‌تر کردن این تجربه ارائه می‌دهد. افزونه‌هایی برای بسیاری از ویرایشگرهای محبوب وجود دارد که قابلیت‌هایی مانند برجسته‌سازی نحو (syntax highlighting)، تکمیل خودکار نام حساب‌ها و بررسی خطای بلادرنگ را اضافه می‌کنند:

  • حالت بین‌کانت Emacs: یک حالت اصلی Emacs (beancount-mode) برای ویرایش فایل‌های .beancount در دسترس است که ویژگی‌هایی مانند رنگ‌آمیزی نحو و یکپارچه‌سازی با بررسی‌کننده بین‌کانت را ارائه می‌دهد. این حالت حتی می‌تواند bean-check را در پس‌زمینه اجرا کند تا خطاها در دفتر حسابداری (مانند یک تراکنش نامتوازن) هنگام ویرایش علامت‌گذاری شوند.
  • افزونه VS Code: یک افزونه بین‌کانت در بازارچه VSCode، امکانات مشابهی را برای کاربران ویژوال استودیو کد فراهم می‌کند. این افزونه از برجسته‌سازی نحو، تراز کردن مبالغ، تکمیل خودکار برای حساب‌ها/دریافت‌کنندگان و حتی بررسی‌های تراز لحظه‌ای هنگام ذخیره فایل پشتیبانی می‌کند. همچنین می‌تواند با فاوا (Fava) یکپارچه شود و به شما امکان می‌دهد رابط وب فاوا را از درون VSCode راه‌اندازی کنید.
  • افزونه‌ها یا حالت‌هایی نیز برای Vim، Atom و سایر ویرایشگرها وجود دارد. به عنوان مثال، یک گرامر Tree-sitter برای بین‌کانت وجود دارد که برجسته‌سازی نحو را در ویرایشگرهای مدرن تامین می‌کند و حتی در جزء ویرایشگر مبتنی بر وب فاوا نیز پذیرفته شده است. به طور خلاصه، هر محیط ویرایشی که داشته باشید، جامعه احتمالاً افزونه‌ای را برای راحت و بدون خطا کردن ویرایش فایل‌های بین‌کانت ارائه کرده است.

برای ورود سریع تراکنش‌ها در خارج از ویرایشگرهای سنتی، ابزارهایی مانند Bean-add و برنامه‌های موبایل نیز وجود دارند. Bean-add یک ابزار خط فرمان است که امکان افزودن یک تراکنش جدید را از طریق یک اعلان یا دستور تک‌خطی فراهم می‌کند و پیشنهادات تاریخ و حساب را مدیریت می‌کند. در موبایل، پروژه‌ای به نام بین‌کانت موبایل (Beancount Mobile) یک رابط کاربری ساده برای ورود تراکنش‌ها در حین حرکت (به عنوان مثال، ثبت یک خرید نقدی از طریق تلفن شما) ارائه می‌دهد. علاوه بر این، یک ربات تلگرام بین‌کانت (Beancount Telegram Bot) برای ثبت تراکنش‌ها از طریق پیام‌رسانی وجود دارد – می‌توانید پیامی حاوی جزئیات تراکنش ارسال کنید و ربات آن را در فایل دفتر حسابداری شما قالب‌بندی می‌کند.

رابط‌های کاربری وب و ابزارهای بصری‌سازی

(Fava) رابط کاربری وب Fava یک داشبورد تعاملی برای Beancount فراهم می‌کند که شامل گزارش‌هایی مانند صورت سود و زیان با بصری‌سازی‌ها (که در اینجا به صورت یک تری‌مپ از هزینه‌ها بر اساس دسته‌بندی نشان داده شده است) در کنار جداول حساب‌ها و مانده‌ها می‌باشد.

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

از نظر فنی، Fava با پایتون (Flask در بک‌اند) و جاوااسکریپت (Svelte در فرانت‌اند) نوشته شده است. این ابزار چرخه انتشار خاص خود را دارد و فعالانه نگهداری می‌شود. قابل ذکر است که Fava همگام با توسعه Beancount پیش رفته است – به عنوان مثال، Fava 1.30 پشتیبانی از Beancount v3 را اضافه کرد و برای استفاده داخلی به پکیج‌های جدید beanquery و beangulp تغییر یافت. (این ابزار همچنان از Beancount 2 برای دفترهای کل قدیمی‌تر پشتیبانی می‌کند.) تمرکز Fava بر قابلیت استفاده شامل جزئیات کاربردی مانند تکمیل خودکار در ویرایشگر وب، و یک رابط کاربری شیک با حالت تاریک و نمودارهای واکنش‌گرا است. همچنین یک نسخه فرعی به نام Fava-GTK وجود دارد که Fava را در قالب یک برنامه دسکتاپ برای کاربران GNOME/Linux که حس برنامه بومی را ترجیح می‌دهند، بسته‌بندی می‌کند.

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

ابزارهای خط فرمان و اسکریپت‌ها

Beancount با ابزارهای CLI مختلفی همراه است (به ویژه در شاخه قدیمی‌تر v2، که برخی از آن‌ها در v3 حذف شدند). این ابزارها بر روی فایل دفتر کل شما عمل می‌کنند تا آن را بررسی کنند یا گزارش‌های خاصی را به صورت متنی یا HTML تولید کنند:

  • bean-check: یک اعتبارسنج است که خطاهای نحوی یا خطاهای حسابداری را در فایل بررسی می‌کند. اجرای bean-check myfile.beancount شما را از هرگونه عدم توازن، حساب گم‌شده یا سایر مسائل آگاه می‌کند و در صورت عدم وجود خطا در فایل، هیچ خروجی ندارد.
  • bean-format: یک قالب‌بند است که دفتر کل شما را با تراز کردن اعداد در ستون‌های منظم، بسیار شبیه به اجرای یک قالب‌بند کد بر روی کد منبع، مرتب می‌کند. این کار به تمیز و خوانا نگه داشتن فایل کمک می‌کند.
  • bean-query: یک پوسته تعاملی یا ابزار دسته‌ای برای اجرای زبان پرس‌وجوی Beancount بر روی دفتر کل شما است. می‌توانید از آن برای تولید گزارش‌های جدولی سفارشی استفاده کنید (به عنوان مثال، bean-query myfile.beancount "SELECT account, sum(amount) WHERE ...").
  • bean-report: یک تولیدکننده گزارش همه‌کاره (در v2) است که می‌تواند گزارش‌های از پیش تعریف‌شده (ترازنامه، صورت سود و زیان، تراز آزمایشی و غیره) را به کنسول یا فایل‌ها خروجی دهد. به عنوان مثال، bean-report file.beancount balances مانده حساب‌ها را چاپ می‌کند. (در عمل، بسیاری از این گزارش‌های متنی با نمایش زیباتر فاوا جایگزین شده‌اند.)
  • bean-web / bean-bake: یک رابط وب قدیمی‌تر بود که گزارش‌ها را بر روی localhost ارائه می‌داد یا آن‌ها را به عنوان فایل‌های HTML ایستا "پخت" می‌کرد. این‌ها عمدتاً قبل از محبوبیت فاوا استفاده می‌شدند؛ bean-web یک نمای وب پایه از همان گزارش‌هایی که bean-report می‌توانست تولید کند، ارائه می‌داد. در Beancount 3، bean-web حذف شده است (زیرا فاوا اکنون رابط کاربری وب توصیه شده است و تجربه برتری را ارائه می‌دهد).
  • bean-example: ابزاری برای تولید یک فایل دفتر کل نمونه (مفید برای تازه‌واردان تا یک الگو از ورودی‌های Beancount را ببینند).
  • bean-doctor: یک ابزار اشکال‌زدایی است که می‌تواند مسائل را در دفتر کل یا محیط شما تشخیص دهد.

قابل ذکر است که از Beancount v3، بسیاری از این ابزارها از پروژه اصلی خارج شدند. بسته اصلی Beancount بهینه‌سازی شد و ابزارهایی مانند موتور پرس‌وجو و واردکننده‌ها برای نگهداری آسان‌تر به بسته‌های جداگانه (beanquery، beangulp و غیره) تقسیم شدند. به عنوان مثال، قابلیت bean-query اکنون توسط ابزار beanquery که به صورت جداگانه نصب می‌شود، ارائه می‌شود. از دیدگاه کاربر، قابلیت همچنان در دسترس است؛ فقط ماژولار شده است. جامعه آرچ لینوکس این تغییر را هنگام به‌روزرسانی فاوا متوجه شد: بسته فاوا وابستگی‌هایی به beanquery و beangulp اضافه کرد تا از Beancount 3.x پشتیبانی کند. این رویکرد ماژولار همچنین به دیگران در جامعه اجازه می‌دهد تا به این ابزارهای کمکی مستقل‌تر از چرخه انتشار Beancount کمک کنند.

افزونه‌ها و افزایه‌های Beancount

یکی از نقاط قوت برجسته اکوسیستم Beancount، سیستم افزونه‌ها است. با افزودن خط plugin "module.name" در فایل Beancount خود، می‌توانید منطق سفارشی پایتون را که در طول پردازش دفتر کل اجرا می‌شود، اضافه کنید. جامعه کاربری افزونه‌های زیادی را برای گسترش قابلیت‌های Beancount ایجاد کرده است:

  • کیفیت داده و قوانین: نمونه‌ها شامل beancount-balexpr است که به شما امکان می‌دهد معادلات شامل چندین حساب را تأیید کنید (مثلاً دارایی الف + دارایی ب = بدهی ایکس)، و beancount-checkclosed که به طور خودکار اظهارات تراز را هنگام بستن یک حساب وارد می‌کند تا اطمینان حاصل شود که خالص آن صفر است. حتی یک افزونه برای اطمینان از مرتب بودن تراکنش‌ها در فایل بر اساس تاریخ (autobean.sorted) وجود دارد تا ورودی‌های نامرتب را شناسایی کند.
  • اتوماسیون: افزونه beancount-asset-transfer می‌تواند ورودی‌های انتقال غیرنقدی بین حساب‌ها را تولید کند (مفید برای جابجایی سهام بین کارگزاران در حالی که مبنای هزینه حفظ می‌شود). افزونه دیگری به نام autobean.xcheck، دفتر کل Beancount شما را با صورت‌حساب‌های خارجی برای یافتن مغایرت‌ها مقایسه می‌کند.
  • تراکنش‌های تکراری و بودجه‌بندی: افزونه "repeat" یا interpolate توسط Akuukis امکان تعریف تراکنش‌های تکراری یا توزیع یک هزینه سالانه در طول ماه‌ها را فراهم می‌کند. برای بودجه‌بندی، افزایه fava-envelope (که از طریق Fava استفاده می‌شود) از متدولوژی بودجه‌بندی پاکتی در متن ساده پشتیبانی می‌کند. همچنین MiniBudget توسط فرانک دیویس وجود دارد – یک ابزار مستقل کوچک با الهام از Beancount برای کمک به بودجه‌بندی برای استفاده شخصی یا کسب‌وکارهای کوچک.
  • مالیات و گزارش‌دهی: برخی افزونه‌ها به حسابداری مالیاتی کمک می‌کنند، مانند افزونه‌ای که سود سرمایه را به طور خودکار به کوتاه‌مدت در مقابل بلندمدت طبقه‌بندی می‌کند. افزونه دیگری (fincen_114 توسط جاستوس پندلتون) گزارش FBAR را برای مالیات‌دهندگان آمریکایی دارای حساب‌های خارجی تولید می‌کند، که نشان می‌دهد چگونه داده‌های Beancount می‌توانند برای گزارش‌دهی نظارتی مورد استفاده قرار گیرند.
  • مخازن افزونه‌های جامعه کاربری: مجموعه‌های افزونه‌های منتخب مانند beancount-plugins (توسط دیو استفنز) وجود دارند که بر مواردی مانند ورودی‌های استهلاک تمرکز دارند، و beancount-plugins-zack (توسط استفانو زاکیرولی) که شامل کمک‌کننده‌های متنوعی مانند دستورالعمل‌های مرتب‌سازی هستند.

علاوه بر افزونه‌ها، سایر ابزارهای کاربردی مرتبط با Beancount نیازهای خاصی را برطرف می‌کنند. به عنوان مثال، beancount-black یک قالب‌بند خودکار مشابه قالب‌بند کد Black است، اما برای فایل‌های دفتر کل Beancount. یک ربات Beancount (تلگرام/مترموست) برای افزودن تراکنش‌ها از طریق چت وجود دارد که قبلاً ذکر شد، و یک گردش کار آلفرد برای macOS برای افزودن سریع تراکنش‌ها به فایل شما. ابزاری به نام Pinto یک CLI "فوق‌العاده" با ورود تعاملی (مانند یک bean-add پیشرفته) ارائه می‌دهد. برای کسانی که از سیستم‌های دیگر مهاجرت می‌کنند، مبدل‌هایی (YNAB2Beancount, CSV2Beancount, GnuCash2Beancount, Ledger2Beancount) وجود دارند که به وارد کردن داده‌ها از جاهای دیگر کمک می‌کنند.

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

| ابزار/افزایه | توضیحات Beancount is a simple, plain- text accounting system. It is a command-line tool that helps you manage your finances. It is designed for people who want to keep track of their finances in a simple, plain-text format. It is also designed for people who want to automate their accounting processes.

Beancount Features

  • Double-entry bookkeeping: Beancount uses the double-entry bookkeeping system, which is a fundamental concept in accounting. This system ensures that every transaction is recorded in at least two accounts, with equal and opposite effects. This helps to maintain the balance of the ledger and prevent errors.
  • Plain-text format: Beancount stores your financial data in plain-text files. This makes it easy to read, edit, and manage your data using any text editor. It also makes it easy to version control your data using tools like Git.
  • Command-line interface: Beancount provides a command-line interface (CLI) for interacting with your financial data. This allows you to quickly add, edit, and query your transactions using simple commands. It also makes it easy to integrate Beancount with other tools and scripts.
  • Extensible plugin system: Beancount has a powerful plugin system that allows you to extend its functionality with custom scripts. You can use plugins to automate tasks, generate reports, and integrate with other services.
  • Reporting and analysis: Beancount provides various reporting and analysis tools to help you understand your financial situation. You can generate reports such as balance sheets, income statements, and cash flow statements. You can also use Beancount to analyze your spending patterns and identify areas where you can save money.
  • Multi-currency support: Beancount supports multiple currencies, allowing you to track transactions in different currencies. It also handles currency conversions automatically, making it easy to manage your international finances.
  • Automated reconciliation: Beancount can help you reconcile your accounts with your bank statements. It can automatically match transactions and identify discrepancies, saving you time and effort.
  • Privacy and security: Beancount stores your financial data locally on your computer, giving you full control over your data. It does not send your data to any third-party servers, ensuring your privacy and security.

Why Choose Beancount?

  • Simplicity: Beancount is designed to be simple and easy to use. Its plain-text format and command-line interface make it accessible to anyone, regardless of their technical expertise.
  • Flexibility: Beancount is highly flexible and customizable. Its plugin system allows you to tailor it to your specific needs and workflows.
  • Control: With Beancount, you have full control over your financial data. You can store it locally, back it up, and manage it using your preferred tools.
  • Transparency: Beancount's plain-text format makes your financial data transparent and auditable. You can easily see how your transactions are recorded and how your balances are calculated.
  • Community: Beancount has a vibrant and supportive community of users and developers. You can find help, share tips, and contribute to the project.

Get Started with Beancount

Ready to take control of your finances with Beancount? Here's how you can get started:

  1. Install Beancount: Follow the instructions in the official documentation to install Beancount on your system.
  2. Create your first ledger: Start by creating a new plain-text file for your Beancount ledger.
  3. Add your transactions: Begin adding your financial transactions to your ledger using Beancount's simple syntax.
  4. Generate reports: Use Beancount's reporting tools to generate insights into your financial situation.
  5. Explore plugins: Discover and experiment with various plugins to extend Beancount's functionality.

Join the Beancount community today and experience the power of plain-text accounting!

مقایسه با لجر، اچ‌لجر و سیستم‌های مشابه

بین‌کانت (Beancount) به خانواده ابزارهای حسابداری دوطرفه متن ساده تعلق دارد که در میان آن‌ها لجر CLI (Ledger CLI) (لجر جان ویگلی) و اچ‌لجر (hledger) برجسته هستند. در حالی که همه این سیستم‌ها ایده اصلی فایل‌های دفتر کل متن ساده و حسابداری دوطرفه را به اشتراک می‌گذارند، اما در نحو، فلسفه و بلوغ اکوسیستم با یکدیگر تفاوت دارند. جدول زیر تفاوت‌های کلیدی بین بین‌کانت، لجر و اچ‌لجر را برجسته می‌کند:

| جنبه | بین‌کانت (پایتون)

سناریوهای استفاده از بین‌کانت

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

مالیه شخصی

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

  • یکپارچه‌سازی و تحلیل: تمام تراکنش‌های شما می‌توانند در یک فایل متنی (یا مجموعه‌ای از فایل‌ها) قرار گیرند که سال‌ها سابقه مالی را نشان می‌دهد. این کار تحلیل روندهای بلندمدت را آسان می‌کند. با زبان پرس‌وجوی بین‌کانت یا با فاوا، می‌توانید به سوالاتی مانند "در 5 سال گذشته چقدر برای سفر هزینه کردم؟" یا "میانگین قبض ماهانه خواربار من چقدر است؟" در عرض چند ثانیه پاسخ دهید. یکی از کاربران اشاره کرد که پس از روی آوردن به بین‌کانت، «تحلیل داده‌های مالی (هزینه‌ها، کمک‌ها، مالیات و غیره) بسیار ساده است»، چه از طریق فاوا و چه با پرس‌وجو از داده‌ها و استفاده از ابزارهایی مانند Pandas. در اصل، دفتر کل شما به یک پایگاه داده مالی شخصی تبدیل می‌شود که می‌توانید به دلخواه از آن پرس‌وجو کنید.
  • بودجه‌بندی و برنامه‌ریزی: در حالی که بین‌کانت یک سیستم بودجه‌بندی را تحمیل نمی‌کند، می‌توانید آن را پیاده‌سازی کنید. برخی از کاربران با ایجاد حساب‌های بودجه یا استفاده از افزونه fava-envelope، بودجه‌بندی پاکتی را انجام می‌دهند. برخی دیگر به سادگی از گزارش‌های دوره‌ای برای مقایسه هزینه‌ها با اهداف استفاده می‌کنند. از آنجا که متن ساده است، یکپارچه‌سازی بین‌کانت با ابزارهای بودجه‌بندی خارجی یا صفحات گسترده (اکسل) ساده است (صادر کردن داده‌ها یا استفاده از خروجی‌های CSV از پرس‌وجوها).
  • ردیابی سرمایه‌گذاری‌ها و ارزش خالص دارایی: بین‌کانت به لطف مدیریت قوی مبنای بهای تمام شده و قیمت‌های بازار، در ردیابی سرمایه‌گذاری‌ها عالی عمل می‌کند. می‌توانید خرید/فروش سهام، ارزهای دیجیتال و غیره را با جزئیات بهای تمام شده ثبت کنید و سپس از دستورات Prices برای پیگیری ارزش بازار استفاده کنید. فاوا می‌تواند نمودار ارزش خالص دارایی در طول زمان و تفکیک سبد سرمایه‌گذاری بر اساس طبقه دارایی را نشان دهد. این برای مدیریت ثروت شخصی بسیار مفید است – شما بینش‌هایی مشابه آنچه ابزارهای تجاری مانند Mint یا Personal Capital ارائه می‌دهند، به دست می‌آورید، اما کاملاً تحت کنترل خودتان. مدیریت چند ارزی نیز داخلی است، بنابراین اگر ارزهای خارجی یا ارزهای دیجیتال نگهداری می‌کنید، بین‌کانت می‌تواند آن‌ها را ردیابی کرده و برای گزارش‌دهی تبدیل کند.
  • تطبیق و دقت: مالیه شخصی اغلب شامل تطبیق با صورت‌حساب‌های بانکی است. با بین‌کانت، می‌توان به طور منظم حساب‌ها را با استفاده از اظهارات تراز (balance assertions) یا قابلیت اسناد تطبیق داد. به عنوان مثال، هر ماه ممکن است یک ورودی balance Assets:Bank:Checking <date> <balance> اضافه کنید تا تأیید کنید که دفتر کل شما با صورت‌حساب بانک در پایان ماه مطابقت دارد. ابزار bean-check (یا نمایش خطای فاوا) در صورت عدم تطابق، به شما هشدار می‌دهد. یکی از کاربران به انجام تطبیق ماهانه تمام حساب‌ها اشاره می‌کند که «به شناسایی هرگونه فعالیت غیرعادی کمک می‌کند» – یک روش خوب بهداشت مالی شخصی که بین‌کانت آن را تسهیل می‌کند.
  • اتوماسیون: افراد آشنا به فناوری، بخش‌های بزرگی از گردش کار مالیه شخصی خود را با بین‌کانت خودکار کرده‌اند. با استفاده از واردکننده‌ها، کرون جاب‌ها و شاید کمی پایتون، می‌توانید سیستم خود را طوری تنظیم کنید که، به عنوان مثال، هر روز تراکنش‌های بانکی شما واکشی شده (برخی از OFX یا APIها استفاده می‌کنند) و به فایل بین‌کانت شما اضافه شوند، که بر اساس قوانین دسته‌بندی شده‌اند. با گذشت زمان، دفتر کل شما عمدتاً به صورت خودکار به‌روزرسانی می‌شود و شما فقط در صورت نیاز آن را بررسی و تنظیم می‌کنید. یکی از اعضای جامعه در Hacker News به اشتراک گذاشت که پس از 3 سال، دفاتر بین‌کانت آن‌ها «95% خودکار» بودند. این سطح از اتوماسیون به دلیل باز بودن متن ساده بین‌کانت و قابلیت‌های اسکریپت‌نویسی آن امکان‌پذیر است.

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

حسابداری کسب‌وکارهای کوچک

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

  • دفتر کل و صورت‌های مالی: یک کسب‌وکار کوچک می‌تواند فایل بین‌کاونت را به عنوان دفتر کل خود در نظر بگیرد. شما حساب‌های دارایی برای حساب‌های بانکی، حساب‌های دریافتنی، شاید موجودی کالا؛ حساب‌های بدهی برای کارت‌های اعتباری، وام‌ها، حساب‌های پرداختنی؛ حقوق صاحبان سهام برای سرمایه مالک؛ حساب‌های درآمد برای فروش یا خدمات؛ و حساب‌های هزینه برای تمام هزینه‌های کسب‌وکار خواهید داشت. با نگهداری این دفتر کل، می‌توانید در هر زمان با استفاده از گزارش‌ها یا پرس‌وجوهای بین‌کاونت، صورت سود و زیان (سود و زیان) و ترازنامه تولید کنید. در واقع، گزارش‌های داخلی بین‌کاونت یا فاوا (Fava) می‌توانند در عرض چند ثانیه ترازنامه و صورت سود و زیان را تولید کنند که کاملاً با اصول حسابداری مطابقت دارند. این می‌تواند برای یک عملیات کوچک جهت ارزیابی سودآوری، وضعیت مالی و جریان نقدی (با کمی پرس‌وجو برای جریان نقدی، زیرا صورت‌های جریان نقدی مستقیم داخلی نیستند اما قابل استخراج هستند) کافی باشد.
  • فاکتورها و حساب‌های دریافتنی، حساب‌های پرداختنی: بین‌کاونت سیستم صدور فاکتور داخلی ندارد؛ کاربران معمولاً صدور فاکتور را در خارج از آن (مثلاً ایجاد فاکتور در ورد یا یک برنامه فاکتور) انجام می‌دهند و سپس نتایج را در بین‌کاونت ثبت می‌کنند. به عنوان مثال، هنگامی که فاکتوری صادر می‌کنید، یک ثبت حسابداری شامل بدهکار کردن حساب‌های دریافتنی و بستانکار کردن درآمد را ثبت می‌کنید. هنگامی که پرداخت انجام می‌شود، حساب نقد/بانک را بدهکار و حساب‌های دریافتنی را بستانکار می‌کنید. به این ترتیب، می‌توانید با بررسی مانده حساب‌های دریافتنی، مطالبات معوق را پیگیری کنید. همین امر در مورد صورت‌حساب‌ها (حساب‌های پرداختنی) نیز صدق می‌کند. اگرچه این روش دستی‌تر از نرم‌افزارهای حسابداری تخصصی است (که ممکن است یادآوری ارسال کنند یا با ایمیل‌ها یکپارچه شوند)، اما کاملاً قابل انجام است. برخی از کاربران الگوها یا جریان‌های کاری را به اشتراک گذاشته‌اند که چگونه فاکتورها را با بین‌کاونت مدیریت می‌کنند و اطمینان حاصل می‌کنند که فاکتورهای باز را از دست نمی‌دهند (به عنوان مثال، با استفاده از فراداده یا پرس‌وجوهای سفارشی برای لیست کردن فاکتورهای پرداخت نشده).
  • موجودی کالا یا بهای تمام شده کالای فروش رفته: برای کسب‌وکارهایی که محصولات می‌فروشند، بین‌کاونت می‌تواند خرید و فروش موجودی کالا را ردیابی کند، اما نیاز به ثبت‌های دقیق و منظم دارد. شما می‌توانید از ویژگی‌های موجودی کالا و حسابداری بهای تمام شده استفاده کنید: خرید موجودی کالا یک حساب دارایی را افزایش می‌دهد (با بهای تمام شده مرتبط با اقلام)، فروش آن بهای تمام شده را به یک هزینه (بهای تمام شده کالای فروش رفته) منتقل می‌کند و درآمد را ثبت می‌کند. از آنجایی که بین‌کاونت بر تطبیق دسته‌ها اصرار دارد، کاهش صحیح موجودی کالا با بهای تمام شده درست را اعمال می‌کند، که در صورت انجام صحیح می‌تواند دقت محاسبات سود ناخالص شما را تضمین کند. با این حال، هیچ ردیابی خودکار SKU یا موارد مشابه وجود ندارد – همه چیز در سطح مالی (مقدار و بهای تمام شده) است.
  • حقوق و دستمزد و تراکنش‌های پیچیده: بین‌کاونت می‌تواند تراکنش‌های حقوق و دستمزد (هزینه حقوق، کسورات مالیاتی و غیره) را ثبت کند، اما محاسبه این ارقام ممکن است به صورت خارجی یا از طریق ابزار دیگری انجام شود و سپس فقط در بین‌کاونت ثبت گردد. برای یک کسب‌وکار بسیار کوچک (مثلاً یک یا دو کارمند)، این کار قابل مدیریت است. به عنوان مثال، شما یک ثبت روزنامه واحد برای هر دوره پرداخت که دستمزدها، مالیات کسر شده، هزینه مالیات کارفرما، وجه نقد پرداخت شده و غیره را تفکیک می‌کند، ثبت خواهید کرد. انجام این کار به صورت دستی مشابه نحوه انجام آن در ثبت‌های روزنامه QuickBooks است – نیاز به دانش در مورد اینکه کدام حساب‌ها را تحت تأثیر قرار دهید، دارد.
  • چند کاربره و حسابرسی: یکی از چالش‌ها در محیط کسب‌وکار این است که آیا چندین نفر نیاز به دسترسی به دفاتر دارند یا یک حسابدار نیاز به بررسی آن‌ها دارد. از آنجایی که بین‌کاونت یک فایل متنی است، به صورت بلادرنگ چند کاربره نیست. با این حال، میزبانی فایل در یک مخزن گیت (Git repository) می‌تواند همکاری را امکان‌پذیر سازد: هر شخص می‌تواند ویرایش و کامیت (commit) کند، و تفاوت‌ها را می‌توان ادغام (merge) کرد.
  • انطباق با مقررات: برای اظهارنامه مالیاتی یا انطباق با مقررات، داده‌های بین‌کاونت می‌توانند برای تولید گزارش‌های لازم استفاده شوند، اما ممکن است نیاز به پرس‌وجوهای سفارشی یا افزونه‌ها داشته باشد. ما نمونه‌ای از یک افزونه جامعه برای گزارش‌دهی انطباق با دولت هند و یکی برای گزارش‌دهی FinCEN FBAR را دیدیم. این نشان می‌دهد که با تلاش، بین‌کاونت می‌تواند برای برآورده کردن الزامات گزارش‌دهی خاص تطبیق یابد. کسب‌وکارهای کوچک در حوزه‌های قضایی با الزامات ساده (حسابداری نقدی یا تعهدی پایه) قطعاً می‌توانند دفاتر را در بین‌کاونت نگهداری کرده و صورت‌های مالی را برای اظهارنامه‌های مالیاتی تولید کنند. با این حال، ویژگی‌هایی مانند جداول استهلاک یا امورتایزیشن (amortization) ممکن است نیاز به ثبت‌های دستی شما یا استفاده از یک افزونه داشته باشد (برای مثال، افزونه‌های استهلاک دیو استفنز به خودکارسازی آن کمک می‌کنند). هیچ رابط کاربری گرافیکی (GUI) برای «کلیک کردن برای استهلاک دارایی» مانند برخی نرم‌افزارهای حسابداری وجود ندارد؛ شما استهلاک را به عنوان تراکنش‌ها کدگذاری می‌کنید (که به نوعی آن را از ابهام خارج می‌کند – همه چیز یک ثبت است که می‌توانید آن را بررسی کنید).

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

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

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

جامعه و فعالیت توسعه

بیانکونت (Beancount) دارای جامعه‌ای اختصاصی و داستانی از توسعه است که ماهیت متن‌باز، خاص اما پرشور آن را منعکس می‌کند. در ادامه نکات کلیدی درباره جامعه، نگه‌دارندگان و پروژه‌های مرتبط با آن آورده شده است:

  • نگهداری پروژه: نویسنده اصلی بیانکونت، مارتین بلایس (Martin Blais) است که پروژه را حدود سال ۲۰۰۷ آغاز کرد و آن را در نسخه‌های متعدد هدایت کرده است. توسعه برای مدت طولانی عمدتاً تلاشی یک‌نفره بود (به‌جز مشارکت‌های جامعه در قالب پچ‌ها). فلسفه مارتین این بود که ابزار حسابداری‌ای بسازد که "اول برای خودم مفید باشد، و همچنین برای دیگران، به ساده‌ترین و بادوام‌ترین شکل ممکن". این انگیزه شخصی پروژه را به‌عنوان یک کار عاشقانه زنده نگه داشت. تا سال ۲۰۲۵، مارتین بلایس همچنان نگه‌دارنده اصلی است (نام او در کامیت‌ها ظاهر می‌شود و او به سؤالات در لیست پستی/ردیاب مشکلات پاسخ می‌دهد)، اما اکوسیستم اطراف بیانکونت مشارکت‌کنندگان بسیاری در پروژه‌های مربوط به خود دارد.

  • گیت‌هاب و مخازن: کد منبع در گیت‌هاب تحت مخزن beancount/beancount میزبانی می‌شود. این پروژه تحت مجوز GPL-2.0 است و در طول سال‌ها تعداد متوسطی از مشارکت‌کنندگان را جذب کرده است. در اواسط سال ۲۰۲۴، بیانکونت نسخه ۳ به‌طور رسمی به‌عنوان شاخه پایدار جدید منتشر شد. این انتشار شامل جداسازی برخی اجزا بود: به‌عنوان مثال، مخزن beangulp (برای واردکننده‌ها) و مخزن beanquery (برای ابزار پرس‌وجو) اکنون بخشی از سازمان گیت‌هاب beancount هستند و تا حدی مستقل نگهداری می‌شوند. مخزن اصلی بیانکونت بر موتور اصلی حسابداری و تحلیل‌گر فایل تمرکز دارد. تا سال ۲۰۲۵، گیت‌هاب بیانکونت بحث‌های فعال در مورد مشکلات و توسعه در حال انجام را نشان می‌دهد – اگرچه حجم بالایی ندارد، اما مشکلات و درخواست‌های پول (pull requests) به‌تدریج وارد می‌شوند و به‌روزرسانی‌های گاه‌به‌گاه برای رفع اشکالات یا بهبود ویژگی‌ها انجام می‌شود.

  • توسعه فاوا: فاوا (Fava)، رابط وب، به‌عنوان یک پروژه جداگانه آغاز شد (ایجاد شده توسط دومینیک آومایر (Dominic Aumayr) که در سال ۲۰۱۶ حق کپی‌رایت آن را ثبت کرد). این پروژه جامعه مشارکت‌کنندگان خاص خود را دارد و همچنین در گیت‌هاب تحت beancount/fava قرار دارد. نگه‌دارندگان و مشارکت‌کنندگان فاوا (مانند یاکوب شنیتز (Jakob Schnetz)، استفان اوته (Stefan Otte) و دیگران در سال‌های اخیر) به‌طور فعال در حال بهبود رابط کاربری بوده‌اند و هر چند ماه یک‌بار نسخه‌های جدیدی منتشر می‌کنند. چت گیتِر (Gitter) فاوا (که در مستندات فاوا لینک شده است) و ردیاب مشکلات گیت‌هاب مکان‌هایی هستند که کاربران و توسعه‌دهندگان درباره ویژگی‌های جدید یا اشکالات بحث می‌کنند. این پروژه از مشارکت‌ها استقبال می‌کند، که با یادداشتی در CHANGELOG که از چندین عضو جامعه برای درخواست‌های پولشان (PRs) تشکر می‌کند، مشهود است. همسویی نزدیک فاوا با توسعه بیانکونت (مانند افزودن سریع پشتیبانی از Beancount v3 و نحو جدید beanquery) نشان‌دهنده همکاری خوب بین دو پروژه است.

  • لیست‌های پستی و انجمن‌ها: بیانکونت یک لیست پستی رسمی دارد (قبلاً در گروه‌های گوگل (Google Groups) با عنوان "Beancount" یا گاهی در لیست عمومی لِجر (Ledger) مورد بحث قرار می‌گرفت). این لیست پستی گنجینه‌ای از دانش است – کاربران سؤالاتی درباره نحوه مدل‌سازی سناریوهای خاص می‌پرسند، اشکالات را گزارش می‌دهند و نکات را به اشتراک می‌گذارند. مارتین بلایس به پاسخ‌های دقیق در لیست پستی معروف است. علاوه بر این، جامعه گسترده‌تر حسابداری متن ساده همپوشانی زیادی دارد. لیست پستی Ledger CLI نیز اغلب سؤالاتی درباره بیانکونت را مطرح می‌کند، و یک انجمن در plaintextaccounting.org و یک ساب‌ردیت (subreddit) به نام r/plaintextaccounting وجود دارد که موضوعات بیانکونت به‌طور مکرر در آن مطرح می‌شوند. کاربران در این پلتفرم‌ها درباره مقایسه‌ها بحث می‌کنند، تنظیمات شخصی خود را به اشتراک می‌گذارند و به تازه‌واردان کمک می‌کنند. لحن کلی جامعه بسیار تعاونی است – کاربران بیانکونت اغلب به کاربران لِجر کمک می‌کنند و بالعکس، با درک اینکه همه این ابزارها اهداف مشابهی دارند.

  • گروه‌های چت: علاوه بر لیست‌های پستی، کانال‌های چتی مانند اسلک/دیسکورد حسابداری متن ساده (که توسط جامعه سازماندهی شده‌اند) و گیتِر فاوا وجود دارند. این‌ها روش‌های کمتر رسمی و بلادرنگ‌تری برای دریافت کمک یا بحث درباره ویژگی‌ها هستند. به‌عنوان مثال، ممکن است کسی به اسلک بپیوندد تا بپرسد آیا کسی واردکننده‌ای برای یک بانک خاص دارد یا خیر. همچنین یک کانال ماتریکس/IRC (که از لحاظ تاریخی #ledger یا #beancount در IRC بوده است) وجود دارد که برخی از کاربران قدیمی در آن حضور دارند. اگرچه این کانال‌ها به اندازه جوامع نرم‌افزارهای اصلی پرجمعیت نیستند، اما افراد آگاهی در آن‌ها حضور دارند که اغلب می‌توانند به سؤالات حسابداری مبهم پاسخ دهند.

  • مشارکت‌کنندگان و اعضای کلیدی جامعه: چند نام در جامعه بیانکونت برجسته هستند:

    • "رد‌استریت" (Red S): یک مشارکت‌کننده پرکار که بسیاری از افزونه‌ها (مانند beancount-balexpr، sellgains و غیره) را نوشته و اغلب پشتیبانی ارائه می‌دهد. او همچنین مجموعه‌ای از اسکریپت‌های واردکننده و ابزاری به نام bean-download را برای واکشی صورت‌حساب‌ها نگهداری می‌کند.
    • واسیلی ام (Evernight): نویسنده برخی چارچوب‌های واردکننده و افزونه‌ها مانند beancount-valuation، و مشارکت در فاوا در زمینه سرمایه‌گذاری‌ها.
    • استفانو زاکیرولی (zack): یک توسعه‌دهنده دبیان (Debian) که beancount-mode را برای اِمکس (Emacs) و مخزن افزونه‌های خود را ایجاد کرده است. او همچنین از حسابداری متن ساده در محیط‌های آکادمیک حمایت کرده است.
    • سایمون مایکل: در حالی که او عمدتاً رهبر hledger است، وب‌سایت plaintextaccounting.org را اداره می‌کند که شامل بیانکونت نیز می‌شود. این گرده‌افشانی متقابل به جلب توجه کاربران لِجر/hledger به بیانکونت کمک کرده است.
    • فرانک هل (Tarioch): مشارکت‌کننده ابزارهای Tarioch Beancount Tools، مجموعه‌ای بزرگ از واردکننده‌ها و واکشی‌کننده‌های قیمت به‌ویژه برای مؤسسات اروپایی.
    • سیدانت گوئل: یکی از اعضای جامعه که درباره بیانکونت وبلاگ می‌نویسد (به‌عنوان مثال، راهنمای او برای مهاجرت به نسخه ۳) و برخی واردکننده‌ها را نگهداری می‌کند. پست‌های وبلاگ او به بسیاری از کاربران جدید کمک کرده است.

    این افراد و بسیاری دیگر، کد، مستندات و کمک در انجمن‌ها را ارائه می‌دهند و اکوسیستم را با وجود اندازه نسبتاً کوچک آن، پویا نگه می‌دارند.

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

تحولات اخیر و ویژگی‌های آتی

تا سال ۲۰۲۵، اکوسیستم Beancount شاهد تحولات قابل توجهی در چند سال گذشته بوده است، و بحث‌های جاری در مورد بهبودهای آتی وجود دارد. در اینجا برخی از تحولات اخیر قابل توجه و نگاهی اجمالی به آنچه ممکن است در راه باشد، آورده شده است:

  • انتشار Beancount 3.0 (2024): پس از مدت‌ها که Beancount 2.x استاندارد بود، نسخه ۳ به طور رسمی در اواسط سال ۲۰۲۴ منتشر شد. این یک نقطه عطف بزرگ بود زیرا نسخه ۳ نشان‌دهنده ساده‌سازی و مدرن‌سازی پایگاه کد است. مارتین بلایس نسخه ۳ را فرصتی برای "بازآرایی و ساده‌سازی" بیشتر سیستم تصور کرده بود. در حالی که در ابتدا تصور می‌شد یک بازنویسی بزرگ باشد، در عمل به‌روزرسانی برای کاربران چندان مختل‌کننده نبود. تغییرات اصلی زیر کاپوت بودند: یک تجزیه‌کننده جدید، برخی بهبودهای عملکردی، و استخراج اجزای اختیاری از هسته. این انتشار به تدریج انجام شد (نسخه ۳ از سال ۲۰۲۲ در بتا بود، اما تا ژوئیه ۲۰۲۴ به نسخه پایدار توصیه شده تبدیل شد). کاربرانی مانند Siddhant Goel گزارش دادند که مهاجرت از ۲.x به ۳.x "عمدتاً بدون حادثه" و تنها با چند تغییر در گردش کار همراه بود.

  • ماژولار شدن – ابزارها به بسته‌های جداگانه منتقل شدند: یکی از تغییرات بزرگ با Beancount 3 این است که بسیاری از ابزارهایی که قبلاً در مخزن یکپارچه قرار داشتند، جدا شدند. به عنوان مثال، bean-query اکنون توسط بسته beanquery ارائه می‌شود، و beancount.ingest با بسته beangulp جایگزین شد. دستوراتی مانند bean-extract و bean-identify (برای واردات) از هسته Beancount حذف شدند. در عوض، فلسفه این است که از اسکریپت‌های مستقل برای وارد کردن استفاده شود. این بدان معناست که اگر به نسخه ۳ ارتقا دهید، باید beangulp را نصب کرده و اسکریپت‌های واردکننده را اجرا کنید (هر واردکننده اساساً یک برنامه کوچک است) به جای داشتن یک فایل پیکربندی مرکزی bean-extract. به طور مشابه، پرس‌وجوها از طریق beanquery اجرا می‌شوند که می‌تواند مستقل از هسته Beancount نصب و به‌روزرسانی شود. این رویکرد پیمانه‌ای برای آسان‌تر کردن نگهداری و تشویق مشارکت‌های جامعه طراحی شده است. همچنین هسته Beancount را کوچک‌تر کرد، بنابراین هسته صرفاً بر تجزیه و منطق حسابداری تمرکز می‌کند، در حالی که قابلیت‌های جانبی می‌توانند به طور جداگانه تکامل یابند. از دیدگاه کاربر، پس از ارتقا، باید دستورات را تنظیم کرد (به عنوان مثال، استفاده از bean-query از beanquery، یا استفاده از Fava که این را به هر حال انتزاعی می‌کند). تاریخچه تغییرات Fava به صراحت این تغییرات را ذکر می‌کند: Fava اکنون به beanquery و beangulp وابسته است، و جریان‌های کاری واردات را برای Beancount 3 در مقابل 2 به طور متفاوتی مدیریت می‌کند.

  • بهبودهای عملکردی: عملکرد یکی از انگیزه‌های بازنگری در طراحی Beancount بود. برنامه نسخه ۳ (همانطور که در سند "اهداف V3" مارتین تشریح شده است) شامل بهینه‌سازی تجزیه‌کننده و احتمالاً سریع‌تر و کم‌مصرف‌تر کردن فرآیند بارگذاری بود. تا سال ۲۰۲۵، برخی از این بهبودها محقق شده‌اند. به طور غیررسمی، کاربران با دفترهای کل بسیار بزرگ (ده‌ها هزار تراکنش، یا تعداد زیادی معاملات سهام) عملکرد بهتری را با آخرین نسخه گزارش کرده‌اند. به عنوان مثال، کاربری که با "تراکنش‌های خرد سرمایه‌گذاری" سروکار داشت و با مشکلات عملکردی مواجه بود، این نگرانی‌ها را در گروه Google مطرح کرد – این نوع بازخورد احتمالاً نسخه ۳ را شکل داده است. تجزیه‌کننده جدید کارآمدتر و به روشی واضح‌تر نوشته شده است که می‌تواند در آینده گسترش یابد. علاوه بر این، Fava 1.29 به یک مکانیزم نظارت بر فایل کارآمدتر (با استفاده از کتابخانه watchfiles) منتقل شد تا پاسخگویی را هنگام تغییر دفتر کل بهبود بخشد. با نگاه به آینده، جامعه ممکن است تجزیه افزایشی (فقط پردازش مجدد بخش‌های تغییر یافته فایل به جای همه چیز) را برای مدیریت سریع‌تر دفترهای کل بزرگ بررسی کند – این در مستندات به عنوان ایده "سرور Beancount / ثبت افزایشی" اشاره شده بود.

  • بهبودهای ردیابی سرمایه‌گذاری: کار مداومی برای بهبود گزارش‌دهی سرمایه‌گذاری و سبد سهام انجام شده است. به عنوان مثال، مدیریت مبنای میانگین هزینه در مقابل فایفو (FIFO) به تفصیل مورد بحث قرار گرفت. در حالی که Beancount تطبیق دسته‌ها را اعمال می‌کند، برخی کاربران مبنای میانگین هزینه را برای حوزه‌های قضایی خاص ترجیح می‌دهند. یک پیشنهاد و بحث در مورد انعطاف‌پذیرتر کردن ثبت مبنای هزینه (احتمالاً از طریق یک افزونه یا گزینه) وجود دارد. تا سال ۲۰۲۵، هیچ سوئیچ داخلی برای میانگین هزینه وجود ندارد، اما زیرساخت در نسخه ۳ (بازطراحی ثبت) پیاده‌سازی آن را برای افزونه‌ها آسان‌تر می‌کند. یک افزونه جامعه‌ای به نام "Gains Minimizer" منتشر شد که می‌تواند پیشنهاد کند کدام دسته‌ها را برای به حداقل رساندن مالیات بفروشید، که نشان‌دهنده نوع ابزارهای پیشرفته‌ای است که در اطراف سرمایه‌گذاری‌ها ساخته می‌شوند. Fava نیز ویژگی‌هایی مانند یک افزونه خلاصه سبد سهام (با محاسبات نرخ بازده) اضافه کرد. از نظر ویژگی‌های آتی، می‌توان انتظار بیشتری در این زمینه داشت: احتمالاً پیشنهادهای متعادل‌سازی خودکار سبد سهام یا تحلیل ریسک، که احتمالاً به عنوان ابزارهای خارجی که داده‌های Beancount را می‌خوانند (زیرا تمام داده‌ها در آنجا موجود است) ارائه خواهند شد.

  • افزونه‌ها و توسعه‌های جدید: اکوسیستم افزونه‌ها به طور مداوم در حال رشد است. اضافات قابل توجه اخیر عبارتند از:

    • ابزارهای گزارش‌دهی بودجه – به عنوان مثال، یک گزارشگر بودجه CLI ساده اگر کسی از رابط کاربری Fava استفاده نمی‌کند.
    • رمزگذاری و امنیت – تنظیمات fava-encrypt، که امکان میزبانی آنلاین Fava را با دفتر کل رمزگذاری شده در حالت سکون فراهم می‌کند، معرفی شد و به نگرانی میزبانی شخصی امور مالی شما پاسخ داد.
    • افزونه‌های بهبود کیفیت زندگی – مانند autobean-format (یک فرمت‌کننده جدید که می‌تواند موارد گوشه‌ای بیشتری را با تجزیه و چاپ مجدد فایل مدیریت کند)، و یکپارچه‌سازی beancheck در ویرایشگرها (flymake برای Emacs).

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

  • ویژگی‌های بالقوه آتی: بر اساس بحث‌ها در ردیاب مسائل و لیست پستی، چند ایده در افق هستند (اگرچه تضمین شده نیستند):

    • تفکیک زمانی: در حال حاضر، Beancount فقط تاریخ‌ها (بدون برچسب‌های زمانی) را برای تراکنش‌ها ردیابی می‌کند. سوالاتی در مورد افزودن زمان (برای معاملات سهام یا ترتیب تراکنش‌های هم‌روزه) مطرح شده است. مارتین بلایس به صراحت تصمیم گرفت که برچسب‌های زمانی زیر یک روز برای حفظ سادگی خارج از محدوده هستند. این بعید است به زودی تغییر کند – بنابراین نسخه‌های آتی احتمالاً تفکیک زمانی را اضافه نخواهند کرد و بر این موضع پایبند خواهند بود که اگر به زمان نیاز دارید، آن را در شرح یا یک حساب بگنجانید.
    • ویرایش GUI پیشرفته: Fava به طور مداوم قابلیت‌های ویرایش خود را بهبود می‌بخشد. یک امکان، یک ویرایشگر وب با قابلیت‌های کامل‌تر (با پیشنهاد خودکار، شاید ورود مبتنی بر فرم برای تراکنش‌های جدید) است. زیرساخت استفاده از tree-sitter در ویرایشگر Fava فراهم شده است. ممکن است شاهد تبدیل Fava نه تنها به یک نمایشگر بلکه به یک ویرایشگر قدرتمندتر باشیم، که نیاز به باز کردن یک ویرایشگر متن را برای بسیاری از وظایف کاهش می‌دهد.
    • پشتیبانی بهتر از چندین دفتر کل: برخی کاربران چندین فایل Beancount را نگهداری می‌کنند (برای نهادهای مختلف یا برای تفکیک شخصی در مقابل تجاری). در حال حاضر، شامل کردن فایل‌ها امکان‌پذیر است اما محدودیت‌هایی دارد (افزونه‌ها در فایل‌های شامل شده و غیره). یک افزونه اخیر autobean.include برای شامل کردن ایمن دفترهای کل خارجی ایجاد شد. در آینده، ممکن است شاهد پشتیبانی درجه یک برای تنظیمات چند فایلی باشیم – شاید مفهومی از یک "پروژه" Beancount با چندین فایل (این با ویژگی‌هایی مانند تنظیم beancount.mainBeanFile در افزونه VSCode اشاره شده است). این به کسانی که حسابداری چند نهادی را انجام می‌دهند یا می‌خواهند دفتر کل خود را ماژولار کنند، کمک خواهد کرد.
    • محاسبات بی‌درنگ یا افزایشی: با رشد دفترهای کل، توانایی محاسبه مجدد سریع گزارش‌ها اهمیت پیدا می‌کند. ایده‌ای از یک سرور Beancount وجود دارد که در حال اجرا باقی می‌ماند و نتایج را با تغییر تراکنش‌ها به‌روزرسانی می‌کند. این می‌تواند به عنوان یک بهینه‌سازی در Fava یا یک دیمون که افزونه‌های ویرایشگر می‌توانند از آن پرس‌وجو کنند، ظاهر شود. شاید یک نسخه آتی Fava از یک فرآیند Beancount در حال اجرا به طور مداوم برای پاسخگوتر کردن رابط کاربری برای دفترهای کل عظیم استفاده کند.
    • حسابداری وجوه / ویژگی‌های غیرانتفاعی: یک پیشنهاد بهبود در مورد حسابداری وجوه در Beancount وجود داشت. سازمان‌های غیرانتفاعی نیازهای حسابداری (وجوه محدود شده در مقابل نامحدود) دارند که می‌توانند با سلسله مراتب برچسب یا حساب Beancount مدل‌سازی شوند. بحث هنوز به ویژگی‌های داخلی منجر نشده است، اما اگر سازمان‌های غیرانتفاعی بیشتری Beancount را انتخاب کنند، این می‌تواند قابلیت‌های جدیدی را به دنبال داشته باشد (شاید فقط بهترین شیوه‌های مستند شده یا افزونه‌هایی برای ردیابی موجودی وجوه).
  • چشم‌انداز بلندمدت: مارتین بلایس اشاره کرد که آینده Beancount را در تبدیل هسته به یک موتور و انتقال قابلیت‌های بیشتر به افزونه‌ها

بهبود تجربه Beancount شما با لینک‌ها و پرس‌وجوهای سفارشی

· زمان مطالعه 4 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

Beancount، سیستم حسابداری دوطرفه که مورد علاقه توسعه‌دهندگان و علاقه‌مندان به امور مالی است، در سادگی خود قدرتمند است. اما برای کسانی که کنترل بیشتر و ناوبری سریع‌تر در Fava، رابط وب Beancount، می‌خواهند، لینک‌های سفارشی نوار کناری و پرس‌وجوهای SQL می‌توانند گردش کار شما را به سطح بعدی ببرند.

در این راهنما، به شما نشان خواهیم داد که چگونه:

  • لینک‌های دسترسی سریع را به نوار کناری Fava اضافه کنید
  • از پرس‌وجوهای SQL برای فیلتر کردن و تحلیل پیشرفته استفاده کنید
  • گردش کار خود را برای بررسی‌های ماهانه یا تشخیص ناهنجاری سفارشی کنید

چرا Fava را سفارشی کنیم؟

Fava از قبل یک رابط کاربری زیبا برای مشاهده دفتر کل Beancount شما است، اما با رشد دفتر روزنامه شما، نیاز به میانبرهای بهتر و پرس‌وجوهای هوشمندتر نیز افزایش می‌یابد.

مشکلاتی که این راه حل می‌کند:

  • ناوبری مکرر در بازه‌های زمانی
  • فیلتر کردن تراکنش‌ها در حساب‌های تو در تو
  • شناسایی سریع‌تر مانده‌های منفی یا ناهنجاری‌ها

✨ لینک‌های سفارشی نوار کناری

بیایید با بهبود گردش کار روزانه شما با میانبرهای ساده نوار کناری شروع کنیم. این لینک‌ها در نوار کناری سمت چپ Fava ظاهر می‌شوند و می‌توانند شما را مستقیماً به نماهای فیلتر شده مانند تراکنش‌های این ماه یا درآمد ماه گذشته ببرند.

این خطوط را به فایل Beancount خود اضافه کنید:

2021-01-01 custom "fava-sidebar-link" "Current Month" "/jump?time=month"
2021-01-01 custom "fava-sidebar-link" "Last Month" "/jump?time=month-1"
2021-01-01 custom "fava-sidebar-link" "Clear All" "/jump?account=&time=&filter="

آنها چه کاری انجام می‌دهند:

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

این میانبرها ورودی دستی زمان را حذف کرده و تجربه Fava شما را روان‌تر و شخصی‌تر می‌کنند.

🔍 پرس‌وجوهای سفارشی SQL

برای بینش عمیق‌تر، رابط SQL فاوای فوق‌العاده قدرتمند است. در اینجا یک پرس‌وجو آورده شده که تمام مانده‌های منفی را در حساب‌هایی که با یک الگو مطابقت دارند، پیدا می‌کند—عالی برای علامت‌گذاری تراکنش‌های غیرعادی یا مشکل‌ساز.

SELECT account, units(sum(position)), sum(position)
WHERE number(units(position)) < 0
AND account ~ '.*:BCM:.*'
AND date >= DATE(2021,12,9)
AND date < DATE(2022,1,9)

توضیح:

  • account ~ '.*:BCM:.*': حساب‌هایی را که شامل :BCM: در نام خود هستند، فیلتر می‌کند.
  • number(units(position)) < 0: مانده‌های منفی (مانند بودجه‌های بیش از حد مصرف شده) را علامت‌گذاری می‌کند.
  • فیلترهای تاریخ، نتیجه را به یک بازه زمانی ۱ ماهه خاص محدود می‌کنند.

موارد استفاده:

  • شناسایی خطاهایی مانند هزینه‌های تکراری یا ثبت‌های نادرست
  • حسابرسی یک فروشنده یا دسته خاص
  • استخراج سریع بینش‌های عملی برای بودجه‌بندی

🛠 نکته حرفه‌ای: ترکیب لینک‌ها + پرس‌وجوها

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

  • استفاده از لینک «ماه جاری» برای شروع بررسی خود
  • باز کردن تب پرس‌وجوهای ذخیره شده خود در یک پنجره دیگر
  • بررسی همزمان هر دو—ابتدا فیلتر کنید، سپس عمیق شوید

این ترکیب به شما کمک می‌کند تا ناهنجاری‌ها را قبل از گسترش شناسایی کنید و اطمینان حاصل کنید که دفتر کل شما تمیز می‌ماند.

افکار نهایی

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

پاداش: اگر از گزارش‌های سفارشی Fava استفاده می‌کنید، حتی می‌توانید داشبوردهای کاملی متناسب با روال‌های مالی شخصی خود بسازید.

آماده‌اید کنترل را به دست بگیرید؟

کوچک شروع کنید: لینک «ماه جاری» را اضافه کنید. سپس پرس‌وجوهای خود را بسازید. خود آینده‌تان از شما تشکر خواهد کرد.

نکات بیشتری مانند این می‌خواهید؟ در خبرنامه ما مشترک شوید یا دستورالعمل‌های بیشتر Beancount را در Beancount.io کاوش کنید.

ارتقاء Fava به نسخه 1.19: تغییرات و بهبودهای کلیدی

· زمان مطالعه ۱ دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

ما نرم‌افزار متن‌باز Fava با مجوز MIT را به نسخه 1.19 ارتقا دادیم. در ادامه تغییرات از آخرین به‌روزرسانی ما آورده شده است:

  • v1.19 (2021-05-18)
    • مهاجرت از گزینه‌های conversion و interval به گزینه default-page
    • افزودن گزینه invert-income-liabilities-equity
    • ارتقاء به CodeMirror 6
    • افزودن ترجمه بلغاری
    • سایر بهبودهای کوچک و رفع اشکالات
  • v1.18 (2021-01-16)
    • چند بهبود کوچک و رفع اشکالات مختلف.

هیجان‌زده هستید؟ اکنون آن را در https://beancount.io/ledger/ امتحان کنید.

2021-07-16-upgrade-fava-to-1-19

سوالی دارید؟ ما در https://t.me/beancount در کنار شما خواهیم بود :)

درک استهلاک در بین‌کاونت

· زمان مطالعه 2 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

استهلاک، پرداخت‌ها را به اقساط متعدد در طول زمان توزیع می‌کند. در beancount.io، می‌توانید از افزونه fava.plugins.amortize_over برای دستیابی به این هدف استفاده کنید.

2021-01-09-amortize

بدون استهلاک، اگر بخواهید خودروی خود را برای ۶ ماه با هزینه ۶۰۰ دلار بیمه کنید، باید این را به عنوان یک هزینه یک‌باره برای یک تاریخ خاص ثبت کنید.

2017-06-01 open Assets:Bank:Checking
2017-06-01 open Assets:Prepaid-Expenses
2017-06-01 open Expenses:Insurance:Auto


2017-06-01 * "Pay car insurance"
Assets:Bank:Checking -600.00 USD
Assets:Prepaid-Expenses

با این حال، با استهلاک، می‌توانید هزینه را طی شش ماه تخصیص دهید؛ با قرار دادن plugin "fava.plugins.amortize_over" در بالای فایل و استفاده از amortize_months: 6 برای تراکنش.

plugin "fava.plugins.amortize_over"

2020-06-01 open Assets:Bank:Checking
2020-06-01 open Assets:Prepaid-Expenses
2020-06-01 open Expenses:Insurance:Auto

2020-06-01 * "Amortize car insurance over six months"
amortize_months: 6
Assets:Prepaid-Expenses -600.00 USD
Expenses:Insurance:Auto

و سپس در دفتر روزنامه (Journal)، خواهید دید که تراکنش به ۶ ثبت (posting) تقسیم شده است.

2020-11-01 * Amortize car insurance over six months (6/6) am
2020-10-01 * Amortize car insurance over six months (5/6) am
2020-09-01 * Amortize car insurance over six months (4/6) am
2020-08-01 * Amortize car insurance over six months (3/6) am
2020-07-01 * Amortize car insurance over six months (2/6) am
2020-06-01 * Amortize car insurance over six months (1/6) am

تصویر صفحه نمایش تراکنش استهلاک

بهبودهای Beancount.io: ارتقاء عملکرد و امنیت

· زمان مطالعه 2 دقیقه
Mike Thrift
Mike Thrift
Marketing Manager

حفظ یک سرویس آنلاین امن و با عملکرد بالا هرگز یک کار یک‌باره نیست. این امر نه تنها برای توسعه ویژگی‌های جدید، بلکه برای به‌روزرسانی قابلیت‌های موجود نیز نیازمند تلاش است.

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

امروز خوشحالیم که برخی از بهبودهایی را که برای ارتقاء Beancount.io انجام داده‌ایم، به اشتراک بگذاریم.

2021-01-07-upgrade-fava-to-1-17

  1. ما سرور را ارتقاء دادیم و سرعت سرویس را تا 30% افزایش دادیم. دسترسی‌پذیری سرویس نیز به طور قابل توجهی بهبود یافت.
  2. ما نرم‌افزار متن‌باز Fava با مجوز MIT را به نسخه 1.17 ارتقاء دادیم. این نسخه اشکالات مختلفی را برطرف کرده و ویژگی‌های جدید بسیاری را اضافه کرده است.

هیجان‌زده‌اید؟ اکنون آن را در https://beancount.io/ledger/ امتحان کنید.

سوالی دارید؟ ما در https://t.me/beancount در کنار شما خواهیم بود :)