Запис податків у Beancount (практичний підхід)
Податки часто здаються особливим, складним звіром у світі особистих фінансів. Але що, якщо їх не так? Що, якщо розглядати їх так само, як будь‑який інший потік грошей у вашому реєстрі? Хороша новина: можна. Розглядаючи податки як прості переміщення вартості, ваш реєстр Beancount залишатиметься чистим, легким для запитів і, найголовніше, зрозумілим.
Нижче наведено практичний, беззаперечний шаблон, який ви можете вставити у файл 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 як федеральний податок на доходи.
- 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
замість рахунку зобов’язань.