Zum Hauptinhalt springen

7 Beiträge mit „Doppelte Buchführung“ markiert

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.

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!

Das Beancount-Ökosystem: Eine umfassende Analyse

· 35 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Kernfunktionalität und Philosophie von Beancount

Beancount ist ein Open-Source-System für doppelte Buchführung, das Klartextdateien zur Erfassung von Transaktionen verwendet. Im Kern betrachtet Beancount Ihr Hauptbuch als einen Datensatz, der durch eine einfache, strikte Grammatik definiert ist. Jedes Finanzereignis (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 einfach versionskontrollieren, inspizieren und abfragen können.

2025-04-15-beancount-ecosystem

Philosophie – Korrektheit und Minimalismus: Beancounts Design priorisiert Datenintegrität und Einfachheit. Sein Schöpfer, Martin Blais, beschreibt Beancount als „pessimistisch“ in der Annahme, dass der Benutzer Fehler machen wird, und erlegt daher zusätzliche Prüfungen und Einschränkungen auf. Beispielsweise erlaubt Beancount nicht, Vermögenswerte zu entfernen, die nie hinzugefügt wurden (was negative Bestände oder Kassenbestände verhindert), und kann durchsetzen, dass jedes Konto vor der Verwendung eröffnet wird. Es fehlt Ledgers Konzept von „virtuellen“ oder automatisch ausgeglichenen Buchungen – eine bewusste Entscheidung, um vollständig ausgeglichene Einträge zu erzwingen. Beancount „geht aufs Ganze“ bei der Korrektheit mit mehr Gegenprüfungen, als die grundlegende 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 Ledgers unzähligen Kommandozeilen-Flags und Tuning-Optionen setzt Beancount auf Minimalismus. Es gibt nur sehr wenige globale Optionen, und keine, die die Transaktionssemantik außerhalb der Hauptbuchdatei ändern. Alle Konfigurationen, die die Buchhaltung betreffen (wie Methoden der Anschaffungskostenbasis für Rohstoffe oder Buchungsannahmen), erfolgen in der Datei über Direktiven oder Plugins, wodurch sichergestellt wird, dass das Laden derselben Datei immer die gleichen Ergebnisse liefert, unabhängig davon, wie Berichte generiert werden. Dieses Design vermeidet die Komplexität von Ledgers vielen Stellschrauben und die subtilen Wechselwirkungen zwischen ihnen. Beancounts Philosophie ist, dass ein Buchhaltungstool eine stabile, deterministische Pipeline von der Eingabedatei zu den Berichten sein sollte. Dies wird erreicht, indem das Hauptbuch als ein geordneter Strom von Direktiven behandelt wird, die programmatisch sequenziell verarbeitet werden können. Selbst Dinge, die Ledger als spezielle Syntax behandelt (wie Eröffnungsbilanzen oder Preisangaben), sind erstklassige Direktiven in Beancounts Datenmodell, 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 einzufügen. Benutzer können Plugins in Python schreiben, die auf den Transaktionsstrom wirken (zum Beispiel, um eine benutzerdefinierte Regel durchzusetzen oder automatische Einträge zu generieren). Diese Plugins werden beim Verarbeiten der Datei ausgeführt und erweitern so effektiv die Kernfunktionalität von Beancount, ohne den Quellcode ändern zu müssen. Beancount enthält auch eine leistungsstarke Abfragesprache (inspiriert von SQL), um das Hauptbuch aufzuschlüsseln und zu analysieren. Das bean-query-Tool behandelt das geparste Hauptbuch als Datenbank und ermöglicht es Ihnen, analytische Abfragen darauf auszuführen – zum Beispiel Ausgaben nach Kategorie zu summieren oder alle Transaktionen für einen bestimmten Zahlungsempfänger zu extrahieren. In Beancount 3.x wurde diese Abfragefunktion in ein eigenständiges beanquery-Paket verschoben, aber aus Benutzersicht bietet sie weiterhin flexible Berichterstattung über SQL-ähnliche Abfragen.

Klartext und Versionskontrolle: Als Klartext-Buchhaltungstool betont Beancount die Benutzerkontrolle und die Langlebigkeit der Daten. Das Hauptbuch ist einfach eine .beancount-Textdatei, die Sie in jedem Texteditor bearbeiten können. Das bedeutet, dass Ihre gesamte Finanzhistorie in einer menschenlesbaren Form gespeichert ist und Sie sie in Git oder ein anderes VCS einfügen können, um Änderungen im Laufe der Zeit zu verfolgen. Benutzer halten ihre Beancount-Datei oft unter Versionskontrolle, um einen Audit-Trail jeder Bearbeitung zu führen (mit Commit-Nachrichten, die Änderungen beschreiben). Dieser Ansatz stimmt mit Beancounts Philosophie überein, dass Buchhaltungsdaten, insbesondere persönliche oder Kleinunternehmensfinanzen, transparent und „zukunftssicher“ sein sollten – nicht in einer proprietären Datenbank gesperrt. In Martin Blais' eigenen Worten ist Beancount ein „Herzensprojekt“, das entwickelt wurde, um einfach, langlebig und kostenlos für die Gemeinschaft zu sein. Es wurde erstmals um 2007 entwickelt und hat sich durch größere Überarbeitungen (v1 zu v2 und jetzt v3 im Jahr 2024) weiterentwickelt, um sein Design zu verfeinern, während seine Kernphilosophie des Minimalismus und der Korrektheit bewahrt wurde.

Werkzeuge, Plugins und Erweiterungen im Beancount-Ökosystem

Das Beancount-Ökosystem hat eine reichhaltige Auswahl an Werkzeugen, Plugins und Erweiterungen hervorgebracht, die die Kernfunktionalität des Hauptbuchs erweitern. Diese umfassen den Datenimport, die Bearbeitung von Hauptbüchern, die Berichtsansicht und die Ergänzung um spezialisierte Buchhaltungsfunktionen. Im Folgenden finden Sie eine Übersicht über die wichtigsten Komponenten und Add-ons in der Beancount-Welt:

Dienstprogramme für den Datenimport (Importprogramme)

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. In Beancount 2.x wurde das eingebaute Modul beancount.ingest (mit Befehlen wie bean-extract und bean-identify) verwendet, um Import-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 dediziertes Import-Framework, das sich aus beancount.ingest entwickelt hat und nun die empfohlene Methode ist, um den Transaktionsimport für Beancount 3.0 zu automatisieren. Es ermöglicht das Schreiben von Python-Skripten oder Kommandozeilen-Tools, die externe Dateien (wie CSV- oder PDF-Kontoauszüge) lesen und Beancount-Einträge ausgeben. Dieser neue Ansatz entkoppelt die Importlogik vom Beancount-Kern – zum Beispiel wurde der alte Befehl bean-extract in v3 entfernt, und stattdessen erzeugen Ihre Import-Skripte selbst Transaktionen über die CLI-Schnittstelle von Beangulp.

Dutzende von vorgefertigten Importprogrammen existieren für verschiedene Banken und Formate, beigesteuert von der Community. Es gibt Import-Skripte für Institutionen weltweit – 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. Zum Beispiel bietet das Projekt Tarioch Beancount Tools (tariochbctools) Importprogramme für Schweizer und britische Banken und verarbeitet sogar Krypto-Transaktionsimporte. Ein weiteres Beispiel ist Lazy Beancount, das ein Set gängiger Importprogramme (für Wise, Monzo, Revolut, IBKR usw.) bündelt und ein Docker-basiertes Setup für einfache Automatisierung bereitstellt. Egal welche Bank oder welchen Finanzdienst Sie nutzen, die Chancen stehen gut, dass jemand bereits ein Beancount-Importprogramm dafür geschrieben hat – oder Sie können Ihr eigenes mit dem Framework von Beangulp schreiben. Die Flexibilität von Python bedeutet, dass Importprogramme das Parsen von CSV-/Excel-Dateien, OFX-/QIF-Downloads oder sogar das Scrapen von APIs übernehmen und dann Transaktionen im standardisierten Beancount-Format ausgeben können.

Bearbeitung und Editor-Integration

Da Beancount-Ledger reiner Text sind, nutzen Anwender oft 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 beliebte Editoren, die Syntaxhervorhebung, Autovervollständigung von Kontonamen und Echtzeit-Fehlerprüfung bieten:

  • Emacs Beancount-Mode: Ein Emacs Major Mode (beancount-mode) ist zum Bearbeiten von .beancount-Dateien verfügbar und bietet Funktionen wie Syntaxfärbung und Integration mit Beancounts Prüfprogramm. Er kann sogar bean-check im Hintergrund ausführen, sodass Fehler im Ledger (wie eine unausgeglichene Transaktion) während der Bearbeitung markiert werden.
  • VS Code Extension: Eine Beancount-Erweiterung auf dem VSCode Marketplace bietet ähnliche Annehmlichkeiten für Visual Studio Code-Benutzer. Sie unterstützt Syntaxhervorhebung, Ausrichtung von Beträgen, Autovervollständigung für Konten/Zahlungsempfänger und sogar sofortige Saldenprüfungen beim Speichern der Datei. Sie kann auch mit Fava integriert werden, sodass Sie die Fava-Weboberfläche direkt aus VSCode 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, die die Syntaxhervorhebung in modernen Editoren ermöglicht und sogar in Favas webbasierter Editor-Komponente übernommen wurde. Kurz gesagt, egal welche Bearbeitungsumgebung Sie nutzen, die Community hat wahrscheinlich ein Plugin bereitgestellt, um die Bearbeitung von Beancount-Dateien bequem 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 Kommandozeilen-Tool, das das Hinzufügen einer neuen Transaktion über eine Eingabeaufforderung oder einen Einzeiler ermöglicht und dabei Datum- und Kontovorschläge berücksichtigt. Auf Mobilgeräten bietet ein Projekt namens Beancount Mobile eine einfache Benutzeroberfläche zur Eingabe von Transaktionen unterwegs (zum Beispiel die Erfassung eines Barkaufs von Ihrem Telefon aus). Zusätzlich existiert ein Beancount Telegram Bot, um Transaktionen per Nachricht zu erfassen – Sie können eine Nachricht mit Transaktionsdetails senden, und der Bot formatiert diese in Ihre Ledger-Datei.

Web-Frontends und Visualisierungstools

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

Das Vorzeige-Frontend 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 Palette von Berichten: Bilanz, Gewinn- und Verlustrechnung, Nettovermögen im Zeitverlauf, Portfoliobestände, Performance-Diagramme, Budgets und mehr – alles sofort einsatzbereit. Benutzer nennen Fava oft als Hauptgrund, Beancount gegenüber anderen Klartext-Buchhaltungstools zu bevorzugen. Mit einem einzigen Befehl (fava ledger.beancount) können Sie Ihre Finanzen mit Grafiken und Tabellen anstelle von Text durchsuchen. Fava unterstützt Funktionen wie: das Aufschlüsseln von Konten, das Filtern von Transaktionen nach Zahlungsempfänger oder Tag, einen Abfrage-Editor (damit Sie Beancount-Abfragen ausführen und die Ergebnisse im Browser sehen können) und sogar einen integrierten webbasierten Editor für Ihr Hauptbuch. Es ist sehr benutzerfreundlich und macht die Klartext-Buchhaltung auch 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 einen eigenen Release-Zyklus und wird aktiv gepflegt. Bemerkenswert ist, dass Fava mit der Entwicklung von Beancount Schritt gehalten hat – zum Beispiel hat Fava 1.30 Unterstützung für Beancount v3 hinzugefügt und intern auf die Verwendung der neuen Pakete beanquery und beangulp umgestellt. (Es unterstützt weiterhin Beancount 2 für ältere Hauptbücher.) Favas Fokus auf Benutzerfreundlichkeit umfasst nette Details wie die Autovervollständigung im Web-Editor und eine elegante Benutzeroberfläche mit Dunkelmodus und responsiven Diagrammen. Es gibt auch einen Ableger namens Fava-GTK, der Fava in einer Desktop-Anwendung für GNOME/Linux-Benutzer verpackt, die ein natives App-Gefühl bevorzugen.

Neben Fava existieren weitere Visualisierungs- und Analyseoptionen. Da Beancount-Daten als Tabellen exportiert oder abgefragt werden können, nutzen Benutzer oft Tools wie Jupyter-Notebooks oder Pandas für benutzerdefinierte Analysen. Zum Beispiel beschreibt ein Benutzer, wie er Daten aus 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 Portfolioallokationsanalyse oder ein Prozesskontroll-Diagramm für Ausgaben im Vergleich zum Nettovermögen. Für die meisten Menschen bietet Fava jedoch mehr als genug Berichtsleistung, ohne dass Code geschrieben werden muss. Es unterstützt sogar Erweiterungen: Sie können Python-Dateien einfügen, die neue Berichtsseiten oder Diagramme zu Fava hinzufügen. Eine bemerkenswerte Erweiterung ist fava-envelope für das Umschlag-Budgeting innerhalb von Fava. Insgesamt dient Fava als zentrale Visualisierungsdrehscheibe des Beancount-Ökosystems.

Kommandozeilen-Dienstprogramme und Skripte

Beancount wird mit verschiedenen Kommandozeilen-Tools (insbesondere im älteren v2-Zweig, von denen einige in v3 gestrafft wurden) geliefert. Diese Tools arbeiten mit Ihrer Hauptbuchdatei, um sie zu prüfen oder spezifische Berichte in Text- oder HTML-Format zu generieren:

  • bean-check: Ein Validator, der die Datei auf Syntaxfehler oder Buchhaltungsfehler prüft. Das Ausführen von bean-check myfile.beancount macht Sie auf Ungleichgewichte, fehlende Konten oder andere Probleme aufmerksam und gibt nichts aus, wenn die Datei fehlerfrei ist.
  • bean-format: Ein Formatierer, der Ihr Hauptbuch aufräumt, indem er Zahlen in saubere Spalten ausrichtet, ähnlich wie ein Code-Formatierer Quellcode formatiert. Dies hilft, die Datei sauber und lesbar zu halten.
  • bean-query: Eine interaktive Shell oder ein Batch-Tool, um Beancounts Abfragesprache auf Ihrem Hauptbuch auszuführen. Sie können es verwenden, um benutzerdefinierte Tabellenberichte zu erstellen (z. B. bean-query myfile.beancount "SELECT account, sum(amount) WHERE ...").
  • bean-report: Ein vielseitiger Berichtsgenerator (in v2), der vordefinierte Berichte (Bilanz, Gewinn- und Verlustrechnung, Saldenbilanz usw.) auf der Konsole oder in Dateien ausgeben kann. Zum Beispiel würde bean-report file.beancount balances die Kontostände ausgeben. (In der Praxis wurden viele dieser Textberichte durch Favass schönere Präsentation ersetzt.)
  • bean-web / bean-bake: Eine ältere Weboberfläche, die die Berichte auf localhost bereitstellen oder sie als statische HTML-Dateien „backen“ würde. Diese wurden hauptsächlich verwendet, bevor Fava populär wurde; bean-web bot eine grundlegende Webansicht der gleichen Berichte, die bean-report generieren konnte. In Beancount 3 wurde bean-web entfernt (da Fava jetzt das empfohlene Web-Frontend ist und eine überlegene Erfahrung bietet).
  • bean-example: Ein Dienstprogramm zum Generieren einer Beispiel-Hauptbuchdatei (nützlich für Neueinsteiger, um eine Vorlage für Beancount-Einträge zu sehen).
  • bean-doctor: Ein Debugging-Tool, das Probleme in Ihrem Hauptbuch oder Ihrer Umgebung diagnostizieren kann.

Es ist erwähnenswert, dass mit Beancount v3 viele dieser Tools aus dem Kernprojekt ausgelagert wurden. Das Kernpaket von Beancount wurde gestrafft, und Tools wie die Abfrage-Engine und Importeure wurden in separate Pakete (beanquery, beangulp usw.) aufgeteilt, um die Wartung zu erleichtern. Zum Beispiel wird die Funktionalität von bean-query jetzt durch das Tool beanquery bereitgestellt, das separat installiert wird. Aus Nutzersicht bleibt die Funktionalität verfügbar; sie wurde lediglich modularisiert. Die Arch Linux-Community bemerkte diese Änderung beim Aktualisieren 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 auch anderen in der Community, unabhängiger vom Beancount-Release-Zyklus zu diesen Hilfswerkzeugen beizutragen.

Beancount-Plugins und -Erweiterungen

Eine herausragende Stärke des Beancount-Ökosystems ist das Plugin-System. Durch das 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 Beancounts Funktionen zu erweitern:

  • Datenqualität und Regeln: Beispiele sind beancount-balexpr, mit dem Sie Gleichungen überprüfen können, die mehrere Konten betreffen (z. B. Vermögenswert A + Vermögenswert B = Verbindlichkeit X), und beancount-checkclosed, das automatisch Saldenprüfungen einfügt, wenn Sie ein Konto schließen, um sicherzustellen, dass es auf Null saldiert. Es gibt sogar ein Plugin, das sicherstellt, dass Transaktionen in der Datei nach Datum sortiert sind (autobean.sorted), um Einträge außerhalb der Reihenfolge zu erkennen.
  • Automatisierung: Das beancount-asset-transfer-Plugin kann Sachübertragungsbuchungen zwischen Konten generieren (nützlich für die Übertragung von Aktien zwischen Brokern unter Beibehaltung der Anschaffungskostenbasis). Ein weiteres Plugin, autobean.xcheck, gleicht Ihr Beancount-Ledger mit externen Kontoauszügen auf Abweichungen ab.
  • Wiederkehrende Transaktionen und Budgets: Das „Wiederholungs“- oder Interpolations-Plugin von Akuukis ermöglicht die Definition wiederkehrender Transaktionen oder die Verteilung einer jährlichen Ausgabe über Monate. Für die Budgetierung unterstützt die fava-envelope-Erweiterung (über Fava verwendet) die Umschlag-Budgetierungsmethode im Klartext. Es gibt auch MiniBudget von Frank Davies – ein kleines eigenständiges Tool, inspiriert von Beancount, das bei der Budgetierung für den persönlichen Gebrauch oder kleine Unternehmen hilft.
  • Steuern und Berichterstattung: Einige Plugins helfen bei der Steuerbuchhaltung, wie z. B. eines, das Kapitalgewinne automatisch in kurz- oder langfristig klassifiziert. Ein weiteres (fincen_114 von Justus Pendleton) generiert einen FBAR-Bericht für US-Steuerzahler mit ausländischen Konten und veranschaulicht, wie Beancount-Daten für die regulatorische Berichterstattung genutzt werden können.
  • Plugin-Sammlungen der Community: 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 Hilfsfunktionen wie Sortierungsdirektiven enthalten.

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

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

| Tool/Erweiterung | Beschreibung

Vergleich mit Ledger, hledger und ähnlichen Systemen

Beancount gehört zur Familie der Reintext-Tools für die doppelte Buchführung, unter denen Ledger CLI (John Wiegley’s Ledger) und hledger prominent sind. Während all diese Systeme die Kernidee von Reintext-Ledger-Dateien und doppelter Buchführung teilen, unterscheiden sie sich in Syntax, Philosophie und Reifegrad des Ökosystems. Die folgende Tabelle hebt die wichtigsten Unterschiede zwischen Beancount, Ledger und hledger hervor:

AspektBeancount (Python)Ledger CLI (C++)hledger (Haskell)
Syntax & DateistrukturStrenge, strukturierte Syntax, definiert durch eine formale Grammatik (BNF). Transaktionen haben explizite Zeilen mit Datum Flag "Zahlungsempfänger" "Beschreibung" und Buchungen mit Mengen; alle Konten müssen explizit eröffnet/definiert werden. Keine impliziten Buchungen; jede Transaktion muss ausgeglichen sein.Freiere Syntax. Zahlungsempfänger/Beschreibung typischerweise auf derselben Zeile wie das Datum. Erlaubt einen gewissen impliziten Ausgleich (z. B. kann eine Einzelbuchung eine zweite Buchung auf ein Standardkonto implizieren). Kontonamen können ohne vorherige Deklaration verwendet werden. Bietet viele Kommandozeilenoptionen, die das Parsen beeinflussen können (z. B. Jahresannahmen, Regeln zur Zusammenführung von Waren).Folgt weitgehend der Syntax von Ledger mit geringfügigen Unterschieden. hledger ist eine Neuimplementierung der Kernfunktionen von Ledger in Haskell, daher ist das Journalformat dem von Ledger sehr ähnlich (mit einigen Erweiterungen und standardmäßig strengerer Analyse). Zum Beispiel ist hledger etwas strenger bei Datums- und Warensyntax als Ledger, aber nicht so streng wie Beancount.
PhilosophieKonservativ & Pedantisch. Legt größten Wert darauf, Benutzerfehler abzufangen und die Datenintegrität zu wahren. Erzwingt standardmäßig viele Prüfungen (Saldenprüfungen, Chargenverfolgung). Minimale Konfiguration – ein „Ein Weg, es zu tun“-Ansatz für Konsistenz. Als Bibliothek mit Plugins für Erweiterbarkeit konzipiert (behandelt Ledger-Daten als einen zu verarbeitenden Stream, was benutzerdefinierte Python-Logik ermöglicht).Optimistisch & Flexibel. Vertraut darauf, dass der Benutzer Daten korrekt eingibt; weniger integrierte Einschränkungen standardmäßig. Hochgradig anpassbar mit Dutzenden von Optionen und Kommandozeilen-Flags zur Anpassung des Verhaltens. Tendiert dazu, ein monolithisches Werkzeug mit integrierten Funktionen (Berichte, Diagramme) zu sein und verwendet eine domänenspezifische Sprache innerhalb des Ledgers für Dinge wie automatisierte Transaktionen und periodische Transaktionen. Erweiterbarkeit erfolgt typischerweise über externe Skripte oder die integrierte Abfragesprache statt über Plugin-APIs.Pragmatisch & Konsistent. Zielt darauf ab, Ledgers Ansatz einem breiteren Publikum mit vorhersehbarem Verhalten näherzubringen. hledger ist standardmäßig konsistenter (keine Ausgleichsannahmen ohne explizite Konten) und hat weniger Fallstricke als Ledgers nachsichtigste Modi. Es verfügt über eine Teilmenge der Ledger-Funktionen (einige von Ledgers exotischeren Optionen werden nicht unterstützt), fügt aber einige eigene hinzu (wie eine Weboberfläche und integrierten CSV-Import). Betont Stabilität und Korrektheit, jedoch ohne ein Plugin-System wie Beancount.
Transaktionen & AusgleichStrenge doppelte Buchführung: Jede Transaktion muss gleiche Soll- und Haben-Gesamtbeträge aufweisen. Erlaubt keine unausgeglichenen Einträge oder Platzhalter (keine „virtuellen Buchungen“, die sich automatisch ausgleichen). Erzwingt auch die Reihenfolgeunabhängigkeit: Das Ledger kann beliebig nach Datum sortiert werden, da Saldenprüfungen datumsbezogen sind und nicht von der Dateireihenfolge abhängen. Die Kostenverfolgung für Waren ist rigoros – beim Verkauf von Vermögenswerten müssen Chargen angegeben werden, oder Beancount erzwingt FIFO/LIFO, sodass nichts entfernt werden kann, was nicht hinzugefügt wurde.Erlaubt mehr Nachsicht bei Transaktionen. Ledger erlaubt „virtuelle“ Buchungen (mit eckigen Klammern [ ] oder runden Klammern), die kein explizites Ausgleichskonto erfordern – oft zur Handhabung von Budgetierung oder implizitem Eigenkapitalausgleich verwendet. Es ist in Ledger möglich, eine unvollständige Transaktion einzugeben (eine Seite wegzulassen) und Ledger den Ausgleichsbetrag ableiten zu lassen. Außerdem erzwingt Ledger die chargenweise Vermögensentnahme nicht streng; es wird bereitwillig von einem aggregierten Warenbestand abziehen, auch wenn spezifische Chargen nicht verfolgt wurden. Dies erleichtert beispielsweise die Durchschnittskostenrechnung, bedeutet aber, dass Ledger Sie nicht von Fehlern abhält, wie dem Verkauf von mehr Anteilen, als Sie in einer bestimmten Charge haben.
Inventar & AnschaffungskostenbasisPräzise Chargenverfolgung. Beancount fügt Kosteninformationen zu Warenchargen hinzu (z. B. Kauf von 10 Anteilen zu je 100 $), und bei der Reduzierung eines Bestands erfordert es den Abgleich einer spezifischen Charge oder die Verwendung einer definierten Strategie. Es stellt sicher, dass Kapitalgewinne und Anschaffungskostenbasen designbedingt korrekt berechnet werden. Die Durchschnittskostenmethode ist nicht die Standardeinstellung, es sei denn, Sie schreiben explizit Logik dafür, da Beancount jede Charge separat behandelt, um die Genauigkeit zu wahren.Abstrakteres Inventar. Ledger behandelt Warenmengen flüssiger; standardmäßig werden alle Chargen in Berichten zusammengeführt (es zeigt nur Gesamtquantitäten). Es bietet Optionen, bei Bedarf nach Charge oder Durchschnittskosten zu berichten, aber dies ist ein Berichtsbelang. Historisch gesehen verwendete Ledger keine Kosteninformationen, um den Ausgleich bei Mehrwarentransaktionen zu erzwingen, was zu subtilen Fehlberechnungen von Kapitalgewinnen führen konnte. Ledgers Flexibilität ermöglicht es den Benutzern jedoch, FIFO, LIFO, Durchschnitt usw. zur Berichtszeit über Kommandozeilen-Flags zu wählen.
Berichterstattung & BenutzeroberflächePrimär über Fava (Web-Benutzeroberfläche) und bean-query/bean-report. Fava bietet ein poliertes Web-Dashboard mit Grafiken und Diagrammen, was Beancount für die Analyse sehr benutzerfreundlich macht. Unterstützt auch Textberichte und SQL-ähnliche Abfragen über bean-query. Keine offizielle TUI (Text-Benutzeroberfläche), aber die Integration von Editoren/IDEs füllt diese Lücke.Primär CLI-basierte Berichterstattung. Ledger verfügt über viele integrierte Berichts-Befehle (balance, register, stats usw.), die Text an das Terminal ausgeben. Es kann Diagramme (ASCII oder über gnuplot) erstellen und hat sogar einige Add-ons für HTML-Berichte, aber es hat keine offizielle Weboberfläche, die als Teil des Projekts gepflegt wird. (Es gab Drittanbieter-Versuche für Web-Benutzeroberflächen für Ledger, aber keine so prominent wie Fava für Beancount.) Für eine Benutzeroberfläche verlassen sich Benutzer auf das Terminal oder vielleicht GUIs wie Ledger-Live (ein separates Projekt).Bietet sowohl CLI als auch eine einfache Web-Benutzeroberfläche. hledger erbt Ledgers CLI-Berichte (mit ähnlichen Befehlen) und bietet zusätzlich **hledger

Anwendungsszenarien für Beancount

Beancount ist vielseitig genug, um sowohl für die Verwaltung privater Finanzen als auch (in einigen Fällen) für die Buchhaltung kleiner Unternehmen eingesetzt zu werden. Sein grundlegendes Prinzip der doppelten Buchführung ist in beiden Szenarien dasselbe, aber Umfang und spezifische Praktiken können sich unterscheiden.

Persönliche Finanzen

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

  • Konsolidierung und Analyse: Alle Ihre Transaktionen können in einer einzigen Textdatei (oder einer Reihe von Dateien) gespeichert werden, die Jahre Ihrer Finanzhistorie abbildet. Dies erleichtert die Analyse langfristiger Trends. Mit Beancounts Abfragesprache 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 bemerkte, dass nach dem Wechsel zu Beancount die „Analyse von Finanzdaten (Ausgaben, Spenden, Steuern usw.) trivial“ sei, entweder über Fava oder durch Abfragen der Daten und die Verwendung von Tools wie Pandas. Im Wesentlichen wird Ihr Hauptbuch zu einer persönlichen Finanzdatenbank, die Sie nach Belieben abfragen können.
  • Budgetierung und Planung: Obwohl Beancount kein Budgetierungssystem vorschreibt, können Sie eines implementieren. Einige Nutzer betreiben Umschlagbudgetierung, indem sie Budgetkonten erstellen oder das fava-envelope-Plugin verwenden. Andere nutzen einfach periodische Berichte, um Ausgaben mit Zielen zu vergleichen. Da es sich um Klartext handelt, ist die Integration von Beancount mit externen Budgetierungstools oder Tabellenkalkulationen unkompliziert (Datenexport oder Verwendung von CSV-Ausgaben aus Abfragen).
  • Investitionen und Vermögensverfolgung: Beancount eignet sich hervorragend zur Verfolgung von Investitionen dank seiner robusten Handhabung von Anschaffungskosten und Marktpreisen. Sie können Käufe/Verkäufe von Aktien, Krypto usw. mit Kostendetails erfassen und dann Prices-Direktiven verwenden, um den Marktwert zu verfolgen. Fava kann ein Diagramm des Nettovermögens im Zeitverlauf und eine Portfolioaufschlüsselung nach Anlageklassen anzeigen. Dies ist äußerst nützlich für die persönliche Vermögensverwaltung – Sie erhalten Einblicke, die denen kommerzieller Tools wie Mint oder Personal Capital ähneln, aber vollständig unter Ihrer Kontrolle. Die Unterstützung mehrerer Währungen ist ebenfalls integriert, sodass Beancount, wenn Sie Fremdwährungen oder Krypto halten, diese verfolgen und für die Berichterstattung umrechnen kann.
  • Abstimmung und Genauigkeit: Persönliche Finanzen beinhalten oft die Abstimmung mit Kontoauszügen. Mit Beancount kann man Konten regelmäßig durch die Verwendung von Saldenbestätigungen oder der Dokumentenfunktion abstimmen. Zum Beispiel könnten Sie jeden Monat einen balance Assets:Bank:Checking <date> <balance>-Eintrag hinzufügen, um zu bestätigen, dass Ihr Hauptbuch mit dem Kontoauszug der Bank zum Monatsende übereinstimmt. Das bean-check-Tool (oder Favas Fehleranzeige) wird Sie benachrichtigen, wenn etwas nicht übereinstimmt. Ein Nutzer erwähnt, dass er monatlich alle Konten abstimmt, was „hilft, ungewöhnliche Aktivitäten zu erkennen“ – eine gute Praxis der persönlichen Finanzhygiene, die Beancount erleichtert.
  • Automatisierung: Technikaffine Personen haben große Teile ihres persönlichen Finanzworkflows mit Beancount automatisiert. Mithilfe von Importern, Cron-Jobs und vielleicht ein wenig Python können Sie Ihr System so einrichten, dass beispielsweise täglich Ihre Banktransaktionen abgerufen (einige verwenden OFX oder APIs) und Ihrer Beancount-Datei hinzugefügt werden, nach Regeln kategorisiert. Mit der Zeit wird Ihr Hauptbuch größtenteils automatisch aktualisiert, und Sie müssen es nur noch bei Bedarf überprüfen und anpassen. Ein Community-Mitglied auf Hacker News teilte mit, dass ihre Beancount-Bücher nach 3 Jahren zu „95 % automatisch“ waren. Dieses Maß an Automatisierung ist aufgrund der Klartext-Offenheit und der Skripting-Fähigkeiten von Beancount möglich.

Nutzer im Bereich persönliche Finanzen entscheiden sich oft für Beancount gegenüber Tabellenkalkulationen oder Apps, weil es ihnen die vollständige Datenhoheit gibt (keine Abhängigkeit von einem Cloud-Dienst, der eingestellt werden könnte – ein Anliegen, da Mint beispielsweise eingestellt wurde) und weil die Tiefe der Einblicke größer ist, wenn alle Daten integriert sind. Die Lernkurve ist nicht trivial – man muss grundlegende Buchhaltung und die Beancount-Syntax lernen – aber Ressourcen wie die offizielle Dokumentation und Community-Tutorials helfen Neulingen beim Einstieg. Einmal eingerichtet, empfinden viele es als beruhigend, jederzeit ein klares, vertrauenswürdiges Bild ihrer Finanzen zu haben.

Buchhaltung für Kleinunternehmen

Die Nutzung von Beancount für ein Kleinunternehmen (oder eine gemeinnützige Organisation, einen Verein usw.) ist weniger verbreitet als die private Nutzung, aber durchaus möglich, und einige haben dies erfolgreich getan. Beancounts doppelte Buchführung ist im Grunde dasselbe System, das der Unternehmensbuchhaltung zugrunde liegt, nur ohne einige der höherwertigen Funktionen, die spezielle Buchhaltungssoftware bietet (wie Rechnungsmodule oder Lohnbuchhaltungs-Integrationen). So passt Beancount in den Kontext eines Kleinunternehmens:

  • Hauptbuch und Finanzberichte: Ein Kleinunternehmen kann die Beancount-Datei als sein Hauptbuch behandeln. Sie hätten Aktivkonten für Bankkonten, Forderungen aus Lieferungen und Leistungen, vielleicht Lagerbestände; Passivkonten für Kreditkarten, Darlehen, Verbindlichkeiten aus Lieferungen und Leistungen; Eigenkapital für das Eigentümerkapital; 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 erstellen, indem Sie Beancounts Berichte oder Abfragen verwenden. Tatsächlich können Beancounts integrierte Berichte oder Fava in Sekundenschnelle eine Bilanz und GuV generieren, die perfekt den Rechnungslegungsgrundsätzen entsprechen. Dies kann für einen kleinen Betrieb ausreichen, um Rentabilität, Finanzlage und Cashflow zu beurteilen (mit ein wenig Abfrage für den Cashflow, da direkte Kapitalflussrechnungen nicht integriert sind, aber abgeleitet werden können).
  • Rechnungen und Forderungen/Verbindlichkeiten (A/R, A/P): Beancount verfügt über kein integriertes Rechnungssystem; Benutzer würden die Rechnungsstellung typischerweise extern handhaben (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 Buchungssatz erfassen, der das Konto „Forderungen aus Lieferungen und Leistungen“ belastet und das Konto „Erträge“ gutschreibt. Wenn die Zahlung eingeht, belasten Sie „Kasse/Bank“ und schreiben „Forderungen aus Lieferungen und Leistungen“ gut. Auf diese Weise können Sie den Überblick über ausstehende Forderungen behalten, indem Sie den Saldo des A/R-Kontos überprüfen. Dasselbe gilt für Rechnungen (A/P). Obwohl dies manueller ist als spezialisierte Buchhaltungssoftware (die möglicherweise Erinnerungen sendet oder sich in E-Mails integriert), ist es durchaus machbar. Einige Benutzer haben Vorlagen oder Workflows geteilt, wie sie Rechnungen mit Beancount verwalten und sicherstellen, dass sie keine offenen Rechnungen übersehen (zum Beispiel durch die Verwendung von Metadaten oder benutzerdefinierten Abfragen, um unbezahlte Rechnungen aufzulisten).
  • Lagerbestand oder Wareneinsatz: Für Unternehmen, die Produkte verkaufen, kann Beancount Lagerbestands-Käufe und -Verkäufe verfolgen, erfordert aber disziplinierte Buchungen. Sie könnten die Inventory- und Kostenrechnungsfunktionen nutzen: Der Kauf von Lagerbeständen erhöht ein Aktivkonto (mit Kosten, die den Artikeln zugeordnet sind), der Verkauf verschiebt die Kosten auf einen Aufwand (Wareneinsatz) und erfasst Einnahmen. Da Beancount auf der Zuordnung von Losen besteht, wird es eine korrekte Reduzierung des Lagerbestands mit den richtigen Kosten erzwingen, was bei richtiger Durchführung tatsächlich die Genauigkeit Ihrer Bruttogewinnberechnungen sicherstellen kann. Es gibt jedoch keine automatisierte SKU-Verfolgung oder Ähnliches – alles erfolgt auf finanzieller Ebene (Menge und Kosten).
  • Lohnbuchhaltung und komplexe Transaktionen: Beancount kann Lohnbuchhaltungstransaktionen (Gehaltsaufwand, Steuereinbehalte usw.) erfassen, aber die Berechnung dieser Zahlen könnte extern oder über ein anderes Tool erfolgen und dann einfach in Beancount gebucht werden. Für ein sehr kleines Unternehmen (z. B. ein oder zwei Mitarbeiter) ist dies überschaubar. Sie würden beispielsweise pro Gehaltsperiode einen einzigen Journaleintrag erfassen, der Löhne, einbehaltene Steuern, Arbeitgebersteueraufwand, ausgezahlte Barmittel usw. aufschlüsselt. Dies manuell zu tun, ähnelt der Vorgehensweise in QuickBooks-Journaleinträgen – es erfordert Kenntnisse darüber, welche Konten betroffen sind.
  • Mehrbenutzer und Prüfung: Eine Herausforderung im Geschäftsumfeld besteht darin, wenn mehrere Personen auf die Bücher zugreifen müssen oder ein Buchhalter diese überprüfen muss. Da Beancount eine Textdatei ist, ist es nicht in Echtzeit mehrbenutzerfähig. Das Hosten der Datei in einem Git-Repository kann jedoch die Zusammenarbeit ermöglichen: Jede Person kann bearbeiten und committen, und Unterschiede können zusammengeführt werden.
  • Regulatorische Compliance: Für die Steuererklärung oder Compliance können Beancounts Daten zur Erstellung der notwendigen Berichte verwendet werden, dies kann jedoch benutzerdefinierte Abfragen oder Plugins erfordern. Wir sahen ein Beispiel für ein Community-Plugin für die Compliance-Berichterstattung der indischen Regierung und eines für die FinCEN FBAR-Berichterstattung. Dies zeigt, dass Beancount mit Aufwand an spezifische Berichtsanforderungen angepasst werden kann. Kleinunternehmen in Jurisdiktionen mit einfachen Anforderungen (Einnahmen-Überschuss-Rechnung oder einfache Abgrenzung) können ihre Bücher sicherlich 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 (Dave Stephens’ Abschreibungs-Plugins helfen beispielsweise dabei, dies zu automatisieren). Es gibt keine GUI, um „Anlage abschreiben“ anzuklicken, wie in einigen Buchhaltungssoftwares; Sie würden die Abschreibung als Transaktionen kodieren (was es in gewisser Weise entmystifiziert – alles ist ein Eintrag, den Sie überprüfen können).

In der Praxis haben viele technologieorientierte Kleinunternehmer Beancount (oder Ledger/hledger) verwendet, wenn sie Kontrolle und Transparenz der Bequemlichkeit von QuickBooks vorziehen. Eine Reddit-Diskussion stellte fest, dass Beancount für die Standardbuchhaltung kleiner Unternehmen mit einem begrenzten Transaktionsvolumen gut funktioniert. Der limitierende Faktor ist in der Regel der Komfort – ob der Geschäftsinhaber (oder sein Buchhalter) mit einem textbasierten Tool vertraut ist. Ein Vorteil sind die Kosten: Beancount ist kostenlos, während Buchhaltungssoftware für ein Kleinunternehmen kostspielig sein kann. Andererseits bedeutet das Fehlen offizieller Unterstützung und der DIY-Charakter, dass es am besten für diejenigen geeignet ist, die sowohl Geschäftsinhaber als auch technisch etwas 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 Kleinunternehmen verwenden ein offizielles System für Rechnungen oder die Lohnbuchhaltung, importieren die Daten aber regelmäßig in Beancount zur Analyse und Archivierung. Auf diese Weise erhalten sie das Beste aus beiden Welten – Compliance und Einfachheit für den täglichen Betrieb, plus 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 Benutzer ist bereit, Dinge manuell zu verwalten, die kommerzielle Software automatisiert. Es gewährleistet ein hohes Maß an Transparenz – Sie verstehen Ihre Bücher zutiefst, weil Sie sie selbst schreiben – und für einen sorgfältigen Benutzer kann es tadellose Bücher erstellen. Sowohl private als auch geschäftliche Benutzer profitieren von Beancounts Kernstärken: einer zuverlässigen Buchhaltungs-Engine, einem vollständigen Audit-Trail und der Flexibilität, sich an einzigartige Szenarien anzupassen (über Skripte und Plugins). Ob es darum geht, ein Haushaltsbudget oder die Finanzen eines Startups zu verfolgen, Beancount bietet ein Toolkit, um dies mit Präzision und Offenheit zu tun.

Community und Entwicklungsaktivität

Beancount verfügt über eine engagierte Community und eine Entwicklungsgeschichte, die seinen Open-Source-, Nischen-aber-leidenschaftlichen Charakter widerspiegelt. Nachfolgend sind wichtige Punkte zu seiner Community, seinen Betreuern und verwandten Projekten aufgeführt:

  • Projektpflege: Der Hauptautor von Beancount ist Martin Blais, der das Projekt um 2007 begann und es durch mehrere Versionen geleitet

Aktuelle Entwicklungen und kommende Funktionen

Im Jahr 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 aktuelle Entwicklungen und ein Ausblick auf das, was kommen könnte:

  • Beancount 3.0 Veröffentlichung (2024): Nach einer langen Periode, in der Beancount 2.x 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 eine Chance gesehen, das System weiter zu „neu zu ordnen und zu vereinfachen“. Während ursprünglich ein großes Rewrite erwartet wurde, war das Update für die Benutzer in der Praxis nicht allzu störend. Die Hauptä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 war seit 2022 in der Beta-Phase, wurde aber im Juli 2024 zur empfohlenen stabilen Version). Benutzer wie Siddhant Goel berichteten, dass die Migration von 2.x auf 3.x „größtenteils ereignislos“ verlief, mit nur wenigen Änderungen im Workflow.

  • Modularisierung – Tools in separate Pakete verschoben: Eine der großen Änderungen mit Beancount 3 ist, dass viele Tools, die früher im monolithischen Repository angesiedelt waren, ausgegliedert wurden. Zum Beispiel wird bean-query jetzt vom beanquery-Paket bereitgestellt, und beancount.ingest wurde durch das beangulp-Paket ersetzt. Befehle wie bean-extract und bean-identify (für Importe) wurden aus dem Beancount-Kern entfernt. Stattdessen ist die Philosophie, eigenständige Skripte für den Import zu verwenden. Das bedeutet, wenn Sie auf v3 aktualisieren, würden Sie beangulp installieren und Importer-Skripte ausführen (jeder Importer ist im Grunde ein kleines Programm), anstatt eine zentrale bean-extract-Konfigurationsdatei zu haben. Ä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. Er verschlankte auch den Beancount-Kern, sodass sich der Kern rein auf die Parsing- und Buchhaltungslogik konzentriert, während Zusatzfunktionen sich separat entwickeln können. Aus Benutzersicht muss man nach dem Upgrade Befehle anpassen (z. B. bean-query von beanquery verwenden oder Fava nutzen, das dies ohnehin abstrahiert). Favas Changelog weist explizit auf diese Änderungen hin: Fava hängt jetzt von beanquery und beangulp ab und handhabt Import-Workflows für Beancount 3 anders als für Beancount 2.

  • Leistungsverbesserungen: Die Leistung war eine Motivation für die Überarbeitung des Beancount-Designs. Der v3-Plan (wie in Martins „V3 goals“-Dokument dargelegt) umfasste die Optimierung des Parsers und möglicherweise die Beschleunigung und Reduzierung des Speicherbedarfs des Ladevorgangs. Bis 2025 haben sich einige dieser Verbesserungen materialisiert. Anekdotisch haben Benutzer mit sehr großen Ledgern (Zehntausende von Transaktionen oder viele Aktienhandel) eine bessere Leistung mit der neuesten Version gemeldet. Zum Beispiel hat ein Benutzer, der mit „Mikroinvestitions-Transaktionen“ zu tun hatte und Leistungsprobleme feststellte, diese Bedenken in der Google Group geäußert – diese Art von Feedback hat wahrscheinlich v3 beeinflusst. Der neue Parser ist effizienter und klarer geschrieben, was in Zukunft erweitert werden könnte. Zusätzlich wechselte Fava 1.29 zu einem effizienteren Dateibeobachtungsmechanismus (unter Verwendung der watchfiles-Bibliothek), um die Reaktionsfähigkeit bei Ledger-Änderungen zu verbessern. Mit Blick auf die Zukunft könnte die Community die inkrementelle Analyse (nur die geänderten Teile der Datei neu verarbeiten, anstatt alles) untersuchen, um große Ledger schneller zu handhaben – dies wurde in den Docs als „Beancount-Server / inkrementelle Buchung“ angedeutet.

  • Verbesserungen bei der Investitionsverfolgung: Es gab fortlaufende Arbeiten, um die Berichterstattung über Investitionen und Portfolios zu verbessern. Zum Beispiel wurde die Handhabung von durchschnittlichen Anschaffungskosten im Vergleich zu FIFO ausführlich diskutiert. Während Beancount den Losabgleich erzwingt, bevorzugen einige Benutzer die durchschnittlichen Kosten für bestimmte Gerichtsbarkeiten. Ein Vorschlag und eine Diskussion existieren, um die Buchung der Anschaffungskosten flexibler zu gestalten (möglicherweise über ein Plugin oder eine Option). Bis 2025 ist kein eingebauter Schalter für die durchschnittlichen Kosten vorhanden, aber die Vorarbeit in v3 (die Neugestaltung der Buchung) erleichtert es Plugins, dies zu implementieren. Ein Community-Plugin „Gains Minimizer“ wurde veröffentlicht, das vorschlagen kann, welche Lose verkauft werden sollen, um Steuern zu minimieren, was die Art der fortschrittlichen Tools zeigt, die rund um Investitionen entwickelt werden. Auch Fava fügte Funktionen wie eine Portfolio-Zusammenfassungs-Erweiterung (mit Renditeberechnungen) hinzu. Im Hinblick auf kommende Funktionen ist in diesem Bereich mehr zu erwarten: möglicherweise automatisierte Vorschläge zur Portfolio-Neugewichtung oder Risikoanalyse, wahrscheinlich als externe Tools, die Beancount-Daten lesen (da die Daten alle vorhanden sind).

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

    • Budget-Berichtstools – z. B. ein einfacher CLI-Budget-Reporter, falls man Favas UI nicht verwendet.
    • Verschlüsselung und Sicherheit – das fava-encrypt-Setup, das es ermöglicht, Fava online zu hosten, wobei das Ledger im Ruhezustand verschlüsselt ist, wurde eingeführt, um die Bedenken beim Selbst-Hosting der eigenen Finanzen zu adressieren.
    • Komfort-Plugins – wie autobean-format (ein neuer Formatierer, der mehr Randfälle durch Parsen und erneutes Ausdrucken der Datei handhaben kann) und beancheck-Integration in Editoren (flymake für Emacs).

    Mit Blick auf die Zukunft wird die Community wahrscheinlich weiterhin Lücken über Plugins füllen. Zum Beispiel 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 der Mailingliste sind einige Ideen am Horizont (obwohl nicht garantiert):

    • Zeitauflösung: Derzeit verfolgt Beancount nur Daten (keine Zeitstempel) für Transaktionen. Es gab Fragen zum Hinzufügen von Uhrzeiten (für Aktienhandel oder die Reihenfolge von Transaktionen am selben Tag). Martin Blais hat explizit entschieden, dass Zeitstempel unterhalb eines Tages außerhalb des Umfangs liegen, um die Dinge einfach zu halten. Dies wird sich wahrscheinlich nicht so schnell ändern – daher werden kommende Versionen wahrscheinlich keine Zeitauflösung hinzufügen und an der Haltung festhalten, dass, wenn man Zeit benötigt, man diese in die Beschreibung oder ein Konto integriert.
    • Verbesserte GUI-Bearbeitung: Fava verbessert kontinuierlich seine Bearbeitungsfunktionen. Eine Möglichkeit ist ein voll ausgestatteterer Web-Editor (mit Autovervollständigung, vielleicht einer formularbasierten Eingabe für neue Transaktionen). Die Vorarbeit mit Tree-sitter im Fava-Editor wurde geleistet. Wir könnten sehen, wie Fava nicht nur zu einem Viewer, sondern zu einem leistungsfähigeren Editor wird, wodurch die Notwendigkeit, für viele Aufgaben überhaupt einen Texteditor zu öffnen, reduziert wird.
    • Bessere Unterstützung für mehrere Ledger: Einige Benutzer pflegen mehrere Beancount-Dateien (für verschiedene Entitäten oder zur Trennung von persönlichen und geschäftlichen Finanzen). Derzeit ist das Einbinden von Dateien möglich, hatte aber Einschränkungen (Plugins in eingebundenen Dateien usw.). Ein kürzlich veröffentlichtes Plugin autobean.include wurde erstellt, um externe Ledger sicher einzubinden. In Zukunft könnten wir erstklassige Unterstützung für Multi-Datei-Setups sehen – vielleicht ein Konzept eines Beancount-„Projekts“ mit mehreren Dateien (dies wird durch Funktionen wie die beancount.mainBeanFile-Einstellung der VSCode-Erweiterung angedeutet). Dies würde denjenigen helfen, die eine Buchhaltung für mehrere Entitäten führen oder ihr Ledger modularisieren möchten.
    • Echtzeit- oder inkrementelle Berechnung: Wenn Ledger wachsen, wird die Fähigkeit, Berichte schnell neu zu berechnen, wichtig. Es gibt die Idee eines Beancount-Servers, der ständig läuft und Ergebnisse aktualisiert, wenn 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 für riesige Ledger reaktionsfähiger zu machen.
    • Fonds-Buchhaltung / Funktionen für gemeinnützige Organisationen: Es gab einen Verbesserungsvorschlag zur Fonds-Buchhaltung in Beancount. Gemeinnützige Organisationen haben Buchhaltungsbedürfnisse (zweckgebundene vs. nicht zweckgebundene Mittel), die potenziell mit Beancounts Tag- oder Kontenhierarchie modelliert werden könnten. Die Diskussion führte noch nicht zu eingebauten Funktionen, aber wenn mehr gemeinnützige Organisationen Beancount übernehmen, könnte dies neue Funktionen vorantreiben (vielleicht nur dokumentierte Best Practices oder Plugins zur Fondsbestandsverfolgung).
  • Langfristiger Ausblick: Martin Blais deutete an, dass er die Zukunft von Beancount darin sieht, den Kern mehr zu einem Motor zu machen und mehr Funktionalität in Plugins zu verlagern. Dies stimmt mit dem überein, was wir sehen (Modularisierung in v3). Eine „kommende Funktion“ im philosophischen Sinne ist also eine größere Erweiterbarkeit – möglicherweise sogar die Möglichkeit für Plugins, neue Direktiven-Typen zu definieren oder die Syntax auf kontrollierte Weise zu erweitern. Wenn das passiert, könnte der Beancount-Kern 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, sodass Benutzer auswählen können (die Awesome Beancount Liste ist ein Anfang dafür).

Zusammenfassend lässt sich sagen, dass das Beancount-Ökosystem im Jahr 2025 aktiv und in Entwicklung ist. Die Veröffentlichung von Beancount 3.0 war ein wichtiges jüngstes Ereignis, das die Grundlage des Projekts für die Zukunft sichert. Verbesserungen in Leistung, Tools und Benutzerfreundlichkeit (insbesondere durch Fava) haben die Einstiegshürde weiter gesenkt. Obwohl Beancount ein Tool bleibt, das ein gewisses Fachwissen erfordert, ist es dank dieser Entwicklungen heute weitaus zugänglicher als noch vor einigen Jahren. Kommende Funktionen werden sich wahrscheinlich auf die Verfeinerung der Benutzererfahrung konzentrieren – schnellere Leistung, bessere Integrationen und spezialisierte Erweiterungen – anstatt drastische Änderungen an der Kernphilosophie vorzunehmen. Die Entwicklung der Community deutet darauf hin, dass Beancount weiterhin als Herzstück der Klartext-Buchhaltung reifen wird, indem es ein Gleichgewicht zwischen der nüchternen Kraft der doppelten Buchführung und dem Komfort moderner Software findet. Wie ein Benutzer auf Hacker News witzelte, verleiht Ihnen die Klartext-Buchhaltung „Superkräfte“ beim Verständnis Ihrer Finanzen – und Beancounts aktuelle und zukünftige Verbesserungen zielen darauf ab, diese Superkräfte für jedermann 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;

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 Klartext-Buchhaltung mit Beancount

· 4 Minuten Lesezeit
Mike Thrift
Mike Thrift
Marketing Manager

Entdecken Sie die Magie der Klartext-Buchhaltung mit Beancount

Beancount.io Banner

Einführung

2023-04-18-Einführung-in-Beancount

Willkommen in einer Welt, in der Buchhaltung keine entmutigende Aufgabe mehr ist. Heute stellen wir Ihnen Beancount vor, ein leistungsstarkes, flexibles und intuitives Klartext-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 uns mit den Grundlagen von Beancount befassen, seine Kernkonzepte erläutern 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 zur Organisation und Analyse Ihres Finanzlebens einzusetzen.

Was ist Beancount?

Beancount ist ein Open-Source-Klartext-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 kleiner Unternehmensfinanzen mithilfe von Klartextdateien bereitzustellen. Mit Beancount können Sie Ihre Einnahmen, Ausgaben, Investitionen und vieles mehr mühelos verfolgen.

Warum Beancount?

Die Klartext-Buchhaltung bietet mehrere Vorteile gegenüber traditionellen Tabellenkalkulations- oder Software-basierten Buchhaltungssystemen:

  • Transparenz: Beancount-Dateien sind menschenlesbar, was das Verständnis und die Prüfung Ihrer Finanzdaten erleichtert.
  • Flexibilität: Beancount kann leicht an Ihre spezifischen Bedürfnisse angepasst werden, und Sie können Ihren bevorzugten Texteditor und Ihr Versionskontrollsystem verwenden, um Ihre Finanzdaten zu verwalten.
  • Portabilität: Ihre Finanzdaten können auf jedem Gerät abgerufen werden, und es ist einfach, sie zwischen Systemen zu übertragen oder mit anderen zu teilen.
  • Zukunftssicher: Klartextdateien sind universell kompatibel und stellen sicher, dass Ihre Finanzdaten auch bei fortschreitender Technologie zugänglich bleiben.

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 betreffen ein oder mehrere Konten, wie Aktiva, Passiva, Einnahmen oder Ausgaben.
  • Doppelte Buchführung: Beancount erzwingt die doppelte Buchführung und stellt sicher, dass jede Transaktion ausgeglichene Soll- und Haben-Buchungen aufweist.
  • Direktiven: Beancount verwendet eine Reihe von Direktiven, um Transaktionen, Kontoeröffnungen und andere finanzielle Ereignisse zu definieren.

Erste Schritte mit Beancount

Um Beancount zu verwenden, folgen Sie diesen einfachen Schritten:

  • Beancount installieren: Installieren Sie Beancount auf Ihrem System gemäß den bereitgestellten Installationsanweisungen für Ihr Betriebssystem.
  • Ihre Beancount-Datei erstellen: Erstellen Sie eine neue Klartextdatei mit der Erweiterung .beancount (z. B. meine_finanzen.beancount).
  • Ihre Konten definieren: Verwenden Sie die Direktive "open", um die Konten zu definieren, die Sie in Ihren Transaktionen verwenden werden.
  • Transaktionen erfassen: 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 die Klartext-Buchhaltung -

Beispiel 1: Grundlegende Transaktion

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

2023-04-10 txn "Grocery Store" "Buying groceries"
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 Einkauf von Lebensmitteln im Wert von 50 $. Die Transaktion reduziert den Saldo von Assets:Checking um 50 $ (Haben) und erhöht den Saldo von Expenses:Groceries um 50 $ (Soll).

Beispiel 2: Einnahmen- und Ausgaben-Transaktion

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

2023-04-05 txn "Employer" "Salary payment"
Assets:Checking 2000.00 USD
Income:Salary -2000.00 USD

2023-04-06 txn "Landlord" "Monthly rent payment"
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 $. Die Trans

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!