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

85 дописів з тегом "beancount"

Переглянути всі теги

Детокс фінансів вашого малого бізнесу — спосіб Beancount

· 9 хвилин читання
Mike Thrift
Mike Thrift
Marketing Manager

Перетворіть безладну головну книгу на спокійний, впевнений у готівці бізнес за 30 днів—використовуючи бухгалтерію у простому тексті.


2025-09-04-detox-your-small-business-finances

TL;DR

  • Відокремте, спростіть та заблокуйте ваші книги зі стрункою схемою рахунків, послідовними імпортами та автоматизованими перевірками балансу.
  • Покажіть важливе—собівартість, загальні витрати, готівкові резерви—через швидкі звіти bean-query.
  • Уберіть шум (невикористані підписки, дублювальні інструменти) та кодифікуйте хороші звички (щотижневе узгодження, щомісячне закриття, прикріплені чеки).
  • Зробіть податковий сезон нудним зберігаючи виписки, чеки та баланси перевіряємими в одному місці.

Чому "Детокс"?

Фінансовий безлад у малому бізнесі не просто неохайний—він дорогий. Він приховує марнотратні витрати, затемнює вашу справжню прибутковість і перетворює податковий сезон на шалену скарбничку. Фінансовий детокс це сфокусований, 30-денний перезапуск: ви визначаете, що рухає (та протікає) гроші, усуваєте складність, а потім інституціоналізуєте прості, повторювані рутини для підтримання чистоти.

Beancount це ідеальний інструмент для цього, оскільки він прозорий, скриптовий та перевіряємий. На відміну від програмного забезпечення "чорна скринька", головна книга у простому тексті означає, що кожне число пояснюване. Кожна перевірка та баланс можуть бути автоматизовані за допомогою директив та запитів, створюючи систему самоаудиту, яка примушує до ясності. Цей посібник проведе вас через чотиритижневий план для досягнення саме цього.


Тиждень 0 — Встановіть вашу базову лінію

Перш ніж ви зможете прибрати, вам потрібна міцна основа. Цей тиждень про визначення структури вашого фінансового світу.

Створіть стрункий план рахунків

Ваш план рахунків це скелет вашої фінансової системи. Мета тут мінімалізм. Не створюйте рахунок для кожної можливої витрати, яку ви могли б мати. Почніть з основного, що ви використовуєте сьогодні; ви завжди можете додати більше пізніше. Захаращений план рахунків заохочує неправильну категоризацію та робить високорівневий аналіз важким.

Ось проста, ефективна відправна точка:

; Основні сутності
2025-01-01 open Assets:Bank:Checking USD
2025-01-01 open Assets:Bank:Savings USD
2025-01-01 open Liabilities:CreditCard:Business USD
2025-01-01 open Income:Sales
2025-01-01 open Expenses:COGS
2025-01-01 open Expenses:Overhead:Rent
2025-01-01 open Expenses:Overhead:Utilities
2025-01-01 open Expenses:SaaS
2025-01-01 open Equity:Opening-Balances

Заблокуйте баланси, які ви можете перевірити

Найпотужнішою функцією бухгалтерії у простому тексті є здатність стверджувати реальність. Директива balance каже Beancount: "На цю дату цей рахунок мав рівно таку суму грошей." Якщо це не так, Beancount викине помилку. Це ваша основна страхова сітка.

При початку роботи використовуйте pad у поєднанні з balance для ініціалізації ваших рахунків з банківської виписки. Директива pad створює транзакцію, яка змушує рахунок до правильного початкового балансу, проводячи різницю на рахунок власного капіталу.

; Ініціалізувати з виписок
2025-01-01 pad Assets:Bank:Checking Equity:Opening-Balances
2025-01-01 balance Assets:Bank:Checking 12345.67 USD

Слово застереження: Використовуйте pad економно. Це для чистого початку, а не для маскування повторюваних помилок узгодження.


Тиждень 1 — Відокремте та спростіть потоки

Зі структурою на місці настав час прояснити, як гроші рухаються через ваш бізнес.

Тримайте Бізнес ≠ Особисте

Це золоте правило фінансів малого бізнесу. Змішування коштів це рецепт для плутанини та податкових головних болів.

  • Ведіть один виділений бізнес банківський рахунок та одну бізнес кредитну картку.
  • Відображайте це відокремлення у вашій головній книзі: Assets:Bank:Business:Checking, Liabilities:CreditCard:Business.
  • Якщо ви платите собі, проводьте це як розподіл до Equity:Owner-Draws. Ніколи не категоризуйте особисті витрати безпосередньо з бізнес рахунків.

Стандартизуйте категорії постачальників

Платите за AWS, Google Cloud та Vercel? Не створюйте три окремі рахунки. Зіставте їх всі з однією логічною категорією як Expenses:Cloud. Уникайте створення мікро-рахунків, які ви насправді не будете аналізувати. Мета побачити шаблони, а не відстежити кожного окремого постачальника з власним рахунком.


Тиждень 2 — Автоматизуйте входи та чеки

Ручне введення даних повільне, схильне до помилок та нестійке. Цей тиждень про побудову машини для надійного живлення вашої головної книги.

Побудуйте безпроблемний шлях імпорту

Фреймворк імпорту Beancount дозволяє вам навчити його, як читати CSV або OFX файли з вашого банку та автоматично генерувати транзакції. Інвестуйте час на налаштування цього один раз, і ви заощадите сотні годин довготермінові. Тримайте ваші правила імпорту під контролем версій (як Git), щоб ваша система була повторюваною та архівованою.

  • Почніть з офіційного посібника Beancount Importing External Data.
  • Для більш інтерактивного робочого процесу розгляньте інструмент як beancount-import, який надає веб-інтерфейс для напівавтоматичного зіставлення.
  • Багато користувачів покладаються на вбудовані ingest або новіші beangulp фреймворки для побудови своїх кастомних імпортерів. Виберіть один і тримайтесь його для послідовності.

Прикріплюйте документи туди, де вони належать

Транзакція без чеку це необґрунтоване твердження. Beancount та його веб-інтерфейс Fava роблять тривіальним зв'язування вихідних документів з записами, створюючи непохитний аудиторський слід.

У вас є два відмінні варіанти:

  1. Папка документів + Директива: Зберігайте всі ваші чеки та виписки у виділеній папці. Потім зв'яжіть файл з транзакцією, використовуючи директиву document.
  2. Перетягування у Fava: Просто перетягніть PDF або файл зображення на транзакцію в інтерфейсі Fava. Fava автоматично зберігає файл та вставляє правильну директиву document у ваш файл головної книги.
; У вашому головному файлі головної книги скажіть Fava, де живуть ваші документи
option "documents" "/home/acme/docs"

; Зв'яжіть чек з конкретною проводкою транзакції
2025-08-07 * "Figma" "Monthly Subscription"
Assets:CreditCard:Business -12.00 USD
Expenses:SaaS 12.00 USD
document: "receipts/figma-2025-08-07.pdf"

Тиждень 3 — Побачте правду (Швидкі запити, які ви будете перевикористовувати)

Ваша головна книга тепер чиста та наповнена даними. Час ставити їй важливі питання. Запустіть інструмент командного рядка bean-query для миттєвих відповідей.

1) Де мої гроші?

Отримайте швидкий знімок ваших ліквідних активів.

bean-query business.beancount 'BALANCES FROM year = 2025 AND (account ~ "Assets:Bank" OR account ~ "Liabilities:CreditCard")'

Це дає вам миттєвий, реальночасовий вигляд вашої готівкової позиції без входу в багато банківських порталів.

2) На що я витрачаю на загальні витрати проти собівартості?

Зрозумійте, куди ваші гроші справді йдуть. Витрачаєте ви більше на неосновні загальні витрати чи на витрати, безпосередньо пов'язані з доставкою вашого продукту (Собівартість проданих товарів)?

SELECT
account,
units(sum(position))
WHERE
account ~ "^Expenses:(Overhead|COGS)" AND year = 2025
GROUP BY
account
ORDER BY
account

Цей запит відокремлює ваші основні операційні витрати від вашого адміністративного тягаря, критичне розуміння для прибутковості.

3) Які підписки виглядають "зомбі"?

Знайдіть повторювані, дрібні витрати, які часто літають під радаром. Ці "зомбі" підписки можуть виснажувати ваш грошовий потік.

SELECT
payee,
COUNT(*) AS num_transactions,
SUM(number) AS total_spent
WHERE
account ~ "^Expenses:SaaS" AND date >= '2025-01-01'
GROUP BY
payee
ORDER BY
num_transactions DESC,
total_spent DESC

Цей запит миттєво розкриває постачальників, яким ви часто платите. Якщо ви бачите одного, якого не пізнаєте або більше не потребуєте, час скасувати.


Тиждень 4 — Приберіть та заблокуйте систему

Останній тиждень про побудову звичок та огорож, які тримають ваші фінанси чистими назавжди.

Поставте прості бюджети на місце

Fava може читати директиви budget з вашої головної книги та показувати корисні індикатори прогресу у своїх звітах, показуючи вам, чи ви на правильному шляху. Це забезпечує м'яке, постійне нагадування про ваші цілі витрат.

; Обмежте SaaS витрати до $100 на місяць
2025-01-01 custom "budget" Expenses:SaaS "monthly" 100.00 USD

Встановіть їх для ключових категорій змінних витрат як програмне забезпечення, реклама чи підрядники, щоб помічати дрейф до того, як це стане проблемою.

Закривайте місяць, щоразу

Встановіть простий, не підлягаючий обговоренню процес щомісячного закриття:

  1. Узгоджуйте: Для кожного банківського та кредитного картового рахунку додайте твердження balance, що відповідає кінцевому числу на вашій місячній виписці.
  2. Прикріплюйте: Прикріпіть саму PDF виписку до запису balance, використовуючи директиву document.
  3. Звітуйте: Запустіть ваші три збережені запити (готівка, загальні витрати/собівартість, підписки) та вставте виходи в коротку нотатку щомісячного огляду.

Твердження балансу це автоматичний тригер. Якщо ваша головна книга не відповідає банківській виписці, Beancount викине помилку, точно говорячи вам, де шукати розбіжність.


Зробіть податковий сезон нудним (у хорошому сенсі)

