Wichtige native Beancount-Plugins, die Sie kennen sollten
Die Stärke von Beancount liegt nicht nur in seinem Plain-Text-Format, sondern auch in seiner Erweiterbarkeit durch Plugins. Native Plugins sind integrierte Module, die den Funktionsumfang von Beancount erweitern, mühsame Aufgaben automatisieren und bewährte Buchführungspraktiken erzwingen. In diesem umfassenden Leitfaden werden wir alle in Beancount verfügbaren nativen Plugins untersuchen und zeigen, wie man sie effektiv einsetzt.
Was sind Beancount-Plugins?
Beancount-Plugins sind Python-Module, die Ihre Hauptbucheinträge verarbeiten, um Automatisierungs-, Validierungs- oder Transformationsfunktionen hinzuzufügen. Sie werden während der Ladephase Ihrer Ledger-Datei ausgeführt und können:
- Repetitive Aufgaben automatisieren (z. B. das Erstellen von Kontendeklarationen)
- Die Datenintegrität validieren (z. B. die Suche nach doppelten Transaktionen)
- Einträge transformieren (z. B. das Erzeugen von Preiseinträgen aus Transaktionen)
- Buchhaltungsregeln erzwingen (z. B. nur eine Commodity pro Konto)
Verwendung von Plugins
Um ein Plugin in Ihrer Beancount-Datei zu aktivieren, fügen Sie oben in Ihrem Ledger eine plugin-Direktive hinzu:
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"
Einige Plugins akzeptieren Konfigurationsoptionen:
plugin "beancount.plugins.check_commodity" "USD,EUR,CAD"
Kategorien nativer Plugins
Die nativen Plugins von Beancount lassen sich in vier Hauptkategorien unterteilen:
1. Automatisierungs-Plugins
2. Validierungs-Plugins
3. Transformations-Plugins
4. Meta-Plugins
1. Automatisierungs-Plugins
Diese Plugins automatisieren repetitive Buchhaltungsaufgaben, was Zeit spart und manuelle Fehler reduziert.
auto_accounts – Automatische Kontendeklarationen
Funktion: Fügt automatisch Open-Direktiven für Konten ein, die in Transaktionen erscheinen, aber nicht explizit deklariert wurden.
Warum man es nutzt: Erspart die manuelle Deklaration jedes Kontos vor dessen Verwendung. Perfekt für einen schnellen Einstieg oder für Benutzer, die minimalen Boilerplate-Code bevorzugen.
Beispiel:
plugin "beancount.plugins.auto_accounts"
2026-01-01 * "Café"
Expenses:Food:Coffee 4.50 USD
Assets:Cash -4.50 USD
Ohne das Plugin müssten Sie Folgendes manuell hinzufügen:
2025-12-01 open Expenses:Food:Coffee
2025-12-01 open Assets:Cash
Wann man es nutzt: Ideal für Anfänger oder diejenigen, die ein weniger ausführliches Ledger wünschen. Explizite Kontendeklarationen können jedoch helfen, Tippfehler abzufangen.
close_tree – Automatisches Schließen der Kontenhierarchie
Funktion: Wenn Sie ein übergeordnetes Konto schließen, schließt dieses Plugin automatisch alle untergeordneten Konten.
Warum man es nutzt: Gewährleistet Konsistenz in Ihrer Kontenhierarchie. Wenn Sie Assets:Investments schließen, werden alle Unterkonten wie Assets:Investments:Stocks und Assets:Investments:Bonds automatisch mitgeschlossen.
Beispiel:
plugin "beancount.plugins.close_tree"
2025-06-30 close Assets:Investments
; Diese werden automatisch geschlossen:
; Assets:Investments:Stocks
; Assets:Investments:Bonds
; Assets:Investments:RealEstate
Wann man es nutzt: Bei der Umstrukturierung Ihrer Kontenhierarchie oder beim Schließen ganzer Kontokategorien.
implicit_prices – Automatische Generierung von Preiseinträgen
Funktion: Erzeugt Price-Direktiven aus Buchungszeilen, die Anschaffungskosten (@) oder Gesamtpreise (@@) enthalten.
Warum man es nutzt: Füllt Ihre Preisdatenbank automatisch aus Ihren Transaktionen auf und ermöglicht so eine genaue Marktwertberichterstattung ohne manuelle Preiseinträge.
Beispiel:
plugin "beancount.plugins.implicit_prices"
2026-01-02 * "AAPL-Aktien kaufen"
Assets:Investments:Stocks 10 AAPL @ 150.00 USD
Assets:Cash -1500.00 USD
Dies generiert automatisch:
2026-01-02 price AAPL 150.00 USD
Wann man es nutzt: Unerlässlich für die Verfolgung von Investitionen und die Fremdwährungsbuchhaltung, wenn Sie einen automatischen Preisverlauf wünschen.
2. Validierungs-Plugins
Diese Plugins erzwingen Datenintegrität und bewährte Buchführungspraktiken und fangen Fehler ab, bevor sie zu Problemen werden.
noduplicates – Erkennung doppelter Transaktionen
Funktion: Prüft, ob zwei Transaktionen identisch sind, indem Hashes der Transaktionsdaten berechnet und verglichen werden.
Warum man es nutzt: Verhindert versehentliche Doppeleinträge, insbesondere beim Importieren von Transaktionen aus mehreren Quellen.
Beispiel:
plugin "beancount.plugins.noduplicates"
2026-01-02 * "Mietzahlung"
Expenses:Rent 1200.00 USD
Assets:Checking -1200.00 USD
; Dies würde einen Fehler auslösen:
2026-01-02 * "Mietzahlung"
Expenses:Rent 1200.00 USD
Assets:Checking -1200.00 USD
Wann man es nutzt: Immer empfohlen, besonders wenn Sie Kontoauszüge importieren oder mehrere Datenquellen nutzen.
check_commodity – Validierung von Commodity-Deklarationen
Funktion: Stellt sicher, dass alle in Ihrem Ledger verwendeten Commodities (Währungen/Handelsgüter) entsprechende Commodity-Direktiven haben.
Warum man es nutzt: Erzwingt explizite Commodity-Deklarationen und hilft Ihnen, eine saubere Liste von Vermögenswerten und Währungen zu führen.
Beispiel:
plugin "beancount.plugins.check_commodity"
2015-01-01 commodity USD
2020-01-01 commodity AAPL
; Dies würde ohne eine Commodity-Deklaration einen Fehler auslösen:
2026-01-02 * "Bitcoin kaufen"
Assets:Crypto 0.5 BTC @ 45000 USD
Assets:Cash -22500.00 USD
Wann man es nutzt: Empfohlen für eine strikte Bestandsführung von Commodities und zur Vermeidung von Tippfehlern bei Börsenkürzeln.
check_average_cost - Anschaffungskosten-Validierung
Was es macht: Überprüft, ob die Kostenbasis in Transaktionen ordnungsgemäß erhalten bleibt, insbesondere bei der Verwendung der Durchschnittskostenmethode.
Warum es sinnvoll ist: Stellt sicher, dass Ihre Kostenrechnung für die Steuerberichterstattung und die Berechnung von Veräußerungsgewinnen korrekt bleibt.
Wann es zu verwenden ist: Entscheidend für Investmentportfolios und alle Szenarien, in denen eine genaue Kostenverfolgung wichtig ist.
check_closing - Abschluss-Validierung
Was es macht: Erweitert die closing-Metadaten in Bilanzprüfungen und stellt sicher, dass Positionen nach Abschlussbuchungen bei Null liegen.
Warum es sinnvoll ist: Bestätigt, dass beim Verkauf einer gesamten Position der Saldo tatsächlich Null ist (keine verbleibenden Bruchteilsaktien).
Beispiel:
plugin "beancount.plugins.check_closing"
2026-01-02 * "Gesamte AAPL-Position schließen" #closing
Assets:Investments:Stocks -100 AAPL {150.00 USD}
Assets:Cash 15000.00 USD
Income:Investments:Gains -500.00 USD
Der Tag #closing weist das Plugin an, zu überprüfen, ob Ihre AAPL-Position nach dieser Transaktion bei Null liegt.
Wann es zu verwenden ist: Beim Verkauf vollständiger Positionen, um sicherzustellen, dass keine Restbestände verbleiben.
coherent_cost - Währungs- und Kosten-Konsistenzprüfung
Was es macht: Validiert, dass Währungen nicht inkonsistent verwendet werden – sowohl mit als auch ohne Kosten-Annotationen.
Warum es sinnvoll ist: Verhindert das Mischen von reinen Währungen (wie 100 USD) mit Währungen mit Kostenangabe (wie 100 USD {1.2 CAD}), was zu Buchungsfehlern führen kann.
Wann es zu verwenden ist: Empfohlen für Hauptbücher mit mehreren Währungen, um die Konsistenz zu wahren.
leafonly - Erzwingung von Blattkonten
Was es macht: Stellt sicher, dass nur Blattkonten (Konten ohne Unterkonten) Buchungen erhalten.
Warum es sinnvoll ist: Erzwingt eine saubere Kontohierarchie, in der Sammelkonten wie Expenses:Food keine direkten Buchungen erhalten, sondern nur deren Unterkonten wie Expenses:Food:Groceries und Expenses:Food:Restaurants.
Beispiel:
plugin "beancount.plugins.leafonly"
; Dies würde einen Fehler auslösen:
2026-01-02 * "Lebensmitteleinkauf"
Expenses:Food 50.00 USD ; Fehler: Sollte auf ein Blattkonto buchen
Assets:Cash -50.00 USD
; Korrekte Weise:
2026-01-02 * "Lebensmitteleinkauf"
Expenses:Food:Groceries 50.00 USD ; Korrekt: Buchung auf Blattkonto
Assets:Cash -50.00 USD
Wann es zu verwenden ist: Wenn Sie eine strikte hierarchische Buchführung mit klarer Kategorisierung beibehalten möchten.
nounused - Erkennung ungenutzter Konten
Was es macht: Identifiziert Konten, die eröffnet, aber nie in Transaktionen verwendet wurden.
Warum es sinnvoll ist: Hilft Ihnen, Ihre Kontodeklarationen zu bereinigen und potenzielle Tippfehler oder verwaiste Konten zu finden.
Wann es zu verwenden ist: Regelmäßig, um Ihre Kontostruktur zu prüfen und zu bereinigen.
onecommodity - Eine Commodity pro Konto
Was es macht: Erzwingt, dass jedes Konto nur eine Art von Commodity (Währung/Wertpapier) hält.
Warum es sinnvoll ist: Verhindert das Mischen verschiedener Vermögenswerte auf demselben Konto, was im Allgemeinen einer bewährten Buchhaltungspraxis entspricht.
Beispiel:
plugin "beancount.plugins.onecommodity"
2026-01-02 * "Aktien kaufen"
Assets:Investments 10 AAPL @ 150 USD
Assets:Cash -1500.00 USD
; Dies würde einen Fehler auslösen:
2026-01-03 * "Mehr Aktien kaufen"
Assets:Investments 5 GOOGL @ 140 USD ; Fehler: Andere Commodity
Assets:Cash -700.00 USD
Wann es zu verwenden ist: Wenn Sie eine strikte Kontentrennung bevorzugen (ein Konto pro Aktie/Anlagewert).
sellgains - Kapitalertrags-Validierung
Was es macht: Gleicht deklarierte Kapitalerträge mit den berechneten Gewinnen aus Lot-Verkäufen ab, um sicherzustellen, dass Ihre Gewinn- und Verlustrechnungen korrekt sind.
Warum es sinnvoll ist: Erkennt Fehler bei manuellen Kapitalertragsberechnungen, was für eine korrekte Steuerberichterstattung entscheidend ist.
Beispiel:
plugin "beancount.plugins.sellgains"
2026-01-02 * "AAPL-Aktien verkaufen"
Assets:Investments:Stocks -10 AAPL {140.00 USD}
Assets:Cash 1500.00 USD
Income:Investments:Gains -100.00 USD ; Plugin validiert die Richtigkeit
Das Plugin verifiziert: Verkaufserlös (1500) - Anschaffungskosten (1400) = Gewinn (100)
Wann es zu verwenden ist: Unerlässlich für jeden, der mit Aktien, Kryptowährungen oder anderen Vermögenswerten handelt, bei denen Kapitalerträge anfallen.
unique_prices - Preis-Eindeutigkeitsprüfung
Was es macht: Stellt sicher, dass es nur einen Preiseintrag pro Commodity und Datum gibt.
Warum es sinnvoll ist: Verhindert widersprüchliche Preisdaten, die zu falschen Bewertungen führen könnten.
Wann es zu verwenden ist: Empfohlen bei der manuellen Eingabe von Preisen oder beim Import aus mehreren Preisquellen.
3. Transformations-Plugins
Diese Plugins modifizieren oder erweitern Ihre Hauptbuchdaten auf nützliche Weise.
currency_accounts - Währungshandelskonten
Was es macht: Implementiert Währungshandelskonten zur expliziten Verfolgung von Devisenkonvertierungen.
Warum es sinnvoll ist: Ermöglicht eine detaillierte Verfolgung von Währungsumrechnungstransaktionen, was für bestimmte Rechnungslegungsstandards erforderlich ist.
Wann es zu verwenden ist: Wenn Sie Währungsgewinne/-verluste separat ausweisen müssen oder spezifische buchhalterische Anforderungen erfüllen wollen.
commodity_attr - Rohstoff-Attributvalidierung
Was es macht: Validiert, dass Commodity-Anweisungen erforderliche Attribute (wie export, name, etc.) enthalten.
Warum es sinnvoll ist: Stellt sicher, dass Ihre Commodity-Metadaten vollständig und konsistent sind.
Wann es zu verwenden ist: Wenn Sie detaillierte Metadaten für Berichte oder Exportzwecke pflegen.
4. Meta-Plugins
Diese Plugins sind Sammlungen anderer Plugins zur bequemeren Nutzung.
auto – Alle automatischen Plugins
Funktion: Aktiviert eine Sammlung von „laxen“ oder automatischen Plugins in einer einzigen Direktive.
Anwendung: Schnelle Einrichtung für Benutzer, die maximale Automatisierung bei minimaler Konfiguration wünschen.
pedantic – Alle Validierungs-Plugins
Funktion: Aktiviert alle strikten Validierungs-Plugins gleichzeitig.
Grund für die Nutzung: Erzwingt maximale Datenintegrität und buchhalterische Strenge. Ideal für produktive Ledger oder wenn Genauigkeit an erster Stelle steht.
Beispiel:
plugin "beancount.plugins.pedantic"
; Dies entspricht der Aktivierung von:
; - check_commodity
; - check_average_cost
; - coherent_cost
; - leafonly
; - noduplicates
; - nounused
; - onecommodity
; - sellgains
; - unique_prices
Anwendung: Für produktive Ledger, bei denen Sie maximale Validierung wünschen und bereit sind, strengere Buchhaltungspraktiken einzuhalten.
Empfohlene Plugin-Konfigurationen
Für Anfänger
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.noduplicates"
plugin "beancount.plugins.implicit_prices"
Dieses minimale Set bietet Automatisierung und verhindert gleichzeitig häufige Fehler.
Für Investoren
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_average_cost"
plugin "beancount.plugins.unique_prices"
Konzentriert sich auf das Tracking von Investitionen und die Genauigkeit von Kapitalerträgen.
Für strikte Buchhaltung
plugin "beancount.plugins.pedantic"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_closing"
Maximale Validierung für Produktionsumgebungen.
Standardkonfiguration bei Beancount.io
Bei Beancount.io binden wir das auto_accounts-Plugin standardmäßig in alle neuen Ledger-Dateien ein:
plugin "beancount.plugins.auto_accounts"
Dies bietet ein hervorragendes Gleichgewicht zwischen Benutzerfreundlichkeit und Funktionalität für einen schnellen Einstieg.
Best Practices
-
Minimal anfangen, bei Bedarf erweitern: Beginnen Sie mit
auto_accountsundnoduplicates, und fügen Sie Validierungs-Plugins hinzu, während Ihr Ledger wächst. -
Plugins einzeln testen: Wenn Sie mehrere Plugins hinzufügen, aktivieren Sie diese nacheinander, um deren Auswirkungen zu verstehen.
-
Fehlermeldungen sorgfältig lesen: Plugin-Fehler weisen oft auf tatsächliche Buchhaltungsprobleme hin, die behoben werden müssen.
-
pedanticfür die Produktion nutzen: Sobald Ihr Workflow etabliert ist, sollten Sie die strikte Validierung aktivieren. -
Mit benutzerdefinierten Plugins kombinieren: Native Plugins funktionieren zusammen mit benutzerdefinierten Plugins wie dem Forecast-Plugin für maximale Funktionalität.
Über native Plugins hinaus
Während native Plugins die Kernfunktionalität bereitstellen, umfasst das Beancount-Ökosystem viele von der Community entwickelte Plugins für spezialisierte Anforderungen:
- fava.plugins.forecast – Für die Vorhersage wiederkehrender Transaktionen
- fava.plugins.link_documents – Zum Verknüpfen von Transaktionen mit Belegdateien
- Benutzerdefinierte Importer für bankspezifische CSV-Formate
- Steuerspezifische Rechner und Berichte
Entdecken Sie das Beancount-Ökosystem für weitere Optionen.
Fazit
Die nativen Plugins von Beancount verwandeln Plain-Text-Accounting von einem manuellen Prozess in ein automatisiertes, validiertes und robustes Finanzverwaltungssystem. Durch das Verständnis und die Nutzung dieser integrierten Tools können Sie:
- ✅ Mühsame Buchhaltungsaufgaben automatisieren
- ✅ Fehler erkennen, bevor sie zu Problemen werden
- ✅ Strikte Datenintegrität wahren
- ✅ Genaue Finanzberichte erstellen
- ✅ Sich auf finanzielle Erkenntnisse statt auf die Dateneingabe konzentrieren
Beginnen Sie noch heute damit, mit diesen Plugins in Ihrem Ledger zu experimentieren. Starten Sie mit auto_accounts und implicit_prices, und fügen Sie nach und nach Validierungs-Plugins hinzu, während sich Ihre Buchhaltungspraktiken weiterentwickeln.
Bereit, diese Plugins auszuprobieren? Gehen Sie zu Beancount.io und nutzen Sie sie noch heute in Ihrer Ledger-Datei!
Quellen
- Beancount Plugins API-Referenz
- Beancount Scripting & Plugins Leitfaden
- Beancount Plugins und Optionen von Bryan Alves
- Beancount GitHub-Repository
Haben Sie Fragen zu Beancount-Plugins? Beteiligen Sie sich an der Diskussion in unserem Community-Forum oder lesen Sie unsere Dokumentation.
