Перейти до основного вмісту

Налаштування Beancount для стартапів

Практичний базовий приклад, який можна скопіювати та вставити, для ведення обліку стартапу у вигляді звичайного тексту. Підходить для стадій від pre-seed до Series A. Це не є юридичною або податковою консультацією.


beancount-setup-for-startups

Управління стартапом означає виконання багатьох ролей, і одна з найважливіших – "бухгалтер". Перш ніж ви зможете дозволити собі дороге програмне забезпечення або штатного бухгалтера, вам потрібна система, яка є точною, пристосованою для аудиту та не замикає вас у пропрієтарній екосистемі. Зустрічайте Beancount: систему бухгалтерського обліку з відкритим кодом у вигляді звичайного тексту.

Використання Beancount означає, що ваша фінансова книга живе у текстових файлах, прямо поряд з вашим кодом у Git-репозиторії. Вона контролюється версіями, прозора та безмежно налаштовується. Цей посібник надає повне налаштування, яке можна скопіювати та вставити, щоб запустити бухгалтерський облік вашого стартапу від моменту заснування до Series A, побудоване на надійних принципах бухгалтерського обліку на основі нарахувань.

1) Що ви налаштуєте

Цей посібник проведе вас через створення повної бухгалтерської системи професійного рівня. До кінця ви матимете:

  • Єдине джерело достовірної інформації , що керується в Git (main.beancount), що надає вам повну історію фінансів вашої компанії, придатну для аудиту.
  • Fava для чудових звітів і графіків. Fava – це веб-інтерфейс для Beancount, який перетворює ваші текстові файли на інтерактивні звіти про прибутки та збитки, баланси та аналіз руху грошових коштів.
  • Структуру для імпортерів, яку ви можете додати пізніше для автоматизації введення транзакцій з вашого банку, кредитної картки, PayPal і Stripe. Ми почнемо вручну, щоб вивчити систему, а потім автоматизуємо.
  • Готовий до нарахувань план рахунків, розроблений для сучасних стартапів, із вбудованою підтримкою відкладеного доходу, передоплачених витрат і зобов'язань з виплати заробітної плати.
  • Примітиви для фінансування посівної стадії, включаючи чіткі приклади для запису SAFE notes (як зобов'язання або капітал) і конвертованих нот з відсотками.

2) Структура проєкту (вставте у свій репозиторій)

Почніть зі створення цієї структури каталогів у 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: Місце, де будуть розміщуватися ваші майбутні скрипти Python для аналізу банківських CSV-файлів.

3) Мінімальний, зрозумілий main.beancount

Це точка входу для вашої книги обліку. Він встановлює кілька глобальних параметрів і включає інші складові файли. Скопіюйте цей вміст у ledger/main.beancount і налаштуйте заголовок.

option "title" "Acme, Inc. Ledger"
option "operating_currency" "USD"
option "documents" "ledger/documents"

include "includes/accounts.beancount"
include "includes/opening-balances.beancount"
include "includes/policies.beancount"

; If you later add importers, you’ll add plugin lines here.
; plugin "beancount.plugins.implicit_prices"

4) Початковий план рахунків (з пріоритетом нарахувань)

Ваш план рахунків – це повний список категорій для фінансових операцій вашої компанії. Цей початковий шаблон створено для обліку на основі нарахувань, який дає набагато точнішу картину здоров'я вашої компанії, ніж облік на основі готівки.

Помістіть це в includes/accounts.beancount. Не соромтеся видаляти будь-які облікові записи, які вам не потрібні відразу.

; --- Assets ---
1970-01-01 open Assets:Bank:Checking USD
1970-01-01 open Assets:Bank:Savings USD
1970-01-01 open Assets:AR USD ; Accounts Receivable
1970-01-01 open Assets:Prepaid:Software USD
1970-01-01 open Assets:Prepaid:Insurance USD
1970-01-01 open Assets:Deposits USD ; Security deposits
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

; --- Liabilities ---
1970-01-01 open Liabilities:AP USD ; Accounts Payable
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

; --- Equity ---
1970-01-01 open Equity:CommonStock USD
1970-01-01 open Equity:APIC USD ; Additional Paid-in Capital
1970-01-01 open Equity:SAFE USD ; If you classify SAFEs as equity
1970-01-01 open Equity:RetainedEarnings USD
1970-01-01 open Equity:OpeningBalances USD

