راهاندازی Beancount برای استارتاپها
یک مبنای عملی و قابل کپی-پیست برای اجرای دفترداری استارتاپ در متن ساده. برای مراحل پیش بذری تا سری A مناسب است. این یک مشاوره حقوقی یا مالیاتی نیست.
اداره یک استارتاپ به معنای داشتن نقشهای مختلف است و یکی از مهمترین آنها «حسابدار» است. قبل از اینکه بتوانید نرمافزار گرانقیمت یا یک حسابدار تمام وقت استخدام کنید، به سیستمی نیاز دارید که دقیق، قابل ممیزی باشد و شما را در یک اکوسیستم اختصاصی قفل نکند. Beancount را وارد کنید: یک سیستم حسابداری متنباز.
استفاده از Beancount به این معنی است که دفتر مالی شما در فایلهای متنی، درست در کنار کد شما در یک مخزن Git قرار دارد. این سیستم دارای کنترل نسخه، شفاف و بینهایت قابل تنظیم است. این راهنما یک تنظیمات کامل و قابل کپی-پیست را ارائه میدهد تا دفترداری استارتاپ شما را از زمان تاسیس تا سری A، بر اساس اصول حسابداری تعهدی معتبر، اجرا کنید.
۱) آنچه را که راهاندازی خواهید کرد
این راهنما ش ما را در ایجاد یک تنظیمات کامل و حرفهای حسابداری راهنمایی میکند. در پایان، شما خواهید داشت:
- یک دفتر کل با منبع واحد که در Git مدیریت میشود (
main.beancount) و به شما تاریخچه کامل و قابل ممیزی از امور مالی شرکتتان میدهد. - Fava برای گزارشها و نمودارهای زیبا. Fava یک رابط وب برای Beancount است که فایلهای متنی شما را به صورتحسابهای درآمد تعاملی، ترازنامهها و تجزیه و تحلیل جریان نقدی تبدیل میکند.
- ساختاری برای واردکنندهها که میتوانید بعداً برای خودکارسازی ورود تراکنشها از حسابهای بانکی، کارت اعتباری، پیپال و استرایپ خود اضافه کنید. ما ابتدا به صورت دستی شروع میکنیم تا سیستم را یاد بگیریم، سپس آن را خودکار میکنیم.
- یک چارت حسابها آماده برای حسابداری تعهدی که برای استارتاپهای مدرن طراحی شده است، با پشتیبانی داخلی برای درآمد معوق، هزینههای پیشپرداخت شده و بدهیهای حقوق و دستمزد.
- عناصر اولیه برای تامین مالی بذری، از جمله نمونههای واضح برای ثبت SAFE notes (به عنوان بدهی یا حقوق صاحبان سهام) و یادداشتهای قابل تبدیل با بهره.
۲) ساختار پر وژه (در مخزن خود قرار دهید)
با ایجاد این ساختار دایرکتوری در داخل مخزن Git شرکت خود شروع کنید. این سازماندهی، دفتر کل شما را تمیز و مقیاسپذیر نگه میدارد.
/ledger
main.beancount
/includes
accounts.beancount
opening-balances.beancount
policies.beancount
/documents
/bank
/invoices
/receipts
/importers # optional; add when you automate CSV ingestion
bank_importer.py
card_importer.py
main.beancount: فایل مرکزی که همه چیز را کنار هم میآورد./includes: چارت حسابها، ماندههای ابتدایی و سیاستهای حسابداری شما را در خود جای میدهد./documents: مکانی برای ذخیره فایلهای PDF صورتحسابهای بانکی، فاکتورها و رسیدها برای یک مسیر ممیزی تمیز./importers: جایی که اسکریپتهای پایتون شما برای تجزیه فایلهای CSV بانکی در آن قرار خواهند گرفت.
۳) حداقل و معقول main.beancount
این نقطه ورود برای دفتر کل شما است. این فایل، چند گزینه سراسری را تنظیم میکند و فایلهای اجزای دیگر را شامل میشود. این محتوا را در ledger/main.beancount کپی کنید و عنوان را سفارشی کنید.
option "title" "دفتر کل شرکت Acme, Inc."
option "operating_currency" "USD"
option "documents" "ledger/documents"
include "includes/accounts.beancount"
include "includes/opening-balances.beancount"
include "includes/policies.beancount"
; اگر بعداً واردکنندهها را اضافه کنید، خطوط plugin را در اینجا اضافه خواهید کرد.
; plugin "beancount.plugins.implicit_prices"
۴) چارت حسابهای اولیه (اولویت با تعهدی)
چارت حسابهای شما لیست کاملی از دستهبندیها برای تراکنشهای مالی شرکت شما است. این قالب اولیه برای حسابداری تعهدی ساخته شده است که تصویر بسیار دقیقتری از سلامت شرکت شما نسبت به حسابداری نقدی ار ائه میدهد.
این را در includes/accounts.beancount قرار دهید. در صورت تمایل، هر حسابی را که بلافاصله به آن نیاز ندارید، حذف کنید.
; --- داراییها ---
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Assets:Bank:Savings USD
1970-01-01 open Assets:AR USD ; حسابهای دریافتنی
1970-01-01 open Assets:Prepaid:Software USD
1970-01-01 open Assets:Prepaid:Insurance USD
1970-01-01 open Assets:Deposits USD ; سپردههای امنیتی
1970-01-01 open Assets:Equipment USD
1970-01-01 open Assets:Intangibles USD
1970-01-01 open Assets:Crypto:BTC BTC
1970-01-01 open Assets:Other
; --- بدهیها ---
1970-01-01 open Liabilities:AP USD ; حسابهای پرداختنی
1970-01-01 open Liabilities:CreditCard:Corporate USD
1970-01-01 open Liabilities:DeferredRevenue USD
1970-01-01 open Liabilities:Payroll:Withholding USD
1970-01-01 open Liabilities:Payroll:EmployerTaxes USD
1970-01-01 open Liabilities:SalesTax:CA USD
1970-01-01 open Liabilities:SAFE USD
1970-01-01 open Liabilities:NotesPayable USD
1970-01-01 open Liabilities:Other
; --- حقوق صاحبان سهام ---
1970-01-01 open Equity:CommonStock USD
1970-01-01 open Equity:APIC USD ; صرف سهام
1970-01-01 open Equity:SAFE USD ; اگر SAFEها را به عنوان حقوق صاحبان سهام طبقهبندی میکنید
1970-01-01 open Equity:RetainedEarnings USD
1970-01-01 open Equity:OpeningBalances USD
; --- درآمد (ماندههای منفی) ---
1970-01-01 open Income:Revenue:SaaS USD
1970-01-01 open Income:Revenue:Services USD
1970-01-01 open Income:Other USD
; --- هزینهها ---
1970-01-01 open Expenses:COGS USD
1970-01-01 open Expenses:Payroll:Wages USD
1970-01-01 open Expenses:Payroll:EmployerTaxes USD
1970-01-01 open Expenses:Benefits USD
1970-01-01 open Expenses:Contractors USD
1970-01-01 open Expenses:Software:Subscriptions USD
1970-01-01 open Expenses:Cloud USD
1970-01-01 open Expenses:Rent USD
1970-01-01 open Expenses:Meals USD
1970-01-01 open Expenses:Travel USD
1970-01-01 open Expenses:Marketing USD
1970-01-01 open Expenses:Legal USD
1970-01-01 open Expenses:Accounting USD
1970-01-01 open Expenses:Insurance USD
1970-01-01 open Expenses:BankFees USD
1970-01-01 open Expenses:Taxes:Income USD
1970-01-01 open Expenses:Taxes:Sales USD
1970-01-01 open Expenses:Other USD
یادداشتها
- حسابهای درآمد منفی هستند زیرا نشاندهنده بستانکار در حسابداری دوبل هستند. نگران این موضوع نباشید. Fava به طور خودکار علائم را در گزارشها برعکس میکند، بنابراین درآمد شما به عنوان یک عدد مثبت در صورت سود و زیان نشان داده میشود.
- برای شروع، دستههای محدود و هدفمند را نگه دارید. اضافه کردن حسابهای جدید بعداً بسیار آسانتر از پاک کردن یک چارت حسابهای درهم و برهم و بیش از حد جزئی است.
۵) ماندههای ابتدایی (روز اول)
اولین تراکنش در دفتر کل شما زمینه را آماده میکند. این تراکنش، وضعیت اولیه حسابهای شما را در روزی که شروع به ردیابی میکنید، ثبت میکند. این تراکنش را در includes/opening-balances.beancount قرار دهید و تاریخ و مبالغ را برای منعکس کردن موقعیت شروع واقعی خود تنظیم کنید.
2025-01-01 * "ماندههای ابتدایی"
Assets:Bank:Checking 5,000.00 USD
Liabilities:CreditCard:Corporate -500.00 USD
Equity:OpeningBalances -4,500.00 USD
این ورودی نشان میدهد که شرکت با ۵,۰۰۰ دلار در بانک و ۵۰۰ دلار مانده در کارت اعتباری خود شروع کرده است. حساب Equity:OpeningBalances یک حساب ویژه است که برای اطمینان از تعادل صفر تراکنش، همانطور که توسط حسابداری دوبل مورد نیاز است، استفاده میشود.
۶) تراکنشهای رایج استارتاپ (کپی-پیست)
در اینجا دستورالعملهایی برای رایجترین رویدادهای مالی در یک استارتاپ در مراحل اولیه آورده شده است. آنها را کپی، پیست و برای استفاده خود تطبیق دهید.
خرید سهام بنیانگذار (ساده، فقط با ارز)
هنگامی که بنیانگذاران سهام اولیه خود را به ارزش اسمی خریداری میکنند، پول نقد وارد شرکت میشود و به عنوان حقوق صاحبان سهام ثبت میشود. جدول سرمایه شما (Carta، Pulley یا یک صفحه گسترده) منبع حقیقت برای تعداد سهام است. دفتر کل فقط دلارها را ثبت میکند.
2025-01-05 * "خرید سهام بنیانگذار @ ارزش اسمی"
Assets:Bank:Checking 800.00 USD
Equity:CommonStock -0.80 USD
Equity:APIC -799.20 USD
; 8,000,000 سهام عادی @ 0.0001 دلار — تعداد سهام خارج از دفتر کل نگهداری میشود
(اختیاری) سهام خود را به عنوان یک کالا ردیابی کنید
اگر میخواهید دفتر کل تعداد سهام صادر شده را ردیابی کند، میتوانید سهام خود را به عنوان یک "کالا" تعریف کنید. این کار پیچیدهتر است اما یک رکورد کاملتر در دفتر کل ارائه میدهد.
2025-01-05 commodity ACME
name: "سهام عادی شرکت Acme, Inc."
2025-01-05 * "صدور سهام بنیانگذار"
Assets:Bank:Checking 800.00 USD
Equity:APIC -799.20 USD
Equity:CommonStock -8,000,000 ACME {0.0001 USD}
ورود وجه نقد SAFE (طبقهبندی را انتخاب کنید)
یک SAFE (توافقنامه ساده برای سهام آتی) میتواند به عنوان یک بدهی یا یک نوع حقوق صاحبان سهام (به طور خاص، "حقوق صاحبان سهام میانهراه") در نظر گرفته شود. برای انتخاب رویکرد صحیح با حسابدار خود مشورت کنید و ثابت قدم باشید.
; (الف) طبقهبندی حقوق صاحبان سهام (میانهراه)
2025-02-01 * "SAFE پس از پول — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Equity:SAFE -500,000.00 USD
; (ب) طبقهبندی بدهی (تا زمان تبدیل)
2025-02-01 * "SAFE پس از پول — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Liabilities:SAFE -500,000.00 USD
هنگامی که یک دور سرمایهگذاری قیمتگذاری شده بسته میشود، شما مانده SAFE را بر اساس اسناد بستهشدن به سهام ممتاز و صرف سهام دوباره طبقهبندی میکنید.
یادداشت قابل تبدیل با بهره معوقه
برخلاف SAFE، یک یادداشت قابل تبدیل به طور واضح یک بدهی است که بهره به آن تعلق میگیرد. شما وجه نقد اولیه را ثبت خواهید کرد و سپس هزینه بهره را به صورت دورهای (به عنوان مثال، سه ماهه) ثبت خواهید کرد.
2025-03-01 * "یادداشت قابل تبدیل — ۶٪ سالانه"
Assets:Bank:Checking 250,000.00 USD
Liabilities:NotesPayable -250,000.00 USD
2025-06-30 * "بهره یادداشت معوقه سه ماهه دوم"
Expenses:Interest 3,750.00 USD
Liabilities:NotesPayable -3,750.00 USD
; 250,000 * 6% * 0.25 = 3,750
فروش سالانه SaaS (درآمد معوق + شناسایی ماهانه)
این یک سنگ بنای حسابداری تعهدی است. هنگامی که مشتری بر ای یک سال پیش پرداخت میکند، شما تمام آن درآمد را به یکباره کسب نمیکنید. شما آن را به عنوان یک بدهی (DeferredRevenue) ثبت میکنید و سپس ۱/۱۲ آن را هر ماه شناسایی میکنید.
2025-03-10 * "اشتراک سالانه — AcmeCo — INV-001"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD
narration: "پیش پرداخت سالانه SaaS"
2025-03-20 * "پرداخت INV-001"
Assets:Bank:Checking 1,200.00 USD
Assets:AR -1,200.00 USD
; شناسایی ماه ۱/۱۲ (ماهانه تکرار کنید یا اسکریپت کنید)
2025-04-01 * "شناسایی درآمد ۱/۱۲ — INV-001"
Liabilities:DeferredRevenue 100.00 USD
Income:Revenue:SaaS -100.00 USD
هزینه پیشپرداخت شده و استهلاک
این معکوس درآمد معوق است. هنگامی که برای یک سرویس پیش پرداخت میکنید (مانند نرمافزار سالانه یا بیمه)، آن را به عنوان یک دارایی (Prepaid) ثبت میکنید و سپس هر ماه بخشی از آن را "مستهلک" یا به عنوان هزینه ثبت میکنید.
2025-03-01 * "پیش پرداخت نرمافزار سالانه"
Assets:Prepaid:Software 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD
2025-04-01 * "استهلاک پیش پرداخت ۱/۱۲"
Expenses:Software:Subscriptions 100.00 USD
Assets:Prepaid:Software -100.00 USD
حقوق و دستمزد (وجه نقد خالص، با مالیاتهای تکلیفی + مالیاتهای کارفرما)
یک ورودی حقوق و دستمزد دارای چندین بخش است: هزینه ناخالص حقوق و دستمزد، هزینه مالیات کارفرما، وجه نقد خالص پرد اخت شده به کارکنان و بدهی مالیاتهایی که شما کسر کردهاید و باید به دولت پرداخت شود.
2025-04-15 * "حقوق و دستمزد — ۱۵ آوریل"
Expenses:Payroll:Wages 15,000.00 USD
Expenses:Payroll:EmployerTaxes 1,200.00 USD
Liabilities:Payroll:Withholding -4,000.00 USD
Assets:Bank:Checking -12,200.00 USD
جمعآوری و پرداخت مالیات فروش (مثال CA)
هنگامی که مالیات فروش را جمعآوری میکنید، این پول شما نیست. این یک بدهی است که به ایالت بدهکار هستید. شما بدهی را هنگام فروش ثبت میکنید و هنگام پرداخت مالیات آن را تسویه میکنید.
2025-05-10 * "فاکتور شماره ۱۲۳ — مشمول مالیات CA"
Assets:AR 1,088.75 USD
Income:Revenue:SaaS -999.00 USD
Liabilities:SalesTax:CA -89.75 USD
2025-06-05 * "پرداخت شماره ۱۲۳"
Assets:Bank:Checking 1,088.75 USD
Assets:AR -1,088.75 USD
2025-07-20 * "پرداخت مالیات فروش CA سه ماهه دوم"
Liabilities:SalesTax:CA 89.75 USD
Assets:Bank:Checking -89.75 USD
FX و ارز دیجیتال (سبک وزن)
Beancount به طور بومی از چندین ارز پشتیبانی میکند. از دستورالعملهای price برای ثبت نرخ ارز و نحو هزینه {} برای تراکنشهای خاص استفاده کنید.
2025-03-01 price EUR 1.0832 USD
2025-03-02 * "هزینه AWS EU"
Expenses:Cloud 90.00 EUR
Liabilities:CreditCard:Corporate -90.00 EUR
2025-03-05 * "خرید BTC برای آزمایش"
Assets:Crypto:BTC 0.0200 BTC {3400.00 USD}
Assets:Bank:Checking -3,400.00 USD
۷) استفاده از Fava (گزارشها در یک دستور)
Fava رابط وب درخشانی است که دادههای Beancount را زنده میکند. این پاداش برای ورود دقیق دادههای شما است.
- نصب:
$ pip install fava - اجرا:
$ fava ledger/main.beancount - نماهای مفید: صورت سود و زیان، ترازنامه، دفتر روزنامه (برای فیلتر کردن بر اساس حساب/برچسب) و پرس و جو (برای پرس و جوهای سفارشی شبیه SQL).
فیلترهای سریع Fava:
account:DeferredRevenue: تمام فعالیتها را در حساب درآمد معوق خود نشان دهید.tag:#invoice-001: تراکنشهای مربوط به یک فاکتور خاص را برچسبگذاری کنید و آنها را فیلتر کنید.from:2025-01-01 to:2025-12-31: روی یک دوره مالی خاص تمرکز کنید.
۸) چک لیست بستن ماهانه (۱۵–۴۵ دقیقه)
در پایان هر ماه، این چک لیست را اجرا کنید تا اطمینان حاصل کنید که دفترهای شما دقیق و به روز هستند. این نظم و انضباط، زمان مالیات و بررسی دقیق سرمایهگذاران را آسان میکند.
- بانک/کارتهای اعتباری: تمام تراکنشها را وارد یا به صورت دستی وارد کنید. ماندهها را با صورت حسابهای خود مطابقت دهید.
- AR/AP: تمام فاکتورهای صادر شده و صورتحسابهای دریافتی را ثبت کنید. موارد پرداخت شده را به عنوان تسویه شده علامتگذاری کنید.
- درآمد: ورودیهای شناسایی درآمد ماهانه را برای تمام قراردادهای پیش پرداخت شده ثبت کنید.
- پیش پرداختها:
۱/۱۲(یا کسر مناسب) تمام هزینههای پیش پرداخت شده را مستهلک کنید. - حقوق و دستمزد: ورودی دفتر روزنامه را از گزارش ارائهدهنده حقوق و دستمزد خود ثبت کنید.
- مالیات فروش: بدهی مالیات فروش خود را برای ماه ثبت کنید.
- ابزارهای بذری: بهره هر یادداشت قابل تبدیل را معوق کنید.
- بررسی سلامت:
- آیا درآمد صورت سود و زیان شما تقریباً با MRR/ARR مورد انتظار شما مطابقت دارد؟
- آیا نرخ سوختن و باند فرودگاه شما با طرح مالی شما مطابقت دارد؟
- آیا
$ bean-checkبدون خطا اجرا میشود؟ آیا گزارشهای Fava درست به نظر میرسند؟
- با یک یادداشت مختصر و سازگار در Git Commit کنید (به عنوان مثال،
close: 2025-04).