Перейти до основного вмісту

Налаштування для конкретних галузей

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

У цьому посібнику ми розглянемо, як адаптувати книгу 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

Давайте розберемо, що відбувається:

  • Ми відкриваємо (open) необхідні рахунки вгорі (із зазначенням дати початку). Це не є суворо обов’язковим для 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 – Собівартість реалізованої продукції, для відображення вартості запасів у момент їх продажу. Цей рахунок фактично покаже, скільки вам (як власнику бізнесу) коштували продані товари за певний період. Це ключовий компонент для розрахунку валового прибутку.
  • 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 для нашого бутик-магазину електронної комерції. Ми ілюструємо закупівлю запасів, реєстрацію продажу (з вирахуванням комісії платіжної системи) та запис собівартості реалізованих товарів для цього продажу. На практиці ви також будете записувати інші витрати (як-от комісії платформи, витрати на рекламу тощо) подібно до наведеного прикладу з комісіями. Ми припускаємо, що валютою є 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 одиниць Віджетів за ціною $ 10 за одиницю)
2025-03-10 * "Купівля 50 Віджетів у SupplierCo"
Assets:Inventory:Widgets 50 WIDGET {10 USD}
Assets:Bank:Checking -500 USD

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

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

Ось покроковий опис того, що відбувається:

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

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

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

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

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

  • Запис собівартості (COGS) для продажу: Також 2025-04-05 ми проводимо окрему транзакцію для запису собівартості 2 проданих Віджетів. Ми дебетуємо Expenses:COGS 20 USD і кредитуємо Assets:Inventory:Widgets -2 WIDGET {10 USD}. Це видаляє 2 одиниці із запасів (кожна мала собівартість 10,якбулозаписанораніше,отже,загалом10, як було записано раніше, отже, загалом 20). Ми вказуємо {10 USD}, щоб підказати Beancount, з якої партії собівартості брати одиниці — у цьому випадку вона відповідає партії, яку ми додали 2025-03-10. Тепер на рахунку запасів залишиться 48 Віджетів із відповідною вартістю 480.Сумау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 : *Broker*** – Інвестиційні рахунки, такі як брокерські рахунки, пенсійні плани 401(k) / IRA тощо. Їх можна деталізувати за типами інвестицій або просто згрупувати як один рахунок для кожної установи. Наприклад, Assets : Investments : VanguardIRA или Assets : Investments : Robinhood. Відстеження інвестицій також може включати комодіті для акцій або фондів, але якщо це занадто детально, ви можете просто відстежувати внески та залишки на рахунках.
  • 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). Після початку роботи ви також можете використовувати Equity : Retained-Earnings або подібні рахунки для відображення накопиченого чистого прибутку (хоча в особистих фінансах зазвичай просто дозволяють різниці між доходами та витратами переходити у чисту вартість активів). Рахунки капіталу менш помітні у повсякденному житті, але вони забезпечують збалансованість бухгалтерського рівняння.

Обґрунтування : Налаштування особистих фінансів спрямоване на охоплення всього вашого фінансового життя в одній цілісній системі. Кожен рахунок вище служить для розділення різних видів фінансів, щоб ви могли відповісти на запитання на кшталт "Скільки я витратив на їжу цього місяця ?" (підсумовуючи Expenses : Food : *), "Яка сума боргу в мене залишилася ?" (переглядаючи рахунки Liabilities) або "Який мій чистий капітал ?" (Активи мінус Зобов'язання). Великою перевагою подвійного запису тут є точність : наприклад, коли ви оплачуєте рахунок за продукти на 100 кредитноюкарткою,визаписуєтецеяквитратутазбільшеннязобовязання.Пізніше,коливиоплачуєтекредитнукартку,визаписуєтепереказзісвогобанкунакартку–цепогашаєзобовязання,аленепризводитьдоподвійноговрахуваннявитратнапродукти(яківжебулизафіксовані).Поширеноюпомилкоюбезподвійногозаписуєрозглядплатежузакредитнукарткуяксамоївитрати,щофактичноподвоюєсумув100кредитною карткою, ви записуєте це як витрату **та** збільшення зобов'язання. Пізніше, коли ви оплачуєте кредитну картку, ви записуєте переказ зі свого банку на картку – це погашає зобов'язання, але не призводить до подвійного врахування витрат на продукти (які вже були зафіксовані). Поширеною помилкою без подвійного запису є розгляд платежу за кредитну картку як самої витрати, що фактично подвоює суму в 100. Beancount запобігає цьому за своєю структурою. Ще одна пастка, якої слід уникати, — це нехтування звіркою рахунків : у Beancount ви можете використовувати твердження про баланс або директиву balance, щоб переконатися, наприклад, що залишок на вашому поточному рахунку в реєстрі збігається з реальною банківською випискою. Це допомагає виявити відсутні або дубльовані записи.

Функції Beancount, які варто виділити : Для особистих фінансів автоматизований імпорт є особливо корисним через велику кількість транзакцій. Ви можете використовувати систему імпортерів Beancount або скрипти спільноти для імпорту банківських транзакцій, виписок за кредитними картками та навіть інвестиційних операцій із CSV, OFX або через API. Це означає, що ви витрачаєте менше часу на ручне введення кожної покупки кави. Спеціальні теги (tags) корисні для сегментації даних способами, які рахунки не можуть забезпечити. Наприклад, позначте всі витрати, пов'язані з відпусткою, тегом #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

Давайте розберемо ці транзакції:

  • Відкриття рахунків: Ми відкриваємо поточний рахунок (checking), рахунок кредитної картки 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 стане потужним союзником у розумінні та управлінні вашими фінансами в будь-якій галузі чи життєвій ситуації. Вдалого обліку!