پرسشهای زیر از جامعه حسابداری متنساده — ردیت، هکرنیوز، و فهرست پستی Beancount — آمدهاند و نحوه کارکرد این روش را پوشش میدهند. برای پرسشهای مربوط به خود سرویس Beancount.io (قیمتگذاری، پلنها، پشتیبانی، مدیریت حساب)، به پرسشهای متداول محصول مراجعه کنید.
شروع کار
قبل از شروع چقدر حسابداری بلد باشم؟
حدود پنج مفهوم، نه یک مدرک دانشگاهی. به پنج نوع حساب نیاز دارید (داراییها، بدهیها، سرمایه، درآمد، هزینهها)، این ایده که هر تراکنش ارزش را بین حداقل دو تا از آنها جابهجا میکند، و این قانون که یک تراکنش باید متوازن باشد. Beancount بقیه را برای شما اعمال میکند — از بارگذاری فایلی که تراکنشهایش جمع نمیشوند خودداری میکند، بنابراین نرمافزار اشتباهاتی را که یک مبتدی در غیر این صورت بیصدا انجام میداد، میگیرد.
با مقدمهای بر Beancount شروع کنید، واژهنامه را در یک تب باز نگه دارید، و اولین تراکنشهایتان را در شروع سریع اضافه کنید.
بدهکار و بستانکار در Beancount کجاست؟
Beancount اصلاً از کلمات «بدهکار» و «بستانکار» استفاده نمیکند — از اعداد علامتدار استفاده میکند که باید مجموعشان صفر شود. پولی که از یک حساب خارج میشود منفی است، پولی که وارد میشود مثبت است، و یک تراکنش زمانی معتبر است که ثبتهایش یکدیگر را خنثی کنند. این همان حسابداری دوطرفهای است که حسابداران انجام میدهند، با حذف واژگانی که تازهکارها را گیج میکند.
اگر از نرمافزارهای حسابداری سنتی استفاده کردهاید، ترجمه این است: بدهکار یک عدد مثبت و بستانکار یک عدد منفی است. برای نحوه نوشتن ثبتها به مرجع نحو زبان مراجعه کنید، یا برای پیشینه حسابداری به زبان ساده به توضیح بدهکار و بستانکار مراجعه کنید.
چرا تراکنشها باید به صفر متوازن شوند؟
چون پول همیشه از جایی میآید، و مجموع صفر همان چیزی است که این واقعیت را به یک بررسی خطا تبدیل میکند. اگر ۴۰ دلار برای خواروبار خرج کنید، آن پول از حساب بانکی خارج شده — ثبت هر دو نیمه به این معنی است که آن دو باید یکدیگر را خنثی کنند، و هر اشتباه تایپی در هر یک از مبالغ باعث میشود فایل بارگذاری نشود به جای اینکه بیصدا ماندهای اشتباه تولید کند.
به همین دلیل است که یک دفتر کل متنساده قابل اعتمادتر از یک صفحهگسترده هزینههاست: خود ساختار خودبررسی است. یک تأیید مانده، سازوکار مرتبطی است که دفتر شما را با واقعیت بررسی میکند.
ماندههای افتتاحیه را چطور تنظیم کنم؟
یک تراکنش در تاریخ شروع ثبت کنید که مانده فعلی هر حساب را از Equity:Opening-Balances منتقل کند، سپس یک تأیید balance برای قفل کردن آن اضافه کنید. لازم نیست سابقه مالیتان را بازسازی کنید — یک تاریخ شروع انتخاب کنید، ماندهها را همانطور که در آن روز هستند بردارید، و از آنجا به جلو بروید.
شروع سریع یک مثال کامل مانده افتتاحیه را گامبهگام توضیح میدهد.
نمودار حسابهایم چقدر باید جزئی باشد؟
درشت شروع کنید و فقط زمانی تقسیم کنید که تقسیم دقیقتر تصمیم را تغییر دهد. حدود بیست حساب برای شروع کاملاً کافی است؛ اگر متوجه شدید که تعجب میکنید آیا «هزینهها:خوراک» باید خواروبار را از رستوران جدا کند، آزمون مفید این است که آیا با دانستن تقسیم واقعاً کاری متفاوت انجام میدهید.
تغییر نام و تقسیم بعداً یک پیدا-و-جایگزین در یک فایل متنی است، بنابراین هزینه شروع ساده پایین است. نام حسابها تودرتو است، بنابراین میتوانید با یک دسته کلی شروع کنید و بعداً بدون بازنویسی تاریخچه آن را به زیرحسابها تقسیم کنید — اگر ساختاری برای کپی میخواهید چگونه نمودار حسابها طراحی کنیم را ببینید.
چرا متن ساده؟
چرا به جای صفحهگسترده از حسابداری متنساده استفاده کنیم؟
یک صفحهگسترده نمیتواند به شما بگوید چه زمانی اشتباه است. حسابداری متنساده دوطرفه را اعمال میکند، بنابراین هر تراکنش خودبررسی است، و فایل تا زمانی که فایلهای متنی وجود دارند قابل جستجو، قابل مقایسه، و قابل اسکریپتنویسی میماند. شما همچنین تاریخچه نسخه واقعی دارید: git log روی دفتر شما دقیقاً نشان میدهد چه چیزی، چه زمانی، و چرا تغییر کرده است.
تفاوت عملی با چند حساب، ارز، یا سرمایهگذاری آشکار میشود، جایی که یک صفحهگسترده تکنفره بیصدا از حقیقت خارج میشود. به حسابداری شفاف و قابل رسیدگی مراجعه کنید.
آیا حسابداری دوطرفه برای امور مالی شخصی بیش از حد نیست؟
اگر فقط میخواهید بدانید چقدر برای قهوه خرج کردهاید، بله — یک صفحهگسترده کافی است. دوطرفه ارزش خود را از لحظهای نشان میدهد که چند حساب، وام مسکن، کارگزاری، یا بیش از یک ارز دارید، چون دقیقاً آن موقعیتهایی هستند که پیگیری تکطرفه بدون اطلاع شما پول از دست میدهد.
یک راه مفید برای فکر کردن به آن: دوطرفه یک جمعبندی چکی برای امور مالی شماست. برای استدلال بلندتر به مقدمه مراجعه کنید.
آیا باید از خط فرمان استفاده کنم؟
نه. Fava یک رابط وب کامل روی همان فایل متنی است — ترازنامهها، صورتهای درآمد، نمودارها، و ورود تراکنش — و Beancount.io آن را با دفتر شما در ابر اجرا میکند. فایل متنی منبع حقیقت باقی میماند، بنابراین میتوانید روزانه از رابط وب استفاده کنید و فقط وقتی خواستید به ترمینال بروید.
برای کارهایی که رابط میتواند انجام دهد به ویژگیهای رابط مراجعه کنید، یا نسخه نمایشی زنده را امتحان کنید.
دریافت دادهها
تراکنشهای بانکیام را چطور به Beancount وارد کنم؟
بیشتر مردم ۸۰ تا ۹۵٪ تراکنشها را وارد میکنند و بقیه را دستی مینویسند. به ترتیب تقریبی قابلیت اطمینان: دانلود مستقیم OFX/QFX از بانک، خروجی CSV به اضافه قوانین واردات، اتصال تجمیعکننده، و — فقط به عنوان آخرین راه — صورتحساب PDF تبدیلشده به CSV. همگامسازی بانکی Beancount.io اتصال و دستهبندی را برای شما انجام میدهد.
انتظار داشته باشید برای هر مؤسسه یک قانون بنویسید یا تنظیم کنید: خروجیهای CSV بانک بدناماً ناسازگار هستند، و نام فروشندهای حاوی ویرگول بدون Escape یک مشکل واقعی و رایج است. برای مسیر خودکار به واردات هوشمند مراجعه کنید.
برای یک فایل یکباره، دو مبدل رایگان مرورگر بخش مکانیکی کار را بدون آپلود کردن انجام میدهند: CSV به Beancount برای خروجیهای صفحه گسترده، و OFX و QIF به Beancount برای دانلودهای .ofx، .qfx، .qbo و .qif که بانکها وقتی ارائه میدهند که اصلاً CSV در دسترس نباشد.
چطور از وارد کردن دوباره همان تراکنش جلوگیری کنم؟
واردکنندهها بر اساس تاریخ، مبلغ، و دریافتکننده، در برابر ورودیهای موجود در دفتر شما از ورود تکراری جلوگیری میکنند، و هر چیز مبهم را برای تأیید به شما علامت میزنند به جای حدس زدن. گردش کار معمول واردات نامطمئن را به عنوان معلق علامت میزند تا قبل از اینکه بخشی از سابقه دائمی شوند، آنها را بررسی کنید.
نیمه دیگر پاسخ، انتقالها هستند: پولی که بین دو حسابی که مالک آنها هستید جابهجا میشود در خروجیهای هر دو بانک ظاهر میشود. آن را یک بار به عنوان یک تراکنش با دو ثبت ضبط کنید.
OFX این کار را سادهتر از CSV میکند: هر تراکنش یک FITID دارد که بانک آن را در بین دانلودها ثابت نگه میدارد، بنابراین یک ایمپورتر میتواند بر اساس هویت مطابقت دهد به جای استنتاج — مبدل OFX آن را به عنوان فیلد متادیتای id: حفظ میکند.
آیا باید به شخص ثالثی دسترسی به حساب بانکیام بدهم؟
نه — و برای بسیاری از مردم این دقیقاً دلیلی است که اصلاً از حسابداری متنساده استفاده کنند. میتوانید خودتان OFX یا CSV را از بانک خروجی بگیرید و هرگز اعتبارنامه را به یک تجمیعکننده ندهید. اگر همگامسازی خودکار را ترجیح میدهید، Beancount.io از یک تجمیعکننده تأییدشده توسط بانک استفاده میکند نه نگهداری رمز عبور بانکداری آنلاین شما.
جزئیات را در صفحه امنیت بخوانید.
دفترم را چطور با صورتحساب بانکی تطبیق دهم؟
یک تأیید balance با مانده پایانی و تاریخ صورتحساب اضافه کنید. Beancount از بارگذاری فایل اگر دفتر شما با بانک اختلاف داشته باشد خودداری میکند، که تطبیق را از یک مقایسه دستی به چیزی تبدیل میکند که نرمافزار هر بار اجرا بررسی میکند.
یک بازه ماهانه برای بیشتر مردم کافی است. برای یافتن یک مغایرت به فیلتر کردن و جستجو مراجعه کنید.
ارزها و سرمایهگذاریها
Beancount چند ارز را چطور مدیریت میکند؟
بهصورت بومی، و این یکی از قویترین مزیتهای آن نسبت به برنامههای مالی مصرفی است. هر مبلغ ارز خود را حمل میکند، حسابها میتوانند همزمان چند ارز داشته باشند، و تبدیلها بهصراحت با @ برای قیمت یا {} برای هزینه ثبت میشوند، بنابراین تغییر نرخ ارز هرگز تاریخچه شما را بیصدا بازنویسی نمیکند.
هیچ چیز پشت سر شما تبدیل نمیشود — شما همیشه هم ارز اصلی و هم ارزش تبدیلشده را میبینید. به نحو زبان، دقت و تلورانسها، و حسابداری چندارزی برای جنبه حسابداری مراجعه کنید.
مبنای هزینه و سود سرمایه را چطور پیگیری کنم؟
خریدها را با هزینه در آکولاد ثبت کنید — 10 AAPL {150.00 USD} — و Beancount هر قطعه را جداگانه پیگیری میکند. وقتی میفروشید، مشخص میکنید کدام قطعه را کاهش میدهید، و سود سرمایه بهطور خودکار از محاسبه بیرون میآید به جای اینکه آن را با دست حساب کنید.
Beancount از روشهای ثبت STRICT، FIFO، LIFO و NONE پشتیبانی میکند. ثبت هزینه میانگین تجزیه میشود اما بهطور کامل پیادهسازی نشده است — اگر حوزه مالیاتی شما هزینه میانگین را الزام میکند، برنامهریزی کنید آن را با یک افزونه یا قطعههای صریح پیگیری کنید. به مدیریت موجودی مراجعه کنید.
معاملات ارز دیجیتال و مبنای هزینه آنها را چطور ثبت کنم؟
دقیقاً مثل هر کالای دیگری: یک ارز دیجیتال یک واحد با هزینه است، بنابراین همان سازوکار قطعه و ثبت اعمال میشود. یک مبادله یک توکن با توکن دیگر یک تراکنش واحد است که یک قطعه را کاهش و قطعه دیگری را باز میکند، که اینگونه سود تحققیافتهای را که بیشتر مقامات مالیاتی میخواهند گزارش شود، به دست میآورید.
به پیگیری سبد ارز دیجیتال و قالبهای آماده ارز دیجیتال مراجعه کنید.
دفاتر کسبوکار و آزادکاری
آیا میتوانم Beancount را برای یک کسبوکار کوچک استفاده کنم، یا فقط برای امور مالی شخصی است؟
کسبوکارها از آن استفاده میکنند، از جمله شرکتهایی با صدها هزار تراکنش. حسابداری تعهدی، ساختارهای چندواحدی، و گزارشهایی که یک حسابدار انتظار دارد را مدیریت میکند. محدودیتهای صادقانه این است که ویرایش همزمان چندکاربره، رابط صورتحساب داخلی، و گردش کار تأیید حسابهای پرداختنی وجود ندارد — این یک دفتر کل است، نه ERP.
به راهاندازیهای ویژه صنعت و نمایشگاه دفتر باز از دفاتر واقعی شرکتها مراجعه کنید.
آیا باید دفترهای جداگانه برای شخصی و کسبوکار نگه دارم؟
آنها را جدا نگه دارید — یا به عنوان درختان حساب سطح بالا جداگانه در یک فایل، یا به عنوان دو فایل ترکیبشده با include. مخلوط کردن آنها صورت درآمد کسبوکار را بیمعنی میکند و زمان مالیات را سختتر میکند، و جدا کردن آنها از ابتدا هیچ هزینهای ندارد.
وقتی کسبوکار حساب بانکی خودش را دارد، دو فایل معمولاً انتخاب تمیزتری است. به پشتیبانی چندفایلی مراجعه کنید.
صورتحسابها و حسابهای دریافتنی را چطور مدیریت کنم؟
دریافتنیها را به عنوان یک حساب دارایی و پرداختنیها را به عنوان بدهی مدل کنید، سپس صورتحساب را وقتی صادر میکنید و پرداخت را وقتی میرسد ثبت کنید — این حسابداری تعهدی است، و Beancount مستقیماً از آن پشتیبانی میکند. چیزی که ندارد رابط صورتحساب است: آنچه به شما بدهکارند را پیگیری میکند، صورتحساب را تولید یا ارسال نمیکند.
برای سمت گزارش به قالبهای گزارش مالی، برای مثالهای کاربردی به راهاندازیهای ویژه صنعت، و برای مفاهیم به درک حسابهای دریافتنی مراجعه کنید.
دفاترم را در زمان مالیات چطور به حسابدارم تحویل دهم؟
گزارشها را خروجی بگیرید نه دفتر را. حسابدار شما تقریباً مطمئناً یک فایل متنی نمیخواهد — او صورت درآمد، ترازنامه، و فهرست تراکنش میخواهد، که میتوانید بهصورت CSV یا PDF از رابط وب یا با یک پرسوجو تولید کنید.
به راهنماهای آمادهسازی مالیات، قالبهای گزارش مالی، و پرسوجو با SQL برای استخراج دقیقاً همان اعدادی که میخواهند مراجعه کنید.
ابزارها و اکوسیستم
Beancount، Ledger، و hledger چه تفاوتی دارند؟
هر سه سیستم متنساده دوطرفه با فرمت فایلهای مشابه هستند. Ledger نسخه اصلی و منعطفترین تجزیهگر است؛ hledger یک پیادهسازی Haskell است که به قوانین واردات CSV دوستانه و مستنداتش معروف است؛ Beancount سختگیرانهترین تجزیهگر و قویترین پشتیبانی را برای سرمایهگذاریها، قطعهها، و چند ارز دارد، به اضافه یک API افزونه پایتون.
سختگیری معامله واقعی است: Beancount از بارگذاری فایلی که مبهم مییابد خودداری میکند، که خطاها را زود میگیرد به قیمت سختگیرتر بودن. به Beancount در برابر Ledger CLI و Beancount در برابر hledger مراجعه کنید.
آیا Beancount بودجهبندی پاکتی مثل YNAB انجام میدهد؟
نه بهصورت بومی — این یک شکاف واقعی است، نه یک ویژگی پنهان. بودجهبندی داخلی Beancount محدود است، و افرادی که رفتار پاکتی سختگیرانه میخواهند معمولاً از یک افزونه جامعه استفاده میکنند یا پاکتها را به عنوان حساب مدل میکنند.
اگر بودجهبندی پاکتی اصلیترین چیزی است که میخواهید، قبل از تغییر به Beancount در برابر YNAB بخوانید. برای چیزی که امروز کار میکند، بودجهبندی در Beancount را ببینید.
آیا میتوانم رسیدها را به تراکنشها پیوست کنم؟
بله. دستور document یک فایل را به یک حساب و تاریخ پیوند میدهد، و رابط وب به شما امکان میدهد آن اسناد را در کنار تراکنشهای متعلق به آنها بارگذاری و مرور کنید. رسیدها بهصورت فایلهای معمولی روی دیسک میمانند، بنابراین به اندازه خود دفتر قابل حمل هستند.
به ویژگیهای رابط مراجعه کنید.
آیا برنامه موبایل وجود دارد؟
یک دفتر چقدر میتواند بزرگ شود قبل از اینکه کند شود؟
یک دهه امور مالی شخصی چند مگابایت است و در کمتر از یک ثانیه بارگذاری میشود. Beancount ماندهها را از کل تاریخچه تراکنش هر بار بارگذاری دوباره محاسبه میکند، و این تا صدها هزار ورودی سریع میماند؛ بعد از آن، تقسیم بر اساس سال با include همه چیز را راحت نگه میدارد.
برای نحوه تقسیم یک دفتر در حال رشد به پشتیبانی چندفایلی مراجعه کنید.