Перейти к контенту

Отраслевые конфигурации

Примеры настройки для фрилансеров, малого бизнеса и личных финансов

В этом руководстве мы рассмотрим, как адаптировать книгу учета Beancount под различные нужды: для фрилансера, небольшого специализированного бизнеса и личных семейных финансов. Каждый сценарий предполагает уникальную структуру счетов и свои нюансы. Мы объясним логику каждой настройки, предоставим примеры фрагментов кода Beancount и выделим полезные функции (такие как пользовательские теги и автоматизированный импорт), которые упрощают отслеживание. Тон изложения — инструктивный, но доступный: независимо от того, являетесь ли вы разработчиком, технически подкованным специалистом или энтузиастом в области финансов, эти примеры помогут вам применить Beancount в реальной жизни.

industry-specific-setups

Фрилансеры

Фрилансеры (например, разработчики программного обеспечения или графические дизайнеры) часто работают с несколькими клиентами и проектными расходами. Простая настройка Beancount поможет отслеживать доход от каждого клиента, деловые расходы (включая наем субподрядчиков) и деньги, отложенные на налоги. Цель состоит в том, чтобы система оставалась простой и масштабировалась по мере роста вашего фриланс-бизнеса без лишней сложности.

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

  • Assets:Business:Checking — расчетный бизнес-счет для всех клиентских платежей и деловых расходов.
  • Assets:Business:TaxSavings — сберегательный счет для резервирования части дохода на уплату налогов (так как работодатель не удерживает налоги за вас).
  • Income:Client:*Имя*** — счета доходов для платежей от клиентов. Вы можете создавать субсчета для каждого крупного клиента (например, Income:Client:ACME) или использовать один счет Income:Freelance, помечая имена клиентов тегами в транзакциях.
  • Expenses:Business:Contractors — для выплат субподрядчикам или за переданную на аутсорс работу.
  • Expenses:Business:Software (и другие категории, такие как Travel, Supplies) — для регулярных деловых расходов (подписки на ПО, оборудование, поездки к клиентам и т. д.).
  • Equity:OwnerDraw — (опционально) для фиксации перевода прибыли из бизнеса себе лично. Это помогает отличить средства бизнеса от личных средств, когда вы платите зарплату самому себе.

Обоснование: Такая структура гарантирует, что все деньги, связанные с бизнесом, отслеживаются на выделенных счетах. Доход от каждого клиента фиксируется (что позволяет легко увидеть ваших ключевых заказчиков), а расходы распределяются по категориям для налоговых вычетов. Резервирование налогов на отдельном счете активов (или фиксация обязательства по причитающимся налогам) предотвращает случайную трату денег, которые должны быть выплачены государству. Книга учета остается простой: если у вас появляются новые клиенты или категории расходов, вы можете добавить новые счета или использовать теги без реорганизации всей системы. Распространенная ошибка — смешивание личных и деловых транзакций на одном счете; при наличии выделенного бизнес-счета (и соответствующего счета активов) сверка и отчетность становятся намного прозрачнее. Еще одна ошибка, которой следует избегать, — это забвение о записи переводов на налоги или выплат владельцу: при использовании таких счетов, как TaxSavings и OwnerDraw, учитывается каждый доллар.

