Beancount Sprachsyntax
Dies bietet eine prägnante, aber umfassende Referenz für die Beancount-Sprachsyntax, die praktische Struktur, Regeln und Beispiele vereint. Weitere Details finden Sie im Spickzettel.
Überblick
Beancount ist ein Plain-Text-System für die doppelte Buchführung. Seine Sprache ist um drei Hauptbausteine herum strukturiert:
- Waren (Währungen, Aktien, Punkte usw.)
- Konten (hierarchische, kategorisierte Hauptbücher)
- Direktiven (datierte Einträge zur Aufzeichnung von Ereignissen oder Konfigurationen)
Waren
Waren werden immer in Großbuchstaben geschrieben, z. B. USD, EUR, AAPL, BTC, MILES, HOURS.
Konten
Konten sind durch Doppelpunkte getrennte, großgeschriebene hierarchische Namen. Sie müssen mit einem der fünf Root-Kontotypen beginnen:
| Name | Typ | Typischer Inhalt | Beispiel |
|---|---|---|---|
Assets | + | Bargeld, Bank, Investitionen | Assets:Checking |
Liabilities | - | Kreditkarten, Kredite | Liabilities:CreditCard |
Income | - | Gehalt, Zinsen | Income:EmployerA |
Expenses | + | Einkäufe, Rechnungen | Expenses:Food:Dining |
Equity | - | Anfangs-/Abschlussstände | Equity:Opening-Balances |
- Komponenten müssen großgeschrieben und durch Doppelpunkte (
:) ohne Leerzeichen getrennt werden. - Zahlen und Bindestriche sind in Komponenten erlaubt.
- Die Root-Kontonamen können über Optionen angepasst werden (siehe unten).
Direktiven
Direktiven sind die Kernaussagen in einer Beancount-Datei. Die meisten beginnen mit einem Datum, gefolgt von einem Direktiventyp und Argumenten. Sie werden in chronologischer Reihenfolge (nach Datum) und nicht in Dateireihenfolge verarbeitet.
Allgemeines Format:
YYYY-MM-DD <direktive> <argumente...>
Häufige Direktiven & Beispiele
Eröffnen und Schließen von Konten
2023-01-01 open Assets:Checking USD,EUR ; Optional können zulässige Währungen angegeben werden
2023-12-31 close Assets:Checking
Deklarieren von Waren
2020-07-22 commodity AAPL
name: "Apple Inc."
Preisdeklarationen
2022-04-30 price AAPL 150.00 USD
Notizen & Dokumente
2022-03-20 note Assets:Checking "Nach Rückerstattung gefragt"
2022-03-20 document Assets:Checking "statements/2022-03.pdf"
Transaktionen
2024-01-05 * "Coffee Shop" "Morgenkaffee"
Expenses:Food 4.50 USD
Assets:Cash -4.50 USD
2024-01-06 ! "Telefonrechnung" "Monatliche Zahlung" #utilities ^phone
id: "INV12345" ; Metadaten
Expenses:Utilities 60.00 USD
Assets:Checking
Buchungsfunktionen
; Mit Einstandspreis
Assets:Stocks 1 AAPL {150.00 USD}
; Mit Preisangabe
Assets:Cash -100 USD @ 1.25 CAD
; Mit Gesamtpreis
Assets:Cash -100 USD @@ 125.00 CAD
; Impliziter Saldo
Assets:Cash -100 USD
Assets:Bank
Saldo-Assertionen & Padding
2024-06-01 balance Assets:Checking 1000.00 USD
2024-06-01 pad Assets:Checking Equity:Opening-Balances
Ereignisse
2024-06-01 event "location" "San Francisco, CA"
Optionen
Festlegen der dateiweiten Konfiguration:
option "title" "Mein Hauptbuch"
option "operating_currency" "USD"
option "documents" "docs/"
option "name_assets" "Vermoegen"
Weitere Informationen finden Sie in der Optionsreferenz.
Plugins & Dateiorganisation
plugin "beancount.plugins.module_name"
plugin "beancount.plugins.module_name" "config-string"
include "other/file.beancount"
pushtag #project
; ...
poptag #project
Wichtige Regeln
- Alle Transaktionen müssen ausgeglichen sein (die Summe aller Buchungen ist Null; der Einstandspreis wird verwendet, falls vorhanden).
- Konten müssen vor der Verwendung eröffnet werden; geschlossene Konten können keine Buchungen akzeptieren.
- Saldo-Assertionen prüfen nur die angegebene Währung und können für übergeordnete Konten verwendet werden.
- Preisangaben (
@) dienen nur zur Information und wirken sich nicht auf den Ausgleich aus.
Häufige Muster
Eröffnen von Konten mit Anfangssaldo
2024-01-01 open Assets:Checking USD
2024-01-01 pad Assets:Checking Equity:Opening-Balances
2024-01-01 balance Assets:Checking 1000.00 USD
Investmenttransaktion
2024-01-01 * "Aktien kaufen"
Assets:Broker:Stock 10 AAPL {150.00 USD}
Assets:Broker:Cash -1500.00 USD
Transaktion in verschiedenen Währungen
2024-01-01 * "Währungsumtausch"
Assets:USD -100.00 USD @ 1.25 CAD
Assets:CAD 125.00 CAD
Kommentare
poptag #trip-to-peru
; Inline-Kommentare beginnen mit einem Semikolon
* Jede Zeile, die nicht mit einer gültigen Direktive beginnt, wird ebenfalls stillschweigend ignoriert