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

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

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


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

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

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

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

  • Единый источник истины — реестр, управляемый в Git (main.beancount), предоставляющий полную и проверяемую историю финансов вашей компании.
  • Fava для красивых отчётов и графиков. Fava — это веб-интерфейс для Beancount, который превращает ваши текстовые файлы в интерактивные отчёты о прибылях и убытках, балансовые отчёты и анализ движения денежных средств.
  • Структуру для импортёров, которую вы сможете добавить позже для автоматизации ввода транзакций с вашего банковского счёта, кредитной карты, PayPal и Stripe. Мы начнём с ручного ввода, чтобы изучить систему, а затем автоматизируем процессы.
  • Готовый к учёту по методу начисления план счетов, разработанный для современных стартапов, с встроенной поддержкой отложенных доходов, расходов будущих периодов и обязательств по зарплате.
  • Основы для посевного финансирования, включая понятные примеры учёта SAFE-соглашений (как обязательств или капитала) и конвертируемых займов с процентами.

2) Структура проекта (добавьте в свой репозиторий)​

Начните с создания следующей структуры каталогов внутри Git-репозитория вашей компании. Такая организация поддерживает ваш реестр чистым и масштабируемым.

/ledger
  main.beancount
  /includes
    accounts.beancount
    opening-balances.beancount
    policies.beancount
  /documents
    /bank
    /invoices
    /receipts
  /importers              # необязательно; добавьте при автоматизации импорта CSV
    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"
 
; Если позже вы добавите импортёры, добавьте строки плагинов здесь.
; plugin "beancount.plugins.implicit_prices"

4) Стартовый план счетов (сначала метод начисления)​

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

Поместите это в 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 автоматически меняет знаки в отчётах, поэтому ваша выручка будет отображаться как положительное число в отчёте о прибылях и убытках.
  • Начните с узких и целенаправленных категорий. Гораздо проще добавить новые счета позже, чем разбираться с запутанным, излишне детализированным планом счетов.

5) Начальные остатки (первый день)​

Первая транзакция в вашем реестре задаёт основу. Она фиксирует начальное состояние ваших счетов на день начала учёта. Поместите эту транзакцию в 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

Эта запись устанавливает, что компания начала с $5,000 на банковском счёте и $500 задолженности по кредитной карте. Счёт Equity:OpeningBalances — это специальный счёт, используемый для обеспечения баланса транзакции до нуля, как того требует двойная бухгалтерия.


6) Типовые транзакции стартапа (копирование и вставка)​

Вот шаблоны для наиболее распространённых финансовых событий на ранней стадии стартапа. Копируйте, вставляйте и адаптируйте их под свои нужды.

Покупка акций основателями (простая, только в валюте)​

Когда основатели покупают свои первоначальные акции по номиналу, денежные средства поступают в компанию и фиксируются как капитал. Ваша таблица капитализации (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. Common"
 
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 (Простое соглашение о будущем капитале) может рассматриваться либо как обязательство, либо как форма капитала (а именно, «промежуточный капитал»). Проконсультируйтесь с вашим бухгалтером, чтобы выбрать правильный подход и быть последовательным.

; (A) Классификация как капитал (промежуточный)
2025-02-01 * "Post-money SAFE — SeedFund"
  Assets:Bank:Checking            500,000.00 USD
  Equity:SAFE                    -500,000.00 USD
 
; (B) Классификация как обязательство (до конвертации)
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 * "Конвертируемый займ — 6% годовых"
  Assets:Bank:Checking            250,000.00 USD
  Liabilities:NotesPayable       -250,000.00 USD
 
2025-06-30 * "Начисление процентов по займу за 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 * "Годовая подписка — 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
 
; Признание 1/12 (повторяйте ежемесячно или скриптом)
2025-04-01 * "Признание выручки 1/12 — 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 * "Амортизация предоплаты 1/12"
  Expenses:Software:Subscriptions   100.00 USD
  Assets:Prepaid:Software          -100.00 USD

Расчёт зарплаты (чистые денежные средства, с удержаниями + налогами работодателя)​

Проводка по зарплате состоит из нескольких частей: валовая заработная плата, налоги работодателя, чистые денежные средства, выплаченные сотрудникам, и обязательства по удержанным налогам, которые должны быть перечислены в бюджет.

2025-04-15 * "Зарплата — 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

Сбор и перечисление налога с продаж (пример для Калифорнии)​

Когда вы собираете налог с продаж, это не ваши деньги. Это обязательство перед штатом. Вы фиксируете обязательство при продаже и погашаете его при перечислении налога.

2025-05-10 * "Счёт #123 — облагается налогом в Калифорнии"
  Assets:AR                       1,088.75 USD
  Income:Revenue:SaaS              -999.00 USD
  Liabilities:SalesTax:CA           -89.75 USD
 
2025-06-05 * "Оплата #123"
  Assets:Bank:Checking            1,088.75 USD
  Assets:AR                      -1,088.75 USD
 
2025-07-20 * "Перечисление налога с продаж в Калифорнии за Q2"
  Liabilities:SalesTax:CA            89.75 USD
  Assets:Bank:Checking              -89.75 USD

Валютные операции и криптовалюта (лёгкий подход)​

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

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 * "Годовая подписка — 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; фиксируйте курсы валют по дневному или транзакционному курсу.
  • Порог капитализации (например, предметы дороже $2,500 становятся Assets:Equipment; в противном случае они списываются сразу).
  • Командировки/Питание: Деловая цель должна быть задокументирована в поле narration.
  • Запись капитала: Явно укажите, используете ли вы метод только в валюте или акции как товар.
  • SAFE/займы: Задокументируйте выбранную классификацию (обязательство или капитал).

Пример policies.beancount:

; Политика: метод начисления, выручка откладывается и признается ежемесячно.
; Политика: функциональная валюта USD. Курсовые разницы выводятся из данных о цене/себестоимости.
; Политика: капитализировать материальные активы дороже $2,500 с линейной амортизацией за 3 года.
; Политика: SAFE учитываются как обязательства до конвертации в раунде с оценкой.

12) Быстрое устранение неполадок​

  • Выручка выглядит отрицательной в журнале: Это нормально! Доход — это кредит. В отчётах Fava она будет отображаться как положительное число.
  • Остатки не сходятся к нулю: Вероятно, у вас незавершённая транзакция. Сумма проводок транзакции должна быть равна нулю. Используйте представление журнала Fava, чтобы найти проблему. В качестве временной меры вы можете добавить балансирующую проводку на счёт Equity:Suspense, чтобы файл стал корректным, а затем расследовать и исправить корневую причину.
  • Несовпадения курсов валют: Убедитесь, что у вас есть директивы price на соответствующие даты или что вы указываете себестоимость в вашей функциональной валюте, например, 90.00 EUR {97.49 USD}.

13) Что отслеживать вне реестра (сохраняйте ссылки)​

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

  • Таблица капитализации: Используйте Carta, Pulley или электронную таблицу. Связывайте подписанные закрывающие документы из ваших финансовых операций в Beancount.
  • Согласия совета директоров, опционный план, отчёты 409A: Храните их в безопасном месте и добавляйте метаданные link: к соответствующим операциям с капиталом.
  • Налоговые декларации: Храните финальные PDF-файлы и привязывайте их к транзакции закрытия года.

Готовый стартовый файл (всё в одном)​

Если вы предпочитаете начать с одного файла, прежде чем переходить к структуре include, вы можете просто вставить содержимое файлов из разделов выше в один большой main.beancount. Вы всегда сможете отрефакторить его позже по мере роста вашего реестра.

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

Настройте бухгалтерию, которой можно доверять

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