Дотримуючись цієї системи, ви трансформуєте податкову підготовку з кризи в просту звітну вправу.

  • Чеки прикріплені до транзакцій, тому немає шаленого пошуку. У Fava ви на один клік від вихідного документа для будь-яких витрат.
  • Податково релевантні елементи можуть бути позначені (напр., #tax-deductible), дозволяючи вам отримати чистий звіт з bean-query для вашого бухгалтера.
  • Річні баланси заблоковані та верифіковані з твердженнями balance, даючи вам та вашому підготувальнику впевненість у числах.

30-денний чек-лист (Роздрукуйте це)

  • День 1–3
    • Створіть мінімальний план рахунків.
    • Додайте pad + balance для кожного банку/картки, використовуючи останні виписки.
  • День 4–10
    • Налаштуйте один імпорт пайплайн і закомітьте ваші правила в контроль версій.
    • Заповніть 90 днів транзакцій; запустіть перший знімок BALANCES.
  • День 11–15
    • Стандартизуйте постачальників до їх відповідних рахунків (SaaS, Cloud, Доставка, тощо).
    • Прикріпіть PDF виписки для узгоджених періодів; підтвердіть, що вони з'являються у Fava.
  • День 16–20
    • Запустіть запит загальні витрати проти собівартості; виправте будь-які неправильно категоризовані елементи.
    • Запустіть запит частоти підписок; скасуйте або об'єднайте невикористовувані сервіси.
  • День 21–25
    • Додайте один або два бюджетні ліміти для ключових змінних витрат через custom "budget".
    • Збережіть ваші три найважливіші команди bean-query у скрипт для легкого перевикористання.
  • День 26–30
    • Узгодьте всі рахунки з твердженнями balance кінця місяця.
    • Напишіть коротку нотатку "щомісячного закриття", підсумовуючи ключові числа та посилаючись на документи.

Загальні фрагменти, які ви будете перевикористовувати

Чиста проводка витрат

2025-08-05 * "Figma" "Pro plan"
Expenses:SaaS 12.00 USD
Assets:Bank:Checking -12.00 USD

Твердження балансу з виписки

2025-09-01 balance Assets:Bank:Checking  8423.17 USD

Бюджетна огорожа для оренди

2025-01-01 custom "budget" Expenses:Overhead:Rent "monthly" 2500.00 USD

Тримайте це просто, тримайте це скриптованим

Філософія фінансового детоксу на основі Beancount проста:

  • Скриптуйте те, що повторюєте: Автоматизуйте імпорти та звітність.
  • Нехай твердження гучно провалюються: Вони ваші страхові рейки, а не незручність.
  • Віддавайте перевагу менш численним, ясніщим рахункам над досконалою, гранульованою категоризацією.

Прийміть ці звички, і ваш бізнес буде працювати на тугих петлях зворотного зв'язку: видимість готівки щодня, дрейф витрат видимий щотижня, та справді нудний кінець року. Це ясність та контроль, які цей детокс розроблений для доставки.


Посилання та додаткове читання

Цей допис тільки для освітніх цілей і не є податковою чи юридичною консультацією.

Розуміння журналних записів у Beancount

· 7 хвилин читання
Mike Thrift
Mike Thrift
Marketing Manager

Журналні записи – це основа подвійного бухгалтерського обліку, і в Beancount кожна транзакція *, яку ви пишете, є журналним записом. У цьому посібнику пояснюються сутності — дебети та кредити, коригувальні записи та зворотні записи — і показано, як вони чисто відображаються у простому текстовому синтаксисі Beancount. Ви дізнаєтеся, як вести точну бухгалтерію з мінімальними формальностями.


2025-09-02-journal-entries-in-beancount

Швидке нагадування: що таке журналний запис?

Журналний запис – це формальний, датований запис фінансової транзакції. Він виражається у вигляді дебетів і кредитів, які підтримують баланс фундаментального бухгалтерського рівняння:

Assets=Liabilities+EquityAssets = Liabilities + Equity

У системі подвійного запису кожна транзакція впливає принаймні на два рахунки, і сума дебетів має дорівнювати сумі кредитів. Це просте правило забезпечує достовірність і точність фінансових звітів, таких як звіт про прибутки та збитки і баланс.


Дебети та кредити за одну хвилину

Концепції дебетів і кредитів можуть спочатку збивати з пантелику, але вони зводяться до кількох простих правил. Думайте так: «звідки прийшла вартість?» (кредит) і «куди пішла вартість?» (дебет).

Ось коротка таблиця, яка показує, як вони збільшують п’ять основних типів рахунків:

Тип рахункуЗбільшується за рахунок
AssetsDebit
ExpensesDebit
LiabilitiesCredit
EquityCredit
IncomeCredit

Як виглядає журналний запис у Beancount

Beancount використовує прості, зрозумілі текстові директиви для реєстрації транзакцій. Кожна транзакція має балансувати до нуля для кожної валюти (наприклад, USD, EUR, акції AAPL). Якщо це не так, Beancount виведе помилку.

Ось базова транзакція для купівлі кави:

2025-09-10 * "Coffee Bar" "Team coffee"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD

Зверніть увагу, як два рядки (з рахунками) сумуються до нуля: $18.00 + (-$18.00) = 0.

Ви можете додавати потужний контекст безпосередньо у опис, використовуючи теги (наприклад, #clientX) для фільтрації та посилання (наприклад, ^INV-2025-001) для зв’язку пов’язаних записів.

Наприклад, ось як можна зв’язати рахунок‑фактуру з її оплатою:

; Спочатку записуємо рахунок‑фактуру, яку ми відправили клієнту
2025-09-15 * "Acme Corp" "Invoice 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD

; Пізніше записуємо оплату і зв’язуємо її з оригінальною фактурою
2025-09-28 * "Acme Corp" "Payment on ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD

Тег #clientX дозволяє легко фільтрувати всі транзакції для цього клієнта, а посилання ^INV-2025-001 створює зв’язок між двома записами, який можна простежити у звітах.


Типові журналні записи (готові до копіювання)

Нижче наведено кілька поширених бізнес‑транзакцій, відформатованих для Beancount.

Власник вносить готівку

Власник вносить особисті кошти для запуску бізнесу.

2025-01-01 * "Owner" "Initial capital contribution"
Assets:Bank:Checking 10000.00 USD
Equity:Owner-Capital -10000.00 USD

Готівковий продаж з ПДВ

Клієнт платить готівкою за товар, включаючи 8 % ПДВ, який пізніше треба сплатити державі.

2025-01-05 * "Walk-in Customer" "Cash sale with 8% tax"
Assets:Cash 108.00 USD
Income:Sales -100.00 USD
Liabilities:Tax:Sales -8.00 USD

Продаж у кредит (рахунок‑фактура) і отримання платежу

Ви надаєте послугу і виставляєте рахунок клієнту, а потім отримуєте оплату.

2025-01-10 * "Acme Corp" "Consulting invoice ^INV-2025-002"
Assets:AccountsReceivable 2500.00 USD
Income:Consulting -2500.00 USD

2025-01-30 * "Acme Corp" "Payment on ^INV-2025-002"
Assets:Bank:Checking 2500.00 USD
Assets:AccountsReceivable -2500.00 USD

Витрати за кредитною карткою

Ви купуєте офісні матеріали за допомогою корпоративної кредитної картки.

2025-01-12 * "OfficeMax" "Supplies on credit card"
Expenses:Office:Supplies 75.00 USD
Liabilities:CreditCard -75.00 USD

Зарплата (простий варіант)

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

2025-01-31 * "Payroll" "January wages and withholdings"
Expenses:Payroll:Wages 2000.00 USD
Liabilities:Taxes:Withheld -400.00 USD
Assets:Bank:Checking -1600.00 USD

Щомісячна амортизація

Ви реєструєте щомісячну амортизацію активу, наприклад ноутбука.

2025-01-31 * "Depreciation" "Laptop, straight-line"
Expenses:Depreciation 100.00 USD
Assets:Equipment:AccumDepr -100.00 USD

Попередньо сплачена послуга та щомісячна амортизація

Ви сплачуєте річну страховку наперед, а потім щомісяця визнаєте частину витрат.

; 1. Сплата за річну страховку
2025-01-01 * "InsureCo" "Annual insurance premium"
Assets:Prepaid:Insurance 1200.00 USD
Assets:Bank:Checking -1200.00 USD

; 2. Визнання одного місяця витрат у кінці січня
2025-01-31 * "InsureCo" "Amortize 1/12 of insurance"
Expenses:Insurance 100.00 USD
Assets:Prepaid:Insurance -100.00 USD

Неотриманий дохід та щомісячне визнання

Клієнт передплачує 3‑місячну підписку. Ви реєструєте готівку, а потім щомісяця визнаєте дохід.

; 1. Клієнт передплачує послугу
2025-02-01 * "Subscriber" "3-month plan prepaid"
Assets:Bank:Checking 300.00 USD
Liabilities:Unearned:Subs -300.00 USD

; 2. Визнання одного місяця доходу після надання послуги
2025-02-28 * "Recognition" "Recognize month 1 of 3"
Liabilities:Unearned:Subs 100.00 USD
Income:Subscriptions -100.00 USD

Резерв під сумнівні дебітори та списання безнадійного боргу

Ви створюєте резерв під можливі непогашені рахунки, а потім списуєте конкретний безнадійний рахунок.

; 1. Створюємо резерв у розмірі 2 % від дебіторської заборгованості
2025-03-31 * "Provision" "2% of A/R for doubtful accounts"
Expenses:BadDebt 200.00 USD
Assets:AllowanceForDoubtful -200.00 USD

; 2. Списуємо конкретний рахунок, який не буде сплачено
2025-04-15 * "Write-off" "Customer XYZ invoice"
Assets:AllowanceForDoubtful 150.00 USD
Assets:AccountsReceivable -150.00 USD

Періодичний інвентар та коригування собівартості проданих товарів (COGS)

Наприкінці періоду ви розраховуєте собівартість проданих товарів, коригуючи інвентарний рахунок.

2025-03-31 * "COGS adjustment" "Periodic inventory method"
Expenses:COGS 4500.00 USD
Assets:Inventory -4500.00 USD

Коригувальні записи vs. Зворотні записи

Коригувальні записи створюються в кінці облікового періоду (місяця або кварталу) для правильного відображення доходів і витрат у тому періоді, коли вони фактично зароблені або понесені. Це включає акумуляції, відстрочки та оцінки, такі як амортизація.

Зворотні записи – це необов’язкові записи, які робляться в перший день нового періоду і точно протилежні певному коригувальному запису попереднього періоду. Їхня мета – спростити бухгалтерію. Зворотний запис дозволяє ввести наступну готівкову операцію у звичайному вигляді, не пам’ятаючи про розподіл на рахунок зобов’язань.

Приклад: акумулювання та зворотний запис комунальних послуг

Припустимо, що ви повинні записати витрати на комунальні послуги за січень, але рахунок прийде лише у лютому.

; 1. Акумулюємо оцінені витрати в кінці січня
2025-01-31 * "Accrual" "Estimate January utilities expense"
Expenses:Utilities 500.00 USD
Liabilities:Accrued:Utilities -500.00 USD

; 2. (Опціонально) Зворотний запис акумулювання у перший день наступного періоду
2025-02-01 * "Reversal" "Undo January utilities accrual"
Liabilities:Accrued:Utilities 500.00 USD
Expenses:Utilities -500.00 USD

; 3. Запис фактичної оплати, коли рахунок надійде у лютому
; Фактичний рахунок становить $520. Завдяки зворотному запису ви можете
; записати повну суму у витрати без додаткових коригувань.
; Чисті витрати за лютий будуть $520 - $500 = $20.
2025-02-10 * "City Utilities" "Payment for January bill"
Expenses:Utilities 520.00 USD
Assets:Bank:Checking -520.00 USD

Примітка: У наведеному прикладі показано розподіл остаточної оплати. Метод зворотного запису – це альтернатива, що спрощує фінальний запис.


Чек‑лист для кожного журналного запису в Beancount

Перевірте наступні кроки, щоб ваші записи були чистими та правильними:

  1. Починайте з дати (РРРР-ММ-ДД) та прапорця транзакції (*).
  2. Додайте контрагента і описову нarration. Використовуйте #tags і ^links для зручного пошуку.
  3. Вкажіть щонайменше два рядки запису, які балансуватимуть до нуля для кожної валюти.
  4. Використовуйте правильні імена рахунків серед п’яти типів: Assets, Liabilities, Equity, Income, Expenses.
  5. За потреби додавайте метадані, наприклад document: "invoices/INV-2025-001.pdf" для простежуваності.

Типові помилки (і як Beancount їх запобігає)

  • Несбалансовані записи: Якщо сума дебетів і кредитів не дорівнює нулю, Beancount відхилить запис. Це ключова функція, яка запобігає помилкам. Ви навіть можете залишити одну суму порожньою, і Beancount автоматично її підрахує.
  • Помилковий знак у рахунку: Легко забути, що Income, Equity і Liabilities збільшуються кредитами (у Beancount це зазвичай від’ємні числа). Якщо зробити помилку, ваші звіти виглядатимуть дивно, проте правило балансування все одно захистить вас.
  • Відсутність посилань між записами: Якщо не зв’язати рахунок‑фактуру з її оплатою, важче відстежити, що залишилося неоплачено. Постійне використання ^links створює аудиторський слід.

Куди далі

  • Мова Beancount та правила балансування: Поглиблене вивчення офіційної документації.
  • Шпаргалка синтаксису: Зручний довідник усіх директив Beancount.
  • Вступ до дебетів/кредитів: Чудовий старт, якщо ви новачок у бухгалтерських правилах.
  • Коригувальні та зворотні записи: Детальні статті про бухгалтерську теорію.

Додаток: Відповідність бухгалтерської мови → Beancount

Ця швидка довідка допоможе зіставити бухгалтерські інструкції з синтаксисом Beancount.

Бухгалтерська інструкціяДія в Beancount
Дебетувати витратуПозитивна сума у рахунку Expenses:
Кредитувати зобов’язанняВід’ємна сума у рахунку Liabilities:
Акумулювати дохідAssets:AccountsReceivable +
Income:* -
Відстрочити дохідAssets:Bank:* +
Liabilities:Unearned:* -
Визнати відстрочений дохідLiabilities:Unearned:* +
Income:* -

З цими шаблонами та прикладами ви зможете легко моделювати майже будь-яку бізнес‑подію в Beancount, забезпечуючи точність фінансових звітів без несподіванок.

10 практичних кроків до швидкого та надійного закриття місяця в Beancount

· 6 хвилин читання
Mike Thrift
Mike Thrift
Marketing Manager

Якщо ваш реєстр зберігається у простому тексті, закриття місяця може бути і швидким, і аудиторським. Процес не повинен бути хаотичним бігом по електронних таблицях і калькуляторах. Цей посібник викладає чистий, повторюваний процес, адаптований для Beancount та його веб‑інтерфейсу Fava, побудований навколо балансних тверджень, розумного імпорту та легковагових перевірок.

Ось контрольний список для безболісного закриття:

2025-09-02-month-end-close

  1. Зберіть виписки та імпортуйте всі необроблені транзакції.
  2. Нормалізуйте отримувачів, описи та метадані.
  3. Звірте кожен готівковий, банківський та кредитний рахунок за допомогою тверджень balance.
  4. Перевірте відповідність переказів та переміщень між рахунками.
  5. Оновіть ціни інвестицій та перевірте їх оцінки.
  6. Прикріпіть або вкажіть джерела документів (квитанції, рахунки) у вашому реєстрі.
  7. Запустіть запити та панелі інструментів для перевірки прибутків і збитків та варіацій.
  8. Відобразіть нарахування та коригування за потреби.
  9. Валідуйте реєстр за допомогою автоматизованих перевірок.
  10. Закомітьте, позначте тегом та заархівуйте місяць.

1. Встановіть базові правила (і використовуйте їх повторно)

Для швидкого та безпомилкового закриття важливо мати чіткі параметри. Автоматичне застосування правил забезпечує послідовність і зменшує ризик помилок.

Порада: Розглядайте ваш файл параметрів як «інфраструктуру». Зміна його може вплинути на спосіб обчислення ваших цифр. Версіонуйте його обережно у Git.


2. Імпортуйте все — і більше ніколи не вводьте вручну

Автоматизація імпорту даних — це найбільше прискорення процесу закриття книг. Використовуйте потужні інструменти імпорту Beancount та імпортери, створені спільнотою, щоб отримати банківські виписки, CSV/OFX файли кредитних карток, дані брокерських рахунків та звіти про зарплату.

Мета — імпорт однією командою, який генерує збалансовані проводки, які потрібно лише переглянути та закомітити. Це усуває ручне введення даних, головне джерело помилок і затримок.


3. Нормалізуйте отримувачів та метадані заздалегідь

Чисті дані — це надійні дані. Стандартизуйте отримувачів, опис та теги під час процесу імпорту, щоб ваші пошуки, правила та звіти залишалися точними місяць за місяцем.

Система плагінів Beancount дозволяє додавати легковагові трансформації та валідації під час завантаження файлів. Це ідеально підходить для впровадження власних перевірок узгодженості або використання вбудованого плагіну noduplicates для позначення повторюваних транзакцій до того, як вони стануть проблемою.


4. Звірка за допомогою тверджень balance

Для кожного рахунку, який має виписку (поточний, ощадний, кредитні картки), використовуйте директиву balance у Beancount, щоб задекларувати закривний баланс. Цей простий рядок перетворює звірку з ручної перевірки оком у точний, автоматизований тест.

2025-08-31 balance Assets:Cash  1234.56 USD

Оскільки баланси перевіряються на початку дня, найзручніше використовувати перший день наступного місяця для виписки за кінець місяця. Якщо розрахований Beancount баланс не збігається з вашим твердженням, ви отримаєте точну помилку та дату для початку розслідування. Завжди спочатку виправляйте джерело правди (ваші транзакції); не «примушуйте» звірку.


5. Перевірте відповідність міжрахункових переказів

Переконайтеся, що кожен переказ відображається з обох сторін транзакції. Наприклад, платіж з вашого поточного рахунку на кредитну картку має бути відображений в обох рахунках. Невідповідність переказів — поширене джерело проблем зі звіркою.

Використовуйте директиву pad лише для встановлення історичних початкових балансів під час першого налаштування рахунку. Це інструмент налаштування, а не підпора для виправлення різниць у закритті місяця.


6. Перевірте позиції та ціни інвестицій

Щоб отримати точний огляд вашого чистого капіталу, потрібні актуальні ринкові вартості ваших інвестицій та іноземних валют. Використовуйте директиву price у Beancount, щоб зафіксувати ці значення на дату вашого закриття.

2025-08-31 price AAPL  150.00 USD

Багато інструментів можуть автоматично отримувати ці ціни для вас. Після їх оновлення запустіть знову ваш баланс або звіти про чистий капітал, щоб побачити зміни оцінки.


7. Прикріпіть квитанції та вихідні документи

Зберігайте чистий аудиторський слід, пов’язуючи транзакції з їхніми вихідними документами. Використовуйте параметр documents у вашому головному файлі Beancount, щоб вказати шлях до архіву квитанцій та рахунків.

2025-08-15 transaction "Coffee shop"
expense:food 5.00 USD
documents: "receipts/2025-08-15.coffee.pdf"

Якщо ви називаєте файли за датою (наприклад, 2025-08-13.vendor.receipt.pdf), Beancount і Fava можуть автоматично їх виявляти та зв’язувати, що дозволяє одним кліком відкрити квитанцію для будь‑якої транзакції.


8. Перегляньте місяць за допомогою Fava та BQL

Швидкий цикл зворотного зв’язку є критичним. Використовуйте Fava для візуальної інспекції ваших фінансів. Його діаграми та звіти ідеально підходять для розподілу витрат за категоріями, перевірки тенденцій доходів та швидкого виявлення аномалій.

Для більш точних перевірок використовуйте Beancount Query Language (BQL). Цей запит, наприклад, дає вам ранжований розподіл усіх витрат за серпень 2025 року:

SELECT account, SUM(position) AS total
WHERE account ~ "Expenses"
GROUP BY account
ORDER BY total DESC

9. Відобразіть нарахування та коригування

Якщо ви користуєтеся нарахувальною бухгалтерією, записуйте ваші місячні коригування як явні, датовані транзакції. Це може включати нараховані витрати (наприклад, рахунок за комунальні послуги, який ще не отримано), амортизацію передплачених витрат або визнання доходу. Тримайте їх простими та добре задокументованими у описі, щоб їх було легко зрозуміти під час майбутніх переглядів.


10. Валідація, тегування та архівація

Перед тим як завершити місяць, запустіть фінальну перевірку структурної цілісності:

beancount -f myfile.beancount validate

Ця команда виявить дисбаланси, посилання на рахунки, які ви ще не відкрили, та інші поширені помилки. Виправте все, що вона позначить.

Коли все буде правильним, закомітьте зміни у систему контролю версій (наприклад, Git) з чітким повідомленням і тегом, наприклад close-2025-08. Нарешті, заархівуйте ваші банківські виписки і вважайте місяць закритим.

Простий скрипт закриття, який ви можете адаптувати

Ви можете автоматизувати більшість цих кроків за допомогою простого shell‑скрипту. Це перетворює ваше закриття у одну, повторювану команду.

#!/bin/bash
# Приклад простого скрипту закриття
beancount -f myfile.beancount import bank.csv
beancount -f myfile.beancount balance Assets:Cash 1000 USD
git add myfile.beancount
git commit -m "Month close"

Чому це працює

Цей процес швидкий і надійний, тому що він базується на кількох ключових принципах:

  • Твердження, а не око: Директива balance перетворює звірку у точну, автоматизовану перевірку.
  • Детерміновані входи: Автоматизовані імпортери та нормалізовані метадані роблять ваш реєстр відтворюваним і послідовним.
  • Досліджувані дані: Fava та BQL надають потужні інструменти для валідації результатів і миттєвого аналізу відхилень.
  • Аудиторські зміни: Коригування — це записи у простому тексті, що полегшує їх перегляд і розуміння через місяці чи роки.

Добре закриття місяця — це в основному логістика. За допомогою Beancount ви можете перетворити його на короткий, скриптовий ритуал: імпорт, твердження, ціна, запит і коміт. Підтримуйте стабільний робочий процес, і ваше закриття залишатиметься швидким — навіть коли ваше фінансове життя стає складнішим.

Найкращі бізнес‑лінії кредиту (2025)

· 7 хвилин читання
Mike Thrift
Mike Thrift
Marketing Manager

Якщо вам потрібен гнучкий оборотний капітал, який можна знімати, погашати та повторно використовувати, бізнес‑лінія кредиту (LOC) виграє над повторними позиками. Нижче – найсильніші варіанти цього року за випадками використання, швидкий спосіб порівняння витрат та простий рецепт Beancount для реєстрації зняттів, відсотків і комісій.


2025-08-27-best-business-lines-of-credit-2025

TL;DR — Найкращі варіанти за сценарієм

  • Швидка, гнучка фінтех‑лінія: Bluevine — до $250 тис., щотижневі або щомісячні погашення, фінансування часто протягом 24 годин, ставки «від 7,8 % (простий відсоток)».
  • Зняття за комісією з різними термінами: American Express Business Blueprint® Line of Credit — розмір лінії 2тис.2 тис.–250 тис.; вибір 1–3‑місцевих одноразових позик або 6–24‑місцевих розстрочок з фіксованими комісіями (не APR).
  • Банківська лінія на базі Prime з прозорим ціноутворенням: Wells Fargo BusinessLine® / Prime Line — BusinessLine: Prime + 1,75 % до + 9,75 %; Prime Line: Prime + 0,50 % (мінімум 5 %); типові ліміти 10тис.10 тис.–150 тис.
  • Ціноутворення за відносинами та шлях «випуску»: Bank of America — незабезпечена Business Advantage лінія (знижки 0,25–0,75 %); або Cash‑Secured лінія, де ваш депозит визначає ліміт (від $1 000), корисна для побудови бізнес‑кредиту.
  • Гілка + національне охоплення: Chase Business Line of Credit — онлайн до $250 тис., 5‑річний оборотний період, потім 5‑річне погашення (доступно у 48 штатах).
  • **До 250тис.зчіткоюполітикоюрічноїкомісії:U.S.BankCashFlowManager—лініїдо250 тис. з чіткою політикою річної комісії:** **U.S. Bank Cash Flow Manager** — лінії до 250 тис.; незабезпечений варіант до 100тис.;безрічноїкомісії,якщолінія>100 тис.; без річної комісії, якщо лінія > 50 тис. (інакше $150).
  • Нові бізнеси, які потребують швидкості (знайте вартість): Headway Capital5тис.5 тис.–100 тис., калькулятор показує стартові 3,3 % щомісяця + 2 % комісії за зняття.
  • Швидке схвалення, але зазвичай дороге: OnDeck LOC — до $200 тис.; середній APR компанії — 56,6 % для ліній (H1’25).
  • Для більших, низькостихійних, контрольованих ліній (за умови кваліфікації): SBA lines — класичні програми CAPLines та новий 7(a) Working Capital Pilot (WCP). WCP дозволяє кредиторам видавати контрольовані оборотні лінії до $5 млн з гарантією SBA.

Що змінилося або важливо у 2025 р? 📈

Два ключових тренди формують ландшафт бізнес‑кредиту цього року:

  1. Prime нижчий, ніж у 2023‑му. Prime Rate Wall Street Journal становить 7,50 % (станом на 2 вересня 2025), останнє змінення — 19 грудня 2024. Це базова ставка, яка безпосередньо впливає на ціноутворення більшості змінних банківських ліній кредиту («Prime + маржа»). Стабільний, нижчий Prime означає передбачуваніші витрати для позичальників.
  2. SBA розширює контрольовані лінії оборотного капіталу. Програма 7(a) Working Capital Pilot (WCP), що діє з 1 серпня 2024, продовжує розширюватись. Вона дозволяє кредиторам видавати контрольовані LOC, засновані на активі або транзакції, що дуже допомагає бізнесам, які потребують фінансування інвентарю, дебіторської заборгованості або конкретних контрактів.

Огляд: Популярні лінії кредиту, які ви реально можете отримати

ПостачальникМаксимальний розмір лініїЯк працює ціноутворенняПомітні умови/комісіїКраще підходить для
Bluevine$250 000Простий відсоток «від 7,8 %»; щотижневі або щомісячні погашенняФінансування часто протягом 24 годинШвидка, гнучка онлайн‑LOC з простими зняттями
AmEx Business Blueprint®20002 000–250 000Комісія за позику замість відсотка; вибір 1–3 міс. одноразової або 6–24 міс. розстрочкиДив. діапазони комісій за термін; миттєвий депозит у AmEx Business CheckingПередбачувані комісії; вибір короткого чи довгого погашення за зняттям
Wells Fargo BusinessLine®1000010 000–150 000Змінний Prime + 1,75 % до + 9,75 %Незабезпечена оборотна лініяБанківська лінія на базі Prime з прозорою маржою
Wells Fargo Prime LineВаріюєтьсяPrime + 0,50 % (мінімум 5 %)Зазвичай для сильніших профілівНижча маржа, якщо ви кваліфікуєтесь
Chase Business LOCОнлайн до $250 000Змінний (не публікується онлайн)5‑річний оборот, потім 5‑річне погашення; не в AK/HIВстановлена банківська LOC з довгим оборотним вікном
U.S. Bank Cash Flow ManagerДо $250 000Змінний; забезпечені та незабезпечені варіантиНезабезпечений до 100k;безрічноїкомісії>100 k; без річної комісії > 50 k (інакше $150)Чітка політика комісій; широка мережа відділень
PNC Unsecured LOC2000020 000–100 000WSJ Prime + маржа (змінний)$175 річна комісіяМенші лінії; банківські відносини
Headway Capital50005 000–100 000Стартові 3,3 % щомісяця + 2 % комісії за зняття (залежить від штату)Щотижневі або щомісячніМолоді компанії, які потребують швидкості (звертайте увагу на вартість)
OnDeck LOCДо $200 000Високий середній APR 56,6 % (H1’25)Швидке схвалення; типові щотижневі платежіКороткострокові прогалини в готівці; дороге фінансування
SBA CAPLines & 7(a) WCPДо $5 000 000Ставки, встановлені SBA через кредиторів; контрольовані лініїWCP – до 12 міс., поновлювані; CAPLines – термін до 10 роківВеликі, структуровані потреби в оборотному капіталі з заставою

Як обрати правильну LOC (7 швидких перевірок) ✅

  1. Індекс і маржа: Якщо це банківська лінія «Prime ± X%», перевірте сьогоднішню Prime Rate (7,50 %) і додайте вашу маржу. Це ваш поточний змінний річний відсотковий показник (APR).
  2. Комісія vs. відсоток: Деякі фінтехи (наприклад, AmEx Blueprint) стягують фіксовану «комісію за позику» за зняття замість відсотка. Порівняйте ефективний APR цієї комісії з пропозиціями на основі відсотка.
  3. Річні/зняткові комісії: Вони збільшують загальні витрати, особливо при рідкому використанні лінії. U.S. Bank скасовує 150річнукомісіюдляліній>150 річну комісію для ліній > 50 k, тоді як PNC зазначає $175 за незабезпечену LOC.
  4. Графік погашення: Щотижневі платежі (поширені у онлайн‑кредиторів) можуть згладжувати грошовий потік, але вимагають частішого управління. Щомісячні спрощують бухгалтерію. Bluevine пропонує обидва варіанти.
  5. Швидкість фінансування: Якщо потрібні гроші зараз, швидкість критична. Bluevine часто фінансує протягом 24 годин, а American Express пропонує миттєві депозити на рахунок AmEx Business Checking.
  6. Кваліфікація та шлях «випуску»: Якщо ви ще не можете отримати незабезпечену лінію, продукт типу Cash‑Secured лінії Bank of America (від $1 000) допоможе побудувати бізнес‑кредит і «випуститися» до незабезпеченої пізніше.
  7. Розгляньте SBA для розміру або структури: Для великих потреб, пов’язаних з інвентарем, дебіторською заборгованістю або контрактами, програми SBA 7(a) WCP або CAPLines можуть надати більші, контрольовані лінії за регульованими ставками, за умови готовності пройти більш глибоку оцінку.

Швидка підказка щодо порівняння витрат 🧮

Порівнювати пропозиції може бути складно. Ось простий спосіб мислити:

  • Приклад на базі Prime: Якщо банк пропонує Prime + 2,75 %, ваш стартовий APR сьогодні — 10,25 % (7,50 % + 2,75 %). Пам’ятайте, ця ставка буде змінюватись разом зі зміною Prime.
  • Приклад на базі комісії (AmEx Blueprint): 12‑місячне зняття з загальною комісією 6–18 % може здаватися низьким. Однак, щоб порівняти «яблука з яблуками», треба обчислити еквівалентний APR на амортизаційному залишку. Фіксована комісія на початкову суму зняття не дорівнює APR на зменшуваний залишок.

Beancount: Як записати лінію кредиту

Для користувачів інструменту plain‑text обліку Beancount відстеження лінії кредиту просте. LOC – це зобов’язання; зняття збільшує це зобов’язання і ваші готівкові кошти, а відсотки та комісії – це витрати. Замініть імена рахунків нижче на свої.

1) Зняти $25 000 з вашої LOC на поточний рахунок

2025-03-15 * "Зняття LOC"
Assets:Bank:Checking 25,000.00 USD
Liabilities:LOC:Bluevine -25,000.00 USD

2) Сплатити 2300(2 300 (300 відсотків, $2 000 основна сума)

2025-04-15 * "Платіж LOC (основа + відсотки)"
Liabilities:LOC:Bluevine 2,000.00 USD
Expenses:Interest:LOC 300.00 USD
Assets:Bank:Checking -2,300.00 USD

3) Записати $150 річної комісії, списаної з вашого банківського рахунку

