Преминете към основното съдържание

Записване на данъци в Beancount (Практичният начин)

· 8 минути четене
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 ---
; За парите, удържани от вашата заплата
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 отидохакъмсоциалноосигуряванеи87отидоха към социално осигуряване и 87 към 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 вместо сметката за задължения.

Опция 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;

Ако това запитване върне ненулеви баланси, означава, че имате начислени задължения, които още не сте уредили.


Бързи ЧЗВ

  • Наистина ли ми трябват сметки за всяка година като Expenses:Taxes:2024?
    Вероятно не. Методът за начисляване (или приставката) поддържа плоска структура, чиста и четлива. Създавайте годишни сметки само ако смятате, че ще улесни вашите конкретни заявки.

  • Може ли Beancount да изчисли данъците ми автоматично?
    Не директно, но може да подготви данните. Някои напреднали потребители пишат скриптове, които подават резултатите от BQL към софтуер за данъчно изчисление – полезно за оценка на задълженията през годината.

  • Това ли е данъчен съвет?
    Не. Това е модел за водене на книги, който организира вашите данни. Счетоводството е стабилно, но винаги се консултирайте с данъчен професионалист за съвет, специфичен за вашата ситуация.


Вашият готов за използване контролен списък

Готови ли сте да започнете?

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

Дръжте всичко просто, последователно и вашият данъчен сезон най-накрая ще се чувства като още една част от вашата финансова история – не като мистерия, която трябва да се решава.