; --- Income (negative balances) ---
1970-01-01 open Income:Revenue:SaaS USD
1970-01-01 open Income:Revenue:Services USD
1970-01-01 open Income:Other USD

; --- Expenses ---
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 автоматично змінює знаки у звітах, тому ваш дохід відображатиметься як позитивне число у звіті про прибутки та збитки.
  • Спочатку зберігайте вузькі, цілеспрямовані категорії. Набагато легше додати нові облікові записи пізніше, ніж очистити безладний, надмірно деталізований план рахунків.

5) Початкові залишки (перший день)

Перша транзакція у вашій книзі обліку задає тон. Вона фіксує початковий стан ваших облікових записів у день, коли ви починаєте відстежувати. Помістіть цю транзакцію в includes/opening-balances.beancount, скоригувавши дату та суми, щоб відобразити вашу фактичну початкову позицію.

2025-01-01 * "Opening balances"
Assets:Bank:Checking 5,000.00 USD
Liabilities:CreditCard:Corporate -500.00 USD
Equity:OpeningBalances -4,500.00 USD

Цей запис встановлює, що компанія почала з $5 000 в банку та балансом $500 на своїй кредитній картці. Рахунок Equity:OpeningBalances – це спеціальний рахунок, який використовується для забезпечення збалансування транзакції до нуля, як того вимагає бухгалтерський облік з подвійним записом.


6) Загальні операції стартапу (копіюйте та вставляйте)

Ось рецепти для найпоширеніших фінансових подій на ранній стадії стартапу. Копіюйте, вставляйте та адаптуйте їх для власного використання.

Придбання акцій засновниками (просте, лише валюта)

Коли засновники купують свої початкові акції за номінальною вартістю, гроші надходять у компанію та фіксуються як капітал. Ваша таблиця капіталізації (Carta, Pulley або електронна таблиця) є джерелом достовірної інформації про кількість акцій; книга обліку просто фіксує долари.

2025-01-05 * "Founder stock purchase @ par"
Assets:Bank:Checking 800.00 USD
Equity:CommonStock -0.80 USD
Equity:APIC -799.20 USD
; 8,000,000 common @ $0.0001 — counts maintained off-ledger