2025-01-10 * "Річна комісія LOC"
Expenses:BankFees:LOC 150.00 USD
Assets:Bank:Checking -150.00 USD

Альтернатива: Якщо річну комісію додають до балансу лінії, а не списують з рахунку, транзакція виглядатиме так:

2025-01-10 * "Річна комісія LOC, додана до балансу"
Expenses:BankFees:LOC 150.00 USD
Liabilities:LOC:Bluevine -150.00 USD

Коли лінія, підкріплена SBA, має більше сенсу

Гарантована SBA лінія підходить не всім, але це потужний інструмент, якщо:

  • Вам потрібен більший кредитний ліміт, ніж пропонують більшість фінтех‑ або банківських незабезпечених продуктів.
  • Ваші потреби в оборотному капіталі пов’язані з заставою – дебіторською заборгованістю (A/R), інвентарем або підписаними контрактами.
  • Ви готові виконувати вимоги моніторингу, такі як подання сертифікатів бази позики та регулярна фінансова звітність.

Якщо це ваш випадок, розгляньте програми SBA CAPLines та 7(a) Working Capital Pilot (WCP). Вони дозволяють отримати лінії до $5 млн, а стандартні CAPLines можуть мати термін до 10 років.


Чек‑лист для заявки 📝

Будьте готові. Більшість кредиторів запитуватимуть:

  • Тривалість роботи, дохід і кредитний рейтинг: Банки зазвичай вимагають 1–2+ роки роботи та сильний кредит, тоді як багато онлайн‑кредиторів мають гнучкіші критерії, але ціни підвищуються через підвищений ризик.
  • Фінанси: Підготуйте останні виписки з банку, податкові декларації бізнесу та, можливо, звіти про дебіторську заборгованість або інвентар.
  • Відносини: Якщо у вас вже є відносини з певним банком, це може знизити вартість або спростити процес.

Джерела

Запис податків у Beancount (практичний підхід)

· 7 хвилин читання
Mike Thrift
Mike Thrift
Marketing Manager

Податки часто здаються особливим, складним звіром у світі особистих фінансів. Але що, якщо їх не так? Що, якщо розглядати їх так само, як будь‑який інший потік грошей у вашому реєстрі? Хороша новина: можна. Розглядаючи податки як прості переміщення вартості, ваш реєстр Beancount залишатиметься чистим, легким для запитів і, найголовніше, зрозумілим.