Функции Beancount, на которые стоит обратить внимание: Теги и метаданные чрезвычайно полезны для фрилансеров. Например, вы можете помечать транзакции номером проекта или счета-фактуры или использовать поле метаданных для указания имени клиента, если решите не создавать отдельные счета доходов для каждого из них. Это позволяет легко фильтровать или запрашивать транзакции по конкретному клиенту или проекту (например, суммировать все расходы с тегом #ProjectX). Кроме того, автоматизированные импортеры Beancount могут упростить ввод данных — например, вы можете настроить импортер для выписок из вашего банка или по кредитной карте, чтобы загружать транзакции в книгу учета, а затем просто добавлять соответствующие названия счетов расходов или доходов. Это экономит время, когда у вас много мелких транзакций (таких как подписки на ПО или транспортные расходы).

Пример фрагмента книги учета для фрилансера

Ниже приведен упрощенный фрагмент Beancount для независимого разработчика. Он показывает открытие нескольких ключевых счетов, входящий платеж от клиента, выплату субподрядчику, типичный деловой расход и перевод денег на счет налоговых накоплений. (На практике вы также будете аналогичным образом фиксировать другие расходы, такие как поездки или покупка оборудования).

1970-01-01 open Assets:Business:Checking
1970-01-01 open Assets:Business:TaxSavings
1970-01-01 open Income:Client:ACME
1970-01-01 open Expenses:Business:Contractors
1970-01-01 open Expenses:Business:Software

; Доход от клиента — оплата по счету-фактуре
2025-08-15 * "Оплата счета от ACME Corp"
invoice: "INV-2025-08-15"
Assets:Business:Checking 5000 USD
Income:Client:ACME -5000 USD

; Регулярный расход — например, подписка на ПО для бизнеса
2025-08-05 * "Подписка GitHub"
Expenses:Business:Software 15 USD
Assets:Business:Checking - 15 USD

; Расходы на подрядчика — оплата работы помощника
2025-08-20 * "Выплата подрядчику — Джейн Доу"
Expenses:Business:Contractors 2000 USD
Assets:Business:Checking -2000 USD

; Резервирование налогов — перевод средств на налоговый счет
2025-08-31 * "Резерв на налоги за 3-й квартал"
Assets:Business:TaxSavings 1500 USD
Assets:Business:Checking -1500 USD #tax

Давайте разберем, что здесь происходит:

  • Мы открываем необходимые счета в начале файла (с датой начала). В Beancount это не является строго обязательным (счета создаются при первом использовании, если они не открыты), но объявлять их — хорошая практика. Счета Assets:Business:Checking и Assets:Business:TaxSavings будут хранить остатки в USD; счета доходов и расходов можно оставить без указания валюты в директиве open, так как они будут наследовать валюту транзакций (в данном случае USD).
  • Оплата счета от клиента: 15 августа 2025 года транзакция дохода фиксирует платеж клиента в размере 5 000 долларов по счету-фактуре. Мы кредитуем Income:Client:ACME (в двойной записи доход увеличивается отрицательным значением) и дебетуем расчетный счет. Поле метаданных invoice: "INV-2025-08-15" добавлено для указания номера счета — это необязательно, но показывает, как можно прикреплять дополнительную информацию к транзакции. Вы также можете пометить эту транзакцию тегом #ACME или #client-ACME для быстрой фильтрации. Если бы у вас было много клиентов, вы могли бы использовать общий счет Income:Clients и полагаться на такие метаданные или поле Payee (Получатель), чтобы различать их, вместо создания множества субсчетов.
  • Деловой расход (ПО): 5 августа 2025 года мы записываем расход в размере 15 долларов на подписку GitHub (возможно, для приватных репозиториев или других услуг). Запись идет на счет Expenses:Business:Software и уменьшает остаток на расчетном бизнес-счете. Мелкие повторяющиеся расходы, подобные этому, могут быть помечены тегами (например, мы добавили #tax к налоговой транзакции ниже; аналогично можно помечать определенные расходы как #recurring, если они происходят ежемесячно и т. д.). В данном случае само название счета (Software) вносит ясность.
  • Выплата подрядчику: 20 августа 2025 года фрилансер заплатил субподрядчику (Джейн Доу) 2 000 долларов. Это регистрируется как расход в Expenses:Business:Contractors и списание денежных средств с расчетного счета. Вы можете указать имя подрядчика в описании (как сделали мы) или в поле метаданных (например, contractor: "Jane Doe"). Это сохраняет контрольный след: кому вы платили и за что (полезно при подаче налоговой декларации или планировании бюджета).
  • Перевод налоговых накоплений: 31 августа 2025 года фрилансер переводит 1 500 долларов с основного расчетного счета на специальный счет налоговых накоплений. Мы пометили эту транзакцию тегом #tax для наглядности. Это не расход (вы просто перемещаете собственные деньги), поэтому транзакция происходит между двумя счетами активов. Делая это каждый месяц или квартал, вы накапливаете средства для покрытия расчетных налогов. Когда придет время фактически заплатить налоги государству, вы зафиксируете расход (скажем, Expenses:Taxes) и списание со счета TaxSavings (или Checking). Распространенная ошибка — рассматривать этот перевод как расход в ваших отчетах. Помните: это не расход, а просто предосторожное распределение средств. Только фактическая уплата налога в налоговый орган будет считаться расходом (или уменьшением начисленного налогового обязательства, если вы отслеживаете его таким образом).

Резюме: Книга учета Beancount для фрилансера ориентирована на простоту и четкость. Все доходы и оттоки, связанные с бизнесом, фиксируются методично. Используя осмысленные названия счетов и периодические теги/метаданные, вы можете легко создавать отчеты по каждому клиенту или категории расходов (например, общий доход по клиенту, общая сумма, потраченная на подрядчиков в этом году, и т. д.). Эта настройка масштабируема — вы можете добавлять новых клиентов или категории расходов по мере развития вашего бизнеса. Благодаря таким функциям, как автоматизированный импорт (для получения банковских транзакций) и настраиваемые теги для проектов или счетов-фактур, Beancount может значительно снизить накладные расходы на ведение бухгалтерии для фрилансеров, обеспечивая при этом ясную финансовую картину в любой момент времени.

Малый бизнес

Далее рассмотрим небольшой интернет-магазин — например, онлайн-бутик, продающий изделия ручной работы. Этот сценарий добавляет такие сложности, как управление запасами, себестоимость реализованной продукции (COGS) и работа с платежными онлайн-системами. Beancount позволяет учесть это с помощью продуманной структуры счетов и методов регистрации транзакций. Мы рассмотрим случай, когда бизнес отслеживает товары на складе, фиксирует продажи через онлайн-платформу (например, Shopify со Stripe для приема платежей) и записывает типичные бизнес-расходы.

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

  • Assets:Bank:Checking — Расчетный счет предприятия (для оплаты поставщикам, операционных расходов и получения переводов от платежных систем).
  • Assets:Stripe:Balance (или Assets:PayPal и т. д.) — Клиринговый счет для средств, собранных через онлайн-платежи, которые еще не поступили в банк. Например, когда клиент платит через Stripe, деньги могут находиться на счете Stripe, прежде чем они будут переведены в ваш банк отдельными суммами.
  • Assets:Inventory:*Product*** — Счета запасов для ваших товаров. Вы можете рассматривать каждый продукт (или категорию продуктов) как отдельный актив (commodity) в Beancount для отслеживания остатков. Например, Assets:Inventory:Widgets может содержать количество товаров «Widget» на складе, оцененных по их себестоимости.
  • Income:Sales — Учет выручки от продажи товаров. Вы можете использовать субсчета для различных каналов продаж (например, Income:Sales:Online против Income:Sales:InStore), если у бизнеса несколько каналов, но мы упростим это, используя один счет доходов от продаж.
  • Expenses:COGS — Себестоимость реализованной продукции (Cost of Goods Sold), предназначенная для фиксации стоимости запасов в момент их продажи. Этот счет фактически показывает, во сколько вам (как владельцу бизнеса) обошлись проданные товары за определенный период. Это ключевой компонент для расчета валовой прибыли.
  • Expenses:Fees — Комиссии за обработку платежей и платформенные сборы (комиссии Stripe, Shopify, PayPal и т. д. — все это можно записывать здесь). При желании вы можете разделить этот счет на более детальные (например, Expenses:Fees:Stripe и Expenses:Fees:Shopify), но одного счета может быть достаточно для всех транзакционных комиссий.
  • Expenses:Operating — Общие бизнес-расходы, не связанные напрямую с COGS, такие как маркетинг, веб-хостинг, программное обеспечение, расходные материалы для доставки и т. д. Их можно разбить на субсчета (например, Expenses:Marketing, Expenses:WebHosting, Expenses:Shipping) для анализа различных центров затрат.
  • Liabilities:SalesTax — (Опционально, если применимо) Если бизнесу необходимо собирать налог с продаж или НДС, этот счет обязательств отслеживает собранные налоги, которые еще не были перечислены государству. При каждой продаже налоговая часть будет выделяться на этот счет. Это гарантирует, что собранные налоги не учитываются как доход и зарезервированы для выплаты налоговым органам.
  • Equity:OwnerEquity — (Опционально) Представляет капитал владельца и нераспределенную прибыль. При создании бизнеса любое начальное финансирование владельцем будет отражаться здесь по кредиту (с дебетом счета банка или запасов, если были внесены наличные или товары). Также, если владелец выводит прибыль (распределение прибыли), это можно записывать по этому счету капитала. Это поддерживает баланс уравнения, но в повседневных операциях используется нечасто.

Обоснование: Такая структура разделяет потоки товаров и денег. Закупки запасов изначально фиксируются в балансе (как активы), а не сразу как расходы. Только когда вы продаете товары, вы списываете их стоимость (COGS), сопоставляя доход с соответствующим расходом для правильного расчета прибыли. Доход от продаж записывается по валовой цене продажи, в то время как комиссии фиксируются отдельно, чтобы вы могли видеть как общую выручку, так и уплаченные комиссии (и, следовательно, чистую выручку). Использование клирингового счета, такого как Assets:Stripe:Balance, помогает при сверке депозитов — деньги перемещаются из Stripe в ваш банк крупными суммами, и вы можете записывать эти переводы без путаницы. Типичная ошибка новых владельцев магазинов — пренебрежение правильным учетом запасов (например, немедленное списание всех закупок товаров в расходы). Это может быть допустимо для отслеживания денежных потоков, но искажает вашу прибыль: вы будете казаться менее прибыльными в те месяцы, когда закупаете товар, и более прибыльными в месяцы продаж, даже если товар был куплен ранее. Используя счет активов запасов и COGS, вы привязываете затраты к моменту продажи. Еще одна ловушка — отсутствие учета комиссий или возвратов, из-за чего остатки в банке или Stripe могут не совпадать с вашим записанным доходом. Мы избегаем этого, явно регистрируя комиссии и используя счет активов Stripe для отслеживания того, что Stripe должен выплатить.

Особенности Beancount, на которые стоит обратить внимание: Отслеживание запасов в Beancount использует его способность работать с активами (commodities) и стоимостью. Каждому продукту может быть присвоен символ товара (например, WIDGET), что позволяет записывать как количество, так и себестоимость единицы. При продаже товаров логика запасов Beancount (по умолчанию FIFO) может автоматически выбирать правильную стоимость из ваших партий запасов. Мы увидим это на примере. Вы также можете использовать метаданные или ссылки, чтобы связать продажи и соответствующие записи COGS (например, используя один и тот же номер заказа в обеих транзакциях или общий тег, такой как #order1001, для продажи и списания запасов, что упрощает поиск или проверку того, что для каждой продажи есть запись COGS). Кроме того, здесь может помочь автоматизированный импорт: вы можете использовать скрипт для импорта данных о продажах из отчетов Shopify или Stripe, а также импортировать банковские выписки для фиксации расходов и выплат. Автоматизация этих повторяющихся задач по вводу данных означает, что вы тратите больше времени на анализ и меньше времени на ручной ввод цифр.

Пример фрагмента учетной книги для малого бизнеса

Ниже приведен сокращенный пример Beancount для небольшого интернет-магазина. Мы демонстрируем закупку товара, регистрацию продажи (с вычетом комиссии платежной системы) и учет себестоимости реализованной продукции (COGS) для этой продажи. На практике вы также будете записывать другие расходы (например, сборы платформы, расходы на рекламу и т. д.) аналогично примеру с комиссией. В качестве валюты мы используем USD, а продукт под названием «Widget» (Виджет) отслеживается как товар (commodity) в инвентаре.

1970-01-01 open Assets:Bank:Checking
1970-01-01 open Assets:Stripe:Balance
1970-01-01 open Assets:Inventory:Widgets WIDGET
1970-01-01 open Income:Sales
1970-01-01 open Expenses:COGS
1970-01-01 open Expenses:Fees

; Закупка товара (50 единиц Widget по цене 10 USD за штуку)
2025-03-10 * "Закупка 50 Виджетов у SupplierCo"
Assets:Inventory:Widgets 50 WIDGET {10 USD}
Assets:Bank:Checking -500 USD

; Продажа клиенту (Заказ №1001 через онлайн-магазин, продано 2 Виджета)
2025-04-05 * "Заказ на продажу №1001 (2x Widget через Shopify)"
Assets:Stripe:Balance 58 USD ; чистый платеж, полученный после вычета комиссий
Expenses:Fees 2 USD ; комиссия за обработку (Stripe)
Income:Sales -60 USD ; выручка за 2 Виджета (по 30 USD за штуку)

; Себестоимость реализованной продукции для указанной продажи (2 Виджета по 10 USD за штуку)
2025-04-05 * "COGS для заказа №1001 (2x Widget)"
Expenses:COGS 20 USD
Assets:Inventory:Widgets -2 WIDGET {10 USD}

Вот пошаговое описание происходящего:

  • Открытие счетов: Мы открываем расчетный счет, счет баланса Stripe, счет инвентаря для Виджетов (объявленный с товаром WIDGET для отслеживания единиц), а также основные счета доходов и расходов (Sales, COGS, Fees). Объявляя Assets:Inventory:Widgets WIDGET, мы сигнализируем, что на этом счете будет храниться количество товара «WIDGET». Это гарантирует, что Beancount будет ожидать там единицы товара, и мы сможем привязать стоимость к этим единицам.

  • Закупка товара: 10 марта 2025 года мы закупаем товар — 50 единиц Виджетов у поставщика по 10 USD за штуку, общая стоимость составляет 500 USD. Транзакция дебетует Assets:Inventory:Widgets на 50 WIDGET {10 USD}. Это означает, что в счет инвентаря добавляется 50 единиц товара WIDGET, каждая с зафиксированной стоимостью 10 USD. Кредит проходит по счету Assets:Bank:Checking -500 USD (расход денежных средств). Обратите внимание, что здесь мы не затрагивали счет расходов напрямую; мы капитализируем покупку как актив в виде запасов. Теперь в нашем балансовом отчете числится 50 Виджетов общей стоимостью 500 USD. (Если вы сформируете отчет о балансе, счет Inventory покажет 50 единиц WIDGET на сумму 500 USD).

  • Регистрация продажи (Заказ №1001): 5 апреля 2025 года мы регистрируем продажу 2 Виджетов через наш онлайн-магазин. Описание включает номер заказа для ясности. Эта транзакция включает три записи:

    • Assets:Stripe:Balance 58 USD: деньги, полученные от продажи, которые в данный момент находятся в Stripe (за вычетом комиссий). Предположим, клиент заплатил всего 60 USD; Stripe взял комиссию в размере 2 USD, и теперь 58 USD находятся на нашем счету Stripe (для последующего перевода в банк). Мы записываем 58 USD как актив в Stripe.
    • Expenses:Fees 2 USD: комиссия в размере 2 USD записывается как деловой расход. Это гарантирует, что в нашем отчете о прибылях и убытках будет отражена эта стоимость, а наш актив в Stripe плюс расход по комиссии в сумме будут равны общему платежу клиента.
    • Income:Sales -60 USD: мы регистрируем 60 USD дохода от продаж. (Счета доходов увеличиваются при помощи кредита, отсюда отрицательное значение в нотации Beancount).

    После этой транзакции чистый эффект таков: доход Income:Sales увеличился на 60, появился дополнительный актив в размере 58 USD (дебиторская задолженность Stripe) и расход в размере 2 USD за комиссию. Если позже Stripe переведет 58 USD на наш банковский счет, мы запишем простой перевод, например, Assets:Bank:Checking 58 USD / Assets:Stripe:Balance -58 USD на дату выплаты — это переместит актив со счета Stripe в банк без влияния на доходы или расходы (простое перемещение активов). Мы не показали этот перевод выше, но это важный шаг в реальном бухгалтерском учете, чтобы поддерживать баланс счета Stripe на уровне 0 USD после того, как все средства будут выведены.

  • Регистрация себестоимости (COGS) для продажи: Также 5 апреля 2025 года мы проводим отдельную транзакцию для фиксации стоимости 2 проданных Виджетов. Мы дебетуем Expenses:COGS 20 USD и кредитуем Assets:Inventory:Widgets -2 WIDGET {10 USD}. Это действие списывает 2 единицы из инвентаря (каждая имела стоимость 10 USD, как было записано ранее, итого 20 USD). Мы указываем {10 USD}, чтобы сообщить Beancount, из какой партии по стоимости нужно произвести списание — в данном случае это соответствует партии, добавленной 10 марта 2025 года. Теперь на счете инвентаря останется 48 Виджетов с соответствующей стоимостью 480 USD. Сумма в 20 USD перемещается в расходы COGS, которые появятся в отчете о прибылях и убытках, уменьшая валовую прибыль на стоимость этих товаров. (Если бы мы этого не зафиксировали, наш доход был бы завышен по сравнению с расходами). Мы используем отдельную транзакцию для наглядности, но также можно объединить продажу и COGS в одну многострочную транзакцию. Некоторые предпочитают разделять их, как показано здесь, для удобства чтения и сверки (вы можете четко связать каждую запись COGS с заказом). Мы также повторили номер заказа в описании, чтобы было легко увидеть, что эта запись COGS соответствует заказу №1001. Хорошей практикой является обеспечение того, чтобы каждая продажа имела соответствующую запись COGS, когда задействован инвентарь — отсутствие такой записи будет означать, что ваши остатки товара неверны. Одной из ошибок, которых следует избегать, является забвение о списании инвентаря при продаже, что оставит в вашем балансе «фантомные» запасы, а расходы будут занижены. Использование функций инвентаризации Beancount (нотация стоимости {}) помогает отследить, если вы попытаетесь списать больше единиц, чем у вас есть в наличии (в этом случае программа выдаст ошибку).

Резюме: Малый бизнес, использующий Beancount, может поддерживать удивительно надежную систему бухгалтерского учета. Структурируя счета для отслеживания того, где находятся деньги, откуда они поступают и как распределяются затраты, вы получаете точную картину прибыльности. Наш пример показал, как обращаться с инвентарем и продажами; аналогичным образом вы можете записывать другие транзакции, такие как оплата счета за интернет (Expenses:Operating:Internet против Assets:Bank:Checking), получение кредита или инвестиций (Assets:Bank против Liabilities:Loan или Equity:OwnerEquity) или уплата налога с продаж (Liabilities:SalesTax против Assets:Bank при перечислении). Ключом является последовательность: записывайте каждый тип транзакции по одному и тому же шаблону, и Beancount будет поддерживать баланс книг. Благодаря таким функциям, как автоматизированный импорт данных (например, загрузка ежемесячных комиссий Stripe или банковских транзакций) и настраиваемые теги/ссылки (для корреляции связанных транзакций, таких как продажи и возвраты), система может быть одновременно гибкой и эффективной. Результатом является организованная учетная книга, которая может масштабироваться по мере роста бизнеса — вы можете добавлять новые счета инвентаря для продуктов, новые категории расходов или дополнительные источники дохода (например, новую торговую площадку) без переделки всей системы.

Личные финансы

Наконец, давайте рассмотрим использование Beancount для управления личными или семейными финансами. Такая настройка предназначена для отдельного человека или семьи, управляющих ежедневными расходами, банковскими счетами, кредитными картами, кредитами и инвестициями. Основной акцент здесь сделан на отслеживании того, куда уходят ваши деньги (расходы), откуда они поступают (доходы) и как они сохраняются или инвестируются (активы и обязательства). Beancount может заменить или дополнить приложения для планирования бюджета, предоставляя прозрачное и настраиваемое представление о ваших финансах, а строгость бухгалтерского учета с двойной записью гарантирует, что ничего не будет учтено дважды или забыто.

Ключевые счета для личных финансов: Журнал личных финансов обычно включает в себя различные счета активов, обязательств, доходов и расходов:

  • Assets:Bank:Checking – Ваш основной текущий счет для зачисления доходов и оплаты счетов.
  • Assets:Bank:Savings – Сберегательный счет для резервного фонда или конкретных целей. (У вас может быть несколько сберегательных или инвестиционных счетов – каждый может быть отдельным счетом активов).
  • Assets:Cash – Если вы используете наличные для оплаты расходов, вы можете завести счет наличности для отслеживания снятия средств и трат наличными.
  • Assets:Investments:*Broker*** – Инвестиционные счета, такие как брокерский счет, пенсионные счета 401(k)/IRA и т. д. Их можно детализировать по типам инвестиций или просто объединить в один счет на каждое учреждение. Например, Assets:Investments:VanguardIRA или Assets:Investments:Robinhood. Отслеживание инвестиций также может включать использование коммодити (commodities) для акций или фондов, но если это слишком сложно, вы можете просто отслеживать взносы и остатки на счетах.
  • Liabilities:CreditCard:*Name*** – Один счет на каждую кредитную карту (например, Liabilities:CreditCard:Visa или по названию банка). Все покупки по карте записываются здесь (с соответствующим расходом), а платежи по карте являются переводами, которые уменьшают это обязательство.
  • Liabilities:Loan:*Name*** – Любые кредиты (студенческий кредит, ипотека, автокредит) можно отслеживать с помощью счета обязательств. Вы будете записывать остаток основного долга и каждый платеж, разделяя проценты (расход) и основной долг (уменьшение обязательства). Это продвинутый аспект, но он важен для получения полной финансовой картины.
  • Income:Salary (и/или Income:Bonus, Income:Interest и т. д.) – Для записи зарплаты, бонусов, процентного дохода, дивидендов и т. д. Счета доходов позволяют видеть ваш общий заработок из различных источников. (Если из вашей зарплаты уже удержаны налоги, вы можете записывать чистую сумму, поступившую на текущий счет, как доход, либо записывать общую сумму и удержания налогов как расход или обязательство – существуют разные подходы, но многие для простоты записывают чистую выплату как доход в личных книгах).
  • Expenses: Обычно их много, и они разделены на значимые для вас категории. Например: Expenses:Housing:Rent, Expenses:Food:Groceries, Expenses:Food:DiningOut, Expenses:Utilities:Electricity, Expenses:Entertainment, Expenses:Travel, Expenses:Taxes, Expenses:Misc – любые категории, отражающие ваши привычки в расходах. Вы можете сделать их настолько детальными или общими, насколько захотите. Иерархия счетов помогает агрегировать данные (например, Expenses:Food суммирует как продукты, так и питание вне дома). Распространенной практикой является создание иерархии для основных групп (Жилье, Еда, Транспорт, Здравоохранение и т. д.).
  • Equity:Opening-Balances – Используется для инициализации остатков на счетах при запуске вашего журнала (чтобы все активы минус обязательства равнялись вашему начальному капиталу, зафиксированному в капитале). После запуска вы также можете использовать Equity:Retained-Earnings или аналогичный счет для представления накопленной чистой прибыли (хотя в личных финансах вы обычно просто позволяете разнице между доходами и расходами переходить в собственный капитал). Счета капитала менее заметны в повседневной жизни, но они обеспечивают баланс бухгалтерского уравнения.

Обоснование: Настройка личных финансов направлена на то, чтобы охватить вашу финансовую жизнь в одной связной системе. Каждый счет выше служит для разделения различных видов финансов, чтобы вы могли ответить на такие вопросы, как «Сколько я потратил на еду в этом месяце?» (путем суммирования Expenses:Food:*), «Сколько долгов у меня осталось?» (посмотрев счета Liabilities) или «Каков мой чистый капитал?» (Активы минус Обязательства). Большим преимуществом двойной записи здесь является точность: например, когда вы оплачиваете счет за продукты на 100 долларов кредитной картой, вы записываете это как расход и увеличение обязательств. Позже, когда вы оплачиваете кредитную карту, вы записываете перевод из вашего банка на карту – это погашает обязательство, но не учитывает расход на продукты дважды (так как он уже был зафиксирован). Распространенной ошибкой без двойной записи является отношение к платежу по кредитной карте как к самому расходу, что фактически удваивает эти 100 долларов. Beancount предотвращает это по самой своей структуре. Еще одна ловушка, которой следует избегать, – это отсутствие сверки счетов: с помощью Beancount вы можете использовать утверждения о балансе (balance assertions) или директиву balance, чтобы убедиться, например, что остаток на вашем текущем счете в журнале совпадает с фактической банковской выпиской. Это позволяет выявить отсутствующие или дублирующиеся записи.

Особенности Beancount, которые стоит выделить: Для личных финансов особенно полезен автоматизированный импорт из-за большого объема транзакций. Вы можете использовать фреймворк импортеров Beancount или скрипты сообщества для импорта банковских транзакций, выписок по кредитным картам и даже инвестиционных операций из CSV, OFX или через API. Это означает, что вы тратите меньше времени на ручной ввод каждой покупки кофе. Пользовательские теги полезны для среза данных способами, которые не предусмотрены структурой счетов. Например, пометьте все расходы, связанные с отпуском, тегом #vacation2025, независимо от того, авиабилеты это, отели или питание – тогда вы сможете легко получить общую стоимость этого отпуска. Или пометьте определенные расходы как #deductible, если вам нужно отслеживать пункты, подлежащие налоговому вычету. Вы также можете помечать регулярные счета (например, #monthly), чтобы ежегодно просматривать все свои подписки и фиксированные расходы. Метаданные можно использовать для прикрепления заметок или квитанций (например, receipt: "path/to/file.jpg", чтобы отметить наличие сохраненного изображения чека, или category: "Work Expense", если вы отслеживаете позиции для возмещения). Гибкость тегов и метаданных означает, что вы можете адаптировать систему к своим потребностям в отслеживании без создания десятков лишних счетов.

Пример фрагмента книги для личных финансов

Ниже приведен пример фрагмента личного реестра Beancount, фиксирующего несколько типичных транзакций: ежедневные расходы, оплаченные кредитной картой; регулярный счет, оплаченный с расчетного счета; и взнос на пенсионный инвестиционный счет. (Для краткости мы предполагаем, что первоначальная настройка по открытию счетов и записи любого дохода в виде зарплаты уже выполнена; здесь мы сосредоточимся на стороне расходов и сбережений).

1970-01-01 open Assets:Bank:Checking
1970-01-01 open Liabilities:CreditCard:Visa
1970-01-01 open Expenses:Food:Coffee
1970-01-01 open Expenses:Housing:Rent
1970-01-01 open Assets:Investment:401k

; Пример ежедневных расходов (кофе по кредитной карте)
2025-09-10 * "Кофе в Starbucks"
Expenses:Food:Coffee 5.50 USD
Liabilities:CreditCard:Visa -5.50 USD #daily

; Регулярный ежемесячный счет (аренда, оплаченная с расчетного счета)
2025-09-01 * "Аренда квартиры за сентябрь"
Expenses:Housing:Rent 1200 USD
Assets:Bank:Checking -1200 USD #recurring

; Пенсионный взнос (перевод с расчетного счета на инвестиционный счет 401k)
2025-09-15 * "Взнос в 401(k)"
Assets:Investment:401k 500 USD
Assets:Bank:Checking -500 USD #retirement

Давайте разберем эти транзакции:

  • Открытие счетов: Мы открываем расчетный счет, счет кредитной карты Visa, счет расходов на кофе (как пример подкатегории расходов на питание), счет расходов на аренду жилья и инвестиционный счет 401k. В реальном реестре вы бы открыли все счета, которые планируете использовать (сберегательные счета, другие категории расходов, доходы и т. д.). Мы ограничились только тем, что необходимо для примера.
  • Ежедневные расходы — кофе: 10 сентября 2025 года зафиксирована покупка кофе на сумму 5.50 USD. Расход классифицируется в категории Expenses:Food:Coffee, и поскольку он был оплачен кредитной картой Visa, мы кредитуем (увеличиваем) Liabilities:CreditCard:Visa. Тег #daily добавлен, чтобы указать, что это была статья повседневных расходов — возможно, позже вы захотите отфильтровать все дискреционные ежедневные траты. Обратите внимание, что после этого счет кредитной карты покажет баланс 5.50 USD (что означает ваш долг перед Visa в размере 5.50 USD). Если бы вы заплатили за этот кофе наличными, транзакция вместо этого кредитовала бы Assets:Cash (уменьшая количество наличных у вас на руках). Если бы это была покупка по дебетовой карте, кредитовался бы счет Assets:Bank:Checking. Механика аналогична, меняются только счета.
  • Регулярный счет — аренда: 1 сентября 2025 года мы записываем оплату ежемесячной аренды в размере 1200 USD. Эти средства списываются с расчетного счета (кредитование Assets:Bank:Checking) и классифицируются как Expenses:Housing:Rent. Мы пометили транзакцию тегом #recurring, чтобы отметить, что это повторяющийся платеж. В полной книге такая запись может появляться каждый месяц. (В Beancount нет встроенной функции автоматических регулярных транзакций, но вы можете реализовать это с помощью скриптов или простого копирования каждый месяц. Теги помогают позже убедиться, что вы не пропустили месяц, или быстро суммировать аренду за год). Некоторые пользователи используют функцию периодических транзакций через систему импорта Beancount для их автоматической генерации, но это продвинутое использование, выходящее за рамки данного примера. Ключевым моментом является то, что эта транзакция четко показывает, куда ушли ваши деньги — расход на жилье — и ваш уменьшенный остаток в банке. Нюанс, на который стоит обратить внимание: если вы делите расходы или живете с соседями, вы можете оплачивать только часть аренды; в этом случае вы можете разделить транзакцию на вашу долю и долю, которую платит кто-то другой (возможно, записывая другую часть как Income:Reimbursements, если они платят вам). В нашем простом случае мы оплачиваем полную сумму.
  • Пенсионный взнос: 15 сентября 2025 года 500 USD переводятся с расчетного счета на инвестиционный счет 401(k). Это не расход, а перевод активов из одной формы (наличные) в другую (пенсионный фонд). Транзакция дебетует Assets:Investment:401k и кредитует Assets:Bank:Checking. Мы добавляем тег #retirement для ясности. После этого баланс вашего расчетного счета уменьшится на 500, а баланс вашего счета 401k в реестре увеличится на сумму, которую представляют 500 USD (в зависимости от того, как вы отслеживаете инвестиции, вы можете впоследствии купить паи взаимного фонда на эти наличные — это будет еще одна транзакция на инвестиционном счете, например, покупка X долей фонда по цене Y, при этом наличные списываются с актива 401k). В простом личном реестре вы можете относиться к 401k как к сберегательному счету и периодически обновлять его баланс или записывать взносы подобным образом, возможно, используя котировки цен для учета роста. Важно то, что эта транзакция является переводом, а не расходом — она формирует ваши активы. Многие инструменты бюджетирования учитывают пенсионные взносы как «расходы» (поскольку деньги уходят с вашего расчетного счета), но с точки зрения бухгалтерского учета это просто перемещение денег в другой карман. Это различие помогает вам понимать реальную норму сбережений по сравнению с расходами.

Если бы у нас была транзакция по оплате счета кредитной карты, она выглядела бы как перевод денег с расчетного счета на обязательство по кредитной карте (например, Liabilities:CreditCard:Visa 100 USD / Assets:Bank:Checking -100 USD). Это привело бы баланс кредитной карты в норму (возможно, к нулю, если вы оплатили его полностью) и соответственно уменьшило бы ваш банковский баланс, не затрагивая счета расходов — потому что вы уже зафиксировали расходы в момент покупки. Понимание того, как работать с кредитными картами таким образом, имеет решающее значение для точного отслеживания личных финансов. Вы также можете пометить платеж тегом (некоторые используют #cc-payment или аналогичные) или включить расчетный период в описание для ясности.

Резюме: Книга личных финансов в Beancount помогает внести дисциплину и структуру в учет ваших денег. Классифицируя транзакции по счетам (и, по желанию, тегам), вы можете создавать информативные отчеты: ежемесячные расходы по категориям, годовые итоги, объем сбережений и так далее. Метод двойной записи означает, что учитывается каждый доллар: если баланс счета уменьшается, значит, деньги куда-то ушли (баланс другого счета увеличился). Это позволяет выявлять ошибки и предотвращает распространенную проблему «пропавших денег», характерную для более простых инструментов отслеживания. С помощью автоматизации вы можете импортировать большинство транзакций, а затем просто проверять и классифицировать их, что делает ведение учета вполне осуществимым. Со временем вы создаете всеобъемлющий финансовый дневник — он может даже обрабатывать такие вещи, как разделение счетов с друзьями (используя счета капитала или счета кредиторской/дебиторской задолженности), отслеживание амортизации кредитов или доходности инвестиций, если вы решите расширить эти области. Даже в своем самом базовом виде (как показано во фрагменте), Beancount дает вам ясность в отношении ежедневных трат, регулярных обязательств и прогресса на пути к долгосрочным целям (таким как пенсионные накопления). А поскольку это обычный текст, у вас есть полный контроль: вы можете писать скрипты, делать запросы или интегрировать его с другими инструментами (например, веб-интерфейсом Fava для удобного просмотра). Короче говоря, такая настройка превращает ваши личные финансы в данные, которые вы можете анализировать и которым можете доверять, оставаясь при этом достаточно простой, чтобы не превращаться в рутину.


Адаптируя свой реестр Beancount под свою ситуацию — будь то фриланс, ведение малого бизнеса или управление личными средствами — вы получаете преимущество систематического подхода двойной записи к финансовому учету с гибкостью текстовой системы. Эти примеры конфигураций демонстрируют основные паттерны, на которых вы можете строить свой учет. По мере роста вашего бизнеса или усложнения вашей финансовой жизни вы можете расширять план счетов или использовать расширенные функции (такие как бюджеты, анализ отклонений или мультивалютный учет) по мере необходимости. Ключ в том, чтобы начать с чистой, логичной структуры (подобной представленным) и последовательно записывать транзакции. С такой основой Beancount станет мощным союзником в понимании и управлении вашими финансами в любой отрасли и личных сценариях. Удачного учета!