Перейти к основному содержимому

Настройка Beancount для стартапов

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


beancount-setup-for-startups

Управление стартапом означает выполнение множества ролей, и одна из самых важных — «бухгалтер». Прежде чем вы сможете позволить себе дорогое программное обеспечение или штатного бухгалтера, вам понадобится система, которая будет точной, проверяемой и не заблокирует вас в проприетарной экосистеме. Встречайте Beancount: систему бухгалтерского учета с открытым исходным кодом в виде простого текста.

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

1) Что вы настроите

Это руководство проведет вас через создание полной бухгалтерской настройки профессионального уровня. К концу вы получите:

  • Единый источник достоверной информации (Single-source-of-truth ledger), управляемый в Git (main.beancount), предоставляющий вам полную, проверяемую историю финансов вашей компании.
  • Fava для красивых отчетов и графиков. Fava — это веб-интерфейс для Beancount, который превращает ваши текстовые файлы в интерактивные отчеты о прибылях и убытках, бухгалтерские балансы и анализ денежных потоков.
  • Структуру для импортеров, которую вы сможете добавить позже для автоматизации ввода транзакций из ваших банковских счетов, кредитных карт, PayPal и Stripe. Мы начнем вручную, чтобы изучить систему, а затем автоматизируем процесс.
  • Готовый к учету по методу начисления план счетов, разработанный для современных стартапов, со встроенной поддержкой отложенной выручки, предоплаченных расходов и обязательств по заработной плате.
  • Примитивы для финансирования на посевной стадии (seed financing), включая четкие примеры регистрации 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 (или соответствующую часть) всех предоплаченных расходов.
  • Заработная плата: Зарегистрируйте журнальную запись из отчета вашего поставщика услуг по заработной плате.
  • Налог с продаж: Зафиксируйте свое обязательство по налогу с продаж за месяц.
  • Инструменты финансирования: Начислите проценты по любым конвертируемым векселям.
  • Проверки на достоверность:
    • Соответствует ли выручка в вашем отчете о прибылях и убытках примерно вашему ожидаемому 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 пропорционально.
  • Функциональной валютой является доллар США; записывайте 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. Вы всегда можете реорганизовать его позже по мере роста вашей книги.

Эта структура обеспечивает прочную, масштабируемую основу для финансов вашего стартапа. Сохраняя свои книги в виде простого текста под контролем версий, вы получаете беспрецедентную прозрачность и контроль, что обеспечивает финансовую дисциплину вашей компании с первого дня.

[
{
"key": "copyright",
"description": "Copyright information",
"message": "© 2024 Beancount — Ведение бухгалтерского учета в виде простого текста"
}
]