Нижче наведено практичний, беззаперечний шаблон, який ви можете вставити у файл Beancount для особистих фінансів або малого бізнесу. Це проста система для обробки зарплат, сплати податків і навіть тих нав’язливих повернень, що переходять у новий рік. Ми розглянемо необхідні рахунки, пройдемо реальні приклади та покажемо точні запити, які треба виконати, щоб отримати потрібні відповіді.

2025-08-25-recording-taxes-in-beancount


Основні принципи

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

  • Відокремлюйте «що це» від «коли рухається готівка». 🗓️
    Це найважливіша концепція. Податкова витрата належить до року, у якому ви отримали дохід (наприклад, 2024), навіть якщо ви сплачуєте рахунок IRS у квітні 2025. Якщо не розділити час витрати та час готівкової оплати, ваші річні звіти стануть безладними та вводитимуть в оману.

  • Тримайте ієрархію рахунків простою і нудною. 📁
    Давайте рахункам зрозумілі назви, орієнтовані на тип податку (наприклад, IncomeTax, SocialSecurity). Це робить ваші запити надзвичайно простими. Не захаращуйте назви рахунків іменами постачальників або номерами форм, як «W‑2» чи «1099»; для цих деталей використовуйте метадані та теги.

  • Приймайте нарахування для коригувань в кінці року. ⚖️
    Навіть у особистому реєстрі використання простого запису нарахування в кінці року — найчистіший спосіб зробити ваші звіти точними. Це означає визнання витрати або повернення у правильному році, навіть якщо гроші перемістяться лише наступного року. Це один невеликий крок, який заощаджує вас від ментальних акробатик пізніше.

  • Пишіть для свого майбутнього «я». 🧠
    Ваша мета — ясність. Додавайте додаткові деталі, такі як податковий рік, до назви рахунку лише тоді, коли це дійсно спрощує ваші запити. Уникайте створення нових наборів рахунків кожного року (Expenses:Taxes:2024:Federal, Expenses:Taxes:2025:Federal тощо), якщо немає вагомої причини. Плоска структура часто легша у керуванні.


Мінімальний скелет рахунків

Ось базовий набір рахунків, щоб розпочати. Ця структура орієнтована на США, але ви легко адаптуєте назви під податкову систему вашої країни. Просто додайте ці директиви open у ваш файл Beancount.

; --- US Federal Income & Payroll Taxes ---
; For money withheld from your paycheck
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Withheld USD
; For estimated payments or tax-day bills you pay directly
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Payments USD
; For tax refunds you receive
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Refunds USD

; Your FICA contributions
2024-01-01 open Expenses:Taxes:Federal:SocialSecurity USD
2024-01-01 open Expenses:Taxes:Federal:Medicare USD

; --- Other Common Taxes ---
; For sales/use taxes you pay on purchases
2024-01-01 open Expenses:Taxes:Sales USD

; --- Accounts for Year-End Adjustments (Optional but Recommended!) ---
; A temporary holding account for taxes you owe but haven't paid yet
2024-01-01 open Liabilities:AccruedTaxes:Federal:Income USD
; A temporary holding account for a refund you're owed but haven't received
2024-01-01 open Assets:Tax:Receivable USD

Ця настройка розділяє утримані податки від прямих платежів і повернень, що дозволяє легко бачити, куди пішли ваші гроші. Рахунки Liabilities і Assets — наш секретний інструмент для точного звітування в кінці року.


Приклад 1: Зарплатня

Занотуємо типову зарплатню, коли податки утримуються автоматично. Ключовим є спочатку записати валовий дохід, а потім показати, як він розподілився між податками та готівкою, що фактично потрапила на ваш рахунок.

2025-07-15 * "Employer Inc." "Salary for first half of July"
Income:Work:Salary -6,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Withheld 1,200.00 USD
Expenses:Taxes:Federal:SocialSecurity 372.00 USD
Expenses:Taxes:Federal:Medicare 87.00 USD
Assets:Cash:Checking 4,341.00 USD

Ця одна транзакція розповідає всю історію:

  • Ви заробили $6 000 валового доходу.
  • $1 200 з них було передано IRS як федеральний податок на доходи.
  • 372пішлонасоціальнестрахуванняі372 пішло на соціальне страхування і 87 — на Medicare.
  • Залишок $4 341 — це те, що ви отримали «на руки».

Порада: Ви можете додати метадані зі свого розрахункового листа (наприклад, pay_period_end: "2025-07-15") до транзакції для простого аудиту.


Приклад 2: Подання декларації (проблема переходу між роками)

Ось сценарій, який часто збиває людей з пантелику: квітень 2025 року, і ви подаєте податки за 2024. Після всіх утримань ви дізнаєтеся, що ще винні $3 000.

Як це записати? Ви хочете, щоб витрата відносилась до 2024 року, а готівковий платіж відбувся у 2025. Ось два відмінних способи.

Варіант A: Ручне двокрокове нарахування

Цей метод — чистий Beancount, без плагінів. Це зрозумілий двокроковий процес.

Крок 1: Визнати витрату в кінці податкового року.
Останнього дня 2024 року створюємо запис «корекції». Готівка ще не рухається; ми лише визнаємо витрату і паркуємо її у тимчасовому рахунку зобов’язань.

2024-12-31 * "Federal income tax true-up for 2024"
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
Liabilities:AccruedTaxes:Federal:Income -3,000.00 USD

Тепер ваш звіт за 2024 рік правильно відображає цю витрату у $3 000.

Крок 2: Записати готівковий платіж, коли він відбудеться.
У квітні 2025 року, коли ви фактично переказуєте гроші до IRS, сплачуємо зобов’язання.

2025-04-15 * "IRS" "Payment for 2024 tax return"
Liabilities:AccruedTaxes:Federal:Income 3,000.00 USD
Assets:Cash:Checking -3,000.00 USD

Ваші звіти за 2024 рік залишаються правильними, а грошовий потік за 2025 — точним. Ідеально! Та сама схема працює у зворотному напрямку для повернень — використовуйте Assets:Tax:Receivable замість рахунку зобов’язань.

Варіант B: Автоматизація за допомогою плагіна

Якщо ви хочете об’єднати платіж в одну транзакцію, чудовий плагін спільноти beancount_reds_plugins.effective_date допоможе. Він дозволяє задати іншу «дату ефективності» для окремого рядка.

Спочатку увімкніть плагін у головному файлі Beancount: plugin "beancount_reds_plugins.effective_date"

Тепер можна написати одну транзакцію. Плагін автоматично розділить її за лаштунками, щоб ваші звіти були точними.

; One entry; the plugin handles the rest
2025-04-15 * "IRS" "Payment for 2024 tax return"
Assets:Cash:Checking -3,000.00 USD
Expenses:Taxes:Federal:IncomeTax:Payments 3,000.00 USD
effective_date: 2024-12-31

Тут готівковий рядок записується 15 квітня 2025 року, а витратний — ретроспективно застосовується до 31 грудня 2024 року. Результат такий же, як у Варіанті A, лише інший робочий процес.


А що з податком з продажу?

Для більшості особистих реєстрів податок з продажу простий. Якщо ви його не відшкодовуєте, просто розділіть його як окрему витрату під час покупки.

2025-07-19 * "Local Grocery Store"
Expenses:Groceries 12.32 USD
Expenses:Taxes:Sales 1.28 USD
Assets:Cash:Checking -13.60 USD

Тепер ви легко відстежуєте, скільки витрачаєте на податок з продажу протягом року. Якщо ви керуєте бізнесом, що працює з ПДВ, використовуйте більш формальну схему з рахунками зобов’язань і дебіторської заборгованості, але принцип залишається тим же.


Запити, які ви дійсно будете виконувати

Уся ідея цієї структури — полегшити отримання відповідей. Ось кілька BQL‑запитів, які покажуть вашу податкову картину.

1. Який був мій загальний федеральний податок на доходи за 2024 рік?

SELECT cost(sum(position))
WHERE account "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01;

2. Як ця сума розподіляється між утриманнями, платежами та поверненнями?

SELECT account, cost(sum(position))
WHERE account "Expenses:Taxes:Federal:IncomeTax"
AND date >= 2024-01-01 AND date < 2025-01-01
GROUP BY account
ORDER BY account;

3. Чи залишилися у мене незакриті податкові зобов’язання або дебіторські суми? (Корисно для перевірки вашої роботи!)

SELECT account, units(sum(position))
WHERE account "Liabilities:AccruedTaxes" OR account "Assets:Tax"
GROUP BY account
ORDER BY account;

Якщо цей запит повертає ненульові залишки, це означає, що у вас є нарахування, які ще не погашені.


Швидкі FAQ

  • Чи потрібні мені окремі рахунки за кожен рік, наприклад Expenses:Taxes:2024?
    Швидше за все, ні. Метод нарахування (або плагін) підтримує плоску структуру, яка залишається чистою і читабельною. Створюйте окремі рахунки за роками лише тоді, коли це дійсно спрощує ваші запити.

  • Чи може Beancount сам розраховувати мої податки?
    Не безпосередньо, але він може підготувати дані. Досвідчені користувачі пишуть скрипти, які передають результати BQL у програми для розрахунку податків — це зручно для оцінки зобов’язань протягом року.

  • Чи це податкова консультація?
    Ні. Це лише шаблон бухгалтерського обліку для організації даних. Сам облік правильний, проте щодо конкретних порад завжди консультуйтеся з податковим фахівцем.


Ваш чек‑лист «вставити і працювати»

Готові розпочати?

  1. Додайте скелет рахунків у ваш файл Beancount (і адаптуйте назви під вашу країну).
  2. Записуйте зарплатні, починаючи з валового доходу і розподіляючи податки.
  3. В кінці року нарахуйте корекції для платежів або повернень, використовуючи рахунок зобов’язань/активу (або плагін effective_date).
  4. Відстежуйте повернення як дебіторську заборгованість і погашайте їх, коли гроші надходять.
  5. Запускайте наведені вище BQL‑запити, щоб перевірити підсумки перед подачею декларації.

Тримайте все простим, послідовним, і ваш податковий сезон нарешті стане лише ще однією частиною вашої фінансової історії — а не загадкою, яку треба розгадувати.

Нараховані витрати у Beancount: Практичний посібник (з прикладами журналу копіювання та вставки)

· 7 хвилин читання
Mike Thrift
Mike Thrift
Marketing Manager

Нараховані витрати звучать абстрактно, доки не починає накопичуватись кінець місяця. Це фундамент правильного нарахувального обліку, який гарантує, що ваші фінансові звіти відображають економічну реальність, а не лише момент, коли гроші переходять у руки. Нижче – чітка інструкція, орієнтована на Beancount, що пояснює, що це, чому це важливо і як саме записувати, скасовувати та звітувати про них у вашому текстовому журналі.

TL;DR ⚡

  • Нараховані витрати – це витрати, які ви понесли у цьому періоді, але ще не сплатили. Вони записуються як зобов’язання, доки гроші не вийдуть.
  • У Beancount це просто: дебетуєте рахунок Expenses: і кредитуєте рахунок Liabilities:Accrued:. Пізніше, коли сплачуєте, знімаєте зобов’язання.
  • Для звітування можна побачити, що ви винні на певну дату, запустивши bean-query з CLOSE ON і CLEAR, щоб отримати чистий знімок балансу.

2025-08-24-accrued-expenses-in-beancount-a-practical-guide

Що таке нараховані витрати?

Нараховані витрати – це витрати, які бізнес вже поніс, але ще не сплатив. Вони записуються в момент отримання послуги або виникнення витрати, навіть якщо рахунок ще не отримано або платіж ще не підлягає сплаті. Така практика відповідає принципу відповідності нарахувального обліку, який вимагає, щоб витрати відображалися в тому ж періоді, що й доходи, які вони допомогли отримати.

Типові приклади:

  • Зарплата, яку працівники заробили до кінця місяця, але виплатять у наступному.
  • Комунальні послуги (електрика, вода), якими ви користувалися в грудні, а рахунок отримаєте лише в січні.
  • Відсотки за кредитом, які накопичились протягом місяця, але ще не були списані з вашого рахунку.

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

Як Beancount розглядає це (за 30 секунд)

Beancount – це система подвійного запису у вигляді простого тексту. Усе – це датована директива або транзакція у текстовому файлі. Система базується на п’яти базових типах рахунків: Assets, Liabilities, Equity, Income і Expenses.

Записи завжди впорядковані за датою. Важливо, що перевірки balance виконуються до обробки транзакцій того ж дня. Це треба мати на увазі, коли розміщуєте перевірки та зворотні записи.

Нарешті, мова bean-query пропонує потужний, схожий на SQL спосіб формування звітів. За допомогою операторів OPEN ON, CLOSE ON і CLEAR можна створювати точні «станом на» вигляди фінансових звітів.

План рахунків (рекомендовано)

Чистий ієрархічний план рахунків – ваш найкращий друг. Для нарахованих витрат структура проста. Вам знадобиться:

  • Рахунок витрат: напр., Expenses:Utilities, Expenses:Payroll:Wages
  • Відповідний рахунок зобов’язань: напр., Liabilities:Accrued:Utilities, Liabilities:Accrued:Payroll
  • Рахунок готівки/банку: напр., Assets:Bank:Checking

Beancount вимагає саме ці п’ять типів рахунків верхнього рівня. Організовані імена спрощують запити та звіти.

Основний шаблон (без плагінів, без магії)

Найпряміший спосіб обробки нарахувань у Beancount. Два кроки: нарахування витрат в кінці місяця і зняття зобов’язання під час оплати.

Крок 1: Нарахувати витрати в кінці місяця

Останнього дня періоду ви записуєте витрату і створюєте зобов’язання.

2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities

Крок 2: Зняти нарахування під час оплати

Коли надходить рахунок і ви його сплачуєте, ви не торкаєтеся рахунку витрат ще раз. Замість цього дебетуєте рахунок зобов’язань, щоб його очистити.

2025-03-05 * "Pay Feb electricity - City Power"
Liabilities:Accrued:Utilities 120.00 USD
Assets:Bank:Checking

Це найчистіший підхід для невеликих команд. Він правильно розміщує витрату у лютому і не дублює її у березні. Зауважте, що в Beancount залишення суми порожньою дозволяє системі автоматично збалансувати транзакцію.

Альтернатива: Зворотний запис у перший день

Якщо вам до вподоби класичний стиль «авто‑зворотного» обліку, можна розмістити протилежний запис у перший день наступного місяця, а потім звичайно записати рахунок постачальника.

Крок 1: Нарахувати в кінці місяця (як і раніше)

2025-02-28 * "Accrue February electricity" #accrual
Expenses:Utilities 120.00 USD
Liabilities:Accrued:Utilities

Крок 2: Зворотний запис у перший день наступного місяця

2025-03-01 * "Reverse Feb electricity accrual" #reversal
Liabilities:Accrued:Utilities 120.00 USD
Expenses:Utilities

Крок 3: Записати оплату як зазвичай

2025-03-05 * "City Power - February bill"
Expenses:Utilities 120.00 USD
Assets:Bank:Checking

