Преминете към основното съдържание

Настройка на Beancount за стартиращи фирми

Практическа, готова за копиране основа за управление на счетоводството на стартъп в обикновен текст. Работи за pre-seed до Series A. Това не е правен или данъчен съвет.


beancount-setup-for-startups

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

Използването на Beancount означава, че вашата финансова книга се намира в текстови файлове, точно до вашия код в Git хранилище. Тя е с контролирана версия, прозрачна и безкрайно персонализируема. Това ръководство предоставя пълна, готова за копиране настройка, за да поддържате счетоводните книги на вашия стартъп работещи от създаването до вашия Series A, изградени на солидни счетоводни принципи, основани на начисляване.

1) Какво ще настроите

Това ръководство ще ви преведе през създаването на пълна, професионална счетоводна настройка. До края ще имате:

  • Счетоводна книга с единствен източник на истина, управлявана в Git (main.beancount), която ви дава пълна, проверима история на финансите на вашата компания.
  • Fava за красиви отчети и графики. Fava е уеб интерфейс за Beancount, който превръща вашите текстови файлове в интерактивни отчети за приходите, баланси и анализ на паричните потоци.
  • Структура за импортиране, която можете да добавите по-късно, за да автоматизирате въвеждането на транзакции от вашата банка, кредитна карта, PayPal и Stripe акаунти. Ще започнем ръчно, за да научим системата, след което ще автоматизираме.
  • Счетоводен план, готов за начисляване, предназначен за съвременни стартиращи фирми, с вградена поддръжка за отсрочени приходи, предплатени разходи и задължения за заплати.
  • Примитиви за seed финансиране, включително ясни примери за записване на SAFE бележки (или като пасив, или като собствен капитал) и конвертируеми облигации с лихва.

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 парични средства (изберете класификация)

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 минути)

В края на всеки месец прегледайте този контролен списък, за да се уверите, че вашите книги са точни и актуални. Тази дисциплина прави данъчното време и проверката на инвеститорите лесни.

  • Банкови/кредитни карти: Импортирайте или въведете ръчно всички транзакции. Съгласувайте салда с вашите извлечения.
  • AR/AP: Публикувайте всички издадени фактури и получени сметки; маркирайте платените артикули като изчистени.
  • Приходи: Публикувайте месечните записи за признаване на приходи за всички предплатени договори.
  • Предплащания: Амортизирайте 1/12-та (или подходящата дроб) от всички предплатени разходи.
  • Заплати: Резервирайте дневниковия запис от отчета на вашия доставчик на заплати.
  • Данък върху продажбите: Резервирайте вашето задължение за данък върху продажбите за месеца.
  • Инструменти за seed финансиране: Начислете лихва върху всички конвертируеми облигации.
  • Проверки за здрав разум:
    • Дали приходите от вашия отчет за приходите приблизително съвпадат с очаквания ви MRR/ARR?
    • Дали вашата степен на изгаряне и писта съответстват на вашия финансов план?
    • Дали $ bean-check се изпълнява без грешки? Дали отчетите на Fava изглеждат правилни?
  • Commit към 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.
  • Записване на собствен капитал: Изрично посочете дали използвате метода само за валута или акция-стока.
  • SAFEs/бележки: Документирайте избраната от вас класификация (пасив или собствен капитал).

Примерен 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. Винаги можете да го преработите по-късно, когато вашата счетоводна книга расте.

Тази рамка осигурява солидна, мащабируема основа за финансите на вашия стартъп. Като поддържате вашите книги в обикновен текст под контрол на версиите, вие получавате несравнима прозрачност и контрол, подготвяйки компанията си за финансова дисциплина от първия ден.