(Необов'язково) Відстежуйте власні акції як товар

Якщо ви хочете, щоб книга обліку відстежувала кількість випущених акцій, ви можете визначити свої акції як "товар". Це складніше, але забезпечує більш повний запис у книзі обліку.

2025-01-05 commodity ACME
name: "Acme, Inc. Common"

2025-01-05 * "Founder share issuance"
Assets:Bank:Checking 800.00 USD
Equity:APIC -799.20 USD
Equity:CommonStock -8,000,000 ACME {0.0001 USD}

SAFE cash in (виберіть класифікацію)

SAFE (Simple Agreement for Future Equity) можна розглядати як зобов'язання або як форму капіталу (зокрема, "мезонінний капітал"). Проконсультуйтеся зі своїм бухгалтером, щоб вибрати правильний підхід і бути послідовним.

; (A) Equity classification (mezzanine)
2025-02-01 * "Post-money SAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Equity:SAFE -500,000.00 USD

; (B) Liability classification (until conversion)
2025-02-01 * "Post-money SAFE — SeedFund"
Assets:Bank:Checking 500,000.00 USD
Liabilities:SAFE -500,000.00 USD

Коли раунд за ціною закривається, ви перекласифікуєте залишок SAFE на привілейовані акції та додатковий сплачений капітал на основі закриваючих документів.

Конвертована нота з нарахованими відсотками

На відміну від SAFE, конвертована нота є однозначно зобов'язанням, на яке нараховуються відсотки. Ви записуєте початкові гроші, а потім періодично (наприклад, щоквартально) фіксуєте витрати на відсотки.

2025-03-01 * "Convertible Note — 6% annual"
Assets:Bank:Checking 250,000.00 USD
Liabilities:NotesPayable -250,000.00 USD

2025-06-30 * "Accrue note interest Q2"
Expenses:Interest 3,750.00 USD
Liabilities:NotesPayable -3,750.00 USD
; 250,000 * 6% * 0.25 = 3,750

Річний продаж SaaS (відкладений дохід + щомісячне визнання)

Це наріжний камінь обліку на основі нарахувань. Коли клієнт сплачує авансом за рік, ви не отримуєте весь цей дохід одразу. Ви фіксуєте його як зобов'язання (DeferredRevenue), а потім визнаєте 1/12 його частину щомісяця.

2025-03-10 * "Annual subscription — AcmeCo — INV-001"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD
narration: "SaaS annual prepay"

2025-03-20 * "Payment INV-001"
Assets:Bank:Checking 1,200.00 USD
Assets:AR -1,200.00 USD

; Recognize month 1/12 (repeat monthly or script it)
2025-04-01 * "Revenue recognition 1/12 — INV-001"
Liabilities:DeferredRevenue 100.00 USD
Income:Revenue:SaaS -100.00 USD

Передоплачені витрати та амортизація

Це протилежність відкладеного доходу. Коли ви передоплачуєте за послугу (наприклад, річне програмне забезпечення або страхування), ви фіксуєте її як актив (Prepaid), а потім "амортизуєте" або списуєте частину її щомісяця.

2025-03-01 * "Annual software prepaid"
Assets:Prepaid:Software 1,200.00 USD
Assets:Bank:Checking -1,200.00 USD

2025-04-01 * "Amortize prepay 1/12"
Expenses:Software:Subscriptions 100.00 USD
Assets:Prepaid:Software -100.00 USD

Заробітна плата (готівка нетто, з утриманнями + податки роботодавця)

Запис про заробітну плату складається з кількох частин: валові витрати на заробітну плату, податкові витрати роботодавця, готівка нетто, виплачена працівникам, і зобов'язання щодо утриманих податків, які необхідно перерахувати уряду.

2025-04-15 * "Payroll — Apr 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 * "Invoice #123 — CA taxable"
Assets:AR 1,088.75 USD
Income:Revenue:SaaS -999.00 USD
Liabilities:SalesTax:CA -89.75 USD

2025-06-05 * "Payment #123"
Assets:Bank:Checking 1,088.75 USD
Assets:AR -1,088.75 USD

2025-07-20 * "Remit CA sales tax Q2"
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 charge"
Expenses:Cloud 90.00 EUR
Liabilities:CreditCard:Corporate -90.00 EUR

2025-03-05 * "Buy BTC for testing"
Assets:Crypto:BTC 0.0200 BTC {3400.00 USD}
Assets:Bank:Checking -3,400.00 USD

7) Використання 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: Зосередьтесь на конкретному фінансовому періоді.

8) Щомісячний контрольний список закриття (15–45 хв)

Наприкінці кожного місяця переглядайте цей контрольний список, щоб переконатися, що ваші книги є точними та актуальними. Ця дисципліна робить час сплати податків і перевірку інвесторами дуже легкими.

  • Банківські/кредитні картки: Імпортуйте або введіть вручну всі транзакції. Звірте залишки з вашими виписками.
  • Дебіторська/кредиторська заборгованість: Опублікуйте всі видані рахунки-фактури та отримані рахунки; позначте оплачені елементи як закриті.
  • Дохід: Опублікуйте щомісячні записи про визнання доходу для всіх передоплачених контрактів.
  • Передоплати: Амортизуйте 1/12 (або відповідну частку) усіх передоплачених витрат.
  • Заробітна плата: Забронюйте журнал записів зі звіту вашого постачальника послуг з нарахування заробітної плати.
  • Податок з продажів: Забронюйте свої зобов'язання з податку з продажів за місяць.
  • Інструменти фінансування посівної стадії: Нарахуйте відсотки на будь-які конвертовані ноти.
  • Перевірки на адекватність:
    • Чи відповідає дохід у вашому звіті про прибутки та збитки вашому очікуваному MRR/ARR?
    • Чи відповідають ваші темпи витрачання коштів і термін дії фінансовому плану?
    • Чи виконується $ bean-check без помилок? Чи виглядають звіти Fava правильними?
  • Зафіксуйте в Git стислим, послідовним записом (наприклад, close: 2025-04).

9) Метадані та документи (спростіть аудит)

Ваша книга обліку має бути самодокументованою. Використовуйте метадані та посилання на вихідні документи, щоб створити надійний аудиторський слід. Майбутній ви (і ваш бухгалтер) подякуєте вам.

  • Додайте метадані, такі як payee:, narration:, invoice:, customer: або link:, до транзакцій для ясності.
  • Приєднайте вихідні PDF-файли (рахунки-фактури, квитанції, банківські виписки) до папки ledger/documents/ і пов’яжіть їх за допомогою тегу метаданих document:.
  • Використовуйте теги (#payroll, #saas, #vendor-aws, #invoice-001) для легкого фільтрування та аналізу.

Приклад:

2025-03-10 * "Annual subscription — AcmeCo" #saas #invoice-001
payee: "AcmeCo"
invoice: "INV-001"
document: "documents/invoices/INV-001.pdf"
Assets:AR 1,200.00 USD
Liabilities:DeferredRevenue -1,200.00 USD

10) Імпортуйте пізніше (коли матимете час)