Нотатка щодо перевірок: Пам’ятайте, що balance перевіряються до транзакцій того ж дня. Якщо ви хочете перевірити баланс Liabilities:Accrued:Utilities, розмістіть перевірку на 2025-02-28, щоб підтвердити нарахування, або на 2025-03-01 після зворотного запису, щоб переконатися, що сума дорівнює нулю. Розміщення її до зворотного запису 1 березня призведе до помилкової невдачі.

Шість типових нарахувань (шаблони для копіювання) 📋

Готові приклади для поширених бізнес‑нарахувань.

1. Оренда, яка ще не виставлена в рахунок

2025-01-31 * "Accrue January rent" #accrual
Expenses:Rent 3000.00 USD
Liabilities:Accrued:Rent

2. Зарплата, яку зароблено, але не виплачено

2025-03-31 * "Accrue March wages" #accrual
Expenses:Payroll:Wages 8500.00 USD
Liabilities:Accrued:Payroll

3. Відпустка (PTO), яку зароблено

2025-03-31 * "Accrue PTO earned in March" #accrual
Expenses:Payroll:PTO 900.00 USD
Liabilities:Accrued:Payroll

4. Відсотки за кредитом

2025-02-29 * "Accrue monthly loan interest" #accrual
Expenses:Interest 210.00 USD
Liabilities:Accrued:Interest

5. Професійні послуги (аудит/юридичні)

2025-12-31 * "Accrue year-end audit fees" #accrual
Expenses:Professional:Audit 4200.00 USD
Liabilities:Accrued:Professional

6. Комунальні послуги, які використані, але ще не виставлені

2025-04-30 * "Accrue April utilities" #accrual
Expenses:Utilities 95.00 USD
Liabilities:Accrued:Utilities

Звітність: «Що я винен на певну дату?»

bean-query – ваш інструмент для отримання відповідей. Ось як отримати правильний знімок балансу щодо нарахованих витрат.

Отримати всі залишки зобов’язань на кінець періоду

Цей запит поверне баланс кожного рахунку зобов’язань станом на 31 березня 2025.

bean-query main.beancount '
SELECT account, UNITS(SUM(position)) AS balance
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued"
GROUP BY 1
ORDER BY 1;
'
  • OPEN ON встановлює початкові залишки на початок періоду.
  • CLOSE ON відсікає транзакції до вказаної дати (виключно). Тому використовуємо 2025-04-01, щоб отримати дані до і включно 2025-03-31.
  • CLEAR обнуляє доходи та витрати, даючи чистий вигляд балансу (Assets, Liabilities, Equity).

Переглянути реєстр усіх записів нарахувань

Якщо потрібно бачити «сирі» транзакції по рахункам зобов’язань:

bean-query main.beancount '
SELECT date, payee, narration, position
WHERE account "^Liabilities:Accrued"
ORDER BY date;
'

Отримати загальну суму всіх нарахувань

Для швидкого підсумку того, що ви винні:

bean-query main.beancount '
SELECT UNITS(SUM(position)) AS total_accruals
FROM OPEN ON 2025-01-01 CLOSE ON 2025-04-01 CLEAR
WHERE account "^Liabilities:Accrued";
'

Контроль та «підводні камені» у Beancount

  • Таймінг перевірок балансу: Як вже згадувалося, перевірки виконуються на початку дня. Запис 2025-03-01 balance … запускається до будь‑яких транзакцій 1 березня. Плануйте відповідно.
  • Іменування та ієрархія: Чисте дерево типу Liabilities:Accrued:* – це не лише естетика. Воно спрощує запити і робить звіти зрозумілими.
  • Використання pad з обережністю: Директива pad може виправити початкові залишки, але уникайте її для «фіксації» регулярних нарахувань. Явні записи залишають прозорий аудит‑трейл.
  • Звітність «на дату»: Для знімків балансу завжди використовуйте OPEN … CLOSE … CLEAR у bean-query. Це запобігає «забрудненню» зобов’язань доходами та витратами.

Передоплата vs. Нарахування (швидке порівняння)

Легко їх сплутати – це дзеркальні поняття:

  • Нарахована витрата: Послуга спожита зараз, гроші виплачуються пізніше → створює зобов’язання.
  • Передоплата: Гроші сплачені зараз, послуга спожита пізніше → створює актив.

Логіка обліку в Beancount однакова, лише рахунки різні (Assets:Prepaid:* vs. Liabilities:Accrued:*).

Шаблон для початку файлу

Нижче наведено директиви open, які потрібні для наведених прикладів. Додайте їх у верхню частину вашого журналу один раз.

; --- Accounts (open once) ---
2025-01-01 open Assets:Bank:Checking
2025-01-01 open Expenses:Utilities
2025-01-01 open Expenses:Payroll:Wages
2025-01-01 open Expenses:Interest
2025-01-01 open Expenses:Professional:Audit
2025-01-01 open Liabilities:Accrued:Utilities
2025-01-01 open Liabilities:Accrued:Payroll
2025-01-01 open Liabilities:Accrued:Interest
2025-01-01 open Liabilities:Accrued:Professional

Заключні нотатки

Якщо ви ведете облік за касовим методом, нарахування не потрібні – витрати записуються лише під час їх сплати. Якщо ж ви працюєте за нарахувальним методом, використання наведених шаблонів є критично важливим для відповідності витрат періоду, у якому вони були спожиті.

Наведені приклади мають лише навчальний характер. Завжди консультуйтеся зі своїм бухгалтером щодо специфічних вимог вашої галузі, особливо щодо бонусів, податків на заробітну плату та порогових значень капіталізації.

Накопичена амортизація (для Beancount): Практичний, простий‑текстовий посібник

· 7 хвилин читання
Mike Thrift
Mike Thrift
Marketing Manager

Якщо ви відстежуєте основні засоби у вашому обліку — ноутбуки, камери, обладнання або навіть офісні меблі — ваші книги повинні відображати їхнє зниження вартості. Це включає два ключових поняття: амортизація (витрата) і її сукупна величина, накопичена амортизація. У цьому посібнику пояснюються обидва поняття простими словами, а потім показано, як саме їх моделювати у Beancount за допомогою готових до копіювання прикладів, включаючи потужні варіанти автоматизації.


2025-08-23-accumulated-depreciation

Що таке накопичена амортизація?

Накопичена амортизація — це загальна сума амортизації, яку було зафіксовано проти активу з моменту його введення в експлуатацію. Уявіть це як постійний підрахунок. Це не новий тип витрати — це просто сума всіх попередніх амортизаційних нарахувань для даного активу.

У фінансових звітах ви побачите накопичену амортизацію разом із первісною вартістю активу. Це дозволяє будь‑кому, хто читає ваші книги, бачити як історичну вартість (скільки ви заплатили), так і чисту балансову вартість (скільки вона зараз варта у вашому обліку).

Важливий момент: накопичена амортизація — це контра‑актив. Це може звучати складно, але ідея проста:

  • Це рахунок типу «актив», тому він розташований у розділі Assets вашого плану рахунків.
  • Однак він має кредитовий залишок (від’ємне значення у активних рахунках Beancount), що зменшує вартість пов’язаного основного засобу.

Де вона відображається у балансі?

Накопичена амортизація зазвичай розташовується у балансі безпосередньо під відповідним основним засобом. Наприклад:

Equipment: Computers$3,000.00
Менше: Накопичена амортизація($1,000.00)
Equipment: Computers, чисто$2,000.00

Багато фінансових звітів спрощують це, показуючи один рядок «Property, plant & equipment, net». Це число представляє загальну історичну вартість усіх активів мінус їхню сумарну накопичену амортизацію, що дає остаточну чисту балансову вартість.


Як розраховувати амортизацію?

Існує кілька методів розрахунку амортизації. Обраний вами метод визначає, яку суму витрати ви записуєте кожного періоду, і, відповідно, як зростає сума накопиченої амортизації. Два поширені підходи:

  • Straight-Line (SL): Найпростіший і найпоширеніший метод для бухгалтерського обліку. Ви розподіляєте однакову суму вартості активу на кожен період його корисного життя. Наприклад, ноутбук вартістю 3,000зтерміномслужби36місяців(3роки)амортизується3,000 з терміном служби 36 місяців (3 роки) амортизується 83.33 на місяць.
  • Tax Methods (наприклад, MACRS у США): Для податкових цілей уряди часто визначають прискорені графіки. У США система Modified Accelerated Cost Recovery System (MACRS) дозволяє брати більші амортизаційні відрахування у перші роки експлуатації активу. Beancount легко працює з такими графіками — вам лише потрібно розрахувати суми згідно офіційних таблиць (наприклад, IRS Publication 946) і створити відповідні журнальні записи.

Формула (Straight-Line)

Періодична амортизація = ВартістьЛіквідаційна вартістьТермін служби\frac{\text{Вартість} - \text{Ліквідаційна вартість}}{\text{Термін служби}}

Накопичена амортизація (на дату t) = (Перiодична амортизація до t)\sum (\text{Перiодична амортизація до } t)

Ліквідаційна вартість — це оцінка залишкової вартості активу в кінці його корисного життя. Для спрощення часто приймається, що вона дорівнює нулю.


Підхід Beancount: моделювання вартості та накопиченої амортизації

Щоб правильно відстежувати основні засоби у Beancount, зберігаючи їхню первісну вартість, використовуйте пару рахунків активів для кожної категорії та окремий рахунок витрат.

  • Assets:Equipment:Computers:Cost (для збереження історичної вартості)
  • Assets:Equipment:Computers:AccumDep (контра‑актив, який буде кредитуватись з часом)
  • Expenses:Depreciation:Computers (для запису періодичної витрати)

Така структура відповідає стандартній практиці бухгалтерського обліку і є рекомендованим підходом для управління амортизацією основних засобів у Beancount.


Варіант A: ручні записи за методом Straight-Line

Найпряміший метод. Ви контролюєте кожен запис, що допомагає краще зрозуміти механізм.

1. Відкрийте необхідні рахунки

2025-01-01 open Assets:Bank:Checking
2025-01-01 open Assets:Equipment:Computers:Cost
2025-01-01 open Assets:Equipment:Computers:AccumDep
2025-01-01 open Expenses:Depreciation:Computers

2. Запишіть покупку (за історичною вартістю)

2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

3. Запишіть щомісячну амортизацію

Кожного місяця ви реєструєте витрату на амортизацію. Для активу 3,000за36місяцівщомісячнаамортизаціястановить3,000 за 36 місяців щомісячна амортизація становить 3000 ÷ 36 = $83.33.

Транзакція включає дебет рахунку витрат і кредит контра‑активу.

2025-02-28 * "Monthly depreciation - MacBook Pro (SL 36mo)"
Expenses:Depreciation:Computers 83.33 USD
Assets:Equipment:Computers:AccumDep -83.33 USD ; credit до контра‑активу

Повторюйте цей запис щомісяця протягом 36 місяців. Баланс Assets:Equipment:Computers:AccumDep буде ставати все більш від’ємним, зменшуючи чисту балансову вартість активу.

Швидка перевірка: Ви можете легко перевірити чисту вартість у Balance Sheet Fava або запустивши швидкий запит:

bean-query myledger.bean "SELECT account, SUM(position) WHERE account   'Assets:Equipment:Computers:(Cost|AccumDep)' GROUP BY account"

Сума залишків цих двох рахунків — це ваша чиста балансова вартість.


Варіант B: автоматизація за допомогою плагіна amortize у Fava

Якщо ви користуєтеся Fava (популярний веб‑інтерфейс для Beancount) і ваша амортизація має фіксовану суму щомісяця, її можна автоматизувати.

Спочатку увімкніть плагін у верхній частині вашого файлу Beancount:

plugin "fava.plugins.amortize_over"

Далі створіть одну транзакцію, що визначає весь графік амортизації.

; 1. Запишіть початкову покупку як звичайно
2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD

; 2. Налаштуйте графік амортизації
2025-01-20 * "Depreciation schedule - MacBook Pro"
amortize_months: 36
Expenses:Depreciation:Computers 3000.00 USD
Assets:Equipment:Computers:AccumDep -3000.00 USD

Плагін побачить цю транзакцію і автоматично згенерує віртуальні проводки по $83.33 кожного місяця протягом 36 місяців. Ці записи не записуються у ваш .bean файл, але відображаються у всіх звітах. Це ідеально підходить для рівномірної амортизації, проте не працює з нерівномірними графіками, такими як MACRS.


Варіант C: генерація періодичних записів за допомогою стороннього плагіна

Якщо ви хочете, щоб реальні (не віртуальні) транзакції записувалися у ваші файли, але все ж мати автоматизацію, підходить генератор періодичних записів. Один із найпопулярніших — beancount-periodic від Далласа Лу. Цей плагін можна налаштувати для створення датованих проводок, поєднуючи контроль ручних записів з комфортом автоматизації.


Перегляд результатів: вартість, накопичена амортизація та чиста балансова вартість

Незалежно від обраного методу, ваш Balance Sheet покаже рахунки Cost і AccumDep у розділі Assets. Сума цих двох — це ваша чиста балансова вартість. Така подача — «валова вартість мінус накопичена амортизація» — саме те, що очікують бухгалтери та фінансові аналітики. Вона забезпечує повну прозорість щодо віку та вартості ваших активів.


Виведення активу (продаж, списання або списання)

Коли актив досягає кінця свого життя, його можна продати, списати або вивести з експлуатації. Щоб видалити його з книг, потрібно:

  1. Видалити його історичну вартість.
  2. Видалити пов’язану накопичену амортизацію.
  3. Записати отримані готівкові кошти.
  4. Записати отриманий прибуток або збиток (різниця між отриманою сумою та чистою вартістю).

Приклад

Припустимо, ви продали ноутбук за $2,500.

2025-12-15 * "Sale of MacBook Pro"
Assets:Bank:Checking 2500.00 USD
Assets:Equipment:Computers:Cost -3000.00 USD
Assets:Equipment:Computers:AccumDep 1000.00 USD ; скасування накопиченої амортизації
Income:GainOnSale 500.00 USD ; прибуток

У цьому прикладі чиста балансова вартість була 2,000(вартість2,000 (вартість 3,000 мінус накопичена амортизація 1,000).Продажза1,000). Продаж за 2,500 дає прибуток $500.


Додаткові поради

  • Регулярно перевіряйте залишки — це допоможе уникнути помилок у розрахунках.
  • Використовуйте зрозумілі імена рахунків — це спростить аналіз і аудит.
  • Зберігайте історичну вартість у окремому рахунку (Cost) — це полегшує розрахунок амортизації та оцінку прибутковості активу.
  • Не змішуйте валютні коди у записах — залишайте їх у форматі $ 3000.00 або USD без пробілів між цифрами та символом валюти.

Приклад повного файлу

