Примеры конфигураций для фрилансеров, малого бизнеса и личных финансов
В этом руководстве мы рассмотрим, как адаптировать книгу учета Beancount под разные задачи: для фрилансера, небольшого бутик-магазина и личных семейных финансов. Каждый сценарий требует своей структуры счетов и особого подхода. Мы объясним логику каждой настройки, приведем примеры фрагментов кода Beancount и выделим полезные функции (такие как пользовательские теги и автоматический импорт), которые упрощают учет. Тон изложения — обучающий и доступный: независимо от того, являетесь ли вы разработчиком, технически подкованным специалистом или энтузиастом финансов, эти примеры помогут вам применять Beancount в реальной жизни.
Фрилансеры
Фрилансеры (например, разработчики программного обеспечения или графические дизайнеры) часто работают с несколькими клиентами и несут расходы по проектам. Простая настройка 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
; Client income – payment for an invoice
2025-08-15 * "Invoice payment from ACME Corp"
invoice: "INV-2025-08-15"
Assets:Business:Checking 5000 USD
Income:Client:ACME -5000 USD
; Regular expense – e.g. software subscription for the business
2025-08-05 * "GitHub Subscription"
Expenses:Business:Software 15 USD
Assets:Business:Checking -15 USD
; Contractor expense – paying a subcontractor for help
2025-08-20 * "Contractor payment – Jane Doe"
Expenses:Business:Contractors 2000 USD
Assets:Business:Checking -2000 USD
; Tax withholding – moving money to tax savings
2025-08-31 * "Set aside Q3 taxes" #tax
Assets:Business:TaxSavings 1500 USD
Assets:Business:Checking -1500 USDРазберем, что здесь происходит:
- Мы открываем необходимые счета в начале (с указанием даты начала). Beancount требует, чтобы каждый счет был открыт до его использования — проводка по незадекларированному счету является ошибкой загрузки — поэтому эти директивы
openобязательны, а не просто стилистический элемент. СчетаAssets:Business:CheckingиAssets:Business:TaxSavingsбудут содержать остатки в долларах США; счета доходов и расходов можно оставить без указания валюты в директиве открытия, поскольку они унаследуют валюту транзакций (в данном случае USD). - Оплата счета клиентом: 2025-08-15 — транзакция дохода регистрирует платеж клиента в размере $5 000 по счету. Мы кредитуем
Income:Client:ACME(доход увеличивается отрицательной суммой в двойной записи) и дебетуем расчетный счет. Поле метаданныхinvoice: "INV-2025-08-15"включено для указания номера счета — это необязательно, но показывает, как можно прикрепить дополнительную информацию к транзакции. Вы также можете пометить эту транзакцию тегом#ACMEили#client-ACMEдля быстрой фильтрации. Если у вас несколько клиентов, вы можете использовать общий счетIncome:Clientsи полагаться на такие метаданные или поле «Плательщик» для различения клиентов, вместо создания множества субсчетов. - Деловой расход (программное обеспечение): 2025-08-05 — мы фиксируем расход в размере $15 за подписку на GitHub (возможно, для частных репозиториев или других сервисов). Проводка идет на
Expenses:Business:Softwareи уменьшает деловой расчетный счет. Небольшие регулярные расходы, подобные этому, можно помечать тегами (например, мы добавили#taxна транзакцию с налогами ниже; аналогично вы можете пометить некоторые расходы как#recurring, если они повторяются ежемесячно, и т. д.). В данном случае само название счета (Software) делает все понятным. - Выплата подрядчику: 2025-08-20 — фрилансер выплатил субподрядчику (Джейн Доу) $2 000. Это фиксируется как расход на
Expenses:Business:Contractorsи списание денег с расчетного счета. Вы можете указать имя подрядчика в описании транзакции (как мы сделали) или в поле метаданных (например,contractor: "Jane Doe"). Это обеспечивает контрольный след: кому и за что вы платили (полезно для детализации при подаче налоговой декларации или составлении бюджета). - Перевод на налоговые сбережения: 2025-08-31 — фрилансер переводит $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:Продукт – Счета запасов для ваших товаров. Вы можете рассматривать каждый товар (или категорию товаров) как товар (коммодити) в Beancount для отслеживания количества на складе. Например,
Assets:Inventory:Widgetsможет содержать количество товаров «Виджет» на данный момент, оцененных по их себестоимости. - Income:Sales – Учитывает выручку от продаж. Вы можете использовать субсчета для разных каналов продаж (например,
Income:Sales:OnlineпротивIncome:Sales:InStore), если у бизнеса несколько каналов, но мы ограничимся одним счетом дохода от продаж. - Expenses:COGS – Себестоимость проданных товаров, для отражения стоимости запасов при их продаже. Этот счет фактически показывает, сколько стоили проданные товары (как владельцу бизнеса) за период. Это ключевой компонент для расчета валовой прибыли.
- 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 использует его способность работать с товарами (коммодити) и себестоимостью. Каждый товар может быть символом товара (например, WIDGET), что позволяет фиксировать как количество, так и себестоимость единицы. При продаже товаров вы указываете, из какой партии затрат вы списываете, и Beancount берет из нее — см. методы учета запасов и бронирования для полного списка. Метод бронирования по умолчанию — STRICT, который требует однозначности партии; именно поэтому в примере она указана явно как {10 USD}. Чтобы Beancount выбирал партию автоматически (сначала старые), укажите для счета метод FIFO в директиве open: open Assets:Inventory:Widgets WIDGET "FIFO". Мы будем использовать явную форму STRICT в примере. Вы также можете использовать метаданные или связи для сопоставления продаж и соответствующих записей COGS (например, используя один и тот же номер заказа в обеих транзакциях или общий тег, например #order1001, на продаже и списании запасов, что упрощает запросы или проверку того, что каждая продажа имеет соответствующую запись COGS). Кроме того, автоматический импорт может помочь здесь: вы можете использовать скрипт для импорта данных о продажах из Shopify или отчетов о выплатах Stripe, или импортировать банковские выписки, чтобы учитывать расходные транзакции и выплаты. Автоматизация этих повторяющихся задач ввода данных означает, что вы тратите больше времени на анализ и меньше на ввод чисел.
Пример фрагмента книги учета малого бизнеса
Ниже приведен сжатый пример Beancount для нашего бутик-магазина электронной коммерции. Мы иллюстрируем покупку запасов, фиксацию продажи (с учетом комиссии платежной системы) и отражение себестоимости проданных товаров для этой продажи. На практике вы также будете записывать другие расходы (например, комиссии платформы, затраты на рекламу и т. д.) аналогично показанному примеру с комиссией. Мы предполагаем, что валюта — USD, и есть товар под названием «Widget», который мы отслеживаем как товар (коммодити) на складе.
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
; Purchase inventory (50 units of Widget at $10 cost each)
2025-03-10 * "Bought 50 Widgets from SupplierCo"
Assets:Inventory:Widgets 50 WIDGET {10 USD}
Assets:Bank:Checking -500 USD
; Sale to customer (Order #1001 via online store, 2 Widgets sold)
2025-04-05 * "Sale Order #1001 (2x Widget via Shopify)"
Assets:Stripe:Balance 58 USD ; net payment received after fees
Expenses:Fees 2 USD ; processing fee (Stripe)
Income:Sales -60 USD ; revenue for 2 Widgets (@ $30 each)
; Cost of goods sold for the above sale (2 Widgets at $10 cost each)
2025-04-05 * "COGS for Order #1001 (2x Widget)"
Expenses:COGS 20 USD
Assets:Inventory:Widgets -2 WIDGET {10 USD}Вот что происходит шаг за шагом:
-
Открытие счетов: Мы открываем расчетный счет, счет баланса Stripe, счет запасов для Widgets (объявленный с товаром
WIDGETдля отслеживания единиц) и основные счета доходов и расходов (Sales, COGS, Fees). ОбъявляяAssets:Inventory:Widgets WIDGET, мы сигнализируем, что этот счет будет содержать количество товара «WIDGET». Это гарантирует, что Beancount ожидает там единицы товара, и мы можем привязать к ним себестоимость. -
Покупка запасов: 2025-03-10 — мы покупаем запасы: 50 единиц Widget у поставщика по $10 за единицу, всего на сумму $500. Транзакция дебетует
Assets:Inventory:Widgetsс50 WIDGET {10 USD}. Это означает, что 50 единиц товара WIDGET, каждая с зафиксированной себестоимостью 10 USD, добавляются на счет запасов. Кредит —Assets:Bank:Checking -500 USD(отток денежных средств). Обратите внимание: мы не используем счет расходов; мы капитализируем покупку как актив запасов. Теперь на балансе 50 Widgets стоимостью $500 на складе. (Если вы запустите отчет по балансу, счет Inventory покажет 50 единиц WIDGET на сумму $500.) -
Фиксация продажи (Заказ №1001): 2025-04-05 — мы фиксируем продажу 2 Widgets через наш интернет-магазин. В описании указан номер заказа для ясности. Эта транзакция включает три проводки:
Assets:Stripe:Balance 58 USD: деньги, полученные от продажи, но находящиеся в Stripe (за вычетом комиссии). Предположим, клиент заплатил $60; Stripe удержал комиссию $2, и $58 теперь на нашем счете Stripe (позже будут переведены в банк). Мы фиксируем $58 как актив в Stripe.Expenses:Fees 2 USD: комиссия $2 фиксируется как деловой расход. Это гарантирует, что отчет о прибылях и убытках отразит эти затраты, а наш актив Stripe плюс комиссия в сумме дадут общий платеж клиента.Income:Sales -60 USD: мы фиксируем $60 дохода от продаж. (Счета доходов увеличиваются кредитами, отсюда отрицательная сумма в нотации Beancount).
После этой транзакции чистый эффект: Income:Sales увеличен на 60, дополнительный актив $58 (дебиторская задолженность от Stripe) и расход $2 на комиссию. Если позже Stripe переведет $58 в банк, мы зафиксируем простой перевод:
Assets:Bank:Checking 58 USD / Assets:Stripe:Balance -58 USDна дату выплаты — это перемещает актив со счета Stripe на банковский счет, не влияя на доходы или расходы (просто перемещение активов). Мы не показали этот перевод выше, но это важный шаг в реальном бухгалтерском учете, чтобы держать счет Stripe на нуле после полного перевода средств. -
Фиксация COGS для продажи: Также 2025-04-05 — у нас есть отдельная транзакция для отражения себестоимости 2 проданных Widgets. Мы дебетуем
Expenses:COGS 20 USDи кредитуемAssets:Inventory:Widgets -2 WIDGET {10 USD}. Это удаляет 2 единицы со склада (каждая с себестоимостью $10, как зафиксировано ранее, итого $20). Мы указываем{10 USD}, чтобы сообщить Beancount, из какой партии затрат списывать — в данном случае это соответствует партии, добавленной 2025-03-10. Теперь на счете запасов останется 48 Widgets и соответствующая себестоимость $480. Сумма $20 переносится в расходы 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:Брокер – Инвестиционные счета, такие как брокерский счет, пенсионный 401(k)/IRA и т. д. Они могут быть дополнительно разделены по типам инвестиций или просто объединены как один счет на учреждение. Например,
Assets:Investments:VanguardIRAилиAssets:Investments:Robinhood. Отслеживание инвестиций также может включать товары (коммодити) для акций или фондов, но если это слишком детально, вы можете просто отслеживать взносы и остатки на счетах. - Liabilities:CreditCard:Имя – Один счет на каждую кредитную карту (например,
Liabilities:CreditCard:Visaили по названию банка). Все покупки по карте фиксируются здесь (с соответствующим расходом), а платежи по карте — это переводы, уменьшающие это обязательство. - Liabilities:Loan:Имя – Любые кредиты (студенческий, ипотека, автокредит) можно отслеживать через счет обязательств. Вы будете фиксировать основную сумму долга и каждый платеж, разделяя проценты (расход) и основную сумму (уменьшение обязательства). Это продвинутый аспект, но важный для полной финансовой картины.
- 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:*), «Сколько у меня осталось долгов?» (глядя на счета обязательств) или «Какой мой собственный капитал?» (Активы минус Обязательства). Большое преимущество двойной записи здесь — точность: например, когда вы оплачиваете счет за продукты на $100 кредитной картой, вы фиксируете это как расход и увеличение обязательства. Позже, когда вы платите по кредитной карте, вы фиксируете перевод с банковского счета на карту — это погашает обязательство, но не удваивает расход на продукты (который уже был зафиксирован). Распространенная ошибка без двойной записи — рассматривать платеж по кредитной карте как сам расход, фактически считая $100 дважды. Beancount предотвращает это конструктивно. Еще одна ошибка, которой следует избегать, — несвоевременная сверка счетов: с Beancount вы можете использовать проверки остатков или директиву balance, чтобы убедиться, например, что остаток на вашем расчетном счете в книге совпадает с фактической банковской выпиской. Это выявляет пропущенные или дублирующиеся записи.
Особенности Beancount, на которые стоит обратить внимание: Для личных финансов автоматический импорт особенно полезен из-за объема транзакций. Вы можете использовать фреймворк импортеров Beancount или скрипты сообщества для импорта банковских транзакций, выписок по кредитным картам и даже инвестиционных транзакций из CSV, OFX или через API. Это означает, что вы тратите меньше времени на ручной ввод каждой покупки кофе. Пользовательские теги полезны для нарезки данных способами, которые могут не обеспечивать счета. Например, пометьте все расходы, связанные с отпуском, тегом #vacation2025, независимо от того, авиабилеты это, отели или рестораны — тогда вы легко сможете запросить общую стоимость этого отпуска. Или пометьте определенные расходы как #deductible, если вам нужно отслеживать вычитаемые налоги для последующего использования. Вы также можете помечать регулярные счета (например, #monthly) для ежегодного обзора всех подписок и фиксированных затрат. Метаданные можно использовать для прикрепления заметок или квитанций (например, receipt: "path/to/file.jpg" для отметки о сохраненном изображении квитанции или category: "Work Expense" при отслеживании возмещаемых расходов). Гибкость тегов и метаданных означает, что вы можете адаптировать систему под свои личные потребности отслеживания, не создавая десятки дополнительных счетов.
Прогоните банковскую выписку за прошлый месяц через конвертер CSV в Beancount или загрузку .ofx, .qfx или .qif через OFX и QIF в Beancount. Для большинства личных книг этого достаточно, и это показывает форму записи, которую должен создавать пользовательский импортер.
Пример фрагмента книги учета личных финансов
Ниже приведен пример фрагмента личной книги учета 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
; Daily spending example (coffee on a credit card)
2025-09-10 * "Starbucks Coffee" #daily
Expenses:Food:Coffee 5.50 USD
Liabilities:CreditCard:Visa -5.50 USD
; Recurring monthly bill (rent paid from checking)
2025-09-01 * "Apartment Rent September" #recurring
Expenses:Housing:Rent 1200 USD
Assets:Bank:Checking -1200 USD
; Retirement contribution (transfer from checking to 401k investment)
2025-09-15 * "401(k) Contribution" #retirement
Assets:Investment:401k 500 USD
Assets:Bank:Checking -500 USDИнтерпретируем эти транзакции:
- Открытие счетов: Мы открываем расчетный счет, счет кредитной карты Visa, счет расходов на кофе (как пример подкатегории расходов на еду), счет расходов на аренду и инвестиционный счет 401k. В реальной книге вы открыли бы все счета, которые планируете использовать (сбережения, другие категории расходов, доходы и т. д.). Мы ограничиваемся только необходимым для фрагмента.
- Повседневный расход – кофе: 2025-09-10 — фиксируется покупка кофе на $5,50. Расход классифицируется как
Expenses:Food:Coffee, и поскольку он оплачен кредитной картой Visa, мы кредитуем (увеличиваем)Liabilities:CreditCard:Visa. Тег#dailyдобавлен, чтобы указать, что это повседневная статья расходов — возможно, позже вы захотите отфильтровать все ежедневные дискреционные траты. Обратите внимание: после этого счет кредитной карты покажет остаток $5,50 (означающий, что вы должны Visa $5,50). Если бы вы заплатили за кофе наличными, транзакция вместо этого кредитовала быAssets:Cash(уменьшая имеющиеся у вас наличные). Если бы это была покупка по дебетовой карте, она кредитовала быAssets:Bank:Checking. Механика аналогична, просто разные счета. - Регулярный счет – аренда: 2025-09-01 — мы фиксируем оплату ежемесячной аренды в размере $1200. Это списывается с расчетного счета (кредит
Assets:Bank:Checking) и классифицируется какExpenses:Housing:Rent. Мы пометили это тегом#recurring, чтобы отметить, что это повторяющийся счет. В полной книге у вас может быть такая запись каждый месяц. (В Beancount нет встроенной функции автоматических повторяющихся транзакций, но вы можете добиться этого с помощью скриптов или просто копировать и вставлять каждый месяц. Теги помогают позже убедиться, что вы не пропустили месяц, или быстро суммировать годовую арендную плату.) Некоторые пользователи используют функцию периодических транзакций через фреймворк импортеров Beancount для автоматического создания таких записей, но это продвинутое использование, выходящее за рамки данного руководства. Ключевой момент: эта транзакция четко показывает, куда ушли ваши деньги — расход на жилье — и уменьшенный остаток на банковском счете. Ошибка, за которой стоит следить: если вы делите расходы или живете с соседями, вы можете платить только часть аренды; в этом случае вы можете разделить транзакцию на свою часть и часть, оплачиваемую другими (возможно, фиксируя чужую часть какIncome:Reimbursements, если они платят вам). В нашем простом случае мы платим полную сумму. - Пенсионный взнос: 2025-09-15 — $500 переводится с расчетного счета на инвестиционный счет 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 станет мощным союзником в понимании и управлении вашими финансами, независимо от отрасли и личных сценариев. Приятного учета!