Zum Hauptinhalt springen

10 Posts getaggt mit „Double-Entry“

Alle Tags anzeigen

Verstehen von Buchungssätzen in Beancount

· 8 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Buchungssätze sind das Rückgrat der doppelten Buchführung, und in Beancount ist jede *‑Transaktion, die Sie schreiben, ein Buchungssatz. Dieser Leitfaden erklärt die Grundlagen – Soll und Haben, Anpassungsbuchungen und Stornobuchungen – und zeigt, wie sie sauber auf die reine‑Text‑Syntax von Beancount abgebildet werden. Sie lernen, wie Sie präzise Bücher mit minimalem Aufwand führen.


2025-09-02-journal-entries-in-beancount

Schnell‑Auffrischung: Was ist ein Buchungssatz?

Ein Buchungssatz ist die formale, datierte Aufzeichnung einer finanziellen Transaktion. Er wird in Soll und Haben ausgedrückt, die die grundlegende Bilanzgleichung im Gleichgewicht halten:

Assets=Liabilities+EquityAssets = Liabilities + Equity

In einem doppelten Buchführungssystem wirkt sich jede Transaktion auf mindestens zwei Konten aus, und die Summe der Soll‑Buchungen muss den Summe der Haben‑Buchungen entsprechen. Diese einfache Regel sorgt dafür, dass nachgelagerte Finanzberichte wie Gewinn‑ und Verlustrechnung und Bilanz vertrauenswürdig und korrekt sind.


Soll und Haben in einer Minute

Die Konzepte von Soll und Haben können zunächst verwirrend sein, aber sie lassen sich auf ein paar einfache Regeln reduzieren. Denken Sie so: „Woher kam der Wert?“ (Haben) und „Wohin ging der Wert?“ (Soll).

Hier eine Übersicht, wie sie die fünf Kernkontotypen erhöhen:

KontotypErhöht durch
AssetsSoll
ExpensesSoll
LiabilitiesHaben
EquityHaben
IncomeHaben

Wie ein Buchungssatz in Beancount aussieht

Beancount verwendet einfache, menschenlesbare Text‑Direktiven, um Transaktionen zu erfassen. Jede Transaktion muss für jede Ware (z. B. USD, EUR, AAPL‑Aktie) auf Null balancieren. Beancount wirft einen Fehler, wenn das nicht der Fall ist.

Hier ein einfacher Buchungssatz für den Kauf von Kaffee:

2025-09-10 * "Coffee Bar" "Team coffee"
Expenses:Food:Coffee 18.00 USD
Assets:Bank:Checking -18.00 USD

Beachten Sie, dass die beiden Buchungen (Zeilen mit Konten) sich zu Null summieren: $18.00 + (-$18.00) = 0.

