Zum Hauptinhalt springen

Ein Beitrag mit „taxes“ markiert

Alle Tags anzeigen

Steuern in Beancount erfassen (der pragmatische Weg)

· 8 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Steuern können im Bereich der persönlichen Finanzen wie ein besonderes, kompliziertes Ungeheuer wirken. Aber was, wenn sie das nicht wären? Was, wenn Sie sie wie jeden anderen Geldfluss in Ihrem Hauptbuch behandeln könnten? Gute Neuigkeiten: Das können Sie. Indem Sie Steuern als einfache Wertbewegungen behandeln, bleibt Ihr Beancount‑Hauptbuch sauber, leicht abfragbar und – am wichtigsten – verständlich.

Im Folgenden finden Sie ein praktisches, unkompliziertes Muster, das Sie in eine persönliche oder kleine Unternehmens‑Beancount‑Datei einfügen können. Es ist ein simples System zur Handhabung von Gehaltsabrechnungen, Steuerzahlungen und sogar den lästigen Rückerstattungen, die ins neue Jahr übergehen. Wir zeigen Ihnen die notwendigen Konten, gehen anhand von Praxisbeispielen durch und präsentieren die genauen Abfragen, die Sie ausführen müssen, um die gewünschten Antworten zu erhalten.

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


Die Kernprinzipien

Bevor wir in den Code eintauchen, einigen wir uns auf ein paar einfache Regeln. Diese Prinzipien halten die Dinge logisch und verhindern zukünftige Kopfschmerzen.

  • Trennen Sie „was es ist“ von „wann das Geld fließt“. 🗓️
    Das ist das wichtigste Konzept. Eine Steueraufwendung gehört zu dem Jahr, in dem Sie das Einkommen erzielt haben (z. B. 2024), selbst wenn Sie die Rechnung bei der IRS im April 2025 begleichen. Wenn Sie den Zeitpunkt der Aufwendung nicht vom Zeitpunkt der Zahlung trennen, werden Ihre Jahres‑zu‑Jahres‑Berichte unübersichtlich und irreführend.

  • Halten Sie Ihre Kontenhierarchie langweilig und einfach. 📁
    Benennen Sie Ihre Konten klar nach dem Typ der Steuer (z. B. IncomeTax, SocialSecurity). Das macht Ihre Abfragen unglaublich einfach. Überladen Sie Kontonamen nicht mit Lieferantennamen oder Formularnummern wie „W‑2“ oder „1099“; verwenden Sie stattdessen Metadaten und Tags für diese Details.

  • Nutzen Sie die Periodenabgrenzung für Jahresend‑Anpassungen. ⚖️
    Auch für ein persönliches Hauptbuch ist ein einfacher Perioden‑Eintrag zum Jahresende der sauberste Weg, um genaue Berichte zu erhalten. Das bedeutet, eine Aufwendung oder Rückerstattung im richtigen Jahr zu erfassen, selbst wenn das Geld erst im nächsten Jahr fließt. Ein kleiner zusätzlicher Schritt, der Ihnen später geistige Akrobatik erspart.

  • Schreiben Sie für Ihr zukünftiges Ich. 🧠
    Ihr Ziel ist Klarheit. Fügen Sie nur dann zusätzliche Details wie das Steuerjahr zu einem Kontonamen hinzu, wenn es Ihre Abfragen wirklich erleichtert. Vermeiden Sie es, jedes Jahr ein neues Set von Konten zu erstellen (Expenses:Taxes:2024:Federal, Expenses:Taxes:2025:Federal usw.), es sei denn, Sie haben einen zwingenden Grund. Eine flache Struktur ist oft leichter zu verwalten.


Ein minimales Kontenskelett

Hier ein einfacher Satz von Konten, mit dem Sie starten können. Diese Struktur ist US‑zentriert, lässt sich aber leicht an das Steuersystem Ihres Landes anpassen. Fügen Sie einfach diese open‑Direktiven in Ihre Beancount‑Datei ein.

; --- 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

Dieses Setup trennt einbehaltene Steuern von direkten Zahlungen und Rückerstattungen, sodass Sie sofort sehen, wohin Ihr Geld geflossen ist. Die Liabilities‑ und Assets‑Konten sind unser Geheimwaffe, um Jahresend‑Berichte exakt zu halten.


Beispiel 1: Die Gehaltsabrechnung

Buchen Sie eine typische Gehaltsabrechnung, bei der Steuern automatisch einbehalten werden. Der Schlüssel ist, zuerst das Bruttogehalt zu erfassen und dann zu zeigen, wie es zwischen Steuern und dem tatsächlich auf Ihrem Konto gelandeten Betrag aufgeteilt wird.

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

Diese einzelne Buchung erzählt die ganze Geschichte:

  • Sie haben 6.000 $ Bruttoeinkommen erzielt.
  • 1.200 $ davon wurden an die IRS für die Bundes‑Einkommensteuer abgeführt.
  • 372 gingenandieSozialversicherungund87gingen an die Sozialversicherung und 87 an Medicare.
  • Die restlichen 4.341 $ sind Ihr Nettogehalt.

Pro‑Tipp: Sie können Metadaten aus Ihrem Gehaltsabrechnungsbeleg (z. B. pay_period_end: "2025-07-15") an die Buchung anhängen, um eine einfache Prüfspur zu erhalten.


Beispiel 2: Ihre Steuererklärung einreichen (das jahrübergreifende Problem)

Hier das Szenario, das viele Menschen verwirrt: Es ist April 2025 und Sie reichen Ihre Steuererklärung für 2024 ein. Nach allen Einbehaltungen stellen Sie fest, dass Sie noch 3.000 $ nachzahlen müssen.

