Der Buchhaltungszyklus, Beancount-Stil
Finanzberichte entstehen nicht aus dem Nichts. Sie sind das Endprodukt eines strukturierten, wiederholbaren Prozesses, der als Buchhaltungszyklus bekannt ist. Während die Prinzipien universell sind, können die Werkzeuge, die Sie verwenden, das Erlebnis dramatisch verändern. Dieser Leitfaden führt Sie durch den Buchhaltungszyklus mit Fokus auf Beancount, das leistungsstarke, textbasierte Buchhaltungstool.
Wir zeigen, wie Beancounts text‑first Ansatz lästige Schritte eliminiert, was Sie automatisieren sollten und welche Berichte Ihnen das klarste Bild Ihrer finanziellen Gesundheit liefern. 🧑💻
TL;DR: Der Beancount‑Workflow
- Erfassen & Journal: Jede Transaktion als sauberen, doppelten Buchungssatz in Ihrer
.beancount
‑Textdatei festhalten. - Validieren & Abstimmen:
balance
‑Assertions nutzen, um zu bestätigen, dass Ihr Hauptbuch mit den Kontoauszügen übereinstimmt, undbean-check
ausführen, um Fehler zu finden. - Prüfen: Einen nicht angepassten Trial Balance erzeugen für einen schnellen Plausibilitäts‑Check.
- Anpassen: Buchungen für Rückstellungen, Abgrenzungen, Abschreibungen und andere periodische Posten vornehmen.
- Erneut prüfen: Den angepassten Trial Balance prüfen, um sicherzustellen, dass alles korrekt ist.
- Veröffentlichen & Abschließen: Gewinn‑ und Verlustrechnung, Bilanz und Cash‑Flow‑Statement erzeugen. Das Abschließen der Bücher ist in Beancount optional, da Berichte datumsbewusst sind.
Dieser Ablauf lässt sich so visualisieren:
Schritt 1: Erfassung und Buchung von Transaktionen
Dies ist der Grundstein. Jeder finanzielle Vorgang – ein Verkauf, ein Einkauf, eine Bankgebühr – muss erfasst werden. In Beancount tun Sie das, indem Sie Transaktionen in einer einfachen Textdatei anlegen, typischerweise main.beancount
oder nach Jahren aufgeteilt.
Jede Transaktion muss den Regeln der doppelten Buchführung folgen, d. h. die Summe aller Buchungen muss Null ergeben. Beancount erzwingt das für Sie.
2025-08-10 * "Walmart" "Kauf von Bürobedarf"
Expenses:Office:Supplies 45.67 USD
Assets:Bank:Checking -45.67 USD
- Pro‑Tipp: Verwenden Sie Tags wie
#project-phoenix
oder#client-acme
, um Ihren Daten Dimensionen hinzuzufügen. Das macht spätere Abfragen und Berichte unglaublich flexibel.
Abstimmungs‑Hygiene ✅
Das mächtigste Feature zur Sicherstellung der Genauigkeit ist die Balance‑Assertion. Am Ende eines Abrechnungszeitraums (z. B. Monatsende) geben Sie an, welchen Kontostand ein Konto haben sollte.
2025-08-31 balance Assets:Bank:Checking 12345.67 USD
Stimmt die Summe aller Buchungen, die Assets:Bank:Checking
bis zu diesem Datum betreffen, nicht mit 12345.67 USD
überein, wirft Beancount einen Fehler. Diese einfache Anweisung verwandelt Ihr Hauptbuch in ein selbst‑auditierendes Dokument.
Für das Nachtragen historischer Daten kann die pad
‑Direktive automatisch eine ausgleichende Buchung erzeugen, sodass Ihre Eröffnungsbilanz mit Ihrer ersten Assertion übereinstimmt.
Schritt 2: „In das Hauptbuch buchen“ (ein Gratis‑Feature!)
In traditionellen Buchhaltungssystemen schreiben Sie zuerst Einträge in ein „Journal“ und führen dann einen separaten „Posting‑Schritt“ aus, der diese Werte ins „General Ledger“ überträgt.
Bei Beancount ist Ihre .beancount
‑Datei sowohl Journal als auch Hauptbuch. Sobald Sie eine Transaktion schreiben und speichern, haben Sie sie bereits gebucht. Es gibt keinen separaten Schritt. Diese Direktheit ist ein Kernvorteil der textbasierten Buchhaltung – was Sie sehen, ist was Sie bekommen.
Schritt 3: Unadjusted Trial Balance vorbereiten
Bevor Sie Anpassungen vornehmen, benötigen Sie einen schnellen „Stimmt das alles?“‑Check. Ein Trial Balance ist ein einfacher Bericht, der jedes Konto und dessen Gesamtsaldo auflistet. Die Gesamtsumme aller Soll‑Saldos muss der Gesamtsumme aller Haben‑Saldos entsprechen.
Sie können ihn mit einer einfachen Abfrage erzeugen:
bean-query main.beancount \
"SELECT account, sum(position) GROUP BY 1 ORDER BY 1"
Oder, für einen visuelleren Ansatz, öffnen Sie Ihr Hauptbuch in Fava (der Web‑Oberfläche für Beancount) und navigieren Sie zum „Trial Balance“-Report. Suchen Sie nach Ungewöhnlichem – ein Aktivkonto mit Haben‑Saldo oder ein Aufwandskonto mit einem seltsamen Wert.
Schritt 4: Buchung von Anpassungseinträgen
Anpassungseinträge sind entscheidend für eine korrekte Berichterstattung nach dem Accrual‑Prinzip. Sie stellen sicher, dass Erträge erfasst werden, wenn sie verdient sind, und Aufwendungen, wenn sie anfallen – unabhängig vom Zahlungszeitpunkt.
Übliche Anpassungen umfassen:
- Rückstellungen: Erträge, die Sie verdient, aber noch nicht fakturiert haben, oder Aufwendungen, die Sie bereits entstanden, aber noch nicht bezahlt haben.
- Abgrenzungen: Umgang mit Vorauszahlungen. Wenn ein Kunde Ihnen für ein Jahr Service im Voraus zahlt, buchen Sie das als Verbindlichkeit (
Liabilities:UnearnedRevenue
) und erkennen monatlich 1/12 davon als Ertrag. - Nicht‑liquide Posten: Abschreibungen von Vermögenswerten.
- Korrekturen: Fehler beheben oder fehlende Buchungen aus Bank‑Feeds ergänzen, z. B. eine kleine Zinszahlung.
Beispiel: Ertrag zurückstellen
Sie haben ein Projekt am 31. August abgeschlossen, die Rechnung geht jedoch erst im September raus. Um den Ertrag im richtigen Zeitraum (August) zu erfassen, buchen Sie einen Anpassungseintrag:
2025-08-31 * "Ertrag für Kundenprojekt #1042 zurückstellen"
Assets:AccountsReceivable 3000.00 USD
Income:Consulting -3000.00 USD
Beispiel: Abschreibung buchen
Ihr Unternehmen hat einen Abschreibungsplan für seine Anlagen. Am Periodenende buchen Sie den Aufwand:
2025-12-31 * "Jährliche Abschreibung auf Computer‑Equipment"
Expenses:Depreciation 4800.00 USD
Assets:Fixed:AccumulatedDepreciation -4800.00 USD
Schritt 5: Angepassten Trial Balance ausführen & validieren
Nachdem Ihre Anpassungseinträge vorgenommen wurden, führen Sie den Trial Balance‑Report erneut aus. Das ist Ihr Adjusted Trial Balance. Er liefert die endgültigen Zahlen, die für die Finanzberichte verwendet werden.
Jetzt ist auch ein guter Zeitpunkt, Beancounts integrierten Plausibilitäts‑Check zu starten:
bean-check main.beancount
Dieser Befehl prüft Syntax, Bilanzierungsregeln und Assertions. Gibt er keine Ausgabe zurück, sind Ihre Bücher mechanisch einwandfrei.
Schritt 6: Finanzberichte veröffentlichen 📊
Der Lohn der harten Arbeit. Mit den Zahlen aus Ihrem angepassten Trial Balance können Sie nun die wichtigsten Finanzberichte erzeugen. Fava ist dafür am einfachsten, da es interaktive, drill‑down‑fähige Berichte out‑of‑the‑box liefert.
- Gewinn‑ und Verlustrechnung (P&L): Zeigt Ihre Erträge und Aufwendungen über einen Zeitraum und ergibt Ihren Jahresüberschuss bzw. -fehlbetrag.
- Bilanz: Ein Schnappschuss dessen, was Sie besitzen (Aktiva) und was Sie schulden (Passiva) sowie Ihres Eigenkapitals zu einem bestimmten Stichtag.
- Cash‑Flow‑Statement: Stellt Ihren Anfangs‑Cash‑Bestand dem End‑Cash‑Bestand gegenüber, indem es zeigt, woher das Geld kam und wohin es ging.
Für individuelle Berichte können Sie die Beancount Query Language (BQL) nutzen. Hier ein Beispiel für eine monatliche Gewinn‑ und Verlustrechnung:
-- P&L für August 2025
SELECT account, sum(position)
WHERE account '^(Income|Expenses)'
AND date >= 2025-08-01 AND date <= 2025-08-31
GROUP BY account ORDER BY account;
Schritt 7: Bücher schließen (optional)
In der traditionellen Buchhaltung beinhaltet der Closing‑Prozess das Erstellen von Buchungen, die alle temporären Konten (Erträge und Aufwendungen) auf Null setzen und den Jahresüberschuss in ein Eigenkapitalkonto namens Retained Earnings übertragen. Das setzt die temporären Konten für das nächste Jahr zurück.
In Beancount ist dieser Schritt meist überflüssig. Favas Berichte sind datumsbewusst; wenn Sie nach einer P&L für 2025 fragen, verwendet sie nur Daten aus 2025. Die Salden „überlaufen“ nicht. Die meisten Nutzer lassen die Salden unverändert.
Falls Sie jedoch aus Compliance‑ oder Aktionärs‑Gründen einen formellen Abschluss benötigen, können Sie dies mit einer einfachen Jahresabschluss‑Buchung erledigen, die das gesamte Ertrags‑ und Aufwands‑Saldo in Equity:Retained-Earnings
überführt.
Praktische monatliche Abschluss‑Checkliste
Hier eine wiederholbare Checkliste, um Ihre Bücher jeden Monat mit Beancount abzuschließen.
- Erfassen: Alle Bank‑ und Kreditkarten‑Transaktionen importieren. Manuell alle Bar‑Ausgaben oder außerplanmäßigen Posten eingeben.
- Abstimmen:
balance
‑Assertions für alle Bankkonten, Kreditkarten und Darlehen hinzufügen und mit den Kontoauszügen abgleichen. - Prüfen: Den unadjusted Trial Balance in Fava durchsehen. Ungewöhnliche oder unerwartete Salden untersuchen. Auf ausstehende Rechnungen (
Assets:AccountsReceivable
) oder offene Verbindlichkeiten (Liabilities:AccountsPayable
) achten. - Anpassen: Buchungen für zurückgestellte Erträge/Aufwendungen, abgegrenzte Erträge und notwendige Korrekturen vornehmen.
- Validieren:
bean-check
ausführen. Den finalen adjusted Trial Balance prüfen. - Veröffentlichen: P&L und Bilanz erzeugen. An Stakeholder senden oder für die Unterlagen speichern.
- Abschluss: Optional einen Closing‑Eintrag vornehmen, falls Ihr Unternehmen das verlangt. Eine Kopie Ihrer
.beancount
‑Dateien für den Zeitraum archivieren.
Warum Beancount im Buchhaltungszyklus glänzt
- Transparenz und Prüfbarkeit: Ihr Hauptbuch ist eine Textdatei. Mit
git
können Sie Ihre Finanzhistorie versionieren, Änderungen mitdiff
prüfen und mit Ihrem Buchhalter in einem klaren, eindeutigen Format zusammenarbeiten. - Totale Kontrolle: Sie definieren Ihren Kontenplan selbst. Sie sind nicht an die Struktur eines Software‑Anbieters gebunden. Ihre Daten gehören Ihnen für immer, in einem offenen Format.
- Unvergleichliche Power: Die Kombination aus SQL‑ähnlichen Abfragen (BQL) und einer reichen Web‑Oberfläche (Fava) gibt Ihnen unvergleichliche Möglichkeiten, Ihre Finanzdaten zu zerschneiden, zu würfeln und zu verstehen.
Copy‑Paste‑Snippets zum Einstieg
Einfacher Kontenplan:
option "title" "My Personal Ledger"
option "operating_currency" "USD"
;; --- Accounts ---
1970-01-01 open Assets:Bank:Checking
1970-01-01 open Assets:AccountsReceivable
1970-01-01 open Liabilities:CreditCard
1970-01-01 open Liabilities:UnearnedRevenue
1970-01-01 open Equity:Owner:Capital
1970-01-01 open Equity:Retained-Earnings
1970-01-01 open Income:Consulting
1970-01-01 open Expenses:Office:Supplies
1970-01-01 open Expenses:Software
1970-01-01 open Expenses:Depreciation
Nützliche BQL‑Abfrage:
-- Find all customers with an outstanding balance
SELECT payee, sum(position)
WHERE account = 'Assets:AccountsReceivable'
GROUP BY payee
HAVING sum(position) > 0
ORDER BY sum(position) DESC;
Indem Sie den zeitlosen Buchhaltungszyklus auf Beancounts moderne, textbasierte Werkzeuge abbilden, erhalten Sie ein System, das robust, transparent und zukunftssicher ist. Viel Spaß beim Buchen!