Sie können leistungsstarke Kontexte direkt in der Erzählung mittels Tags (wie #clientX) für Filterungen und Links (wie ^INV-2025-001) hinzufügen, um verwandte Einträge zu verbinden.

Beispiel: So verknüpfen Sie eine Rechnung mit ihrer Zahlung:

; Zuerst die Rechnung, die Sie an den Kunden gesendet haben
2025-09-15 * "Acme Corp" "Invoice 2025-001 #clientX ^INV-2025-001"
Assets:AccountsReceivable 1000.00 USD
Income:Consulting -1000.00 USD

; Später die Zahlung und Rückverknüpfung zur ursprünglichen Rechnung
2025-09-28 * "Acme Corp" "Payment on ^INV-2025-001"
Assets:Bank:Checking 1000.00 USD
Assets:AccountsReceivable -1000.00 USD

Der Tag #clientX ermöglicht es Ihnen, alle Transaktionen dieses Kunden leicht zu filtern, und der Link ^INV-2025-001 schafft eine Verbindung zwischen den beiden Einträgen, die Sie in Berichten verfolgen können.


Häufige Buchungssätze (zum Kopieren)

Hier finden Sie mehrere gängige Geschäftsvorfälle, formatiert für Beancount.

Eigentümer investiert Geld

Ein Eigentümer bringt persönliches Kapital ein, um das Unternehmen zu starten.

2025-01-01 * "Owner" "Initial capital contribution"
Assets:Bank:Checking 10000.00 USD
Equity:Owner-Capital -10000.00 USD

Barverkauf mit Umsatzsteuer

Ein Kunde zahlt bar für ein Produkt, inklusive 8 % Umsatzsteuer, die Sie später an das Finanzamt abführen müssen.

2025-01-05 * "Walk-in Customer" "Cash sale with 8% tax"
Assets:Cash 108.00 USD
Income:Sales -100.00 USD
Liabilities:Tax:Sales -8.00 USD

Verkauf auf Rechnung (Rechnung) und Zahlungseingang

Sie erbringen eine Leistung, stellen dem Kunden eine Rechnung, und erhalten später die Zahlung.

2025-01-10 * "Acme Corp" "Consulting invoice ^INV-2025-002"
Assets:AccountsReceivable 2500.00 USD
Income:Consulting -2500.00 USD

2025-01-30 * "Acme Corp" "Payment on ^INV-2025-002"
Assets:Bank:Checking 2500.00 USD
Assets:AccountsReceivable -2500.00 USD

Ausgabe per Kreditkarte

Sie kaufen Bürobedarf mit einer Firmenkreditkarte.

2025-01-12 * "OfficeMax" "Supplies on credit card"
Expenses:Office:Supplies 75.00 USD
Liabilities:CreditCard -75.00 USD

Lohnabrechnung (einfaches Modell)

Sie führen die Lohnabrechnung durch, erfassen den Bruttolohn, die einbehaltenen Steuern und die Nettobezahlung von Ihrem Bankkonto.

2025-01-31 * "Payroll" "January wages and withholdings"
Expenses:Payroll:Wages 2000.00 USD
Liabilities:Taxes:Withheld -400.00 USD
Assets:Bank:Checking -1600.00 USD

Monatliche Abschreibung

Sie buchen die monatliche Abschreibung für ein Anlagegut, z. B. einen Laptop.

2025-01-31 * "Depreciation" "Laptop, straight-line"
Expenses:Depreciation 100.00 USD
Assets:Equipment:AccumDepr -100.00 USD

Vorausbezahlte Ausgabe & monatliche Amortisation

Sie zahlen die Jahresprämie für eine Versicherung im Voraus und erfassen dann einen Monat Aufwand.

; 1. Jahresbeitrag zahlen
2025-01-01 * "InsureCo" "Annual insurance premium"
Assets:Prepaid:Insurance 1200.00 USD
Assets:Bank:Checking -1200.00 USD

; 2. Einen Monat Aufwand am Ende Januar erfassen
2025-01-31 * "InsureCo" "Amortize 1/12 of insurance"
Expenses:Insurance 100.00 USD
Assets:Prepaid:Insurance -100.00 USD

Noch nicht verdiente Erlöse & monatliche Erfassung

Ein Kunde zahlt im Voraus für ein 3‑Monats‑Abonnement. Sie buchen das Geld und erfassen dann monatlich einen Teil des Erlöses.

; 1. Kunde zahlt im Voraus
2025-02-01 * "Subscriber" "3-month plan prepaid"
Assets:Bank:Checking 300.00 USD
Liabilities:Unearned:Subs -300.00 USD

; 2. Einen Monat Erlös nach Leistungserbringung erfassen
2025-02-28 * "Recognition" "Recognize month 1 of 3"
Liabilities:Unearned:Subs 100.00 USD
Income:Subscriptions -100.00 USD

Rückstellung für zweifelhafte Forderungen und Abschreibung

Sie bilden eine Rückstellung für potenziell uneinbringliche Rechnungen und schreiben später eine konkrete uneinbringliche Forderung ab.

; 1. Rückstellung von 2 % der Forderungen bilden
2025-03-31 * "Provision" "2% of A/R for doubtful accounts"
Expenses:BadDebt 200.00 USD
Assets:AllowanceForDoubtful -200.00 USD

; 2. Konkrete Forderung abschreiben
2025-04-15 * "Write-off" "Customer XYZ invoice"
Assets:AllowanceForDoubtful 150.00 USD
Assets:AccountsReceivable -150.00 USD

Periodeninventur & COGS‑Anpassung

Am Periodenende berechnen Sie die Kosten der verkauften Waren (COGS), indem Sie das Inventarkonto anpassen.

2025-03-31 * "COGS adjustment" "Periodic inventory method"
Expenses:COGS 4500.00 USD
Assets:Inventory -4500.00 USD

Anpassungsbuchungen vs. Stornobuchungen

Anpassungsbuchungen werden am Ende einer Rechnungsperiode (Monat, Quartal usw.) erfasst, um Erlöse und Aufwendungen korrekt der Periode zuzuordnen, in der sie tatsächlich verdient bzw. entstanden sind. Dazu gehören Rückstellungen, Abgrenzungen und Schätzungen wie Abschreibungen.

Stornobuchungen sind optionale Buchungen, die am ersten Tag einer neuen Periode vorgenommen werden und exakt eine bestimmte Anpassungsbuchung der Vorperiode rückgängig machen. Ihr Zweck ist die Vereinfachung der Buchführung. Durch das Stornieren einer Rückstellung können Sie die nachfolgende Geldbewegung in üblicher Weise buchen, ohne daran denken zu müssen, sie gegen das Passivkonto zu splitten.

Beispiel: Rückstellung und Stornierung von Nebenkosten

Angenommen, Sie müssen Ihre Nebenkosten für Januar erfassen, die Rechnung kommt jedoch erst im Februar.

; 1. Rückstellung am Ende Januar schätzen
2025-01-31 * "Accrual" "Estimate January utilities expense"
Expenses:Utilities 500.00 USD
Liabilities:Accrued:Utilities -500.00 USD

; 2. (Optional) Stornierung der Rückstellung am ersten Tag der nächsten Periode
2025-02-01 * "Reversal" "Undo January utilities accrual"
Liabilities:Accrued:Utilities 500.00 USD
Expenses:Utilities -500.00 USD

; 3. Tatsächliche Rechnungszahlung im Februar buchen
; Die Rechnung beträgt 520 USD. Durch die Stornierung können Sie
; den vollen Betrag direkt auf das Aufwandskonto buchen.
; Der Nettobetrag für Februar ist 520 - 500 = 20 USD.
2025-02-10 * "City Utilities" "Payment for January bill"
Expenses:Utilities 520.00 USD
Assets:Bank:Checking -520.00 USD

Hinweis: Das Beispiel im Überblick zeigt das Aufteilen der Endzahlung. Die Stornobuchungsmethode ist eine Alternative, die die Endzahlung vereinfacht.


Checkliste für jeden Beancount‑Buchungssatz

Gehen Sie diese Schritte durch, um sicherzustellen, dass Ihre Einträge sauber und korrekt sind:

  1. Beginnen Sie mit dem Datum (JJJJ‑MM‑TT) und einem Transaktions‑Flag (*).
  2. Fügen Sie einen Zahlungsempfänger und eine beschreibende Narration hinzu. Nutzen Sie #tags und ^links für bessere Durchsuchbarkeit.
  3. Geben Sie mindestens zwei Buchungszeilen an, die für jede Ware auf Null balancieren.
  4. Verwenden Sie korrekte Kontonamen aus den fünf Typen: Assets, Liabilities, Equity, Income, Expenses.
  5. Optional können Sie Metadaten wie document: "invoices/INV-2025-001.pdf" zur Nachverfolgbarkeit hinzufügen.

Häufige Stolperfallen (und wie Beancount hilft)

  • Unausgeglichene Buchungen: Wenn Ihre Soll‑ und Haben‑Buchungen nicht zu Null summieren, verweigert Beancount den Eintrag. Das ist ein Kernfeature, das Fehler verhindert. Sie können einen Betrag auch leer lassen – Beancount berechnet ihn automatisch.
  • Falsches Vorzeichen bei einem Konto: Es ist leicht zu vergessen, dass Income, Equity und Liabilities mit Haben (typischerweise negative Zahlen in Beancount) erhöht werden. Wenn Sie das verwechseln, sehen Ihre Berichte seltsam aus, aber die Bilanzregel bietet weiterhin einen Sicherheitsnetz.
  • Fehlende Links zwischen Einträgen: Ohne Verknüpfung einer Rechnung mit ihrer Zahlung wird das Nachverfolgen offener Posten schwieriger. Durch konsequente Nutzung von ^links entsteht ein prüfbarer Pfad.

Wo geht es weiter?

  • Beancount‑Sprache & Bilanzierungsregeln: Vertiefen Sie sich in die offizielle Dokumentation.
  • Syntax‑Cheat‑Sheet: Eine praktische Referenz für alle Beancount‑Direktiven.
  • Soll/Haben‑Einführung: Ein guter Einstieg, wenn Sie neu in den Buchführungsregeln sind.
  • Anpassungs‑/Stornobuchungen: Weiterführende Artikel zur Theorie der Buchführung.

Anhang: Accounting Talk → Beancount‑Map

Diese schnelle Übersetzungshilfe unterstützt Sie dabei, Buchhaltungsanweisungen in Beancount‑Syntax zu übertragen.

Accounting InstructionBeancount Action
Debit an expensePositive amount to an Expenses: account
Credit a liabilityNegative amount to a Liabilities: account
Accrue revenueAssets:AccountsReceivable +
Income:* -
Defer revenueAssets:Bank:* +
Liabilities:Unearned:* -
Recognize deferred revenueLiabilities:Unearned:* +
Income:* -

Mit diesen Mustern und Beispielen können Sie nahezu jedes geschäftliche Ereignis in Beancount modellieren und sicherstellen, dass Ihre Finanzberichte ohne Überraschungen übereinstimmen.

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.

Der Buchhaltungszyklus, Beancount-Stil

· 8 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

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. 🧑‍💻

2025-08-13-the-accounting-cycle-beancount-style


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, und bean-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 Anpassungs­einträgen

Anpassungs­einträ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 Anpassungs­einträ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 mit diff 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!

Beancount.io vs. Traditionelle Buchhaltungssoftware: Welche passt am besten zu Ihnen?

· 7 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Seit Jahrzehnten wird die Welt der Geschäftsbuchhaltung von bekannten, geschlossenen, GUI-basierten Systemen wie QuickBooks, Xero und FreshBooks dominiert. Sie haben den Standard gesetzt und bieten Benutzerfreundlichkeit und visuelle Workflows, die auf nicht-technische Benutzer zugeschnitten sind. Aber für Entwickler, Power-User und alle, die Wert auf absolute Transparenz und Kontrolle legen, hat sich ein radikal anderer Ansatz herauskristallisiert: Beancount.io.

Dieser Artikel bietet einen direkten Vergleich von Beancount.io mit traditioneller Buchhaltungssoftware. Wir werden die wichtigsten Unterschiede in Philosophie, Flexibilität, Kosten und langfristiger Wartbarkeit aufschlüsseln, um Ihnen bei der Entscheidung zu helfen, welches System wirklich Ihren Bedürfnissen entspricht.

2025-08-08-beancount-io-vs-traditionelle-buchhaltungssoftware

1. Philosophie und Workflow

Der grundlegendste Unterschied zwischen diesen beiden Ansätzen liegt in ihrer Kernphilosophie.

Beancount.io Beancount.io basiert auf der Philosophie der Plain-Text-Buchhaltung. Im Kern ist jede einzelne Finanztransaktion ein Eintrag in einer einfachen Textdatei. Dieses "Accounting as Code"-Modell priorisiert menschenlesbare, versionskontrollierbare Aufzeichnungen. Ihre Finanzdaten befinden sich in einem zeitlosen, offenen Format, das Sie vollständig besitzen – es kann niemals von einem Anbieter gesperrt werden. Dieser Workflow ist für Benutzer konzipiert, die mit Code-Editoren, Versionskontrollsystemen wie Git und Befehlszeilentools vertraut sind.

Traditionelle Software Traditionelle Buchhaltungsplattformen sind GUI-basiert und formulargesteuert. Sie geben Daten mithilfe von Assistenten, Dropdown-Menüs und visuellen Formularen ein. Dieser Ansatz priorisiert Unmittelbarkeit und Zugänglichkeit, wodurch nicht-technische Benutzer ohne steile Lernkurve schnell einsteigen können. Ihre Daten werden jedoch in einem proprietären Format oder einer Cloud-Datenbank gespeichert, was oft komplexe Export- und Importverfahren erfordert, wenn Sie sich jemals für die Migration zu einem anderen Dienst entscheiden.

Fazit: Wenn Sie Wert auf volle Kontrolle, Datenbesitz, Transparenz und Automatisierung legen, ist Beancount.io der klare Gewinner. Wenn Sie eine "Click-and-Go"-Oberfläche mit minimaler Lernkurve benötigen, wird sich traditionelle Software natürlicher anfühlen.

2. Flexibilität und Anpassung

Wie gut kann sich die Software an Ihre spezifischen Bedürfnisse anpassen?

Beancount.io Die 100%ige Skriptierbarkeit ist die Superkraft von Beancount.io. Es lässt sich nahtlos in Python integrieren, sodass Sie eine Verbindung zu jeder API herstellen, das Abrufen von Daten aus Bank-Feeds automatisieren, Transaktionen anhand komplexer Regeln programmgesteuert taggen und benutzerdefinierte Berichte erstellen können, die genau auf Ihre Anforderungen zugeschnitten sind. Ihre Fähigkeit zur Erweiterung und Anpassung ist praktisch unbegrenzt, frei von jeglichen vom Anbieter auferlegten Einschränkungen.

Traditionelle Software Diese Plattformen bieten eine kuratierte Auswahl an Integrationen mit gängigen Tools wie PayPal, Stripe und verschiedenen Lohn- und Gehaltsabrechnungsdiensten. Obwohl dies bequem ist, arbeiten Sie innerhalb des "Walled Garden" des Anbieters. Die Anpassung ist auf das beschränkt, was die Plattform zulässt, und erweiterte Berichterstattung oder Automatisierung erfordert oft ein Upgrade auf einen höherwertigen Plan oder den Kauf von Add-ons von Drittanbietern. Sie können mit deren APIs arbeiten, sind aber immer an die Regeln und Ratenbegrenzungen ihres Ökosystems gebunden.

Fazit: Beancount.io bietet unübertroffene Flexibilität für Entwickler und technische Benutzer. Traditionelle Tools eignen sich besser für Standard-Plug-and-Play-Workflows mit gängigen Geschäftsanwendungen.

3. Zusammenarbeit und Transparenz

Wie Sie mit anderen zusammenarbeiten und Ihre Aufzeichnungen prüfen, unterscheidet sich erheblich.

Beancount.io Die Zusammenarbeit bei Beancount.io wird über Git verwaltet. Dadurch wird jede Änderung an Ihrem Finanzbuch vollständig transparent und überprüfbar. Sie können sehen, wer was, wann und warum geändert hat – genau wie bei einem Code-Review-Workflow. Dies ist ideal für verteilte Teams, die bereits Tools wie GitHub oder GitLab verwenden. Darüber hinaus gibt es keine versteckten Berechnungen; jede Zahl in einem Bericht kann bis zum genauen Einzelposten in Ihrer Buchungsdatei zurückverfolgt werden, was eine vollständige Überprüfbarkeit gewährleistet.

Traditionelle Software Die Zusammenarbeit wird über integrierte Benutzerrollen und Berechtigungen abgewickelt. Sie können Ihren Buchhalter, Buchhalter oder Geschäftspartner einladen, direkt über die Weboberfläche auf die Bücher zuzugreifen. Dies ist sehr effektiv für Unternehmen, die einem traditionellen Modell der Finanzaufsicht folgen. Der Nachteil ist, dass einige interne Vorgänge, wie Steuerberechnungen oder automatisierte Saldeneinstellungen, undurchsichtige "Black Boxes" sein können, was es schwierig macht, die Logik unabhängig zu überprüfen.

Fazit: Beancount.io ist perfekt für Teams, die Wert auf granulare Überprüfbarkeit und Zusammenarbeit im Code-Stil legen. Traditionelle Systeme sind buchhalterfreundlicher für den gemeinsamen Echtzeit-GUI-Zugriff.

4. Kosten und Eigentum

Die Finanzmodelle und das Konzept des Datenbesitzes sind Welten voneinander entfernt.

Beancount.io Die Beancount-Kernsoftware ist Open-Source und kostenlos. Sie zahlen nur für die Mehrwertdienste von Beancount.io, die Hosting, intelligente Automatisierung und Premium-Funktionen umfassen. Es gibt keine Lizenzgebühren pro Benutzer, sodass Sie Ihr Team skalieren können, ohne zusätzliche Kosten zu verursachen. Am wichtigsten ist, dass es keine Herstellerbindung gibt. Ihre Daten sind eine Sammlung von Textdateien, die Sie jederzeit und überall verschieben, bearbeiten oder speichern können.

Traditionelle Software Diese Dienste funktionieren nach einem Abonnementmodell, das in der Regel monatlich oder jährlich abgerechnet wird. Die Preise sind oft nach Funktionen gestaffelt, und es können Gebühren pro Benutzer oder pro Unternehmen anfallen, die mit Ihrem Unternehmen skalieren. Dies schafft eine Abhängigkeit; Wenn Sie die Zahlung einstellen, riskieren Sie den Verlust des Zugriffs auf Ihre Daten und die Funktionalität der Software. Diese Herstellerbindung ist ein erhebliches langfristiges Risiko.

Fazit: Beancount.io ist langfristig deutlich kostengünstiger, insbesondere für technische Teams, die Wert auf Datenhoheit legen. Traditionelle Software bietet vorhersehbare Abonnementkosten, schafft aber eine langfristige Abhängigkeit.

5. Lernkurve und Akzeptanz

Wie schnell können Sie loslegen?

Beancount.io Die Lernkurve ist unbestreitbar steiler. Die Einführung dieses Systems erfordert Vertrautheit mit textbasierter Bearbeitung, Verständnis der grundlegenden Syntax und Vertrautheit mit Tools wie Git. Die anfängliche Investition zahlt sich jedoch aus. Einmal gemeistert, ermöglicht Beancount unglaublich schnelle, wiederholbare Workflows und bietet ein viel tieferes, grundlegendes Verständnis Ihrer Finanzlage.

Traditionelle Software Diese Plattformen sind für nicht-technische Geschäftsinhaber konzipiert und bieten minimale Onboarding-Reibung. Sie können innerhalb von Minuten einsatzbereit sein, Rechnungen senden und Ausgaben kategorisieren. Das Erlernen der erweiterten Funktionen, wie z. B. das Erstellen benutzerdefinierter Berichte oder das Einrichten der Mehrfach-Entitäten-Buchhaltung, erfordert jedoch noch einen erheblichen Zeitaufwand.

Fazit: Beancount.io ist die richtige Wahl, wenn Sie bereit sind, Zeit in das Erlernen eines leistungsstarken Systems zu investieren. Traditionelle Software ist für nicht-technische Benutzer, die sofortige Ergebnisse benötigen, schneller zu starten.

Vergleich nebeneinander

FunktionBeancount.ioTraditionelle Buchhaltungssoftware
KernphilosophieBuchhaltung als Code; Plain-Text-LedgerGUI-basiert; formulargesteuert
DatenformatOffen (Plain Text)Proprietär (Datenbank)
Datenbesitz100 % benutzereigen und portabelVom Anbieter kontrolliert; potenzielle Herstellerbindung
FlexibilitätUnbegrenzt; vollständig skriptfähig mit PythonBegrenzt auf das Ökosystem und die APIs des Anbieters
ZusammenarbeitGit-basiert; transparenter ÄnderungsverlaufRollenbasierte Benutzerberechtigungen
TransparenzVollständig überprüfbar; keine versteckten BerechnungenEinige Berechnungen können undurchsichtig sein
KostenmodellOpen-Source-Kern; Zahlung für Hosting/AutomatisierungMonatliches/jährliches Abonnement (SaaS)
LernkurveSteiler für nicht-technische BenutzerNiedrig; für den Schnellstart konzipiert
Idealer BenutzerEntwickler, Power-User, DatenanalystenInhaber von KMUs, nicht-technische Teams

Wann sollte man welches wählen

Die Entscheidung hängt letztendlich von den Fähigkeiten, Prioritäten und dem Workflow Ihres Teams ab.

Wählen Sie Beancount.io, wenn Sie:

  • Ein Entwickler, Datenanalyst oder technisch versierter Power-User sind.
  • Absolute Transparenz, Kontrolle und langfristige Datenportabilität über alles schätzen.
  • Ihre Buchhaltung vollständig automatisieren und tief in Ihre benutzerdefinierten Workflows integrieren möchten.
  • Ihre Finanzunterlagen mit der gleichen Sorgfalt wie Quellcode behandeln möchten.

Wählen Sie traditionelle Buchhaltungssoftware, wenn Sie:

  • Eine visuelle Schnellstartoberfläche ohne technische Einrichtung wünschen.
  • Sofortigen, buchhalterfreundlichen Zugriff mit minimalem Schulungsaufwand benötigen.
  • Eine verwaltete, gehostete Lösung bevorzugen, bei der der Anbieter alle Aktualisierungen und die Einhaltung von Vorschriften übernimmt.
  • Ihre Integrationsanforderungen durch gängige Standard-Apps erfüllt werden.

Schlussgedanken

Beancount.io versucht nicht, ein besseres QuickBooks zu sein – es ist eine grundlegend andere Denkweise. Es repräsentiert Buchhaltung als Code. Für technische Fachleute bietet diese Veränderung den gleichen Fortschritt, den die Versionskontrolle mit Git für die Softwareentwicklung gebracht hat: vollständige Transparenz, perfekte Reproduzierbarkeit und ultimative Kontrolle.

Gleichzeitig überzeugt traditionelle Buchhaltungssoftware weiterhin durch sofort einsatzbereite Benutzerfreundlichkeit und vorgefertigte Integrationen für nicht-technische Teams. Bei der richtigen Wahl geht es nicht darum, welches insgesamt "besser" ist, sondern welches perfekt zu Ihrem Workflow, Ihren Prioritäten und dem Grad der Kontrolle passt, den Sie über Ihre Finanzdaten verlangen.

Das Beancount-Ökosystem: Eine umfassende Analyse

· 48 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Kernfunktionalität und Philosophie von Beancount

Beancount ist ein quelloffenes System für die doppelte Buchführung, das Plain-Text-Dateien zur Aufzeichnung von Transaktionen verwendet. Im Kern betrachtet Beancount Ihr Hauptbuch als einen Datensatz, der durch eine einfache, strenge Grammatik definiert ist. Jedes finanzielle Ereignis (Transaktionen, Kontoeröffnungen, Rohstoffpreise usw.) ist eine Direktive in einer Textdatei, die Beancount in eine In-Memory-Datenbank von Einträgen parst. Dieses Design erzwingt das Prinzip der doppelten Buchführung: Jede Transaktion muss Soll und Haben über die Konten hinweg ausgleichen. Das Ergebnis ist ein hochtransparentes und prüfbares Hauptbuch, das Sie problemlos versionieren, inspizieren und abfragen können.

2025-04-15-beancount-ecosystem

Philosophie – Korrektheit und Minimalismus: Das Design von Beancount priorisiert Datenintegrität und Einfachheit. Sein Schöpfer, Martin Blais, beschreibt Beancount als „pessimistisch“, da es davon ausgeht, dass der Benutzer Fehler macht, und daher zusätzliche Prüfungen und Einschränkungen auferlegt. Beancount erlaubt es Ihnen beispielsweise nicht, Vermögenswerte zu entfernen, die nie hinzugefügt wurden (was negative Aktienbestände oder Barbestände verhindert), und kann erzwingen, dass jedes Konto vor der Verwendung eröffnet wird. Es fehlt das Konzept von Ledger für „virtuelle“ oder automatisch ausgeglichene Buchungen – eine bewusste Entscheidung, um vollständig ausgeglichene Einträge zu erzwingen. Beancount geht bei der Korrektheit „Hardcore-Wege“ mit mehr Plausibilitätsprüfungen, als die einfache doppelte Buchführung bietet. Dieser vorsichtige Ansatz spricht Benutzer an, die „sich selbst nicht zu sehr vertrauen“ und möchten, dass die Software ihre Fehler abfängt.

Minimale Optionen, maximale Konsistenz: Im Gegensatz zu den unzähligen Kommandozeilen-Flags und Einstellungsoptionen von Ledger entscheidet sich Beancount für Minimalismus. Es gibt nur sehr wenige globale Optionen und keine, die die Transaktionssemantik außerhalb der Ledger-Datei ändern. Alle Konfigurationen, die die Buchhaltung betreffen (wie Methoden für die Anschaffungskosten von Waren oder Buchungsannahmen), erfolgen in der Datei über Direktiven oder Plugins. Dies stellt sicher, dass das Laden derselben Datei immer dieselben Ergebnisse liefert, unabhängig davon, wie Berichte erstellt werden. Dieses Design vermeidet die Komplexität der vielen Regler von Ledger und die subtilen Interaktionen zwischen ihnen. Die Philosophie von Beancount ist, dass ein Buchhaltungswerkzeug eine stabile, deterministische Pipeline von der Eingabedatei bis zu den Berichten sein sollte. Dies wird erreicht, indem das Hauptbuch als ein geordneter Strom von Direktiven behandelt wird, die programmatisch nacheinander verarbeitet werden können. Sogar Dinge, die Ledger als spezielle Syntax behandelt (wie Eröffnungsbilanzen oder Preisangaben), sind in Beancounts Datenmodell Direktiven erster Klasse, was das System hochgradig erweiterbar macht.

Erweiterbarkeit über Plugins und Abfragesprache: Beancount ist in Python implementiert und bietet Hooks, um benutzerdefinierte Logik in die Verarbeitungspipeline einzuspeisen. Benutzer können Plugins in Python schreiben, die auf dem Transaktionsstrom operieren (zum Beispiel, um eine benutzerdefinierte Regel durchzusetzen oder automatische Einträge zu generieren). Diese Plugins laufen während der Dateiverarbeitung und erweitern effektiv die Kernfunktionalität von Beancount, ohne dass der Quellcode geändert werden muss. Beancount enthält außerdem eine leistungsstarke Abfragesprache (inspiriert von SQL), um das Hauptbuch zu analysieren. Das Tool bean-query behandelt das geparste Hauptbuch als Datenbank und ermöglicht analytische Abfragen – zum Beispiel die Summierung von Ausgaben nach Kategorien oder das Extrahieren aller Transaktionen für einen bestimmten Zahlungsempfänger. In Beancount 3.x wurde diese Abfragefunktion in ein eigenständiges beanquery-Paket ausgelagert, bietet aber aus Benutzersicht weiterhin flexible Berichte über SQL-ähnliche Abfragen.

Plain Text und Versionskontrolle: Als Plain-Text-Buchhaltungswerkzeug betont Beancount die Benutzerkontrolle und die Langlebigkeit der Daten. Das Hauptbuch ist einfach eine .beancount-Textdatei, die Sie in jedem Texteditor bearbeiten können. Dies bedeutet, dass Ihre gesamte Finanzhistorie in einer menschenlesbaren Form gespeichert ist und Sie sie in Git oder ein anderes VCS einbinden können, um Änderungen im Laufe der Zeit zu verfolgen. Benutzer führen ihre Beancount-Datei oft unter Versionskontrolle, um einen Audit-Trail jeder Bearbeitung zu pflegen (mit Commit-Nachrichten, die die Änderungen beschreiben). Dieser Ansatz steht im Einklang mit der Philosophie von Beancount, dass Buchhaltungsdaten, insbesondere für persönliche Finanzen oder kleine Unternehmen, transparent und „zukunftssicher“ sein sollten – nicht in einer proprietären Datenbank eingeschlossen. In Martin Blais’ eigenen Worten ist Beancount eine „Arbeit aus Leidenschaft“, die entwickelt wurde, um einfach, langlebig und kostenlos für die Gemeinschaft zu sein. Es wurde erstmals um 2007 entwickelt und hat sich durch umfangreiche Neuschreibungen (v1 bis v2 und jetzt v3 im Jahr 2024) weiterentwickelt, um sein Design zu verfeinern und gleichzeitig seine Kernphilosophie von Minimalismus und Korrektheit zu bewahren.

Werkzeuge, Plugins und Erweiterungen im Beancount-Ökosystem

Das Beancount-Ökosystem hat eine reiche Auswahl an Werkzeugen, Plugins und Erweiterungen hervorgebracht, die die Kernfunktionalität des Hauptbuchs verbessern. Diese decken den Import von Daten, das Bearbeiten von Hauptbüchern, das Anzeigen von Berichten und das Hinzufügen spezialisierter Buchhaltungsfunktionen ab. Unten finden Sie eine Übersicht der wichtigsten Komponenten und Add-ons in der Beancount-Welt:

Dienstprogramme für den Datenimport (Importer)

Eines der wichtigsten Bedürfnisse für die praktische Anwendung ist der Import von Transaktionen von Banken, Kreditkarten und anderen Finanzinstituten. Beancount bietet zu diesem Zweck ein Import-Framework und von der Community beigesteuerte Import-Skripte an. In Beancount 2.x wurde das integrierte Modul beancount.ingest (mit Befehlen wie bean-extract und bean-identify) verwendet, um Importer-Plugins in Python zu definieren und auf heruntergeladene Kontoauszüge anzuwenden. In Beancount 3.x wurde dies durch ein externes Projekt namens Beangulp ersetzt. Beangulp ist ein spezielles Framework für Importer, das aus beancount.ingest hervorgegangen ist und nun der empfohlene Weg zur Automatisierung des Transaktionsimports für Beancount 3.0 ist. Es ermöglicht das Schreiben von Python-Skripten oder Befehlszeilen-Tools, die externe Dateien (wie CSV- oder PDF-Kontoauszüge) lesen und Beancount-Einträge ausgeben. Dieser neue Ansatz entkoppelt die Import-Logik vom Beancount-Kern – zum Beispiel wurde der alte Befehl bean-extract in Version 3 entfernt, und stattdessen erzeugen Ihre Import-Skripte selbst Transaktionen über die CLI-Schnittstelle von Beangulp.

Es existieren Dutzende von fertigen Importern für verschiedene Banken und Formate, die von der Community beigesteuert wurden. Es gibt Import-Skripte für Institutionen auf der ganzen Welt – von Alipay und WeChat Pay in China über verschiedene europäische Banken (Commerzbank, ING, ABN AMRO usw.) bis hin zu US-Banken wie Chase und Amex. Viele davon sind in öffentlichen Repositories (oft auf GitHub) oder in Paketen wie beancount-importers gesammelt. Beispielsweise bietet das Projekt Tarioch Beancount Tools (tariochbctools) Importer für Schweizer und britische Banken an und unterstützt sogar den Import von Krypto-Transaktionen. Ein weiteres Beispiel ist Lazy Beancount, das eine Reihe gängiger Importer (für Wise, Monzo, Revolut, IBKR usw.) bündelt und ein Docker-basiertes Setup für eine einfache Automatisierung bietet. Egal welche Bank oder welchen Finanzdienst Sie nutzen, die Wahrscheinlichkeit ist hoch, dass bereits jemand einen Beancount-Importer dafür geschrieben hat – oder Sie können Ihren eigenen mit dem Beangulp-Framework erstellen. Die Flexibilität von Python bedeutet, dass Importer das Parsen von CSV- / Excel-Dateien, OFX- / QIF-Downloads oder sogar das Scraping von APIs übernehmen können, um dann Transaktionen im standardisierten Beancount-Format auszugeben.

Editierung und Editor-Integration

Da Beancount-Hauptbücher reine Textdateien sind, nutzen Anwender häufig ihre bevorzugten Texteditoren oder IDEs, um sie zu pflegen. Das Ökosystem bietet Plugins zur Editor-Unterstützung, um diese Erfahrung reibungsloser zu gestalten. Es gibt Erweiterungen für viele gängige Editoren, die Syntax-Hervorhebung, Autovervollständigung von Kontonamen und Fehlerprüfung in Echtzeit hinzufügen:

  • Emacs Beancount-Mode: Ein Emacs-Major-Mode (beancount-mode) ist für die Bearbeitung von .beancount-Dateien verfügbar und bietet Funktionen wie Syntax-Hervorhebung und Integration mit dem Checker von Beancount. Er kann sogar bean-check im Hintergrund ausführen, sodass Fehler im Hauptbuch (wie eine unausgeglichene Transaktion) direkt während der Bearbeitung markiert werden.
  • VS Code Erweiterung: Eine Beancount-Erweiterung im VSCode Marketplace bietet ähnlichen Komfort für Benutzer von Visual Studio Code. Sie unterstützt Syntax-Hervorhebung, Ausrichtung von Beträgen, Autovervollständigung für Konten / Zahlungsempfänger und sogar Bilanzprüfungen während der Eingabe beim Speichern der Datei. Sie kann auch in Fava integriert werden, sodass Sie die Fava-Weboberfläche direkt aus VSCode heraus starten können.
  • Plugins oder Modi existieren auch für Vim, Atom und andere Editoren. Zum Beispiel gibt es eine Tree-sitter-Grammatik für Beancount, welche die Syntax-Hervorhebung in modernen Editoren ermöglicht und sogar in der webbasierten Editor-Komponente von Fava übernommen wurde. Kurz gesagt: Unabhängig von Ihrer Editor-Umgebung hat die Community wahrscheinlich ein Plugin bereitgestellt, um die Bearbeitung von Beancount-Dateien komfortabel und fehlerfrei zu gestalten.

Für die schnelle Erfassung von Transaktionen außerhalb traditioneller Editoren gibt es auch Tools wie Bean-add und mobile Apps. Bean-add ist ein Befehlszeilen-Tool, das das Hinzufügen einer neuen Transaktion über eine Eingabeaufforderung oder einen Einzeiler ermöglicht und dabei Datums- und Kontovorschläge verarbeitet. Für Mobilgeräte bietet ein Projekt namens Beancount Mobile eine einfache Schnittstelle, um Transaktionen unterwegs einzugeben (zum Beispiel zur Erfassung eines Barkaufs direkt vom Telefon aus). Zusätzlich existiert ein Beancount Telegram Bot, um Transaktionen per Messenger zu erfassen – Sie können eine Nachricht mit den Transaktionsdetails senden, und der Bot formatiert diese in Ihre Hauptbuch-Datei.

Web-Frontends und Visualisierungs-Tools

(Fava) Die Weboberfläche von Fava bietet ein interaktives Dashboard für Beancount mit Berichten wie einer Gewinn- und Verlustrechnung mit Visualisierungen (hier dargestellt als Treemap der Ausgaben nach Kategorien) neben Tabellen mit Konten und Salden.

Das Flaggschiff unter den Frontends für Beancount ist Fava, eine moderne Weboberfläche. Fava läuft als lokale Web-App, die Ihre Beancount-Datei liest und ein reichhaltiges interaktives Erlebnis in Ihrem Browser erzeugt. Es bietet eine vollständige Suite von Berichten: Bilanz, Gewinn- und Verlustrechnung, Nettovermögen im Zeitverlauf, Portfolio-Bestände, Performance-Diagramme, Budgets und mehr – alles direkt einsatzbereit. Benutzer nennen Fava oft als einen Hauptgrund für die Wahl von Beancount gegenüber anderen Textbasierten Buchhaltungstools. Mit einem einzigen Befehl (fava ledger.beancount) können Sie Ihre Finanzen mit Grafiken und Tabellen statt nur mit Text durchsuchen. Fava unterstützt Funktionen wie: Drilldown in Konten, Filtern von Transaktionen nach Empfänger oder Tag, einen Abfrage-Editor (sodass Sie Beancount-Abfragen ausführen und Ergebnisse im Browser sehen können) und sogar einen integrierten webbasierten Editor für Ihr Hauptbuch. Es ist sehr benutzerfreundlich und macht Textbasierte Buchhaltung für diejenigen zugänglich, die visuelle Oberflächen bevorzugen.

Unter der Haube ist Fava in Python (Flask im Backend) und JavaScript (Svelte im Frontend) geschrieben. Es hat seinen eigenen Release-Zyklus und wird aktiv gepflegt. Bemerkenswerterweise hat Fava mit der Entwicklung von Beancount Schritt gehalten – zum Beispiel wurde in Fava 1.30 die Unterstützung für Beancount v3 hinzugefügt, indem intern auf die neuen Pakete beanquery und beangulp umgestellt wurde. (Beancount 2 wird für ältere Hauptbücher weiterhin unterstützt.) Favas Fokus auf Benutzerfreundlichkeit zeigt sich in Details wie der Autovervollständigung im Web-Editor und einer eleganten Benutzeroberfläche mit Dark Mode und responsiven Diagrammen. Es gibt auch einen Ableger namens Fava-GTK, der Fava in einer Desktop-Anwendung für GNOME / Linux-Benutzer bündelt, die das Gefühl einer nativen App bevorzugen.

Jenseits von Fava gibt es weitere Visualisierungs- und Analyseoptionen. Da Beancount-Daten als Tabellen exportiert oder abgefragt werden können, nutzen Anwender häufig Tools wie Jupyter-Notebooks oder Pandas für benutzerdefinierte Analysen. Beispielsweise beschreibt ein Benutzer, wie er Daten von Beancount über die Abfrageschnittstelle in ein Pandas DataFrame zieht, um einen benutzerdefinierten Bericht zu erstellen. Es gibt auch von der Community beigesteuerte Skripte für spezifische Berichte – z. B. ein Tool zur Analyse der Portfolio-Allokation oder ein Prozesskontrolldiagramm für Ausgaben im Vergleich zum Nettovermögen. Für die meisten Menschen bietet Fava jedoch mehr als genug Berichtsfunktionen, ohne dass Code geschrieben werden muss. Es unterstützt sogar Erweiterungen: Sie können Python-Dateien hinzufügen, die neue Berichtsseiten oder Diagramme in Fava ergänzen. Eine bemerkenswerte Erweiterung ist fava-envelope für die Umschlag-Budgetierung innerhalb von Fava. Insgesamt dient Fava als zentrales Visualisierungs-Hub des Beancount-Ökosystems.

Befehlszeilen-Dienstprogramme und Skripte

Beancount wird mit verschiedenen CLI-Tools geliefert (insbesondere im älteren v2-Zweig, von denen einige in v3 gestrichen wurden). Diese Tools arbeiten mit Ihrer Ledger-Datei, um diese zu überprüfen oder spezifische Berichte in Text- oder HTML-Format zu erstellen:

  • bean-check: ein Validator, der die Datei auf Syntaxfehler oder Buchhaltungsfehler prüft. Das Ausführen von bean-check myfile.beancount warnt Sie bei Ungleichgewichten, fehlenden Konten oder anderen Problemen und gibt nichts aus, wenn die Datei fehlerfrei ist.
  • bean-format: ein Formatter, der Ihr Ledger aufräumt, indem er Zahlen in ordentlichen Spalten ausrichtet, ähnlich wie ein Code-Formatter bei Quellcode. Dies hilft, die Datei sauber und lesbar zu halten.
  • bean-query: eine interaktive Shell oder ein Batch-Tool, um die Abfragesprache von Beancount auf Ihr Ledger anzuwenden. Sie können damit benutzerdefinierte tabellarische Berichte erstellen (z. B. bean-query myfile.beancount "SELECT account, sum(amount) WHERE ...").
  • bean-report: ein vielseitiger Berichtgenerator (in v2), der vordefinierte Berichte (Bilanz, Gewinn- und Verlustrechnung, Summen- und Saldenliste usw.) in der Konsole oder in Dateien ausgeben kann. Beispielsweise würde bean-report file.beancount balances die Kontostände ausgeben. (In der Praxis wurden viele dieser Textberichte durch die ansprechendere Darstellung von Fava ersetzt.)
  • bean-web / bean-bake: eine ältere Web-Schnittstelle, die Berichte auf localhost bereitstellte oder sie als statische HTML-Dateien „backte“. Diese wurden hauptsächlich verwendet, bevor Fava populär wurde; bean-web bot eine einfache Webansicht derselben Berichte, die auch bean-report generieren konnte. In Beancount 3 wurde bean-web entfernt (da Fava nun das empfohlene Web-Frontend ist und eine bessere Benutzererfahrung bietet).
  • bean-example: ein Dienstprogramm zum Erstellen einer Beispiel-Ledger-Datei (nützlich für Neulinge, um eine Vorlage für Beancount-Einträge zu sehen).
  • bean-doctor: ein Debugging-Tool, das Probleme in Ihrem Ledger oder Ihrer Umgebung diagnostizieren kann.

Es ist erwähnenswert, dass ab Beancount v3 viele dieser Tools aus dem Kernprojekt ausgelagert wurden. Das Beancount-Kernpaket wurde verschlankt, und Tools wie die Query-Engine und die Importer wurden in separate Pakete aufgeteilt (beanquery, beangulp usw.), um die Wartung zu erleichtern. Zum Beispiel wird die Funktionalität von bean-query nun durch das Tool beanquery bereitgestellt, das separat installiert wird. Aus Anwendersicht bleibt die Funktionalität verfügbar; sie wurde lediglich modularisiert. Die Arch Linux-Community bemerkte diese Änderung bei der Aktualisierung von Fava: Das Fava-Paket fügte Abhängigkeiten von beanquery und beangulp hinzu, um Beancount 3.x zu unterstützen. Dieser modulare Ansatz ermöglicht es der Community auch, unabhängiger vom Release-Zyklus von Beancount an diesen Zusatzwerkzeugen mitzuwirken.

Beancount-Plugins und Erweiterungen

Eine herausragende Stärke des Beancount-Ökosystems ist das Plugin-System. Durch Hinzufügen einer Zeile plugin "module.name" in Ihrer Beancount-Datei können Sie benutzerdefinierte Python-Logik integrieren, die während der Ledger-Verarbeitung ausgeführt wird. Die Community hat viele Plugins erstellt, um die Funktionen von Beancount zu erweitern:

  • Datenqualität und Regeln: Beispiele hierfür sind beancount-balexpr, mit dem Sie Gleichungen unter Einbeziehung mehrerer Konten festlegen können (z. B. Aktivposten A + Aktivposten B = Passivposten X), und beancount-checkclosed, das automatisch Saldenbestätigungen einfügt, wenn Sie ein Konto schließen, um sicherzustellen, dass es auf Null aufgeht. Es gibt sogar ein Plugin, das sicherstellt, dass Transaktionen in der Datei nach Datum sortiert sind (autobean.sorted), um falsch geordnete Einträge zu finden.
  • Automatisierung: Das Plugin beancount-asset-transfer kann Sachtransfer-Einträge zwischen Konten generieren (nützlich für das Verschieben von Aktien zwischen Brokern unter Beibehaltung der Anschaffungskosten). Ein weiteres, autobean.xcheck, gleicht Ihr Beancount-Ledger mit externen Kontoauszügen auf Unstimmigkeiten ab.
  • Wiederkehrende Transaktionen und Budgets: Das „repeat“- oder Interpolate-Plugin von Akuukis ermöglicht die Definition wiederkehrender Transaktionen oder die Verteilung einer jährlichen Ausgabe auf Monate. Für die Budgetierung unterstützt die Erweiterung fava-envelope (verwendet über Fava) die Methodik der Umschlagbudgetierung (Envelope Budgeting) in reinem Text. Außerdem gibt es MiniBudget von Frank Davies – ein kleines, eigenständiges Tool, das von Beancount inspiriert wurde, um bei der Budgetierung für den persönlichen Gebrauch oder kleine Unternehmen zu helfen.
  • Steuern und Berichterstattung: Einige Plugins helfen bei der Steuerrechnung, wie zum Beispiel eines, das Veräußerungsgewinne automatisch in kurz- oder langfristige Gewinne klassifiziert. Ein weiteres (fincen_114 von Justus Pendleton) erstellt einen FBAR-Bericht für US-Steuerzahler mit Auslandskonten, was illustriert, wie Beancount-Daten für die regulatorische Berichterstattung genutzt werden können.
  • Community-Plugin-Repositorys: Es gibt kuratierte Plugin-Sets wie beancount-plugins (von Dave Stephens), die sich auf Dinge wie Abschreibungsbuchungen konzentrieren, und beancount-plugins-zack (von Stefano Zacchiroli), die verschiedene Hilfsmittel wie Sortieranweisungen enthalten.

Zusätzlich zu den Plugins gibt es weitere Hilfswerkzeuge rund um Beancount für spezifische Anforderungen. Zum Beispiel ist beancount-black ein Auto-Formatter ähnlich dem Black-Code-Formatter, jedoch für Beancount-Ledger-Dateien. Es gibt einen Beancount-Bot (Telegram / Mattermost), um Transaktionen per Chat hinzuzufügen, wie bereits erwähnt, und einen Alfred-Workflow für macOS, um Transaktionen schnell an Ihre Datei anzuhängen. Ein Tool namens Pinto bietet eine „leistungsstarke“ CLI mit interaktiver Eingabe (wie ein erweitertes bean-add). Für diejenigen, die von anderen Systemen migrieren, gibt es Konverter (YNAB2Beancount, CSV2Beancount, GnuCash2Beancount, Ledger2Beancount), die dabei helfen, Daten von anderswo zu importieren.

Zusammenfassend lässt sich sagen, dass das Beancount-Ökosystem sehr umfangreich ist. Tabelle 1 unten listet einige wichtige Tools und Erweiterungen mit ihren Rollen auf:

Tool / ErweiterungBeschreibung
Fava (Web-Interface)Voll funktionsfähige Web-App zum Anzeigen und Bearbeiten von Beancount-Büchern. Bietet interaktive Berichte (Bilanz, GuV usw.), Diagramme und Abfragefunktionen. Großer Usability-Schub für Beancount.
Beangulp (Import-Framework)Eigenständiges Importer-Framework für Beancount v3, das das ältere Ingest-Modul ersetzt. Hilft bei der Umwandlung von Kontoauszügen (CSV, PDF usw.) in Beancount-Einträge mithilfe von Plugin-Skripten.
Beanquery (Abfragetool)Eigenständige SQL-ähnliche Query-Engine für Beancount-Daten. Ersetzt bean-query in v3 und ermöglicht erweiterte Abfragen von Transaktionen und Salden über eine vertraute SELECT-FROM-WHERE-Syntax.
Bean-check / Bean-formatKern-CLI-Tools zur Validierung einer Beancount-Datei (Prüfung auf Fehler) und zur automatischen Formatierung für Konsistenz. Nützlich für die Führung eines korrekten und sauberen Ledgers.
Editor-Plugins (Emacs, VSCode, Vim usw.)Plugins / Modi, die Beancount-Syntaxunterstützung und Linting in Texteditoren hinzufügen. Verbessern die Erfahrung beim manuellen Bearbeiten von .beancount-Dateien durch Funktionen wie Autovervollständigung und Live-Fehlerhervorhebung.
Community-ImporterSammlungen von Bank-Import-Skripten (viele auf GitHub), die Banken in den USA, der EU, Asien und mehr abdecken. Ermöglichen es Benutzern, Transaktionen von ihren Finanzinstituten automatisch in Beancount einzulesen.
Plugins (Ledger-Erweiterungen)Optionale In-File-Plugins zur Durchsetzung von Regeln oder zum Hinzufügen von Funktionen (z. B. Kostenteilung, wiederkehrende Einträge, benutzerdefinierte Saldenbestätigungen). In Python geschrieben und während der Dateiverarbeitung zur Anpassung ausgeführt.

| Konverter (Migrations-Tools) | Dienstprogramme zur Konvertierung von Daten aus anderen Formaten in Beancount, z. B. von GnuCash oder Ledger CLI in das Beancount-Format. Erleichtern den Umstieg auf Beancount, ohne bei Null anfangen zu müssen. |

Vergleich mit Ledger, hledger und ähnlichen Systemen

Beancount gehört zur Familie der Werkzeuge für die Plain-Text-Buchhaltung nach dem Prinzip der doppelten Buchführung, unter denen Ledger CLI (John Wiegley’s Ledger) und hledger besonders hervorstechen. Obwohl all diese Systeme die Kernidee von Plain-Text-Ledger-Dateien und der doppelten Buchführung teilen, unterscheiden sie sich in Syntax, Philosophie und der Reife ihres Ökosystems. Die folgende Tabelle beleuchtet die wichtigsten Unterschiede zwischen Beancount, Ledger und hledger:

AspektBeancount (Python)Ledger CLI (C++)hledger (Haskell)
Syntax & DateistrukturStrikte, strukturierte Syntax, die durch eine formale Grammatik (BNF) definiert ist. Transaktionen haben explizite date flag "Payee" "Narration"-Zeilen und Buchungen mit Mengenangaben; alle Konten müssen explizit eröffnet/definiert werden. Keine impliziten Buchungen; jede Transaktion muss ausgeglichen sein.Eher freiformatige Syntax. Zahlungsempfänger/Beschreibung stehen normalerweise in der gleichen Zeile wie das Datum. Ermöglicht teilweise impliziten Ausgleich (z. B. kann eine Transaktion mit einer einzelnen Buchung eine zweite Buchung auf ein Standardkonto implizieren). Kontonamen können ohne vorherige Deklaration verwendet werden. Bietet viele Befehlszeilenoptionen, die das Parsing beeinflussen können (z. B. Jahresannahmen, Regeln zur Zusammenführung von Commodities).Folgt weitgehend der Syntax von Ledger mit geringfügigen Unterschieden. hledger ist eine Neuimplementierung der Kernfunktionen von Ledger in Haskell, daher ist das Journal-Format dem von Ledger sehr ähnlich (mit einigen Erweiterungen und standardmäßig strengerem Parsing). Beispielsweise ist hledger bei Daten und der Commodity-Syntax etwas strenger als Ledger, aber nicht so streng wie Beancount.
PhilosophieKonservativ & Pedantisch. Legt Wert darauf, Benutzerfehler abzufangen und die Datenintegrität über alles andere zu stellen. Erzwingt standardmäßig viele Prüfungen (Saldenprüfungen/Balance Assertions, Lot-Tracking). Minimale Konfiguration – ein „One way to do it“-Ansatz für Konsistenz. Entworfen als Bibliothek mit Plugins zur Erweiterbarkeit (behandelt Ledger-Daten als einen zu verarbeitenden Stream, was benutzerdefinierte Python-Logik ermöglicht).Optimistisch & Flexibel. Vertraut darauf, dass der Benutzer die Daten korrekt eingibt; standardmäßig weniger integrierte Einschränkungen. Hochgradig anpassbar mit Dutzenden von Optionen und Befehlsflags, um das Verhalten zu justieren. Tendenziell ein monolithisches Werkzeug mit integrierten Funktionen (Berichte, Diagramme) und nutzt eine domänenspezifische Sprache innerhalb des Ledgers für Dinge wie automatisierte und periodische Transaktionen. Die Erweiterbarkeit erfolgt typischerweise über externe Skripte oder die integrierte Abfragesprache statt über Plugin-APIs.Pragmatisch & Konsistent. Ziel ist es, den Ansatz von Ledger einem breiteren Publikum mit vorhersehbarem Verhalten zugänglich zu machen. hledger setzt standardmäßig auf mehr Konsistenz (keine Ausgleichsannahmen ohne explizite Konten) und bietet weniger Fehlermöglichkeiten („Footguns“) als die nachsichtigeren Modi von Ledger. Es verfügt über eine Untermenge der Funktionen von Ledger (einige exotischere Optionen von Ledger werden nicht unterstützt), fügt aber eigene hinzu (wie eine integrierte Web-Benutzeroberfläche und CSV-Import). Betont Stabilität und Korrektheit, jedoch ohne ein Plugin-System wie das von Beancount.
Transaktionen & AusgleichStrikte doppelte Buchführung: Jede Transaktion muss in der Summe gleiche Soll- und Haben-Beträge aufweisen. Erlaubt keine unausgeglichenen Einträge oder Platzhalter (keine „virtuellen Buchungen“, die sich automatisch ausgleichen). Erzwingt zudem die Unabhängigkeit von der Reihenfolge: Der Ledger kann beliebig nach Datum sortiert werden, da Saldenprüfungen datumsbezogen sind und nicht von der Dateireihenfolge abhängen. Die Kostenverfolgung für Commodities ist streng – beim Verkauf von Vermögenswerten müssen Sie Lots spezifizieren, oder Beancount erzwingt FIFO / LIFO, sodass Sie nichts entfernen können, was Sie nicht zuvor hinzugefügt haben.Erlaubt mehr Nachsicht bei Transaktionen. Ledger gestattet „virtuelle“ Buchungen (unter Verwendung von eckigen Klammern [ ] oder Klammern), die kein explizites Gegenkonto erfordern – oft genutzt für Budgetierung oder impliziten Eigenkapitalausgleich. In Ledger ist es möglich, eine unvollständige Transaktion einzugeben (eine Seite wegzulassen) und Ledger den Ausgleichsbetrag ableiten zu lassen. Zudem erzwingt Ledger die Ausbuchung von Vermögenswerten nicht strikt Lot für Lot; es subtrahiert problemlos von einem Gesamtsaldo, selbst wenn keine spezifischen Lots verfolgt wurden. Dies erleichtert die Durchschnittskostenrechnung, bedeutet aber auch, dass Ledger Sie nicht vor Fehlern bewahrt, wie dem Verkauf von mehr Anteilen, als Sie in einem bestimmten Lot besitzen.Ähnlich wie Ledger durch das Zulassen virtueller Buchungen und impliziten Ausgleichs, jedoch mit konsistenterem Verhalten. hledger erzwingt strengere Parsing-Regeln als Ledger, ist aber nachsichtiger als Beancount.
Inventar & KostenbasisPräzise Chargenverfolgung (Lot-Tracking). Beancount verknüpft Kosteninformationen mit Commodity-Lots (z. B. Kauf von 10 Anteilen zu je 100 $). Bei einer Bestandsreduzierung muss ein spezifisches Lot abgeglichen oder eine definierte Strategie verwendet werden. Dies stellt sicher, dass Veräußerungsgewinne und Kostenbasen bauartbedingt korrekt berechnet werden. Die Durchschnittskostenmethode ist nicht der Standard, es sei denn, man schreibt explizit Logik dafür, da Beancount jedes Lot separat behandelt, um die Genauigkeit zu wahren.Abstrakteres Inventar. Ledger behandelt Commodity-Beträge flüssiger; standardmäßig werden alle Lots in Berichten zusammengeführt (es zeigt nur Gesamtmengen an). Es bietet Optionen, um nach Lot oder Durchschnittskosten zu berichten, falls erforderlich, aber dies ist eine reine Berichtsangelegenheit. Historisch gesehen nutzte Ledger Kosteninformationen nicht, um den Ausgleich in Transaktionen mit mehreren Commodities zu erzwingen, was zu subtilen Fehlberechnungen bei Veräußerungsgewinnen führen konnte. Die Flexibilität von Ledger erlaubt es Benutzern jedoch, FIFO, LIFO, Durchschnittskosten usw. zum Zeitpunkt der Berichterstellung über Befehlszeilenflags zu wählen.Ähnlich wie Ledger mit flexibler Inventarverwaltung. hledger kann Lots verfolgen, wenn diese spezifiziert sind, erzwingt die Lot-für-Lot-Verfolgung jedoch nicht so streng wie Beancount. Berechnungen für Veräußerungsgewinne sind verfügbar, erfordern jedoch mehr manuelle Einrichtung.
Reporting & UIPrimär über Fava (Web-UI) sowie bean-query / bean-report. Fava bietet ein ansprechendes Web-Dashboard mit Grafiken und Diagrammen, was Beancount sehr benutzerfreundlich für Analysen macht. Unterstützt auch textbasierte Berichte und SQL-ähnliche Abfragen via bean-query. Keine offizielle TUI (Text UI), aber die Integration in Editoren/IDEs füllt diese Lücke.Primär CLI-basiertes Reporting. Ledger verfügt über viele integrierte Berichtsbefehle (Balance, Register, Stats usw.), die Text im Terminal ausgeben. Es kann Diagramme erstellen (ASCII oder via gnuplot) und verfügt sogar über einige Erweiterungen für HTML-Berichte, hat aber keine offizielle Web-Benutzeroberfläche, die als Teil des Projekts gepflegt wird. (Es gab Versuche von Drittanbietern für Web-UIs für Ledger, aber keine ist so prominent wie Fava für Beancount). Als UI verlassen sich Benutzer auf das Terminal oder eventuell GUIs wie Ledger-Live (ein separates Projekt).Bietet sowohl CLI als auch eine einfache Web-UI. hledger übernimmt die CLI-Berichte von Ledger (mit ähnlichen Befehlen) und bietet zusätzlich hledger-web, eine einfache Web-Benutzeroberfläche zum Einsehen von Konten und Transaktionen im Browser. hledger-web ist nicht so funktionsreich wie Fava, bietet aber eine schreibgeschützte Übersicht. Zudem gibt es hledger-ui, eine Terminal-basierte Curses-Oberfläche für die interaktive Nutzung.
Erweiterbarkeit & PluginsHohe Erweiterbarkeit via Python. Die Plugin-API erlaubt es, beliebigen Python-Code während der Ledger-Verarbeitung auszuführen, was bedeutet, dass Benutzer benutzerdefinierte Funktionen implementieren können, ohne den Kern zu ändern. Das Ökosystem an Plugins (für Budgetierung usw.) verdeutlicht dies. Zudem kann man Python-Skripte schreiben, um die Bibliotheken von Beancount für individuelles Reporting zu nutzen.Erweiterbarkeit auf niedrigerer Ebene. Ledger kann durch eigene Skripte erweitert werden, die die Ausgabe von Ledger parsen, oder durch geschickte Nutzung der internen Abfragesprache. Es bietet zudem Funktionen wie automatisierte Transaktionen (Regeln, die basierend auf Triggern im Journal automatisch Buchungen generieren) und periodische Transaktionen, was Arten von integrierter Erweiterbarkeit innerhalb der Ledger-Datei darstellt. Es bietet jedoch keine API, um beliebigen Code in die Accounting-Engine einzuspielen – es ist nicht im gleichen Sinne eine Bibliothek (obwohl libledger für C++-Entwickler existiert).Moderate Erweiterbarkeit. hledger verzichtet bewusst auf die Funktionen für automatisierte/periodische Transaktionen von Ledger, um die Dinge einfacher zu halten, bietet aber Werkzeuge wie hledger-import zur Konvertierung anderer Formate und erlaubt Add-ons. Da es in Haskell geschrieben ist, wird es in einigen Projekten als Bibliothek verwendet, aber das Schreiben benutzerdefinierter Plugins ist nicht so geradlinig wie der Ansatz von Beancount. Stattdessen konzentriert sich hledger darauf, gängige Bedürfnisse (Berichte, Web, UI) innerhalb seines offiziellen Toolsets abzudecken.
Community & EntwicklungAktiv, aber primär von einem Autor (Martin Blais) und einer kleinen Gruppe von Mitwirkenden vorangetrieben. Hauptveröffentlichungen sind selten (v2 war ca. 6 Jahre stabil, v3 erschien 2024). Die Community trägt über Plugins und Tools bei (Fava war ursprünglich ein Drittanbieterprojekt, das integraler Bestandteil wurde). Die Mailingliste und GitHub von Beancount sind aktiv, und die Benutzerbasis ist dank der Attraktivität von Fava für Nicht-Entwickler gewachsen.Lange Historie (Ledger reicht bis ins Jahr 2003 zurück) und breite Nutzung unter Ingenieuren. Ursprünglich ein Ein-Personen-Projekt (Wiegley), sah es im Laufe der Zeit viele Mitwirkende. Die Entwicklung von Ledger hat sich in den letzten Jahren verlangsamt; es ist stabil, aber es kommen weniger neue Funktionen hinzu (der Fokus liegt auf der Wartung). Die Mailingliste ledger-cli ist ein Knotenpunkt für alle Diskussionen zur Plain-Text-Buchhaltung (einschließlich Beancount und hledger). Es existieren viele Tools und Skripte rund um Ledger, aber das Ökosystem ist nicht so vereinheitlicht (keine einzelne „Ledger-GUI“ usw., obwohl mehrere unabhängige Bemühungen existieren).Wachsende Community, mit Simon Michael als Leiter der hledger-Entwicklung. hledger hat jährliche Veröffentlichungen und stetige Verbesserungen, wobei es oft Funktionsänderungen von Ledger übernimmt, aber auch eigene Wege geht. Es erfreut sich großer Beliebtheit bei Benutzern, die die Leistungsfähigkeit von Ledger mit mehr Vorhersehbarkeit wünschen. Die Community überschneidet sich oft mit der von Ledger (plaintextaccounting.org deckt beide ab). Das Ökosystem von hledger umfasst Add-ons wie hledger-flow (zur Workflow-Automatisierung) und profitiert davon, in Haskell geschrieben zu sein (was Nutzer aus dieser Community anzieht).

Zusammenfassend lässt sich sagen, dass Beancount sich durch seinen Fokus auf Strenge, Plugin-basierte Erweiterbarkeit und eine benutzerfreundliche Web-Benutzeroberfläche abhebt. Ledger bleibt das klassische, hochflexible Werkzeug, das von Kommandozeilen-Puristen und jenen bevorzugt wird, die ultimative Geschwindigkeit benötigen (die C++-Engine von Ledger ist bei riesigen Dateien sehr schnell). hledger bietet einen Mittelweg – einen Großteil der Funktionalität von Ledger mit etwas mehr Struktur und einer offiziell unterstützten (wenn auch einfachen) Web-UI. Alle drei teilen die Vorteile der Plain-Text-Buchhaltung (Revisionssicherheit, Git-Versionierung, einfache Datenstruktur), aber das Ökosystem von Beancount (insbesondere durch Fava) hat es in den letzten Jahren für den Durchschnittsbenutzer zugänglicher gemacht. Auf der anderen Seite bevorzugen Ledger- und hledger-Nutzer manchmal deren relative Einfachheit bei der Einrichtung (kein Python erforderlich) und die langjährig bewährte Stabilität. Letztlich hängt die Wahl von den persönlichen Vorlieben ab: Wer Wert auf konsequente Korrektheit und ein reichhaltiges Ökosystem legt, neigt oft zu Beancount, während diejenigen, die schlanke, terminal-fokussierte Werkzeuge suchen, eher bei Ledger oder hledger bleiben.

Einsatzszenarien für Beancount

Beancount ist vielseitig genug, um sowohl für die Verfolgung persönlicher Finanzen als auch (in einigen Fällen) für die Buchhaltung von Kleinunternehmen eingesetzt zu werden. Der grundlegende Ansatz der doppelten Buchführung ist in beiden Szenarien gleich, jedoch können sich der Umfang und die spezifischen Praktiken unterscheiden.

Persönliche Finanzen

Viele Beancount-Nutzer verwenden es, um ihre individuellen Finanzen oder die ihres Haushalts zu verwalten. Ein typisches Setup für persönliche Finanzen in Beancount könnte Konten für Giro- und Sparkonten, Kreditkarten, Investitionen, Kredite, Einkommenskategorien (Gehalt, Zinsen usw.) und Ausgabenkategorien (Miete, Lebensmittel, Unterhaltung usw.) umfassen. Nutzer erfassen tägliche Transaktionen entweder manuell (Eingabe von Belegen, Rechnungen usw.) oder durch den Import von Bankauszügen mithilfe der zuvor besprochenen Importer-Tools. Die Vorteile, die Beancount für persönliche Finanzen bietet, sind:

  • Konsolidierung und Analyse: Alle Ihre Transaktionen können in einer einzigen Textdatei (oder einem Satz von Dateien) gespeichert werden, die jahrelange Finanzhistorie repräsentiert. Dies macht es einfach, langfristige Trends zu analysieren. Mit der Abfragesprache von Beancount oder mit Fava können Sie Fragen wie „Wie viel habe ich in den letzten 5 Jahren für Reisen ausgegeben?“ oder „Wie hoch ist meine durchschnittliche monatliche Lebensmittelrechnung?“ in Sekundenschnelle beantworten. Ein Nutzer stellte fest, dass nach dem Wechsel zu Beancount die „Analyse von Finanzdaten (Ausgaben, Spenden, Steuern usw.) trivial ist“, entweder über Fava oder durch Abfrage der Daten mit Tools wie Pandas. Im Grunde wird Ihr Hauptbuch zu einer persönlichen Finanzdatenbank, die Sie nach Belieben abfragen können.
  • Budgetierung und Planung: Obwohl Beancount kein Budgetierungssystem erzwingt, können Sie eines implementieren. Einige Nutzer nutzen die Umschlagmethode (Envelope Budgeting), indem sie Budgetkonten erstellen oder das Plugin fava-envelope verwenden. Andere nutzen einfach periodische Berichte, um Ausgaben mit Zielvorgaben zu vergleichen. Da es sich um Klartext handelt, ist die Integration von Beancount mit externen Budgetierungstools oder Tabellenkalkulationen unkompliziert (Datenexport oder Nutzung von CSV-Ausgaben aus Abfragen).
  • Investitionen und Verfolgung des Nettovermögens: Beancount eignet sich hervorragend für die Verfolgung von Investitionen dank seiner robusten Handhabung von Kostenbasen und Marktpreisen. Sie können Käufe/Verkäufe von Aktien, Krypto usw. mit Kostendetails erfassen und dann Prices-Anweisungen verwenden, um den Marktwert im Auge zu behalten. Fava kann ein Diagramm des Nettovermögens im Zeitverlauf sowie eine Portfolio-Aufschlüsselung nach Anlageklassen anzeigen. Dies ist enorm nützlich für die persönliche Vermögensverwaltung – Sie erhalten Einblicke, die denen kommerzieller Tools wie Mint oder Personal Capital entsprechen, aber unter Ihrer vollen Kontrolle stehen. Die Handhabung mehrerer Währungen ist ebenfalls integriert. Wenn Sie also Fremdwährungen oder Krypto besitzen, kann Beancount diese verfolgen und für Berichte umrechnen.
  • Abgleich und Genauigkeit: Persönliche Finanzen erfordern oft den Abgleich mit Bankauszügen. Mit Beancount kann man Konten regelmäßig abgleichen, indem man Saldo-Zusicherungen (Balance Assertions) oder die Dokumentenfunktion nutzt. Beispielsweise könnten Sie jeden Monat einen Eintrag balance Assets:Bank:Checking <Datum> <Saldo> hinzufügen, um zu bestätigen, dass Ihr Hauptbuch am Monatsende mit dem Kontoauszug der Bank übereinstimmt. Das Tool bean-check (oder die Fehleranzeige in Fava) warnt Sie, wenn die Beträge nicht übereinstimmen. Ein Nutzer erwähnt einen monatlichen Abgleich aller Konten, was „hilft, ungewöhnliche Aktivitäten zu erkennen“ – eine gute Hygienepraxis für persönliche Finanzen, die Beancount erleichtert.
  • Automatisierung: Technisch versierte Personen haben große Teile ihres Workflows für persönliche Finanzen mit Beancount automatisiert. Mithilfe von Importern, Cron-Jobs und vielleicht etwas Python können Sie Ihr System so einrichten, dass beispielsweise jeden Tag Ihre Banktransaktionen abgerufen (einige nutzen OFX oder APIs) und an Ihre Beancount-Datei angehängt werden, kategorisiert nach Regeln. Mit der Zeit aktualisiert sich Ihr Hauptbuch größtenteils automatisch, und Sie müssen es nur noch bei Bedarf überprüfen und anpassen. Ein Community-Mitglied auf Hacker News berichtete, dass seine Beancount-Bücher nach 3 Jahren „zu 95 % automatisch“ liefen. Diese Stufe der Automatisierung ist durch die Offenheit des Klartexts und die Scripting-Fähigkeiten von Beancount möglich.

Nutzer im Bereich persönliche Finanzen wählen Beancount oft anstelle von Tabellenkalkulationen oder Apps, weil es ihnen das vollständige Eigentum an den Daten gibt (keine Abhängigkeit von einem Cloud-Dienst, der abgeschaltet werden könnte – eine Sorge, als beispielsweise Mint eingestellt wurde) und weil die Tiefe der Einblicke größer ist, wenn alle Daten integriert sind. Die Lernkurve ist nicht zu unterschätzen – man muss die Grundlagen der Buchhaltung und die Beancount-Syntax lernen –, aber Ressourcen wie die offizielle Dokumentation und Community-Tutorials helfen Einsteigern beim Start. Einmal eingerichtet, stellen viele fest, dass es Seelenfrieden bringt, jederzeit ein klares und vertrauenswürdiges Bild ihrer Finanzen zu haben.

Buchhaltung für Kleinunternehmen

Die Nutzung von Beancount für ein kleines Unternehmen (oder gemeinnützige Organisationen, Vereine usw.) ist seltener als die private Nutzung, aber durchaus möglich, und einige haben dies erfolgreich umgesetzt. Das Framework der doppelten Buchführung von Beancount ist tatsächlich dasselbe System, das der Unternehmensbuchhaltung zugrunde liegt, nur ohne einige der höherwertigen Funktionen, die spezielle Buchhaltungssoftware bietet (wie Rechnungsmodule oder Lohnabrechnungs-Integrationen). So kann sich Beancount in den Kontext eines Kleinunternehmens einfügen:

  • Hauptbuch und Finanzberichte: Ein kleines Unternehmen kann die Beancount-Datei als sein Hauptbuch behandeln. Sie hätten Aktivkonten für Bankkonten, Forderungen, vielleicht Lagerbestände; Passivkonten für Kreditkarten, Kredite, Verbindlichkeiten; Eigenkapital für das Kapital des Eigentümers; Ertragskonten für Verkäufe oder Dienstleistungen und Aufwandskonten für alle Geschäftsausgaben. Durch die Führung dieses Hauptbuchs können Sie jederzeit eine Gewinn- und Verlustrechnung (GuV) und eine Bilanz mit den Berichten oder Abfragen von Beancount erstellen. Tatsächlich können die integrierten Berichte von Beancount oder Fava in Sekundenschnelle eine Bilanz und eine GuV generieren, die perfekt mit den Buchhaltungsgrundsätzen übereinstimmen. Dies kann für einen kleinen Betrieb ausreichen, um Rentabilität, Finanzlage und Cashflow zu beurteilen (mit ein wenig Abfrageaufwand für den Cashflow, da direkte Cashflow-Rechnungen nicht integriert sind, aber abgeleitet werden können).
  • Rechnungen sowie Forderungen (A/R) und Verbindlichkeiten (A/P): Beancount verfügt über kein integriertes Rechnungssystem; Nutzer würden die Rechnungsstellung normalerweise extern abwickeln (z. B. Rechnungen in Word oder einer Rechnungs-App erstellen) und die Ergebnisse dann in Beancount erfassen. Wenn Sie beispielsweise eine Rechnung ausstellen, würden Sie einen Eintrag erfassen, der die Forderungen belastet und die Erträge gutschreibt. Wenn die Zahlung eingeht, belasten Sie Cash/Bank und schreiben die Forderungen gut. Auf diese Weise können Sie ausstehende Forderungen verfolgen, indem Sie den Saldo des Forderungskontos betrachten. Dasselbe gilt für Rechnungen von Lieferanten (Verbindlichkeiten). Obwohl dies manueller ist als spezialisierte Buchhaltungssoftware (die Erinnerungen sendet oder mit E-Mails integriert ist), ist es absolut machbar. Einige Nutzer haben Vorlagen oder Workflows geteilt, wie sie Rechnungen mit Beancount verwalten und sicherstellen, dass sie keine offenen Posten übersehen (zum Beispiel durch die Verwendung von Metadaten oder benutzerdefinierten Abfragen zur Auflistung unbezahlter Rechnungen).
  • Lagerbestand oder Herstellungskosten (COGS): Für Unternehmen, die Produkte verkaufen, kann Beancount Lagereinkäufe und -verkäufe verfolgen, erfordert jedoch disziplinierte Einträge. Sie könnten die Funktionen für Inventory und Kostenrechnung nutzen: Der Kauf von Lagerbestand erhöht ein Aktivkonto (mit den an die Artikel gebundenen Kosten), der Verkauf verschiebt die Kosten in einen Aufwand (COGS) und erfasst den Erlös. Da Beancount auf den Abgleich von Chargen (Lots) besteht, erzwingt es eine ordnungsgemäße Reduzierung des Lagerbestands mit den korrekten Kosten, was tatsächlich sicherstellen kann, dass Ihre Bruttogewinnberechnungen bei richtiger Ausführung genau sind. Es gibt jedoch keine automatisierte Artikelnummer-Verfolgung (SKU) oder Ähnliches – alles findet auf der finanziellen Ebene statt (Menge und Kosten).
  • Lohnbuchhaltung und komplexe Transaktionen: Beancount kann Lohn- und Gehaltstransaktionen erfassen (Gehaltsaufwand, Steuerrückbehalte usw.), aber die Berechnung dieser Zahlen könnte extern oder über ein anderes Tool erfolgen und dann nur in Beancount gebucht werden. Für ein sehr kleines Unternehmen (z. B. ein oder zwei Mitarbeiter) ist dies überschaubar. Sie würden beispielsweise pro Abrechnungszeitraum eine einzige Buchung erfassen, die Löhne, einbehaltene Steuern, Arbeitgeberanteile zur Sozialversicherung, ausgezahltes Bargeld usw. aufteilt. Dies manuell zu tun, ist ähnlich wie in QuickBooks-Journalbuchungen – es erfordert Wissen darüber, welche Konten angesprochen werden müssen.
  • Mehrbenutzersystem und Prüfung: Eine Herausforderung im geschäftlichen Umfeld ist es, wenn mehrere Personen Zugriff auf die Bücher benötigen oder wenn ein Steuerberater diese prüfen muss. Da Beancount eine Textdatei ist, ist es nicht echtzeit-mehrbenutzerfähig. Das Hosten der Datei in einem Git-Repository kann jedoch die Zusammenarbeit ermöglichen: Jede Person kann Änderungen vornehmen und committen, und Unterschiede können zusammengeführt werden.
  • Einhaltung gesetzlicher Vorschriften: Für die Steuererklärung oder Compliance können die Daten von Beancount zur Erstellung der erforderlichen Berichte verwendet werden, erfordern jedoch möglicherweise benutzerdefinierte Abfragen oder Plugins. Wir haben ein Beispiel für ein Community-Plugin für die Compliance-Berichterstattung der indischen Regierung und eines für die FBAR-Berichterstattung des FinCEN gesehen. Dies zeigt, dass Beancount mit einigem Aufwand angepasst werden kann, um spezifische Berichtsanforderungen zu erfüllen. Kleinunternehmen in Rechtsordnungen mit einfachen Anforderungen (Einnahmen-Überschuss-Rechnung oder einfache periodengerechte Buchführung) können ihre Bücher definitiv in Beancount führen und Finanzberichte für Steuererklärungen erstellen. Funktionen wie Abschreibungspläne oder Amortisation erfordern jedoch möglicherweise, dass Sie Ihre eigenen Einträge schreiben oder ein Plugin verwenden (die Abschreibungs-Plugins von Dave Stephens helfen beispielsweise dabei, dies zu automatisieren). Es gibt keine grafische Benutzeroberfläche, um auf „Anlagegut abschreiben“ zu klicken, wie in manchen Buchhaltungsprogrammen; Sie würden die Abschreibung als Transaktionen kodieren (was sie in gewisser Weise entmystifiziert – alles ist ein Eintrag, den Sie inspizieren können).

In der Praxis nutzen viele technikaffine Kleinunternehmer Beancount (oder Ledger/hledger), wenn sie Kontrolle und Transparenz gegenüber der Bequemlichkeit von QuickBooks bevorzugen. Eine Diskussion auf Reddit merkte an, dass Beancount für die Standard-Buchhaltung von Kleinunternehmen mit einem begrenzten Transaktionsvolumen gut funktioniert. Der limitierende Faktor ist in der Regel das Komfortniveau – ob der Unternehmensinhaber (oder sein Steuerberater) mit einem textbasierten Tool vertraut ist. Ein Vorteil sind die Kosten: Beancount ist kostenlos, während Buchhaltungssoftware für ein kleines Unternehmen teuer sein kann. Andererseits bedeutet der Mangel an offiziellem Support und der DIY-Charakter, dass es am besten für diejenigen geeignet ist, die sowohl Unternehmensinhaber als auch etwas technisch versiert sind. Für Freiberufler oder Einzelunternehmer mit Programmierkenntnissen kann Beancount eine attraktive Wahl sein, um Finanzen zu verwalten, ohne auf Cloud-Buchhaltungsdienste angewiesen zu sein.

Hybride Ansätze sind ebenfalls möglich: Einige kleine Unternehmen nutzen ein offizielles System für Rechnungen oder die Lohnabrechnung, importieren die Daten jedoch regelmäßig in Beancount zur Analyse und Archivierung. Auf diese Weise erhalten sie das Beste aus beiden Welten – Compliance und Einfachheit für das Tagesgeschäft sowie die Leistungsfähigkeit von Beancount für konsolidierte Einblicke.

Zusammenfassend lässt sich sagen, dass Beancount die Buchhaltung kleiner Unternehmen bewältigen kann, vorausgesetzt, der Nutzer ist bereit, Dinge manuell zu verwalten, die kommerzielle Software automatisiert. Es garantiert ein hohes Maß an Transparenz – Sie verstehen Ihre Bücher zutiefst, weil Sie sie selbst schreiben – und für einen gewissenhaften Nutzer kann es makellose Bücher liefern. Sowohl private als auch geschäftliche Nutzer profitieren von den Kernstärken von Beancount: einer zuverlässigen Buchhaltungs-Engine, einem vollständigen Audit-Trail und der Flexibilität, sich an einzigartige Szenarien anzupassen (über Scripting und Plugins). Ob es um die Verfolgung eines Haushaltsbudgets oder die Finanzen eines Startups geht, Beancount bietet ein Toolkit, um dies mit Präzision und Offenheit zu tun.

Community und Entwicklungsaktivitäten

Beancount verfügt über eine engagierte Community und eine Entwicklungsgeschichte, die seinen Charakter als Open-Source-Nischenprojekt mit einer passionierten Nutzerschaft widerspiegelt. Im Folgenden sind die wichtigsten Punkte zur Community, den Maintainern und verwandten Projekten aufgeführt:

  • Projektpflege: Der Hauptautor von Beancount ist Martin Blais, der das Projekt um 2007 ins Leben rief und es durch mehrere Versionen begleitet hat. Die Entwicklung war lange Zeit weitgehend ein Ein-Mann-Projekt (abgesehen von Community-Beiträgen in Form von Patches). Martins Philosophie war es, ein Buchhaltungstool zu entwickeln, das „zuerst für mich selbst nützlich ist, aber auch für andere, und zwar auf die einfachste und langlebigste Weise“. Diese persönliche Motivation hielt das Projekt als Herzensprojekt am Laufen. Auch im Jahr 2025 ist Martin Blais weiterhin der leitende Maintainer (sein Name erscheint in den Commits und er beantwortet Fragen auf der Mailingliste sowie im Issue-Tracker), doch das Ökosystem rund um Beancount umfasst mittlerweile viele weitere Mitwirkende in ihren jeweiligen Projekten.

  • GitHub und Repositories: Der Quellcode wird auf GitHub unter dem Repository beancount/beancount gehostet. Das Projekt steht unter der GPL-2.0-Lizenz und hat über die Jahre eine moderate Anzahl an Mitwirkenden angezogen. Mitte 2024 wurde Beancount Version 3 offiziell als neuer stabiler Zweig veröffentlicht. Mit dieser Veröffentlichung wurden einige Komponenten ausgegliedert: So gehören beispielsweise das beangulp-Repo (für Importer) und das beanquery-Repo (für das Abfragewerkzeug) nun zur beancount GitHub-Organisation und werden weitgehend unabhängig gepflegt. Das Haupt-Beancount-Repo konzentriert sich auf die Kern-Buchhaltungs-Engine und den Datei-Parser. Stand 2025 zeigt GitHub aktive Diskussionen zu Issues und eine laufende Entwicklung – auch wenn das Volumen nicht riesig ist, gehen stetig Issues und Pull-Requests ein, und es erfolgen gelegentliche Updates zur Fehlerbehebung oder zur Verfeinerung von Funktionen.

  • Fava-Entwicklung: Fava, die Web-Oberfläche, startete als separates Projekt (erstellt von Dominic Aumayr, der 2016 das Urheberrecht anmeldete). Es hat eine eigene Community von Mitwirkenden und ist ebenfalls auf GitHub unter beancount/fava zu finden. Die Maintainer und Mitwirkenden von Fava (z. B. Jakob Schnetz, Stefan Otte und andere in den letzten Jahren) haben die Oberfläche aktiv verbessert, wobei alle paar Monate neue Versionen erscheinen. Der Gitter-Chat von Fava (verlinkt in der Fava-Dokumentation) und der GitHub-Issue-Tracker sind Orte, an denen Nutzer und Entwickler neue Funktionen oder Fehler diskutieren. Das Projekt begrüßt Beiträge ausdrücklich, was durch einen CHANGELOG-Eintrag belegt wird, in dem mehreren Community-Mitgliedern für ihre PRs gedankt wird. Die enge Abstimmung von Fava mit der Entwicklung von Beancount (wie die schnelle Implementierung der Unterstützung für Beancount v3 und die neue beanquery-Syntax) deutet auf eine gute Zusammenarbeit zwischen den beiden Projekten hin.

  • Mailinglisten und Foren: Beancount hat eine offizielle Mailingliste (früher auf Google Groups unter dem Namen „Beancount“, gelegentlich auch auf der allgemeinen Ledger-Liste diskutiert). Diese Mailingliste ist eine Goldgrube für Wissen – Nutzer stellen Fragen zur Modellierung bestimmter Szenarien, melden Fehler und teilen Tipps. Martin Blais ist dafür bekannt, auf der Mailingliste mit detaillierten Erklärungen zu antworten. Darüber hinaus gibt es große Überschneidungen mit der breiteren Plain-Text-Accounting-Community. Auf der Mailingliste von Ledger CLI werden oft auch Fragen zu Beancount behandelt, zudem gibt es ein Forum auf plaintextaccounting.org und ein Subreddit r/plaintextaccounting, in dem Beancount-Themen häufig vorkommen. Nutzer auf diesen Plattformen diskutieren Vergleiche, teilen persönliche Setups und helfen Neulingen. Der allgemeine Ton in der Community ist sehr kooperativ – Beancount-Nutzer helfen oft Ledger-Nutzern und umgekehrt, da sie erkennen, dass all diese Tools ähnliche Ziele verfolgen.

  • Chat-Gruppen: Neben Mailinglisten gibt es Chat-Kanäle wie den Plaintext Accounting Slack / Discord (von der Community organisiert) und den Fava-Gitter-Chat. Dies sind weniger formelle Echtzeit-Möglichkeiten, um Hilfe zu erhalten oder Funktionen zu diskutieren. Man kann beispielsweise im Slack nachfragen, ob jemand einen Importer für eine bestimmte Bank hat. Es gibt auch einen Matrix / IRC-Kanal (historisch #ledger oder #beancount auf IRC), in dem einige langjährige Nutzer aktiv sind. Obwohl diese Kanäle nicht so stark frequentiert sind wie die von Mainstream-Software, finden sich dort fachkundige Personen, die oft auch komplexe Buchhaltungsfragen beantworten können.

  • Mitwirkende und wichtige Community-Mitglieder: Einige Namen stechen in der Beancount-Community besonders hervor:

    • „Redstreet“ (Red S): Ein produktiver Mitwirkender, der viele Plugins geschrieben hat (wie beancount-balexpr, sellgains und andere) und oft Unterstützung bietet. Er pflegt zudem eine Sammlung von Importer-Skripten und ein Tool namens bean-download zum Abrufen von Kontoauszügen.
    • Vasily M (Evernight): Autor einiger Importer-Frameworks und Plugins wie beancount-valuation sowie Beiträge zu Fava im Bereich Investitionen.
    • Stefano Zacchiroli (zack): Ein Debian-Entwickler, der den beancount-mode für Emacs und sein eigenes Plugin-Repo erstellt hat. Er hat sich zudem für Plain-Text-Accounting im akademischen Umfeld eingesetzt.
    • Simon Michael: Obwohl er primär der Leiter von hledger ist, betreibt er plaintextaccounting.org, was auch Beancount einschließt. Diese gegenseitige Befruchtung hat dazu beigetragen, Beancount bei Ledger / hledger-Nutzern bekannt zu machen.
    • Frank Hell (Tarioch): Mitwirkender der Tarioch Beancount Tools, einer bedeutenden Sammlung von Importern und Preis-Fetchern, insbesondere für europäische Institutionen.
    • Siddhant Goel: Ein Community-Mitglied, das über Beancount bloggt (zum Beispiel sein Leitfaden zur Migration auf v3) und einige Importer pflegt. Seine Blog-Posts haben vielen neuen Nutzern geholfen.

    Diese und viele andere tragen Code und Dokumentation bei und helfen in Foren, was das Ökosystem trotz seiner relativ geringen Größe lebendig macht.

  • GitHub-Statistiken und Forks: Das GitHub-Repo von Beancount hat einige hundert Sterne (was das Interesse verdeutlicht) und Forks gesammelt. Bemerkenswerte Forks von Beancount selbst sind selten – es gibt keinen bekannten abweichenden Fork, der versucht, „Beancount, aber mit Feature X“ zu sein. Stattdessen haben Nutzer, wenn sie etwas anderes wollten, entweder ein Plugin geschrieben oder ein anderes Tool (wie hledger) verwendet, anstatt Beancount zu forken. Man könnte hledger als eine Art Fork von Ledger (nicht Beancount) betrachten und Beancount selbst als eine unabhängige Neuinterpretation der Ideen von Ledger, aber innerhalb des Beancount-Repos gibt es keine großen Abspaltungen. Die Community hat sich im Allgemeinen um das Haupt-Repo geschart und es über die Plugin-Schnittstelle erweitert, anstatt die Codebasis zu fragmentieren. Dies liegt wahrscheinlich daran, dass Martin Blais offen für externe Beiträge war (seine Dokumentation enthält sogar einen Abschnitt, in dem externe Beiträge und Module gewürdigt werden) und die Plugin-Architektur es für die meisten neuen Funktionen unnötig machte, einen Fork zu unterhalten.

  • Community-Ressourcen: Es gibt mehrere hochwertige Ressourcen zum Lernen und Nutzen von Beancount, die von der Community erstellt wurden:

    • Die Beancount-Dokumentation auf GitHub Pages (und die ursprünglichen Google Docs, die Martin pflegt) – sehr umfassend, einschließlich der Theorie zur Buchhaltung und deren Implementierung in Beancount.

    • Zahlreiche Blogposts und persönliche Notizen – zum Beispiel veröffentlichte LWN.net einen Artikel „Counting beans… with Beancount“, und viele persönliche Blogs (wie im Abschnitt „Blog Posts“ von Awesome Beancount aufgeführt) teilen Erfahrungen und Tipps. Diese helfen, Wissen aufzubauen und neue Nutzer zu gewinnen.

    • Vorträge und Präsentationen: Beancount wurde auf Meetups und Konferenzen vorgestellt (beispielsweise ein Vortrag bei der PyMunich 2018 über die Verwaltung von Finanzen mit Python / Beancount). Solche Vorträge machen das Tool einem breiteren Publikum bekannt und wecken oft Interesse in Foren wie Hacker News.

  • Bemerkenswerte verwandte Projekte: Abgesehen von Fava haben einige andere Projekte im Zusammenhang mit Beancount ihre eigenen Communities:

    • Plain Text Accounting Website – gepflegt von Simon Michael; sie aggregiert Informationen zu all diesen Tools und bietet ein Forum, in dem die Nutzung verschiedener Werkzeuge, einschließlich Beancount, geteilt wird.
    • Integration von Finanztools: Einige Nutzer integrieren Beancount in Business-Intelligence-Tools oder Datenbanken. Ein Thread in Google Groups beschreibt beispielsweise die Verwendung von PostgreSQL mit Beancount-Daten über benutzerdefinierte Funktionen. Auch wenn dies kein Mainstream ist, zeigt es den experimentellen Geist der Community, die Fähigkeiten von Beancount zu erweitern (z. B. um sehr große Datensätze oder komplexe Abfragen jenseits der integrierten Funktionen zu verarbeiten).

Zusammenfassend lässt sich sagen, dass die Community von Beancount zwar kleiner ist als die großer Open-Source-Projekte, aber hochgradig engagiert und sachkundig. Das Projekt profitiert von einem stetigen Strom an Verbesserungen und sehr hilfreichen Support-Kanälen. Der kollaborative Ethos (Teilen von Importern, Schreiben von Plugins, Beantworten von Fragen) bedeutet, dass sich ein Neueinsteiger im Jahr 2025 auf umfangreiche Vorarbeiten und die Weisheit der Community verlassen kann, um sein Buchhaltungssystem einzurichten. Die Entwicklung ist im Sinne des Ökosystems aktiv – Fava-Releases, Plugin-Entwicklung usw. –, auch wenn Änderungen am Kern seltener erfolgen. Das Wachstum des Ökosystems (wie die Awesome-Beancount-Liste mit Dutzenden von Tools zeigt) spricht für eine gesunde Community, die Beancount immer leistungsfähiger macht.

Jüngste Entwicklungen und kommende Funktionen

Stand 2025 hat das Beancount-Ökosystem in den letzten Jahren bedeutende Entwicklungen erfahren, und es gibt laufende Diskussionen über zukünftige Verbesserungen. Hier sind einige bemerkenswerte jüngste Entwicklungen und ein Ausblick auf das, was kommen könnte:

  • Veröffentlichung von Beancount 3.0 (2024): Nachdem Beancount 2.x lange Zeit der Standard war, wurde Version 3 Mitte 2024 offiziell veröffentlicht. Dies war ein wichtiger Meilenstein, da v3 eine Vereinfachung und Modernisierung der Codebasis darstellt. Martin Blais hatte v3 als Chance gesehen, das System weiter „umzustrukturieren und zu vereinfachen“. Obwohl es ursprünglich als umfassende Neuschreibung gedacht war, verlief das Update für die Benutzer in der Praxis nicht allzu störend. Die wesentlichen Änderungen fanden unter der Haube statt: ein neuer Parser, einige Leistungsverbesserungen und die Auslagerung optionaler Komponenten aus dem Kern. Die Veröffentlichung erfolgte schrittweise (v3 befand sich seit 2022 in der Beta-Phase, wurde aber bis Juli 2024 zur empfohlenen stabilen Version). Benutzer wie Siddhant Goel berichteten, dass die Migration von 2.x zu 3.x „größtenteils ereignislos“ verlief und nur wenige Änderungen am Workflow erforderte.

  • Modularisierung – Werkzeuge in separate Pakete verschoben: Eine der großen Änderungen mit Beancount 3 ist, dass viele Werkzeuge, die früher im monolithischen Repository angesiedelt waren, ausgegliedert wurden. Zum Beispiel wird bean-query jetzt über das Paket beanquery bereitgestellt, und beancount.ingest wurde durch das Paket beangulp ersetzt. Befehle wie bean-extract und bean-identify (für Importe) wurden aus dem Beancount-Kern entfernt. Stattdessen besteht die Philosophie darin, eigenständige Skripte für den Import zu verwenden. Das bedeutet: Wenn Sie auf v3 aktualisieren, installieren Sie beangulp und führen Importer-Skripte aus (jeder Importer ist im Grunde ein kleines Programm), anstatt eine zentrale bean-extract-Konfigurationsdatei zu verwenden. Ähnlich werden Abfragen über beanquery ausgeführt, das unabhängig vom Beancount-Kern installiert und aktualisiert werden kann. Dieser modulare Ansatz wurde entwickelt, um die Wartung zu erleichtern und Community-Beiträge zu fördern. Zudem wurde der Kern von Beancount verschlankt, sodass er sich rein auf das Parsing und die Buchhaltungslogik konzentriert, während Zusatzfunktionalitäten sich separat entwickeln können. Aus Benutzersicht müssen nach dem Upgrade Befehle angepasst werden (z. B. die Verwendung von bean-query aus beanquery oder die Nutzung von Fava, das dies ohnehin abstrahiert). Das Änderungsprotokoll von Fava weist explizit auf diese Änderungen hin: Fava hängt nun von beanquery und beangulp ab und handhabt Import-Workflows für Beancount 3 anders als für v2.

  • Leistungsverbesserungen: Die Performance war eine Motivation für die Überarbeitung des Designs von Beancount. Der v3-Plan (wie im Dokument „V3 goals“ von Martin skizziert) sah die Optimierung des Parsers vor und möglicherweise die Beschleunigung des Ladevorgangs sowie eine Reduzierung des Speicherbedarfs. Bis 2025 haben sich einige dieser Verbesserungen konkretisiert. Anekdotisch haben Benutzer mit sehr großen Hauptbüchern (Zehntausende von Transaktionen oder viele Aktiengeschäfte) von einer besseren Leistung mit der neuesten Version berichtet. Zum Beispiel bemerkte ein Benutzer, der mit „Mikroinvestitions-Transaktionen“ arbeitete und auf Performance-Probleme stieß, diese Bedenken in der Google-Gruppe – diese Art von Feedback ist wahrscheinlich in v3 eingeflossen. Der neue Parser ist effizienter und klarer strukturiert, was in Zukunft weiter ausgebaut werden könnte. Zusätzlich wechselte Fava 1.29 zu einem effizienteren Dateiüberwachungsmechanismus (unter Verwendung der watchfiles-Bibliothek), um die Reaktionsfähigkeit bei Änderungen am Hauptbuch zu verbessern. Mit Blick auf die Zukunft könnte die Community inkrementelles Parsing untersuchen (nur geänderte Teile der Datei neu verarbeiten statt der gesamten Datei), um große Hauptbücher schneller zu verarbeiten – dies wurde in der Dokumentation als Idee für einen „Beancount-Server / inkrementelle Buchung“ angedeutet.

  • Verbesserungen bei der Investitionsverfolgung: Es wurde kontinuierlich daran gearbeitet, das Reporting für Investitionen und Portfolios zu verbessern. Beispielsweise wurde der Umgang mit der Durchschnittskostenbasis (Average Cost Basis) im Vergleich zu FIFO ausführlich diskutiert. Während Beancount das Lot-Matching erzwingt, bevorzugen einige Benutzer in bestimmten Rechtsordnungen die Durchschnittskosten. Es gibt einen Vorschlag und Diskussionen darüber, die Buchung auf Kostenbasis flexibler zu gestalten (möglicherweise über ein Plugin oder eine Option). Bis 2025 ist kein integrierter Schalter für Durchschnittskosten vorhanden, aber die Grundlagen in v3 (die Neugestaltung der Buchung) erleichtern es Plugins, dies zu implementieren. Ein Community-Plugin namens „Gains Minimizer“ wurde veröffentlicht, das vorschlagen kann, welche Lots verkauft werden sollten, um Steuern zu minimieren – dies zeigt die Art von fortschrittlichen Werkzeugen, die rund um Investitionen entwickelt werden. Auch Fava hat Funktionen wie eine Portfolio-Zusammenfassungs-Erweiterung (mit Berechnungen der Rendite) hinzugefügt. In Bezug auf kommende Funktionen ist in diesem Bereich mehr zu erwarten: möglicherweise automatisierte Vorschläge zur Portfolio-Umschichtung oder Risikoanalysen, wahrscheinlich als externe Tools, die Beancount-Daten auslesen (da die Daten alle vorhanden sind).

  • Neue Plugins und Erweiterungen: Das Ökosystem der Plugins wächst stetig. Zu den jüngsten bemerkenswerten Ergänzungen gehören:

    • Budget-Reporting-Tools – z. B. ein einfacher CLI-Budget-Reporter für diejenigen, die die Benutzeroberfläche von Fava nicht nutzen.
    • Verschlüsselung und Sicherheit – das Setup fava-encrypt wurde eingeführt, das es ermöglicht, Fava online zu hosten, wobei das Hauptbuch im Ruhezustand (at rest) verschlüsselt ist, was die Bedenken hinsichtlich des Self-Hostings der eigenen Finanzen adressiert.
    • Quality-of-Life-Plugins – wie autobean-format (ein neuer Formatierer, der durch Parsen und erneutes Ausgeben der Datei mehr Grenzfälle handhaben kann) und die Integration von beancheck in Editoren (flymake für Emacs).

    Mit Blick auf die Zukunft wird die Community wahrscheinlich weiterhin Lücken über Plugins füllen. Beispielsweise könnten wir mehr steuerbezogene Plugins sehen (einige Benutzer haben Skripte für Dinge wie die Berechnung von Wash Sales oder spezifische lokale Steuerberichte geteilt).

  • Potenzielle kommende Funktionen: Basierend auf Diskussionen im Issue-Tracker und auf der Mailingliste zeichnen sich einige Ideen ab (wenn auch ohne Garantie):

    • Zeitauflösung (Time Resolution): Derzeit erfasst Beancount nur Daten (keine Zeitstempel) für Transaktionen. Es gab Fragen zur Hinzufügung der Uhrzeit (für Aktiengeschäfte oder die Reihenfolge von Transaktionen am selben Tag). Martin Blais entschied explizit, dass Zeitstempel innerhalb eines Tages außerhalb des Fokus liegen, um die Dinge einfach zu halten. Es ist unwahrscheinlich, dass sich dies bald ändern wird – daher werden kommende Versionen wahrscheinlich keine Zeitauflösung hinzufügen und bei der Haltung bleiben, dass man die Zeit bei Bedarf in die Narration oder ein Konto integriert.
    • Verbesserte GUI-Bearbeitung: Fava verbessert seine Bearbeitungsfunktionen kontinuierlich. Eine Möglichkeit ist ein funktionsreicherer Web-Editor (mit Auto-Vorschlägen, vielleicht einer formularbasierten Eingabe für neue Transaktionen). Die Grundlagen unter Verwendung von Tree-Sitter in Favas Editor wurden gelegt. Wir könnten erleben, dass Fava nicht nur zu einem Viewer, sondern zu einem leistungsfähigeren Editor wird, was die Notwendigkeit verringert, für viele Aufgaben überhaupt einen Texteditor zu öffnen.
    • Bessere Unterstützung für mehrere Hauptbücher: Einige Benutzer führen mehrere Beancount-Dateien (für verschiedene Einheiten oder zur Trennung von privaten und geschäftlichen Finanzen). Derzeit ist das Einbinden von Dateien möglich, hatte jedoch Einschränkungen (Plugins in eingebundenen Dateien usw.). Kürzlich wurde das Plugin autobean.include erstellt, um externe Hauptbücher sicher einzubinden. In Zukunft könnten wir eine erstklassige Unterstützung für Setups mit mehreren Dateien sehen – vielleicht ein Konzept eines Beancount-„Projekts“ mit mehreren Dateien (dies wird durch Funktionen wie die Einstellung beancount.mainBeanFile der VSCode-Erweiterung angedeutet). Dies würde denjenigen helfen, die eine Buchhaltung für mehrere Einheiten betreiben oder ihr Hauptbuch modularisieren möchten.
    • Echtzeit- oder inkrementelle Berechnung: Mit wachsenden Hauptbüchern wird die Fähigkeit, Berichte schnell neu zu berechnen, immer wichtiger. Es gibt die Idee eines Beancount-Servers, der dauerhaft läuft und die Ergebnisse aktualisiert, sobald sich Transaktionen ändern. Dies könnte sich als Optimierung in Fava oder als Daemon manifestieren, den Editor-Plugins abfragen können. Vielleicht wird eine zukünftige Fava-Version einen kontinuierlich laufenden Beancount-Prozess nutzen, um die Benutzeroberfläche bei riesigen Hauptbüchern reaktionsschneller zu machen.
    • Fondsbuchhaltung / Funktionen für Non-Profits: Es gab einen Verbesserungsvorschlag zur Fondsbuchhaltung (Fund Accounting) in Beancount. Gemeinnützige Organisationen haben spezifische Buchhaltungsbedarfe (zweckgebundene vs. nicht zweckgebundene Mittel), die potenziell mit der Tag- oder Kontenhierarchie von Beancount modelliert werden könnten. Die Diskussion hat noch nicht zu integrierten Funktionen geführt, aber wenn mehr Non-Profits Beancount nutzen, könnte dies neue Funktionen vorantreiben (vielleicht auch nur dokumentierte Best Practices oder Plugins zur Verfolgung von Fondsbeständen).
  • Langfristiger Ausblick: Martin Blais hat angedeutet, dass er die Zukunft von Beancount darin sieht, den Kern mehr zu einem Motor (Engine) zu machen und mehr Funktionalität in Plugins zu verlagern. Dies deckt sich mit dem, was wir aktuell sehen (Modularisierung in v3). Eine „kommende Funktion“ im philosophischen Sinne ist also größere Erweiterbarkeit – möglicherweise sogar die Erlaubnis für Plugins, neue Direktiventypen zu definieren oder die Syntax auf kontrollierte Weise zu erweitern. Sollte dies geschehen, könnte der Kern von Beancount relativ klein und stabil bleiben, während das Ökosystem die meisten neuen Funktionen als Add-ons liefert. Dies könnte zu einem Plugin-Marktplatz oder einer zentraleren Auflistung von Plugins führen, damit Benutzer gezielt wählen können (die „Awesome Beancount“-Liste ist ein Anfang dafür).

Fazit: Das Beancount-Ökosystem im Jahr 2025 ist aktiv und entwickelt sich stetig weiter. Die Veröffentlichung von Beancount 3.0 war ein wichtiges jüngstes Ereignis, das sicherstellt, dass das Fundament des Projekts für die Zukunft solide ist. Verbesserungen bei Leistung, Werkzeugen und Benutzerfreundlichkeit (insbesondere über Fava) haben die Einstiegshürden kontinuierlich gesenkt. Obwohl Beancount ein Werkzeug bleibt, das eine gewisse Expertise erfordert, ist es heute dank dieser Entwicklungen weitaus zugänglicher als noch vor einigen Jahren. Kommende Funktionen werden sich wahrscheinlich auf die Verfeinerung des Nutzererlebnisses konzentrieren – schnellere Performance, bessere Integrationen und spezialisierte Erweiterungen – anstatt auf drastische Änderungen an der Kernphilosophie. Die Entwicklung der Community deutet darauf hin, dass Beancount als Herzstück der Plain-Text-Buchhaltung weiter reifen wird und dabei die Balance zwischen der schlichten Kraft der doppelten Buchführung und dem Komfort moderner Software hält. Wie ein Benutzer auf Hacker News witzelte, verleiht einem die Plain-Text-Buchhaltung „Superkräfte“ beim Verständnis der eigenen Finanzen – und die jüngsten sowie zukünftigen Verbesserungen von Beancount zielen darauf ab, diese Superkräfte für jeden leichter nutzbar zu machen.

Quellen: Beancount-Dokumentation und Repository; Fava-Dokumentation; „A Comparison of Beancount and Ledger“ von Martin Blais; Awesome Beancount Ressourcenliste; Benutzererfahrungen und Community-Berichte;

Forderungen und Verbindlichkeiten in Beancount verstehen

· 3 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Hallo zusammen! Im heutigen Blogbeitrag tauchen wir in die Welt von Beancount ein, einem Tool für die doppelte Buchführung, das von vielen für seine Einfachheit und Leistungsfähigkeit geschätzt wird. Genauer gesagt, werden wir über zwei Schlüsselkonzepte sprechen: Forderungen und Verbindlichkeiten.

Das Verständnis dieser Begriffe ist entscheidend, um Beancount (oder jedes andere System der doppelten Buchführung) effektiv zu nutzen. Aber keine Sorge, wenn Sie Anfänger sind – wir werden alles Schritt für Schritt aufschlüsseln!

Forderungen und Verbindlichkeiten: Die Grundlagen

2023-05-30-receiveable-and-payable

In der Buchhaltung sind „Forderungen“ und „Verbindlichkeiten“ Begriffe, die verwendet werden, um geschuldete Gelder zu verfolgen. „Forderungen“ beziehen sich auf Geld, das Ihnen andere schulden, während „Verbindlichkeiten“ sich auf Geld beziehen, das Sie anderen schulden.

Nehmen wir ein Beispiel:

  1. Forderungen aus Lieferungen und Leistungen (Debitoren): Angenommen, Sie besitzen eine Buchhandlung und ein Kunde kauft ein Buch auf Kredit. Das Geld, das er Ihnen für das Buch schuldet, ist eine Forderung.

  2. Verbindlichkeiten aus Lieferungen und Leistungen (Kreditoren): Stellen Sie sich andererseits vor, Sie bestellen einen neuen Satz Bücher bei einem Verlag, bezahlen diese aber nicht sofort. Das Geld, das Sie dem Verlag schulden, ist eine Verbindlichkeit.

In Beancount werden diese typischerweise über entsprechende Konten verfolgt. Der Hauptvorteil dabei ist, dass Sie jederzeit ein klares und genaues Bild Ihrer Finanzlage erhalten.

Forderungen und Verbindlichkeiten in Beancount einrichten

Die Struktur Ihrer Beancount-Datei kann so einfach oder so komplex sein, wie Sie es benötigen. Für Forderungen und Verbindlichkeiten werden Sie wahrscheinlich separate Konten unter Ihren Aktiva- und Passiva-Abschnitten erstellen wollen.

Hier ist ein einfaches Beispiel:

1970-01-01 open Assets:AccountsReceivable
1970-01-01 open Liabilities:AccountsPayable

Transaktionen verfolgen

Empfängerseite

Nachdem Sie Ihre Konten eingerichtet haben, können Sie Transaktionen verfolgen, die Forderungen und Verbindlichkeiten betreffen. Sehen wir uns ein Beispiel an:

2023-05-29 * "Sold books to customer on credit"
Assets:AccountsReceivable 100 USD
Income:BookSales -100 USD

Hier fügen Sie Ihren Forderungen 100 USD hinzu, da ein Kunde Ihnen diesen Betrag schuldet. Gleichzeitig reduzieren Sie Ihre Erträge um den gleichen Betrag, um das Gleichgewicht zu wahren (da Sie das Geld noch nicht tatsächlich erhalten haben).

Wenn der Kunde schließlich bezahlt, erfassen Sie dies so:

2023-06-01 * "Received payment from customer"
Assets:Bank:Savings 100 USD
Assets:AccountsReceivable -100 USD

Zahlerseite

Das gleiche Prinzip gilt für Verbindlichkeiten, jedoch mit umgekehrten Vorzeichen:

2023-05-30 * "Bought books from publisher on credit"
Liabilities:AccountsPayable 200 USD
Expenses:BookPurchases -200 USD

Und wenn Sie Ihre Schuld begleichen:

2023-06-02 * "Paid off debt to publisher"
Liabilities:AccountsPayable -200 USD
Assets:Bank:Checking 200 USD

Zusammenfassung

Forderungen und Verbindlichkeiten sind das Herzstück jedes Buchhaltungssystems. Durch deren genaue Verfolgung erhalten Sie ein umfassendes Verständnis Ihrer finanziellen Gesundheit.

Dies ist nur ein Ausgangspunkt, und Beancount ist zu viel mehr fähig. Ich hoffe, dieser Blogbeitrag hilft, diese wichtigen Konzepte zu klären. Wie immer, viel Erfolg beim Buchen!

Ein Beancount-Ledger dekonstruieren: Eine Fallstudie für die Unternehmensbuchhaltung

· 3 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Im heutigen Blogbeitrag werden wir ein Beancount-Ledger für Unternehmen aufschlüsseln, das Ihnen helfen wird, die Feinheiten dieses Klartext-Doppiksystems zu verstehen.

Ein Beancount-Ledger dekonstruieren: Eine Fallstudie für die Unternehmensbuchhaltung

Beginnen wir zunächst mit dem Code:

2023-05-22-business-template

1970-01-01 open Assets:Bank:Mercury
1970-01-01 open Assets:Crypto

1970-01-01 open Equity:Bank:Chase

1970-01-01 open Income:Stripe
1970-01-01 open Income:Crypto:ETH

1970-01-01 open Expenses:COGS
1970-01-01 open Expenses:COGS:Contabo
1970-01-01 open Expenses:COGS:AmazonWebServices

1970-01-01 open Expenses:BusinessExpenses
1970-01-01 open Expenses:BusinessExpenses:ChatGPT

2023-05-14 * "CONTABO.COM" "Mercury Checking ••1234"
Expenses:COGS:Contabo 17.49 USD
Assets:Bank:Mercury -17.49 USD

2023-05-11 * "Amazon Web Services" "Mercury Checking ••1234"
Expenses:COGS:AmazonWebServices 14490.33 USD
Assets:Bank:Mercury -14490.33 USD

2023-03-01 * "STRIPE" "Mercury Checking ••1234"
Income:Stripe -21230.75 USD
Assets:Bank:Mercury 21230.75 USD

2023-05-18 * "customer_182734" "0x5190E84918FD67706A9DFDb337d5744dF4EE5f3f"
Assets:Crypto -19 ETH {1,856.20 USD}
Income:Crypto:ETH 19 ETH @@ 35267.8 USD

Den Code verstehen

  1. Konten eröffnen: Der Code beginnt mit der Eröffnung einer Reihe von Konten am 01.01.1970. Dazu gehören eine Mischung aus Aktivkonten (Assets:Bank:Mercury und Assets:Crypto), einem Eigenkapitalkonto (Equity:Bank:Chase), Ertragskonten (Income:Stripe und Income:Crypto:ETH) und Aufwandskonten (Expenses:COGS, Expenses:COGS:AmazonWebServices, Expenses:BusinessExpenses und Expenses:BusinessExpenses:ChatGPT).

  2. Transaktionen: Anschließend werden eine Reihe von Transaktionen zwischen dem 01.03.2023 und dem 18.05.2023 erfasst.

    • Die Transaktion vom 14.05.2023 stellt eine Zahlung von 17,49 USD an CONTABO.COM von Mercury Checking ••1234 dar. Dies wird als Aufwand (Expenses:COGS:Contabo) und eine entsprechende Abbuchung vom Konto Assets:Bank:Mercury erfasst.

    • Ähnlich stellt die Transaktion vom 11.05.2023 eine Zahlung von 14.490,33 USD an Amazon Web Services vom selben Bankkonto dar. Dies wird unter Expenses:COGS:AmazonWebServices verbucht.

    • Die Transaktion vom 01.03.2023 zeigt Einnahmen von STRIPE, die auf Mercury Checking ••1234 eingezahlt wurden, in Höhe von insgesamt 21.230,75 USD. Dies wird als Einnahme (Income:Stripe) und als Zugang zum Bankkonto (Assets:Bank:Mercury) erfasst.

    • Die letzte Transaktion vom 18.05.2023 stellt eine Krypto-Transaktion dar, bei der 19 ETH von einem Kunden involviert sind. Dies wird unter Assets:Crypto und Income:Crypto:ETH verfolgt. Die Angabe {1,856.20 USD} zeigt den ETH-Preis zum Zeitpunkt der Transaktion, während @@ 35267.8 USD den Gesamtwert der 19 ETH-Transaktion angibt.

Bei allen Transaktionen wird das Prinzip der doppelten Buchführung beibehalten, wodurch sichergestellt wird, dass die Gleichung Aktiva = Passiva + Eigenkapital stets gültig ist.

Abschließende Gedanken

Dieses Beancount-Ledger bietet ein unkompliziertes und dennoch robustes System zur Verfolgung von Finanztransaktionen. Wie in der letzten Transaktion zu sehen ist, ist Beancount flexibel genug, um auch nicht-traditionelle Vermögenswerte wie Kryptowährungen zu berücksichtigen, was ein Beweis für seine Nützlichkeit in unserer zunehmend digitalen Finanzlandschaft ist.

Wir hoffen, dass diese Aufschlüsselung Ihnen hilft, die Struktur und die Funktionen von Beancount besser zu verstehen, egal ob Sie ein erfahrener Buchhalter sind oder ein Anfänger, der versucht, seine persönlichen Finanzen im Blick zu behalten. Bleiben Sie dran für unseren nächsten Blogbeitrag, in dem wir uns eingehender mit fortgeschrittenen Beancount-Operationen befassen werden.

Beancount Kurzübersicht

· 2 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Beispiel Kontoname

Assets:US:BofA:Checking

cheatsheet-de

Kontotypen

Assets          +
Liabilities -
Income -
Expenses +
Equity -

Währungen / Güter

CNY, EUR, CAD, AUD
GOOG, AAPL, RBF1005
HOME_MAYST, AIRMILES
HOURS

Direktiven

Allgemeine Syntax

YYYY-MM-DD <Directive> <Parameters...>

Konten eröffnen & schließen

2001-05-29 open Expenses:Restaurant
2001-05-29 open Assets:Checking USD,EUR ; Währungsbeschränkungen

2015-04-23 close Assets:Checking

Währungen / Güter deklarieren (Optional)

1998-07-22 commodity AAPL
name: "Apple Computer Inc."

Preise

2015-04-30 price AAPL   125.15 CNY
2015-05-30 price AAPL 130.28 CNY

Notizen

2013-03-20 note Assets:Checking "Anruf wegen Rabattanfrage"

Dokumente

2013-03-20 document Assets:Checking "path/to/statement.pdf"

Buchungen

2015-05-30 * "Eine Beschreibung dieser Buchung"
Liabilities:CreditCard -101.23 CNY
Expenses:Restaurant 101.23 CNY

2015-05-30 ! "Kabelgesellschaft" "Telefonrechnung" #tag ˆlink
id: "TW378743437" ; Metadaten
Expenses:Home:Phone 87.45 CNY
Assets:Checking ; Sie können einen Betrag weglassen

Buchungsposten

  ...    123.45 USD                             Einfach
... 10 GOOG {502.12 USD} Mit Kosten pro Einheit
... 10 GOOG {{5021.20 USD}} Mit Gesamtkosten
... 10 GOOG {502.12 # 9.95 USD} Mit beiden Kosten
... 1000.00 USD @ 1.10 CAD Mit Preis pro Einheit
... 10 GOOG {502.12 USD} @ 1.10 CAD Mit Kosten & Preis
... 10 GOOG {502.12 USD, 2014-05-12} Mit Datum
! ... 123.45 USD ... Mit Flag

Saldoprüfungen und Ausgleichsbuchungen

; Bestätigt den Betrag nur für die angegebene Währung:
2015-06-01 balance Liabilities:CreditCard -634.30 CNY

; Automatische Einfügung einer Buchung zur Erfüllung der folgenden Bestätigung:
2015-06-01pad Assets:Checking Equity:Opening-Balances

Ereignisse

2015-06-01 event "location" "New York, USA"
2015-06-30 event "address" "May Street 123"

Optionen

option "title" "Mein persönliches Hauptbuch"

Sonstiges

pushtag #trip-to-peru
...
poptag #trip-to-peru
; Kommentare beginnen mit einem Semikolon

Die Magie der Plain Text Buchhaltung mit Beancount

· 6 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Entdecken Sie die Magie der Plain Text Buchhaltung mit Beancount

Beancount.io banner

Einführung

2023-04-18-introduction-to-beancount

Willkommen in einer Welt, in der Buchhaltung keine entmutigende Aufgabe mehr ist. Heute stellen wir Ihnen Beancount vor, ein leistungsstarkes, flexibles und intuitives Plain Text Buchhaltungstool. Beancount ermöglicht es Ihnen, die Kontrolle über Ihre Finanzen zu übernehmen, indem es einen transparenten und unkomplizierten Ansatz zur Verwaltung Ihres Geldes bietet.

In diesem umfassenden Leitfaden werden wir die Grundlagen von Beancount erläutern, seine Kernkonzepte erklären und Sie durch seine einfachen, aber leistungsstarken Funktionen führen. Am Ende dieses Blogs werden Sie ein solides Verständnis von Beancount haben und bereit sein, es zu verwenden, um Ihr Finanzleben zu organisieren und zu analysieren.

Was ist Beancount?

Beancount ist ein Open-Source-Plain Text Buchhaltungssystem, das von Martin Blais entwickelt wurde. Inspiriert von John Wiegleys Ledger-System zielt Beancount darauf ab, eine robuste und zuverlässige Methode zur Verwaltung persönlicher und kleinerer Geschäftsfinanzen mithilfe von Plain Text Dateien bereitzustellen. Mit Beancount können Sie Ihre Einnahmen, Ausgaben, Investitionen und vieles mehr einfach verfolgen.

Warum Beancount?

Plain Text Buchhaltung bietet mehrere Vorteile gegenüber traditionellen Tabellenkalkulations- oder Software-basierten Buchhaltungssystemen:

  • Transparenz: Beancount-Dateien sind für Menschen lesbar, wodurch es einfach ist, Ihre Finanzdaten zu verstehen und zu prüfen.
  • Flexibilität: Beancount kann problemlos an Ihre spezifischen Bedürfnisse angepasst werden, und Sie können Ihren bevorzugten Texteditor und Ihr bevorzugtes Versionskontrollsystem verwenden, um Ihre Finanzdaten zu verwalten.
  • Portabilität: Auf Ihre Finanzdaten kann von jedem Gerät aus zugegriffen werden, und sie können einfach zwischen Systemen übertragen oder mit anderen geteilt werden.
  • Zukunftssicherheit: Plain Text Dateien sind universell kompatibel und stellen sicher, dass Ihre Finanzdaten zugänglich bleiben, auch wenn sich die Technologie weiterentwickelt.

Beancounts Kernkonzepte

Um Beancount effektiv nutzen zu können, ist es entscheidend, seine Kernkonzepte zu verstehen:

  • Transaktionen: Finanzielle Ereignisse wie Einnahmen, Ausgaben oder Überweisungen zwischen Konten werden als Transaktionen erfasst.
  • Konten: Transaktionen umfassen ein oder mehrere Konten, wie z. B. Aktiva, Passiva, Einnahmen oder Ausgaben.
  • Doppelte Buchführung: Beancount erzwingt die doppelte Buchführung und stellt sicher, dass jede Transaktion ausgeglichene Soll- und Habenbuchungen aufweist.
  • Direktiven: Beancount verwendet eine Reihe von Direktiven, um Transaktionen, Kontoeröffnungen und andere finanzielle Ereignisse zu definieren.

Erste Schritte mit Beancount

Um mit der Verwendung von Beancount zu beginnen, befolgen Sie diese einfachen Schritte:

  • Installieren Sie Beancount: Installieren Sie Beancount auf Ihrem System, indem Sie die bereitgestellten Installationsanweisungen für Ihr Betriebssystem befolgen.
  • Erstellen Sie Ihre Beancount-Datei: Erstellen Sie eine neue Plain Text Datei mit der Erweiterung .beancount (z. B. my_finances.beancount).
  • Definieren Sie Ihre Konten: Verwenden Sie die Direktive "open", um die Konten zu definieren, die Sie in Ihren Transaktionen verwenden werden.
  • Erfassen Sie Transaktionen: Verwenden Sie die Direktive "txn", um Ihre Finanztransaktionen zu erfassen.

Oder melden Sie sich einfach unter https://beancount.io an. Hier sind einige Beispiele für Plain Text Buchhaltung:

Beispiel 1: Basistransaktion

2023-04-01 open Assets:Checking
2023-04-01 open Expenses:Groceries

2023-04-10 txn "Grocery Store" "Einkauf von Lebensmitteln"
Assets:Checking -50.00 USD
Expenses:Groceries 50.00 USD

In diesem Beispiel eröffnen wir zwei Konten, Assets:Checking und Expenses:Groceries. Am 10. April 2023 erfassen wir eine Transaktion für den Kauf von Lebensmitteln im Wert von 50 .DieTransaktionreduziertdenSaldovonAssets:Checkingum50. Die Transaktion reduziert den Saldo von Assets:Checking um 50 (Soll) und erhöht den Saldo von Expenses:Groceries um 50 $ (Haben).

Beispiel 2: Einnahmen- und Ausgabentransaktion

2023-04-01 open Assets:Checking
2023-04-01 open Income:Salary
2023-04-01 open Expenses:Rent

2023-04-05 txn "Arbeitgeber" "Gehaltszahlung"
Assets:Checking 2000.00 USD
Income:Salary -2000.00 USD

2023-04-06 txn "Vermieter" "Monatliche Mietzahlung"
Assets:Checking -1000.00 USD
Expenses:Rent 1000.00 USD

In diesem Beispiel eröffnen wir drei Konten: Assets:Checking, Income:Salary und Expenses:Rent. Am 5. April 2023 erfassen wir eine Gehaltszahlungstransaktion von 2000 .DieTransaktionerho¨htdenSaldovonAssets:Checkingum2000. Die Transaktion erhöht den Saldo von Assets:Checking um 2000 (Haben) und verringert den Saldo von Income:Salary um 2000 (Soll).Am6.April2023erfassenwireineMietzahlungstransaktionvon1000(Soll). Am 6. April 2023 erfassen wir eine Mietzahlungstransaktion von 1000. Die Transaktion reduziert den Saldo von Assets:Checking um 1000 (Soll)underho¨htdenSaldovonExpenses:Rentum1000(Soll) und erhöht den Saldo von Expenses:Rent um 1000 (Haben).

Beispiel 3: Überweisung zwischen Konten

2023-04-01 open Assets:Checking
2023-04-01 open Assets:Savings

2023-04-15 txn "Bank" "Überweisung von Girokonto auf Sparkonto"
Assets:Checking -500.00 USD
Assets:Savings 500.00 USD

In diesem Beispiel eröffnen wir zwei Konten: Assets:Checking und Assets:Savings. Am 15. April 2023 erfassen wir eine Transaktion zur Überweisung von 500 vomGirokontoaufdasSparkonto.DieTransaktionreduziertdenSaldovonAssets:Checkingum500vom Girokonto auf das Sparkonto. Die Transaktion reduziert den Saldo von Assets:Checking um 500 (Soll) und erhöht den Saldo von Assets:Savings um 500 $ (Haben).

Diese Beispiele veranschaulichen die grundlegenden Konzepte des doppelten Buchführungssystems von Beancount. Durch die ordnungsgemäße Erfassung von Transaktionen können Benutzer genaue Aufzeichnungen über ihre finanziellen Aktivitäten führen und Berichte erstellen, um Einblicke in ihre finanzielle Situation zu gewinnen.

Generieren von Berichten und Analysieren von Daten

Beancount wird mit einer Reihe von leistungsstarken Tools zum Generieren von Finanzberichten geliefert, darunter Bilanzen, Gewinn- und Verlustrechnungen und mehr. Sie können auch Fava verwenden, eine webbasierte Benutzeroberfläche für Beancount, um Ihre Finanzdaten zu visualisieren und mit ihnen zu interagieren. https://beancount.io basiert auf Fava mit MIT-Lizenz.

Schlussfolgerung

Nutzen Sie die Leistungsfähigkeit und Einfachheit der Plain Text Buchhaltung mit Beancount. Indem Sie die Kernkonzepte verstehen und die in diesem Leitfaden beschriebenen Schritte befolgen, sind Sie auf dem besten Weg, Ihre persönlichen oder kleinen Geschäftsfinanzen einfach und präzise zu verwalten. Wenn Sie sich mit Beancount besser auskennen, können Sie erweiterte Funktionen und Anpassungen nutzen, um das System an Ihre individuellen Bedürfnisse anzupassen.

Egal, ob Sie Ihre Ausgaben verfolgen, für die Zukunft planen oder Einblicke in Ihre finanziellen Gewohnheiten gewinnen möchten, Beancount bietet die Flexibilität und Transparenz, die Sie zum Erreichen Ihrer Ziele benötigen. Mit seinem benutzerfreundlichen Ansatz hat Beancount das Potenzial, die Art und Weise, wie Sie Ihre Finanzen verwalten, zu revolutionieren und Ihnen die Kontrolle über Ihre finanzielle Zukunft zu ermöglichen.

Nachdem Sie nun eine solide Grundlage in Beancount haben, ist es an der Zeit, sich auf Ihre Plain Text Buchhaltungsreise zu begeben. Verabschieden Sie sich von umständlichen Tabellenkalkulationen und komplizierter Software und begrüßen Sie die Welt von Beancount. Viel Spaß bei der Buchhaltung!

Einführung in Beancount.io

· 5 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Warum moderne Buchführung wichtig ist

Verwalten Sie Ihre Anlagen immer noch mit Tabellenkalkulationen? Obwohl Tabellenkalkulationen vielseitig sind, können sie mit wachsendem Anlageportfolio umständlich und fehleranfällig werden. Hier kommt Beancount.io ins Spiel – eine ausgeklügelte und dennoch benutzerfreundliche Plattform zur Anlageverfolgung, die speziell für die Verwaltung von Aktien- und Kryptowährungsportfolios entwickelt wurde. Für Ingenieure und Finanzminimalisten konzipiert, kombiniert Beancount.io leistungsstarke Funktionen mit einer intuitiven Benutzeroberfläche, um Ihre Anlageverfolgung zu optimieren.

Einführung in Beancount

Ausgaben

Gewinn- und Verlustrechnung

Bilanz

Doppelte Buchführung: Die Grundlage der Genauigkeit

Beancount.io basiert auf den Prinzipien der doppelten Buchführung – einer bewährten Methode, die von Finanzinstituten weltweit angewendet wird. Dieses System gewährleistet mathematische Genauigkeit durch ein einfaches, aber leistungsstarkes Konzept: Jede Finanztransaktion muss perfekt ausgeglichen sein.

In der doppelten Buchführung erfordert jede Transaktion mindestens zwei Einträge – eine Sollbuchung (+) und eine Habenbuchung (-) – über verschiedene Konten hinweg. Dieses integrierte Verifizierungssystem macht es praktisch unmöglich, unbalancierte Transaktionen zu erfassen, wodurch Ihre Finanzunterlagen genau und zuverlässig bleiben.

1970-01-01 open Income:BeancountCorp
1970-01-01 open Assets:Cash
1970-01-01 open Expenses:Food
1970-01-01 open Assets:Receivables:Alice
1970-01-01 open Assets:Receivables:Bob
1970-01-01 open Assets:Receivables:Charlie
1970-01-01 open Liabilities:CreditCard

2019-05-31 * "BeancountCorp" "Salary of May 15th to May 31st"
Income:BeancountCorp -888 USD
Assets:Cash 888 USD

2019-07-12 * "Popeyes chicken sandwiches" "dinner with Alice, Bob, and Charlie"
Expenses:Food 20 USD
Assets:Receivables:Alice 20 USD
Assets:Receivables:Bob 20 USD
Assets:Receivables:Charlie 20 USD
Liabilities:CreditCard -80 USD

Wie Sie in den beiden obigen Beispielen sehen können, muss jede Transaktion die Buchhaltungsgleichung erfüllen.

Assets = Liabilities + Equity(aka Net Assets)

Wir haben die Beancount-Syntax von Martin Blais und das Webprojekt Fava von Jakob Schnitzer verwendet, um diese Website zu erstellen. Und es wird Sie benachrichtigen, wenn eine Transaktion Positionen enthält, die nicht auf Null summieren.

Fehlerwarnung

Nun verstehen Sie, wie wir die Korrektheit des Hauptbuchs durchsetzen. Aber Sie fragen sich vielleicht, was diese „Konten“ sind?

Konten verstehen: Die Wassereimer-Analogie

Stellen Sie sich Ihre Finanzkonten als ein System miteinander verbundener Wassereimer vor, in denen Geld wie Wasser zwischen ihnen fließt. Diese Analogie macht die doppelte Buchführung intuitiv: Wenn Sie Geld von einem Konto auf ein anderes überweisen, ist es, als würden Sie Wasser von einem Eimer in einen anderen gießen – die Gesamtmenge des Wassers (Geldes) im System bleibt konstant.

Beancount.io führt fünf Arten von Konten ein.

  1. Einnahmen — Ihr Betrag ist immer negativ oder im Soll. Dies liegt daran, dass Sie Geld verdienen und das Geld dann vom „Einnahmen“-Konto abgebucht und Ihrem „Vermögen“ gutgeschrieben wird.
  2. Ausgaben — Ihr Betrag ist immer positiv oder im Haben. Dies liegt daran, dass Sie Geld ausgeben und das Geld von den „Vermögenswerten“ oder „Verbindlichkeiten“ zu den „Ausgaben“ fließt.
  3. Verbindlichkeiten — Ihr Betrag ist positiv oder null. Ihre Kreditkartenverbindlichkeiten sind ein gutes Beispiel, die in Zyklen steigen und fallen.
  4. Vermögenswerte — Ihr Betrag ist positiv oder null. Ihr Bargeld oder Ihre Häuser sind immer einen bestimmten Preis wert.
  5. Eigenkapital — Ihr Nettovermögen. Das System berechnet dies automatisch für Sie. Eigenkapital = Vermögenswerte - Verbindlichkeiten und es spiegelt wider, wie wohlhabend Sie sind.

Nun können Sie Ihre angepassten Konten mit den oben genannten Schlüsselwörtern eröffnen:

1970-01-01 open Assets:Cash
1970-01-01 open Assets:Stock:Robinhood
1970-01-01 open Assets:Crypto:Coinbase
1970-01-01 open Expenses:Transportation:Taxi
1970-01-01 open Equity:OpeningBalance

Erweiterte Anlageverfolgung mit Rohstoffen

Beancount.io zeichnet sich durch die Verfolgung verschiedener Anlagen aus, von Aktien bis zu Kryptowährungen. Lassen Sie uns untersuchen, wie es komplexe Anlageszenarien handhabt. Zum Beispiel würden Sie den Kauf von 10 Bitcoins zu je 100 $ im Jahr 2014 wie folgt erfassen:

2014-08-08 * "Buy 10 Bitcoin"
Assets:Trade:Cash -1000.00 USD
Assets:Trade:Positions 10 BTC {100.00 USD}

Und dann, drei Jahre später, verkaufen Sie sie (ursprünglich mit Kosten von 100 $ pro Einheit, annotiert mit {100.00 USD}) zum Preis von 10.000 $ pro Einheit, annotiert mit @ 10,000.00 USD.

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @ 10,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

Oder dieselbe Transaktion mit @@ 20,000.00 USD bedeutet, dass der Preis insgesamt 20.000 $ beträgt.

2017-12-12 * "Sell 2 Bitcoin"
Assets:Trade:Positions -2 BTC {100.00 USD} @@ 20,000.00 USD
Assets:Trade:Cash 20,000.00 USD
Income:Trade:PnL -19,800.00 USD

Die Summe aller Positionen der Transaktion, einschließlich -2 BTC {100.00 USD}, ist wie immer null.

Der Kosten-Tag {100.00 USD} ist wichtig, da Sie dieselbe Ware möglicherweise zu unterschiedlichen Kosten gekauft haben.

100 BTC {10.00 USD, 2012-08-08}
10 BTC {100.00 USD, 2014-08-08}

Wenn Sie den Prozess vereinfachen möchten, können Sie das Konto zu Beginn mit FIFO oder LIFO einrichten. FIFO steht für „First In, First Out“, während LIFO für „Last In, First Out“ steht. In den USA verwendet die IRS FIFO, um Ihren Gewinn und Verlust sowie die entsprechende Steuer zu berechnen.

1970-01-01 open Assets:Trade:Positions "FIFO"

Und wenn Sie es dann in Kurzform wie -2 BTC {} verkaufen, wendet Beancount automatisch die FIFO-Strategie an und verkauft die älteste Ware.

Erste Schritte mit Beancount.io

Beancount.io ist eine moderne, cloud-basierte Finanzmanagementplattform, die Ihre textbasierten Transaktionsaufzeichnungen in umfassende Finanzberichte umwandelt, einschließlich Gewinn- und Verlustrechnungen, Bilanzen und Saldenlisten. Durch die Kombination der Zuverlässigkeit von Klartextdateien mit leistungsstarken Visualisierungstools hilft Ihnen Beancount.io, präzise Kontrolle über Ihr Finanzleben zu behalten und gleichzeitig wertvolle Einblicke in Ihre Anlageperformance zu gewinnen.

Beginnen Sie Ihre Finanzreise mit Beancount.io – Kostenlos während unserer Aktionsphase!