Почніть з введення транзакцій вручну протягом першого місяця-двох. Це найкращий спосіб вивчити систему та власні моделі витрат. Коли вам стане зручно, ви можете написати прості імпортери Python, щоб автоматизувати процес і зменшити обсяг роботи.

Типовий порядок бою імпортера:

  1. Банківський CSV → Assets:Bank:Checking
  2. CSV-файл кредитної картки → Liabilities:CreditCard:Corporate
  3. Звіти про виплати Stripe/PayPal → Відображення доходів і грошових коштів

Зберігайте свої імпортери в /ledger/importers і переглядайте згенеровані ними транзакції, як і будь-яку іншу зміну коду.


11) Політики (помістіть в includes/policies.beancount)

У цьому файлі ви документуєте свої облікові рішення для забезпечення послідовності. Це простий текстовий файл, але він має вирішальне значення для підтримки дисципліни.

  • Основа нарахування; визнавайте дохід SaaS пропорційно.
  • Функціональною валютою є USD; фіксуйте FX за денним курсом або курсом транзакції.
  • Поріг капіталізації (наприклад, елементи вартістю понад $2 500 стають елементом Assets:Equipment; інакше вони списуються негайно).
  • Подорожі/Харчування: Ділова мета має бути задокументована в полі narration.
  • Облік власного капіталу: Чітко вкажіть, чи використовуєте ви метод лише валюти чи метод акції-товару.
  • SAFE/ноти: Задокументуйте вибрану класифікацію (зобов'язання чи капітал).

Приклад policies.beancount:

; Policy: Accrual basis, revenue deferred and recognized monthly.
; Policy: USD functional currency. FX gains/losses are derived from cost/price data.
; Policy: Capitalize tangible assets over $2,500 with a 3-year straight-line depreciation.
; Policy: SAFEs are recorded as Liabilities until conversion in a priced round.

12) Швидке усунення несправностей

  • Дохід виглядає від’ємним у Журналі: Це правильно! Дохід – це кредит. Звіти Fava відображатимуть його як позитивне число.
  • Залишки не обнуляються: Ймовірно, у вас є неповна транзакція. Облікові записи транзакції повинні в сумі дорівнювати нулю. Використовуйте перегляд «Журнал» Fava, щоб знайти винуватця. Як тимчасовий захід, ви можете додати збалансувальний елемент до облікового запису Equity:Suspense, щоб зробити файл дійсним, а потім дослідити та виправити першопричину.
  • Розбіжності FX: Переконайтеся, що у вас є директиви price для відповідних дат або що ви вказуєте базис вартості у своїй операційній валюті, як-от 90.00 EUR {97.49 USD}.

13) Що відстежувати за межами книги обліку (зберігайте посилання)

Beancount призначений для ваших фінансових операцій, але деякими речами краще керувати у спеціальних системах. Головне – посилатися на них із вашої книги обліку.

  • Таблиця капіталізації: Використовуйте Carta, Pulley або електронну таблицю. Посилайтеся на підписані закриваючі документи з ваших фінансових операцій у Beancount.
  • Згоди ради директорів, План власного капіталу, Звіти 409A: Зберігайте їх у безпечному місці та додайте метадані link: до відповідних операцій з акціями.
  • Податкові декларації: Зберігайте остаточні PDF-файли та посилайтеся на них з операції закриття року.

Готовий до копіювання початковий файл (все в одному)

Якщо ви віддаєте перевагу почати з одного файлу, перш ніж розширювати до структури включення, ви можете просто вставити вміст файлів із розділів вище в один великий main.beancount. Ви завжди можете реорганізувати його пізніше, коли ваша книга обліку зросте.

Ця структура забезпечує міцний, масштабований фундамент для фінансів вашого стартапу. Зберігаючи свої книги обліку у вигляді звичайного тексту під контролем версій, ви отримуєте неперевершену прозорість і контроль, що налаштовує вашу компанію на фінансову дисципліну з першого дня.