Записване на данъци в 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 ---
; За парите, удържани от вашата заплата
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Withheld USD
; За предварителни плащания или данъчни сметки, които плащате директно
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Payments USD
; За данъчни възстановявания, които получавате
2024-01-01 open Expenses:Taxes:Federal:IncomeTax:Refunds USD
; Вашите вноски за FICA
2024-01-01 open Expenses:Taxes:Federal:SocialSecurity USD
2024-01-01 open Expenses:Taxes:Federal:Medicare USD
; --- Други чести данъци ---
; За данъци върху продажбите/употребата, които плащате при покупки
2024-01-01 open Expenses:Taxes:Sales USD
; --- Сметки за корекции в края на годин ата (по избор, но препоръчително) ---
; Временна сметка за данъци, които дължите, но още не сте платили
2024-01-01 open Liabilities:AccruedTaxes:Federal:Income USD
; Временна сметка за възстановяване, което ви се дължи, но още не е получено
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 към Medicare.
- Останалите 4 341 $ са това, което получихте в ръка.
Съвет: Можете да добавите метаданни от вашия фиш (например pay_period_end: "2025-07-15"
) към транзакцията за лесен следователен път.
Пример 2: Подаване на данъчна декларация (проблемът с пресичане на години)
Сценарият, който обърква хората: е април 2025 г., а вие подавате данъците за 2024 г. Откривате, че след всички удръжки все още дължите допълнително 3 000 $.
Как да го запишете? Искате разходът да се отрази в 2024 г., но паричното плащане се случва през 2025 г. Ето два отлични начина.
Опция A: Ръчно двустъпково начисляване
Този метод е чисто Beancount, без нужда от приставки. Ясен, двустъпков процес.
Стъпка 1: Признаване на разхода в края на данъчната година.
На последния ден на 2024 г. създавате записка „true‑up“. Парите все още не се движат; просто признавате разхода и го паркирате във временна сметка за задължения.
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
вместо сметката за задължения.