Wie buchen Sie das? Die Aufwendung soll zu 2024 gehören, die Zahlung erfolgt erst 2025. Es gibt zwei ausgezeichnete Vorgehensweisen.

Option A: Manuelle zweistufige Periodenabgrenzung

Diese Methode ist reines Beancount, keine Plugins nötig. Ein klarer, zweistufiger Prozess.

Schritt 1: Erkennen Sie die Ausgabe am Ende des Steuerjahres.

Am letzten Tag von 2024 erstellen Sie einen „True‑Up“-Eintrag. Es fließt noch kein Geld; Sie erfassen lediglich die Aufwendung und parken sie in einem temporären Passivkonto.

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

Jetzt erscheint die 3.000 $‑Aufwendung korrekt in Ihrer Gewinn‑ und Verlustrechnung für 2024.

Schritt 2: Buchen Sie die Zahlung, wenn sie erfolgt.

Im April 2025, wenn Sie das Geld an die IRS überweisen, räumen Sie die Verbindlichkeit aus.

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

Ihre Berichte für 2024 sind korrekt, und Ihr Cashflow für 2025 stimmt ebenfalls. Perfekt! Dieses Muster funktioniert umgekehrt für eine Rückerstattung – verwenden Sie dafür Assets:Tax:Receivable anstelle des Passivkontos.

Option B: Automatisieren mit einem Plugin

Wenn Sie die Zahlung in einer einzigen Buchung halten wollen, kann das Community‑Plugin beancount_reds_plugins.effective_date helfen. Es erlaubt, einem einzelnen Buchungs‑Posten ein anderes „effective_date“ zuzuweisen.

Plugin zuerst aktivieren:

plugin "beancount_reds_plugins.effective_date"

Dann können Sie eine einzige Buchung schreiben; das Plugin teilt sie im Hintergrund auf.

; 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

Hier wird der Geldabfluss am 15. April 2025 erfasst, die Aufwendung jedoch rückwirkend auf den 31. Dezember 2024 angewendet. Das Ergebnis ist dasselbe wie bei Option A, nur mit einem anderen Workflow.


Was ist mit der Umsatzsteuer?

Für die meisten privaten Hauptbücher ist die Umsatzsteuer simpel. Wenn Sie sie nicht zurückfordern, splitten Sie sie einfach als eigene Ausgabe beim Kauf.

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

Damit können Sie leicht nachverfolgen, wie viel Sie im Laufe des Jahres an Umsatzsteuer ausgeben. Wenn Sie ein Unternehmen mit Mehrwertsteuer führen, würden Sie ein formelleres System mit Verbindlichkeiten‑ und Forderungskonten nutzen – das Prinzip bleibt jedoch gleich.


Abfragen, die Sie tatsächlich ausführen werden

Der ganze Sinn dieser Struktur ist, Antworten mühelos zu erhalten. Hier ein paar BQL‑Abfragen, um Ihr Steuerbild zu sehen.

1. Wie hoch war meine gesamte Bundes‑Einkommensteuer für 2024?

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

2. Wie setzt sich dieser Betrag zwischen Einbehaltungen, Zahlungen und Rückerstattungen zusammen?

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. Habe ich noch ausstehende Steuerverbindlichkeiten oder -forderungen? (Praktisch, um Ihre Arbeit zu prüfen!)

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

Wenn diese Abfrage nicht‑null‑Bilanzen liefert, haben Sie noch nicht ausgeglichene Perioden‑Posten.


Schnell‑FAQ

  • Brauche ich wirklich Jahres‑spezifische Konten wie Expenses:Taxes:2024?
    Wahrscheinlich nicht. Die Perioden‑Methode (oder das Plugin) hält eine flache Kontenstruktur sauber und lesbar. Erstellen Sie Jahres‑Konten nur, wenn Sie damit Ihre spezifischen Abfragen deutlich vereinfachen.

  • Kann Beancount meine Steuern für mich berechnen?
    Nicht direkt, aber es kann die Daten dafür vorbereiten. Fortgeschrittene Nutzer schreiben Skripte, die BQL‑Ergebnisse in Steuer‑Berechnungs‑Software pipen – praktisch für Schätzungen im Jahresverlauf.

  • Ist das steuerliche Beratung?
    Nein. Dies ist ein Buchhaltungs‑Muster zur Datenorganisation. Die Buchführung ist solide, aber für individuelle steuerliche Fragen sollten Sie stets einen Steuerberater konsultieren.


Ihre Checkliste zum Einsetzen

Bereit loszulegen?

  1. Fügen Sie das Kontenskelett in Ihre Beancount‑Datei ein (und passen Sie die Namen an Ihr Land an).
  2. Buchen Sie Gehaltsabrechnungen, indem Sie zuerst das Bruttogehalt erfassen und dann die Steuer‑Posten aufteilen.
  3. Am Jahresende periodisieren Sie etwaige Nachzahlungen oder Rückerstattungen über ein Passiv‑ bzw. Aktivkonto (oder nutzen Sie das effective_date‑Plugin).
  4. Verfolgen Sie Rückerstattungen als Forderungen und räumen Sie sie aus, sobald das Geld eingeht.
  5. Führen Sie die oben genannten BQL‑Abfragen aus, um Ihre Summen vor der Abgabe zu prüfen.

Halten Sie es langweilig, halten Sie es konsistent – dann wird die Steuerzeit endlich nur noch ein weiterer Teil Ihrer Finanzgeschichte, kein ungelöstes Rätsel.