Zum Hauptinhalt springen

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:

NameTypTypischer InhaltBeispiel
Assets+Bargeld, Bank, InvestitionenAssets:Checking
Liabilities-Kreditkarten, KrediteLiabilities:CreditCard
Income-Gehalt, ZinsenIncome:EmployerA
Expenses+Einkäufe, RechnungenExpenses:Food:Dining
Equity-Anfangs-/AbschlussständeEquity: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