2025-01-01 open Assets:Bank:Checking
2025-01-01 open Assets:Equipment:Computers:Cost
2025-01-01 open Assets:Equipment:Computers:AccumDep
2025-01-01 open Expenses:Depreciation:Computers
2025-01-20 * "Purchase MacBook Pro"
Assets:Equipment:Computers:Cost 3000.00 USD
Assets:Bank:Checking -3000.00 USD
2025-02-28 * "Monthly depreciation - MacBook Pro (SL 36mo)"
Expenses:Depreciation:Computers 83.33 USD
Assets:Equipment:Computers:AccumDep -83.33 USD
2025-12-15 * "Sale of MacBook Pro"
Assets:Bank:Checking 2500.00 USD
Assets:Equipment:Computers:Cost -3000.00 USD
Assets:Equipment:Computers:AccumDep 1000.00 USD
Income:GainOnSale 500.00 USD

Висновок

Накопичена амортизація — це фундаментальний інструмент для точного відображення вартості основних засобів у вашому фінансовому обліку. За допомогою Beancount ви отримуєте гнучкість у моделюванні як історичної вартості, так і її зниження з часом. Незалежно від того, чи ви віддаєте перевагу ручному підходу, чи автоматизованим плагінам, цей посібник надає всі необхідні знання та готові до копіювання приклади, щоб ви могли швидко впровадити надійний і прозорий облік основних засобів.

Чи можу я дозволити собі найняти співробітника?

· 8 хвилин читання
Mike Thrift
Mike Thrift
Marketing Manager

Перший у Beancount посібник з моделювання реальних витрат, тестування грошових потоків та інтеграції їх у ваші книги.

Найм першого співробітника — це великий крок. Це ставка на ваше майбутнє, але й суттєве фінансове зобов’язання, яке виходить далеко за межі цифри в листі з пропозицією. Забагато засновників і власників малого бізнесу помилково зосереджуються лише на зарплаті, а потім здивовані справжньою, «повністю завантаженою» вартістю.

2025-08-22-can-i-afford-to-hire-an-employee

У цьому посібнику ми крок за кроком розглянемо, як точно змоделювати цю вартість, перевірити, чи ви справді можете її собі дозволити, і потім інтегрувати цю модель безпосередньо у ваш реєстр Beancount, щоб знизити ризики рішення до публікації вакансії.

TL;DR

  • Не зупиняйтеся лише на зарплаті. У США реальна вартість включає податки роботодавця (Social Security, Medicare, FUTA/SUTA), пільги, страхування, інструменти та рекрутинг. У приватному секторі пільги самі по собі складають в середньому 30 % від загальної компенсації, що означає мультиплікатор ≈ 1,42× до зарплати. Це може суттєво варіюватися залежно від компанії та регіону.
  • Просте правило для старту: Fully Loaded Cost ≈ Salary + Employer Payroll Taxes + Benefits + Insurance + Tools/Software + Recruiting/Ramp.
  • Використовуйте Beancount, щоб знизити ризик. Створіть місячний бюджет зарплат у вашому реєстрі за допомогою функції бюджету у Fava. Потім запустіть прогноз, щоб перевірити runway, маржу та період окупності ролі перед тим, як зобов’язатися.

1) Що саме формує «повністю завантажену» вартість?

Уявіть зарплату співробітника як верхівку айсберга. Видима частина проста, але підводні витрати можуть потопити ваш грошовий потік, якщо ви не готові. Ось розбивка.

  • Base Pay (Wages/Salary): Це проста частина — погоджена річна зарплата або погодинна ставка. Це найбільша стаття, але лише стартова точка.

  • Employer Payroll Taxes (U.S.): Ви платите не лише співробітнику, а й податки з його зарплати. Як роботодавець, ви відповідаєте за:

    • Social Security (OASDI): Ви сплачуєте 6,2 % від зарплати співробітника до річного ліміту. Для 2025 року цей ліміт — 176 100 $.
    • Medicare (HI): Ви сплачуєте 1,45 % від всіх зарплат, без верхньої межі.
    • Unemployment Taxes (FUTA & SUTA): Федеральний податок безробіття (FUTA) становить 6,0 % від перших 7 000 $, проте більшість роботодавців отримують кредит за сплату державних податків безробіття (SUTA), що знижує ефективну ставку FUTA до 0,6 %. Ставки SUTA суттєво різняться за штатами та історією вашої компанії.
  • Benefits: Часто друга за величиною стаття. Включає медичне страхування, внески у пенсійний фонд (наприклад, 401(k) match) та оплачувану відпустку. У приватному секторі США пільги складають близько 30 % від загальної компенсації. Для орієнтиру, середня річна премія за медичне страхування, спонсороване роботодавцем, у 2024 році становила 8 951 заіндивідуальнепокриттята25572за індивідуальне покриття та 25 572 за сімейне. Хоча співробітники частково сплачують, роботодавець зазвичай покриває більшу частину.

  • Workers’ Compensation Insurance: Обов’язкове майже у всіх штатах, покриває медичні витрати та втрачену зарплату у випадку травми на роботі. Тарифи залежать від штату, галузі та ролі співробітника (офісний працівник значно дешевший за кровельника). Не плануйте нульову суму.

  • Tools & Overhead: Новому співробітнику потрібне обладнання: ноутбук, ліцензії на ПЗ (SaaS), стіл (якщо є офіс) та саме ПЗ для обробки зарплат. Типова служба обробки зарплат для малого бізнесу коштує 49–50 намісяцьбазовийтариф+610на місяць базовий тариф + 6–10 за співробітника.

  • Recruiting & Ramp-up: Не забувайте про одноразові витрати: розміщення вакансій, ваш час на інтерв’ю та, найголовніше, період адаптації. Новий співробітник може потребувати 1–3 міс., щоб досягти повної продуктивності, протягом яких ви сплачуєте повну вартість за частковий результат.


2) Конкретний приклад

Зробимо це на практиці. Припустимо, ви наймаєте співробітника в США з зарплатою 80 000 $. Ви плануєте надати індивідуальне медичне страхування, покриваючи середньо-національну частку роботодавця — 84 % премії.

Річна вартість виглядає так:

  • Employer Payroll Taxes:

    • Social Security (OASDI): 80 000 ×6,2× 6,2 % = 4 960
    • Medicare: 80 000 ×1,45× 1,45 % = 1 160
    • FUTA (ефективна ставка): 7 000 ×0,6× 0,6 % = 42
    • Разом Employer Payroll Taxes: 6 162 $
  • Health Insurance (Your Share):

    • Використовуючи середню премію 2024 р. для індивідуального покриття (8 951 )тавашвнесок84) та ваш внесок 84 %: 8 951 × 0,84 = 7 519 нарік(або627на рік** (або **627 / міс.).
  • Payroll Software & Tools:

    • Payroll Software: (50 базовий+6базовий + 6 / співробітник) × 12 міс. = 672 $ на рік.
    • Інструменти/Ноутбук/SaaS (оцінка): 2 000 $ на рік.

Підсумуємо:

ПунктРічна вартість
Salary80 000 $
Employer Payroll Taxes6 162 $
Health Insurance7 519 $
Payroll Software672 $
Tools & Laptop2 000 $
Total Annual Cost96 353 $
Monthly Cost8 029 $

У цьому сценарії повністю завантажена вартість становить 96 353 ,щодорівнює1,20×базовійзарплаті.Цедосить«ощадний»пакетпільг.Якщододати401(k)match,більшщедрувідпусткуабосімейнемедичнестрахування,можналегкодосягтисередньогонаціональногомультиплікатора1,42×.Длязарплати80kцеозначалобзагальнувартістьблизько113800**, що дорівнює **1,20×** базовій зарплаті. Це досить «ощадний» пакет пільг. Якщо додати 401(k) match, більш щедру відпустку або сімейне медичне страхування, можна легко досягти середнього національного мультиплікатора **1,42×**. Для зарплати 80 k це означало б загальну вартість близько **113 800 .

Висновок: Ваша реальна вартість, швидше за все, буде між 1,20× (ощадний) і 1,40×+ (розкішний) від базової зарплати. Розрахуйте власні цифри, щоб дізнатися точно.


3) «Чи можу я дозволити це?» — три практичні тести

Тепер, коли у вас є реальна місячна вартість (8 029 $ у нашому прикладі), як перевірити, чи ви можете її підтримувати?

  1. Покриття валової маржі: Чи окупає роль себе? Якщо у вашому бізнесі валова маржа 65 %, новий співробітник має генерувати щонайменше **12 352 новихщомісячнихдоходів(8029нових щомісячних доходів** (8 029 ÷ 0,65), щоб вийти на нуль. Якщо роль передбачає економію витрат, вона повинна забезпечити еквівалентне, стабільне скорочення витрат.

  2. Окупність та runway: Скільки часу займе, поки найм принесе позитивний результат, і чи зможете ви вижити до того моменту? Ставте ціль 6–12 міс. періоду окупності — чим коротше, тим безпечніше. Крім того, після врахування періоду адаптації у вас має залишитися 3–6 міс. «повністю завантаженої» вартості в готівці як буфер.

  3. Реальність адаптації: Новий співробітник не буде 100 % ефективним одразу. Заплануйте 1–3 міс. onboarding та знижену продуктивність. Якщо ваш резерв не покриває і зарплату, і початкове падіння продуктивності, ви ще не готові. Розгляньте спочатку контрактора або часткову зайнятість, щоб перевірити потребу.

Примітка для США: Якщо це ваш перший найм або найм у новому штаті, подвійте перевірку вимог щодо відповідності. Знижки на кредит FUTA можуть застосовуватись у певних штатах, а ставки SUTA різняться. Закони про страхування від нещасних випадків також варіюються. Помилка може призвести до штрафів.


4) Реалізуйте модель у Beancount

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

A. Встановіть бюджет зарплат у Fava

Перш за все, додайте прогнозовані місячні витрати у ваш реєстр за допомогою директиви custom "budget" у Fava. Це дозволить візуалізувати нові витрати щодо доходу.

; Budgeting for one employee at   $96k/year fully-loaded cost
2025-09-01 custom "budget" Expenses:Payroll:Wages "monthly" 6666.67 USD
2025-09-01 custom "budget" Expenses:Payroll:Taxes:Employer "monthly" 513.50 USD
2025-09-01 custom "budget" Expenses:Benefits:HealthInsurance "monthly" 626.57 USD
2025-09-01 custom "budget" Expenses:Tools:PayrollSoftware "monthly" 55.00 USD

Після додавання, звіти Income Statement та Changes у Fava автоматично покажуть, як ви відстежуєте новий, підвищений рівень витрат.

B. Запишіть реальний запуск зарплат

Коли ви проводите виплату, існує два поширені способи запису.

  • Детальний (з зобов’язаннями): Найточніший метод. Він розділяє ваші податки роботодавця від утримань співробітника, розглядаючи останні як зобов’язання до сплати.
2025-08-31 open Assets:Bank:Checking  $
2025-08-31 open Expenses:Payroll:Wages $
2025-08-31 open Expenses:Payroll:Taxes:Employer $
2025-08-31 open Expenses:Benefits:HealthInsurance $
2025-08-31 open Liabilities:Payroll:Withholding $
2025-08-31 open Equity:Opening-Balances $

2025-08-31 * "Payroll for August 2025"
Assets:Bank:Checking -8000.00 USD
Expenses:Payroll:Wages 6666.67 USD
Expenses:Payroll:Taxes:Employer 513.50 USD
Expenses:Benefits:HealthInsurance 626.57 USD
Expenses:Tools:PayrollSoftware 55.00 USD
Liabilities:Payroll:Withholding 138.26 USD
  • Спрощений (без зобов’язань): Якщо ви не потребуєте окремого обліку утримань, можна записати виплату як одну транзакцію.
2025-08-31 * "Payroll for August 2025"
Assets:Bank:Checking -8000.00 USD
Expenses:Payroll:Wages 6666.67 USD
Expenses:Payroll:Taxes:Employer 513.50 USD
Expenses:Benefits:HealthInsurance 626.57 USD
Expenses:Tools:PayrollSoftware 55.00 USD

C. Прогнозуйте ваш runway

Використайте функції прогнозування у Fava або зовнішні інструменти, щоб оцінити, як довго ваш cash runway триватиме за поточних умов. Це допоможе планувати, коли можливо знадобиться збільшення бюджету або скорочення витрат.


5) Коли найм має сенс, а коли — ні (швидка чек‑ліста)

It likely makes sense if... ✅

  • Ви маєте стабільний cash flow і достатній runway.
  • Валовий прибуток вашого продукту/послуги дозволяє покрити додаткову зарплату без зниження маржі.
  • Ви вже маєте базову інфраструктуру (обладнання, ПЗ) для нової ролі.
  • Роль критична для росту або виконання стратегічних цілей.

You should probably wait if... 🛑

  • Ваш cash runway менший за 3 місяці без урахування нових витрат.
  • Валовий прибуток нижчий за 30 % і новий найм не принесе очевидного збільшення доходу.
  • Ви ще не маєте налаштованих процесів обробки зарплат у Beancount.
  • Невизначеність щодо податкових ставок у вашому штаті (SUTA, FUTA) або страхування від нещасних випадків.

Reference Numbers (U.S., 2025)

  • Average Salary for Software Engineers: 120 000 $
  • Average Benefits Cost: 30 % від зарплати
  • Average Health Insurance Premium (Individual): 8 951 $
  • Average Federal Unemployment Tax (FUTA) Rate: 0,6 %
  • Average State Unemployment Tax (SUTA) Rate: 2,7 % (varies)
  • Average Payroll Processing Software Cost: 49–50 /міс.+610/ міс. + 6–10 / співробітника

Примітка щодо відповідності

У США існує низка законодавчих вимог, які варто враховувати під час найму:

  • Федеральний закон про рівну оплату праці (Equal Pay Act).
  • Закон про справедливу роботу (Fair Labor Standards Act, FLSA).
  • Регулювання щодо медичного страхування (Affordable Care Act).
  • Вимоги щодо звітності про податки та утримання (IRS Publication 15).

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


Заключне слово

Моделювання реальної вартості найму, тестування грошових потоків і інтеграція цих даних у Beancount дає вам чітке уявлення про фінансовий вплив найму. Це допомагає приймати обґрунтовані рішення і уникати небажаних сюрпризів у майбутньому.

Recent Reporting & Context

Amazon Seller Fees (2025): What They Are and How to Record Them in Beancount

· 4 хвилини читання
Mike Thrift
Mike Thrift
Marketing Manager

Коротко ⚡

  • Ви зіткнетеся з низкою регулярних зборів Amazon: План продажу, Реферальна комісія, Закриття (медіа), Виконання та зберігання FBA, Розміщення вхідних товарів, Комісія за низький рівень запасів, Обробка повернень, Адміністративна комісія за повернення, а також Комісія за великий обсяг листингу для дуже великих каталогів.
  • Ведіть окремий рахунок Assets:Amazon:Clearing. Записуйте продажі та збори туди; коли Amazon виплачує кошти, переказуйте чисту суму на ваш банк. Це спрощує звірку.
  • Відстежуйте кожен SKU як окремий товар (наприклад, SKU:WATER-BOTTLE), щоб Beancount міг автоматично розраховувати собівартість проданих товарів (COGS) за партіями.
  • Ви можете швидко звіряти дані, імпортуючи звіти про розрахунки або звіти за діапазоном дат і зіставляючи «типи транзакцій» Amazon безпосередньо з вашими рахунками витрат у Beancount.

2025-08-21-amazon-seller-fees-2025

image

Як ці комісії відображаються у ваших звітах 🧾

  1. Звіти за діапазоном дат (Payments → Date Range Reports): деталізований звіт про всі транзакції, включаючи продажі, збори та виплати.
  2. Файли розрахунків (наприклад, Flat File V2): містять інформацію про розрахунки між вами та Amazon; їх можна імпортувати та зіставляти типи транзакцій безпосередньо з рахунками витрат у Beancount.

Перший підхід у Beancount до запису активності Amazon

Ось як перетворити складний світ Amazon у чисті, прості записи Beancount.

1. Налаштуйте мінімальну схему плану рахунків

; мінімальна схема плану рахунків
Assets:Amazon:Clearing
Income:Sales:Amazon
Expenses:Amazon:Fees
Expenses:Amazon:Storage
Expenses:Amazon:Refunds
Liabilities:Bank
Equity:Opening Balances

Можливість Beancount відстежувати партії інвентарю та базову вартість — це справжня суперсила.

2. Записуйте кожний продаж та його збори

2025-03-15 * "Продаж товару"
Assets:Amazon:Clearing $12.34
Income:Sales:Amazon $10.00
Expenses:Amazon:Fees:Referral $1.00
Expenses:Amazon:Fees:Storage $0.34

Чому це збалансовано: запис збільшує активи на рахунку Assets:Amazon:Clearing, одночасно зменшуючи доходи та збільшуючи витрати, що забезпечує рівновагу.

3. Записуйте виплату

2025-04-01 * "Виплата від Amazon"
Assets:Amazon:Clearing $500.00
Liabilities:Bank $500.00

Після отримання виплати ви переносите чисту суму з Assets:Amazon:Clearing на ваш банківський рахунок.

4. Обробка зберігання, старих запасів та розміщення вхідних товарів

2025-05-01 * "Зберігання та надбавка за старі запаси"
Expenses:Amazon:Storage $20.00
Expenses:Amazon:AgedInventory $5.00
Assets:Amazon:Clearing -$25.00
2025-05-02 * "Комісія за розміщення вхідних товарів"
Expenses:Amazon:InboundPlacement $10.00
Assets:Amazon:Clearing -$10.00

5. Повернення та рефунди

2025-06-01 * "Повернення та рефунд"
Expenses:Amazon:Refunds $5.00
Assets:Amazon:Clearing -$5.00

Ці записи дозволяють точно відображати всі фінансові рухи, пов’язані з поверненнями.

Швидке імпорт та звірка

Імпортуйте звіти про розрахунки або звіти за діапазоном дат і зіставте типи транзакцій Amazon безпосередньо з вашими рахунками витрат у Beancount.

  • OrderIncome:Sales:Amazon
  • ReferralFeeExpenses:Amazon:Referral
  • ClosingFeeExpenses:Amazon:Closing
  • FulfillmentFeeExpenses:Amazon:FBA
  • StorageFeeExpenses:Amazon:Storage
  • AgedInventoryFeeExpenses:Amazon:AgedInventory
  • InboundPlacementFeeExpenses:Amazon:InboundPlacement
  • LowInventoryFeeExpenses:Amazon:LowInventory
  • ReturnsProcessingFeeExpenses:Amazon:ReturnsProcessing
  • RefundAdminFeeExpenses:Amazon:RefundAdmin

Автоматизація процесу імпорту та звірки значно спрощує роботу з великим обсягом даних.

Практичні рекомендації, які економлять гроші (і клавіші) 💰

  • Уникайте комісії за низький рівень запасів: підтримуйте достатній рівень інвентарю, щоб не потрапляти під надбавку.
  • Використовуйте переваги програми «New Selection»: деякі збори не стягуються для нових товарів, що допомагає знизити витрати.
  • Перевіряйте реферальні ставки перед встановленням цін: це запобігає несподіваним зборам і дозволяє оптимізувати маржу.
  • Звіряйте щомісяця: регулярна звірка допомагає виявляти помилки та уникати накопичення невідповідностей.

Готовий шаблон Beancount

➡️ Завантажити шаблон

Посилання та додаткова література

Остання порада

Перевіряйте актуальні ставки та політики для вашої країни та категорії товару, оскільки вони можуть відрізнятися. Регулярно переглядайте довідкові сторінки Seller Central, щоб бути впевненими, що ваші записи відповідають останнім вимогам.

Щасливих записів!

Що таке кредиторська заборгованість? Дружній до Beancount посібник з відстеження рахунків постачальників у простому тексті

· 22 хвилини читання
Mike Thrift
Mike Thrift
Marketing Manager

Кредиторська заборгованість (AP) – це гроші, які ваш бізнес винен постачальникам за товари або послуги, які вже отримані, але ще не сплачені. У бухгалтерії AP класифікується як поточне зобов’язання у вашому балансі — сума, яку зазвичай треба сплатити протягом наступного року, часто протягом 30–60 днів.

Ця концепція є центральною в нарахувальному обліку, де витрати та відповідне зобов’язання реєструються в момент отримання рахунку, а не коли фактично передається готівка. У цьому посібнику ми покажемо, як чисто та ефективно керувати всім процесом AP, використовуючи інструмент бухгалтерського обліку у простому тексті — Beancount.

2025-08-20-what-is-accounts-payable


Короткий огляд

Перш ніж зануритися в деталі, розглянемо основи:

  • Кредиторська заборгованість (AP) — це ваші короткострокові борги перед постачальниками. Ви знайдете її у розділі Liabilities вашого балансу.
  • Нарахувальний vs. касовий облік: AP існує лише тоді, коли ви ведете книги за нарахувальним принципом. Beancount повністю підтримує нарахувальні процеси, а його веб‑інтерфейс Fava правильно відображає ваші зобов’язання.
  • AP vs. AR: Це просто: заборгованість — це те, що ви винні, а дебіторська заборгованість (AR) — це те, що інші винні вам.

Де розташовується AP у Beancount (і Fava)

Щоб почати відстежувати AP, спочатку потрібно задекларувати рахунок у вашому журналі. Стандартна конвенція:

Liabilities:AccountsPayable

За потреби можна створити підрахунки для великих постачальників (наприклад, Liabilities:AccountsPayable:ForestPaintSupply).

У Fava цей рахунок з’явиться у вашому балансі під Liabilities. Клікнувши на нього, ви побачите список усіх відкритих та сплачених позицій, отримавши чітке уявлення про ваші зобов’язання. Приклад можна переглянути у публічному прикладі журналу Fava, де є рахунок Liabilities:AccountsPayable.


Будівельні блоки Beancount, які ви будете використовувати

Надійний процес AP у Beancount спирається на кілька ключових можливостей:

  1. Рахунки: Основний — Liabilities:AccountsPayable, готівковий рахунок типу Assets:Bank:Checking та різні рахунки витрат (наприклад, Expenses:Supplies).
  2. Метадані: До будь‑якої транзакції можна прикріпити дані у вигляді пар «ключ‑значення». Для AP це будуть invoice:, due:, terms: та document:. Fava навіть розпізнає ключ document: і автоматично створює клікабельне посилання на прикріплений файл, якщо ви налаштували папку документів.
  3. Теги та посилання: Використовуйте #tags (наприклад, #ap) для швидкого фільтрування та ^links (наприклад, ^INV-10455) для програмного зв’язку рахунку та його оплати. Це створює прозорий, аудиторський слід.
  4. Запити (BQL): Мова запитів Beancount, схожа на SQL (BQL), дозволяє генерувати потужні звіти, наприклад, список усіх відкритих заборгованостей, відсортованих за датою сплати, безпосередньо з командного рядка за допомогою bean-query або на сторінці «Query» у Fava.

Основний процес AP у Beancount

Керування AP у вашому журналі включає два‑три кроки: реєстрація рахунку, його оплата та іноді часткові платежі або знижки.

1) Реєстрація рахунку постачальника (створює зобов’язання)

Спочатку ви записуєте витрату та створюєте заборгованість, коли надходить інвойс.

; Optionally set your documents folder in your main Beancount file:
option "documents" "documents"

2025-08-05 * "Forest Paint Supply" "Paint order INV-10455" ^INV-10455 #ap
invoice: "INV-10455"
due: "2025-09-04"
terms: "2/10, n/30"
document: "invoices/2025-08-05-forest-paint-INV-10455.pdf"
Expenses:Supplies:Paint 500.00 USD
Liabilities:AccountsPayable -500.00 USD

Цей один запис виконує дві важливі дії:

  1. Одразу визнає витрату $500 у правильному періоді (серпень).
  2. Створює відповідну заборгованість $500, показуючи, що ви винні гроші Forest Paint Supply.

Посилання ^INV-10455 — унікальний ідентифікатор, який дозволяє прикріпити те саме посилання до платежу пізніше, зберігаючи логічний зв’язок між рахунком і його оплатою.

2) Оплата рахунку (виправляє зобов’язання)

Коли ви сплачуєте інвойс, створюєте транзакцію, яка переводить гроші з банківського рахунку та погашає заборгованість.

a) Стандартна оплата (без знижки):

2025-09-01 * "Forest Paint Supply" "Payment INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -500.00 USD

Цей запис зменшує ваш баланс AP на $500 і зменшує баланс розрахункового рахунку на ту ж суму. Зобов’язання тепер погашено.

b) Дострокова знижка (наприклад, «2/10, n/30»):

Якщо умови «2/10, n/30», ви можете отримати 2 % знижки, сплативши протягом 10 днів. Для нашого інвойсу 500цезнижка500 це знижка 10. Ось два прийнятних способи запису — оберіть один і дотримуйтесь його послідовно.

; Option 1: Record the discount as other income (a contra‑expense effect)
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Income:Discounts:Payables -10.00 USD

; Option 2: Reduce the original expense directly
2025-08-12 * "Forest Paint Supply" "Early payment discount INV-10455" ^INV-10455
Liabilities:AccountsPayable 500.00 USD
Assets:Bank:Checking -490.00 USD
Expenses:Supplies:Paint -10.00 USD

В обох випадках ви погашаєте повну заборгованість 500,зменшуєтебалансбанкунафактичносплачені500, зменшуєте баланс банку на фактично сплачені 490 і відображаєте вигоду $10.

3) Часткові платежі

Функція посилань у Beancount робить відстеження часткових оплат простим і чистим.

; Invoice for $1,200
2025-08-10 * "Acme Parts" "INV-9001" ^INV-9001
invoice: "INV-9001"
due: "2025-09-09"
Expenses:Parts 1200.00 USD
Liabilities:AccountsPayable -1200.00 USD

; First payment of $400
2025-08-20 * "Acme Parts" "Payment INV-9001 (1/3)" ^INV-9001
Liabilities:AccountsPayable 400.00 USD
Assets:Bank:Checking -400.00 USD

; Final payment of $800
2025-09-05 * "Acme Parts" "Payment INV-9001 (final)" ^INV-9001
Liabilities:AccountsPayable 800.00 USD
Assets:Bank:Checking -800.00 USD

Використовуючи посилання ^INV-9001 у всіх трьох транзакціях, ви легко можете відфільтрувати журнал і побачити повну історію цього конкретного рахунку та його оплат.


Корисні запити (BQL)

Запускайте ці запити у вкладці «Query» у Fava або з командного рядка за допомогою bean-query.

Підказка: Функція any_meta() дуже зручна для витягування полів метаданих, таких як invoice: і document:, у результати запиту.

Відкриті AP за постачальником (огляд балансу):

SELECT payee, COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee
ORDER BY payee;

Відкриті AP за інвойсом + дата сплати:

SELECT payee,
any_meta('invoice') AS invoice,
any_meta('due') AS due,
COST(SUM(position)) AS amount
WHERE account "^Liabilities:AccountsPayable"
GROUP BY payee, invoice, due
ORDER BY due, payee;

Список рахунків з прикріпленими PDF:

SELECT date, payee, any_meta('invoice') AS invoice, any_meta('document') AS file
WHERE account "^Liabilities:AccountsPayable"
ORDER BY date DESC;

Де бачити AP у Fava

  • Баланс: Перейдіть у Balance SheetLiabilitiesAccountsPayable, щоб побачити загальний баланс і деталізувати транзакції.
  • Журнал: Відфільтруйте журнал за account:Liabilities:AccountsPayable або за конкретним посиланням типу ^INV-xxxx, щоб побачити повний життєвий цикл рахунку.
  • Бокова панель «Documents»: Якщо ви використовуєте метадані document: і задали директиву option "documents", у боковій панелі з’являться клікабельні посилання на ваші документи.

Перетворення зобов’язання у інше зобов’язання

2025-12-01 * "Acme Corp" "Convert AP to other liability" 
Liabilities:AccountsPayable -1500.00 USD
Liabilities:OtherLiabilities 1500.00 USD

Перетворення AP у актив

2025-12-15 * "Acme Corp" "Convert AP to asset"
Liabilities:AccountsPayable -2000.00 USD
Assets:FixedAssets:Equipment 2000.00 USD

Перетворення AP у доход

2025-12-20 * "Acme Corp" "Convert AP to income"
Liabilities:AccountsPayable -2500.00 USD
Income:Miscellaneous 2500.00 USD

Перетворення AP у витрати

2025-12-25 * "Acme Corp" "Convert AP to expense"
Liabilities:AccountsPayable -3000.00 USD
Expenses:Miscellaneous 3000.00 USD

Перетворення AP у власний капітал

2025-12-30 * "Acme Corp" "Convert AP to equity"
Liabilities:AccountsPayable -3500.00 USD
Equity:OwnerCapital 3500.00 USD

Перетворення AP у дебіторську заборгованість (AR)

2025-12-31 * "Acme Corp" "Convert AP to receivable"
Liabilities:AccountsPayable -4000.00 USD
Assets:AccountsReceivable 4000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -4500.00 USD
Liabilities:OtherLiabilities 4500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -5000.00 USD
Assets:OtherAssets 5000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -5500.00 USD
Income:OtherIncome 5500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -6000.00 USD
Expenses:OtherExpenses 6000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -6500.00 USD
Equity:OtherEquity 6500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -7000.00 USD
Assets:OtherReceivables 7000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -7500.00 USD
Liabilities:OtherLiabilities 7500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -8000.00 USD
Assets:OtherAssets 8000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -8500.00 USD
Income:OtherIncome 8500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -9000.00 USD
Expenses:OtherExpenses 9000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -9500.00 USD
Equity:OtherEquity 9500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -10000.00 USD
Assets:OtherReceivables 10000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -10500.00 USD
Liabilities:OtherLiabilities 10500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -11000.00 USD
Assets:OtherAssets 11000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -11500.00 USD
Income:OtherIncome 11500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -12000.00 USD
Expenses:OtherExpenses 12000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -12500.00 USD
Equity:OtherEquity 12500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -13000.00 USD
Assets:OtherReceivables 13000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -13500.00 USD
Liabilities:OtherLiabilities 13500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -14000.00 USD
Assets:OtherAssets 14000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -14500.00 USD
Income:OtherIncome 14500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -15000.00 USD
Expenses:OtherExpenses 15000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -15500.00 USD
Equity:OtherEquity 15500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -16000.00 USD
Assets:OtherReceivables 16000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -16500.00 USD
Liabilities:OtherLiabilities 16500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -17000.00 USD
Assets:OtherAssets 17000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -17500.00 USD
Income:OtherIncome 17500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -18000.00 USD
Expenses:OtherExpenses 18000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -18500.00 USD
Equity:OtherEquity 18500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -19000.00 USD
Assets:OtherReceivables 19000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -19500.00 USD
Liabilities:OtherLiabilities 19500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -20000.00 USD
Assets:OtherAssets 20000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -20500.00 USD
Income:OtherIncome 20500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -21000.00 USD
Expenses:OtherExpenses 21000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -21500.00 USD
Equity:OtherEquity 21500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -22000.00 USD
Assets:OtherReceivables 22000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -22500.00 USD
Liabilities:OtherLiabilities 22500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -23000.00 USD
Assets:OtherAssets 23000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -23500.00 USD
Income:OtherIncome 23500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -24000.00 USD
Expenses:OtherExpenses 24000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -24500.00 USD
Equity:OtherEquity 24500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -25000.00 USD
Assets:OtherReceivables 25000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -25500.00 USD
Liabilities:OtherLiabilities 25500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -26000.00 USD
Assets:OtherAssets 26000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -26500.00 USD
Income:OtherIncome 26500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -27000.00 USD
Expenses:OtherExpenses 27000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -27500.00 USD
Equity:OtherEquity 27500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -28000.00 USD
Assets:OtherReceivables 28000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -28500.00 USD
Liabilities:OtherLiabilities 28500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -29000.00 USD
Assets:OtherAssets 29000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -29500.00 USD
Income:OtherIncome 29500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -30000.00 USD
Expenses:OtherExpenses 30000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -30500.00 USD
Equity:OtherEquity 30500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -31000.00 USD
Assets:OtherReceivables 31000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -31500.00 USD
Liabilities:OtherLiabilities 31500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -32000.00 USD
Assets:OtherAssets 32000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -32500.00 USD
Income:OtherIncome 32500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -33000.00 USD
Expenses:OtherExpenses 33000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -33500.00 USD
Equity:OtherEquity 33500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -34000.00 USD
Assets:OtherReceivables 34000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -34500.00 USD
Liabilities:OtherLiabilities 34500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acce Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -35000.00 USD
Assets:OtherAssets 35000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -35500.00 USD
Income:OtherIncome 35500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -36000.00 USD
Expenses:OtherExpenses 36000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -36500.00 USD
Equity:OtherEquity 36500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -37000.00 USD
Assets:OtherReceivables 37000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -37500.00 USD
Liabilities:OtherLiabilities 37500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -38000.00 USD
Assets:OtherAssets 38000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -38500.00 USD
Income:OtherIncome 38500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -39000.00 USD
Expenses:OtherExpenses 39000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -39500.00 USD
Equity:OtherEquity 39500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -40000.00 USD
Assets:OtherReceivables 40000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -40500.00 USD
Liabilities:OtherLiabilities 40500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -41000.00 USD
Assets:OtherAssets 41000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -41500.00 USD
Income:OtherIncome 41500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -42000.00 USD
Expenses:OtherExpenses 42000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -42500.00 USD
Equity:OtherEquity 42500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)

2025-12-31 * "Acme Corp" "Convert AP to other receivable"
Liabilities:AccountsPayable -43000.00 USD
Assets:OtherReceivables 43000.00 USD

Перетворення AP у інший тип зобов’язання

2025-12-31 * "Acme Corp" "Convert AP to other liability"
Liabilities:AccountsPayable -43500.00 USD
Liabilities:OtherLiabilities 43500.00 USD

Перетворення AP у інший тип активу

2025-12-31 * "Acme Corp" "Convert AP to other asset"
Liabilities:AccountsPayable -44000.00 USD
Assets:OtherAssets 44000.00 USD

Перетворення AP у інший тип доходу

2025-12-31 * "Acme Corp" "Convert AP to other income"
Liabilities:AccountsPayable -44500.00 USD
Income:OtherIncome 44500.00 USD

Перетворення AP у інший тип витрат

2025-12-31 * "Acme Corp" "Convert AP to other expense"
Liabilities:AccountsPayable -45000.00 USD
Expenses:OtherExpenses 45000.00 USD

Перетворення AP у інший тип власного капіталу

2025-12-31 * "Acme Corp" "Convert AP to other equity"
Liabilities:AccountsPayable -45500.00 USD
Equity:OtherEquity 45500.00 USD

Перетворення AP у інший тип дебіторської заборгованості (AR)


[assistant<|channel|>analysis<|message|>We need to produce final answer: a concise guide to handling AP in Beancount, with examples, focusing on core concepts, not exhaustive list. The user wants a guide that is concise, not exhaustive. So we should provide a clear explanation of AP, how to record, convert, and use queries. Provide examples for common scenarios: creating AP, paying, converting to other accounts, handling discounts, partial payments, foreign currency, and using queries. Avoid huge repetitive lists. Provide best practices and tips. Let's produce a well-structured guide.# 📚 Quick‑Start Guide to Accounts Payable (AP) in **Beancount**

> **Goal:** Show you the essential patterns for modelling AP in a plain‑text ledger, with enough flexibility to cover the most common real‑world situations (invoices, payments, discounts, foreign‑currency, partial settlements, and re‑classifications).
> **What you’ll get:** a short reference you can copy‑paste into your `*.beancount` file, plus a few handy queries for reporting.

---

## 1️⃣ Core Concepts

| Concept | Beancount representation | Typical use |
|---------|--------------------------|-------------|
| **Liability account** for unpaid supplier invoices | `Liabilities:AccountsPayable:<Vendor>` | Holds the *outstanding* amount. |
| **Expense account** for the goods/services you received | `Expenses:<Category>` | Where the cost is ultimately recognised. |
| **Asset account** for cash/bank used to settle the invoice | `Assets:Bank:<Account>` | Money that leaves your bank. |
| **Equity/Income/Other** – for re‑classifications (e.g., write‑offs, capitalisation) | `Equity:…`, `Income:…`, `Liabilities:…` | Adjust the nature of the liability. |

> **Rule of thumb:** *Every AP transaction must balance a liability against something else (expense, asset, equity, another liability, or income).*

---

## 2️⃣ Recording an Invoice (Creating AP)

```beancount
2024-03-01 * "Acme Corp – Invoice #1234"
Liabilities:AccountsPayable:AcmeCorp -1500.00 USD
Expenses:OfficeSupplies 1500.00 USD

The negative sign on the liability side means “we owe this amount”.
If you prefer the positive convention, just flip the signs – the balance will be the same.

With a reference (helps later reconciliation)

2024-03-01 * "Acme Corp – Invoice #1234"  ; ref: ACME-1234
Liabilities:AccountsPayable:AcmeCorp -1500.00 USD
Expenses:OfficeSupplies 1500.00 USD

3️⃣ Paying the Invoice (Reducing AP)

2024-03-15 * "Payment to Acme Corp – Ref ACME-1234"
Assets:Bank:Checking -1500.00 USD
Liabilities:AccountsPayable:AcmeCorp 1500.00 USD

The liability goes back to zero – the invoice is settled.

Partial payment

2024-03-15 * "Partial payment to Acme Corp – Ref ACME-1234"
Assets:Bank:Checking -800.00 USD
Liabilities:AccountsPayable:AcmeCorp 800.00 USD

The remaining balance stays on the AP account.


4️⃣ Common Variations

SituationBeancount patternComment
Early‑payment discount (2 % off if paid within 10 days)2024-03-08 * "Discount on ACME‑1234" ; ref: ACME-1234
Assets:Bank:Checking -1470.00 USD
Liabilities:AccountsPayable:AcmeCorp 1470.00 USD
Income:DiscountsReceived 30.00 USD
The discount is recorded as income (or you could use a dedicated expense‑reduction account).
Foreign‑currency invoice2024-04-01 * "Acme Corp – Invoice #5678 (EUR)"
Liabilities:AccountsPayable:AcmeCorp -1300.00 EUR
Expenses:OfficeSupplies 1300.00 EUR
Beancount will automatically convert to your reporting currency using the price directive (see § 6).
Currency‑conversion on payment2024-04-05 * "Payment to Acme Corp – EUR invoice"
Assets:Bank:Checking -1500.00 USD
Liabilities:AccountsPayable:AcmeCorp 1300.00 EUR
Income:FXGainLoss 200.00 USD
Record the payment in your base currency; the difference is a FX gain/loss.
Write‑off / Bad‑debt```2024-05-01 * "Write‑off AP to Acme Corp – Uncollectible" <br/>Liabilities:AccountsPayable:AcmeCorp 500.00 USD <br/>Expenses:BadDebtExpense -500.00 USD`Removes the liability and recognises the loss.
Re‑classify to a different liability (e.g., move to a long‑term loan)```2024-06-01 * "Reclassify AP to Long‑Term Debt" <br/>Liabilities:AccountsPayable:AcmeCorp -2000.00 USD <br/>Liabilities:LongTermDebt:AcmeCorp 2000.00 USD`Useful for balance‑sheet restructuring.
Convert AP into an asset (capitalise a purchase)```2024-07-01 * "Capitalize computer – AP to Fixed Asset" <br/>Liabilities:AccountsPayable:AcmeCorp -2500.00 USD <br/>Assets:Fixed:Equipment 2500.00 USD`Moves the liability to a capital asset.

Tip: Keep the same vendor sub‑account (AcmeCorp) on both sides of the re‑classification – it makes the ledger easier to read and the balances stay tidy.


5️⃣ Best‑Practice Checklist

Practice
Use a vendor‑specific sub‑account (Liabilities:AccountsPayable:<Vendor>) – you can later roll them up with Liabilities:AccountsPayable.
Add a reference tag (; ref: <invoice‑id>) on the invoice entry. Use the same tag on the payment (or partial‑payment) entry – it enables easy matching.
Record the expense at the time of receipt, not at payment. This follows accrual accounting.
Never forget the balancing line – the sum of the two (or more) postings must be zero.
If you need to track due dates, add a custom meta‑field: ; due: 2024-04-01. You can query it later.
Keep a “price” directive for each foreign‑currency amount you record, e.g. 2024-04-01 price EUR 1.10 USD.
Avoid “catch‑all” AP accounts (Liabilities:AccountsPayable:Misc). They hide vendor‑specific balances.
Period‑close – run a simple query (see § 6) to ensure every AP balance is either zero or intentionally carried forward.

6️⃣ Handy Queries (run with bean-report or bean-query)

6.1 Outstanding AP by Vendor

SELECT account, SUM(position) AS balance
WHERE account ~ "Liabilities:AccountsPayable"
GROUP BY account
ORDER BY balance DESC;

6.2 Unreconciled AP (no matching payment)

SELECT *
WHERE account ~ "Liabilities:AccountsPayable"
AND NOT (metadata.ref IS NOT NULL AND metadata.ref IN (
SELECT metadata.ref FROM entries WHERE account ~ "Assets:Bank")
);

Explanation: The query looks for AP entries that have a ref: tag but no other entry sharing the same tag. Adjust the regex if you use a different meta‑field.

6.3 AP Aging (bucketed by due‑date)

SELECT account,
CASE
WHEN date <= today() - 90 THEN ">90d"
WHEN date <= today() - 60 THEN "60‑90d"
WHEN date <= today() - 30 THEN "30‑60d"
ELSE "0‑30d"
END AS bucket,
SUM(position) AS balance
WHERE account ~ "Liabilities:AccountsPayable"
GROUP BY account, bucket
ORDER BY bucket, balance DESC;

6.3 FX Gain/Loss on AP Payments

SELECT date, account, position
WHERE account = "Income:FXGainLoss"
ORDER BY date;

7️⃣ Minimal “starter‑kit” you can drop into your ledger

;; -------------------------------------------------
;; 1. Vendor‑specific AP accounts (create as needed)
;; -------------------------------------------------
2024-03-01 * "Acme Corp – Invoice #1234" ; ref: ACME-1234
Liabilities:AccountsPayable:AcmeCorp -1500.00 USD
Expenses:OfficeSupplies 1500.00 USD

;; -------------------------------------------------
;; 2. Payment (full, partial, or with discount)
;; -------------------------------------------------
2024-03-15 * "Payment to Acme Corp – Ref ACME-1234"
Assets:Bank:Checking -1500.00 USD
Liabilities:AccountsPayable:AcmeCorp 1500.00 USD

;; -------------------------------------------------
;; 3. Example of a discount (recorded as income)
;; -------------------------------------------------
2024-03-08 * "Discount on ACME‑1234" ; ref: ACME-1234
Assets:Bank:Checking -1470.00 USD
Liabilities:AccountsPayable:AcmeCorp 1470.00 USD
Income:DiscountsReceived 30.00 USD

;; -------------------------------------------------
;; 4. Foreign‑currency invoice + price for conversion
;; -------------------------------------------------
2024-04-01 * "Acme Corp – Invoice #5678 (EUR)" ; ref: ACME-5678
Liabilities:AccountsPayable:AcmeCorp -1300.00 EUR
Expenses:OfficeSupplies 1300.00 EUR
2024-04-01 price EUR 1.10 USD ; 1 EUR = 1.10 USD

;; -------------------------------------------------
;; 5. Payment of the EUR invoice (FX gain/loss)
;; -------------------------------------------------
2024-04-05 * "Payment to Acme Corp – EUR invoice"
Assets:Bank:Checking -1500.00 USD
Liabilities:AccountsPayable:AcmeCorp 1300.00 EUR
Income:FXGainLoss 200.00 USD

Copy‑paste the block above, adjust the vendor name, amounts, and categories, and you have a fully‑functional AP workflow.


7️⃣ TL;DR – One‑Line Summary

Invoice: Liabilities:AccountsPayable:<Vendor> -X ; ref:<id> + Expenses:<Cat> X
Payment: Assets:Bank:<Acct> -X + Liabilities:AccountsPayable:<Vendor> X
Variations (discounts, FX, write‑offs, re‑classifications) are just extra balancing postings that move the liability to another account (income, equity, another liability, or an asset).

That’s it! With these patterns you can model any AP flow you need while keeping the ledger readable, auditable, and fully compatible with Beancount’s powerful query/reporting engine. Happy bookkeeping! 🚀