Plain-Text-Accounting entlehnt seinen Wortschatz aus der doppelten Buchführung und fügt eine Handvoll Beancount-spezifischer Begriffe hinzu. Dieses Glossar definiert die Begriffe, die Ihnen beim Lesen dieser Dokumentation oder Ihres eigenen Ledger-Files begegnen werden — jeweils mit einem kurzen Beispiel, wo es hilfreich ist. Jeder Eintrag hat seinen eigenen Link, sodass Sie einem Kollegen direkt auf eine Definition verweisen können.
Konto
Ein Konto ist ein benannter Behälter, der einen Wertestrom verfolgt und als
durch Doppelpunkte getrennte Hierarchie unter einem von fünf Wurzeltypen geschrieben
wird: Assets, Liabilities, Equity, Income oder Expenses. Die Hierarchie ist
die gesamte Organisationsstruktur Ihrer Bücher — Assets:US:BofA:Checking und
Expenses:Food:Restaurant sortieren und aggregieren sich automatisch. Jedes Konto muss
deklariert werden, bevor es verwendet wird. Siehe
Beancount Language Syntax für die Namensregeln.
Periodengerechte Buchführung
Die periodengerechte Buchführung erfasst Einnahmen, wenn sie verdient, und Ausgaben, wenn sie angefallen sind, unabhängig davon, wann das Geld tatsächlich fließt. Die Einnahmen-Überschuss-Rechnung macht das Gegenteil: Sie erkennt beides erst, wenn Geld den Besitzer wechselt. Die periodengerechte Abgrenzung vermittelt ein wahrheitsgetreueres Bild der Leistung einer Periode, weshalb eine im März versandte Rechnung zum März gehört, auch wenn der Kunde erst im Mai zahlt.
Abschreibung
Die Abschreibung verteilt eine einzelne große Zahlung über die Perioden, die sie tatsächlich abdeckt, sodass jeder Monat seinen fairen Anteil der Kosten trägt. Eine im Januar gezahlte Jahresversicherungsprämie ist eine Ausgabe aller zwölf Monate, nicht nur des Januars. In Beancount schreiben Sie entweder die aufgeteilten Buchungen von Hand oder generieren sie mit einem Plugin — siehe Amortize.
Saldoprüfung
Eine Saldoüberprüfung ist eine balance-Direktive, die angibt, welchen Saldo ein Konto
zu Beginn eines bestimmten Datums haben muss, sodass Ihr Kontoauszug zu einer
automatischen Prüfung Ihrer Bücher wird. Wenn der berechnete Saldo um mehr als die
Toleranz der Überprüfung abweicht, schlägt Beancount lautstark fehl und nennt den
erwarteten und den tatsächlichen Betrag. Diese Toleranz ist eine Einheit der letzten
Dezimalstelle, die Sie geschrieben haben — 4.27 RGAGX akzeptiert alles von 4,26 bis
4,28 — und eine ~ vor der Währung legt Ihre eigene fest. Eine Überprüfung pro Konto
pro Auszug einzustreuen ist die billigste Methode, ein Ledger vertrauenswürdig zu halten.
2026-01-01 balance Assets:US:BofA:Checking 4,321.00 USDBeancount
Beancount ist ein quelloffenes doppeltes Buchhaltungssystem, dessen Ledger eine Plain-Text-Datei ist, die Sie in jedem Texteditor bearbeiten und mit einem Kommandozeilenwerkzeug validieren. Es bietet Ihnen eine strikte, parsebare Syntax, eine Abfragesprache und eine Weboberfläche — ohne Datenbank oder proprietäres Dateiformat. Da das Ledger Text ist, lebt es glücklich in Git neben Ihrem Code. Beginnen Sie mit Introduction to Beancount.
Beancount-Abfragesprache
Die Beancount Query Language, üblicherweise mit BQL abgekürzt, ist die SQL-ähnliche
Sprache, mit der Sie Ihrem Ledger Fragen stellen. Sie läuft über die geparsten
Direktiven statt über eine Datenbank, sodass
SELECT account, sum(position) WHERE year = 2026 sofort aus derselben Datei antwortet,
die Sie bearbeiten. Lesen Sie den
query language guide für die vollständige Grammatik.
Buchungsmethode
Eine Buchungsmethode ist die Regel, die Beancount anwendet, wenn eine Reduzierung
entscheiden muss, welche bestehenden Lots abgebaut werden sollen. Beancount 3.2.3
akzeptiert sieben Namen: STRICT (der Standard, bei dem Sie das Lot selbst
identifizieren), STRICT_WITH_SIZE, NONE, FIFO, LIFO, HIFO und AVERAGE. Legen
Sie eine pro Konto in dessen open-Direktive fest oder für die ganze Datei mit
option "booking_method". Sechs der sieben sind implementiert: AVERAGE wird geparst,
wirft aber AVERAGE method is not supported, sobald es eine Reduzierung buchen muss.
Die gewählte Methode verändert Ihre realisierten Kapitalgewinne, also wählen Sie die,
die Ihre Steuerjurisdiktion erwartet, und halten Sie sie stabil.
Inventory Management führt alle sieben über dieselben Lots aus
und veröffentlicht das Ledger, das unter AVERAGE fehlschlägt.
Kontenplan
Ein Kontenplan ist die vollständige Liste der Konten, die Ihr Ledger verwendet, zusammen
mit der Struktur, die sie organisiert. In Beancount gibt es keine separate
Kontenplan-Datei — die Menge der open-Direktiven ist Ihr Kontenplan. Ihn frühzeitig
gut zu entwerfen erspart später viel Umbenennen; siehe
Industry-Specific Setups für Ausgangspunkte.
Schließungsdirektive
Eine close-Direktive markiert das Datum, nach dem ein Konto nicht mehr verwendet werden
darf — so legen Sie ein Bankkonto oder einen abbezahlten Kredit still, ohne seine
Historie zu löschen. Vergangene Transaktionen bleiben gültig und berichtbar; nur neue
Buchungen werden abgelehnt. Unbenutzte Konten zu schließen hält Berichte lesbar, während
ein Ledger altert.
2026-03-31 close Assets:US:OldBank:CheckingWertpapier
Eine Commodity ist jede Werteinheit, die Ihr Ledger verfolgt — eine Währung wie USD,
ein Börsenticker wie AAPL, ein Krypto-Asset wie BTC oder etwas von Ihnen Erfundenes
wie VACATION-DAYS. Beancount rechnet niemals hinter Ihrem Rücken zwischen Commodities
um, sodass ein Betrag immer eine Zahl gepaart mit der Commodity ist, in der er
denominiert ist. Eine optionale commodity-Direktive erlaubt Ihnen, Metadaten wie einen
Namen oder eine Anlageklasse anzuhängen.
Anschaffungskosten
Die Anschaffungskosten sind das, was Sie tatsächlich für eine Position bezahlt haben,
erfasst in der Währung, mit der Sie bezahlt haben, und mitgeführt, solange Sie die
Position besitzen. Beancount schreibt sie in geschweifte Klammern — 10 AAPL {150.00 USD}
bedeutet zehn Aktien, erworben zu je 150 Dollar. Verdoppeln Sie die Klammern, wird die
Zahl zum Gesamtbetrag statt zum Stückpreis, sodass 10 AAPL {{1,500.00 USD}} dasselbe Lot
erfasst. Weil die Kostenbasis mit der Position reist, fallen Kapitalgewinne beim Verkauf
aus der Arithmetik heraus. Siehe Inventory Management.
Direktive
Eine Direktive ist eine Anweisung in einer Beancount-Datei, meist datiert, und Direktiven
sind das, woraus ein Ledger besteht. Zwölf Arten tragen ein Datum: open, close,
balance, price, note, document, pad, event, commodity, custom, query und
die Transaktion selbst. Einige tragen keines und wirken auf die Datei statt auf einen Tag
— option, include, plugin und das Paar pushtag/poptag. Beancount sortiert die
datierten vor der Verarbeitung nach Datum, sodass Sie diese in der Reihenfolge halten
können, die am besten lesbar ist; eine undatierte wirkt dort, wo sie geschrieben steht.
Doppelte Buchführung
Doppelte Buchführung ist die Praxis, jedes wirtschaftliche Ereignis als mindestens zwei zusammenpassende Einträge zu erfassen, sodass ihre Gewichte immer zu null summieren. Geld wird nie erschaffen oder vernichtet — es bewegt sich nur zwischen Konten, weshalb die Technik Fehler aufdeckt, die eine einspaltige Liste nie finden würde. Ein Gewicht ist der eigene Betrag einer Buchung oder dessen Kosten oder Preis, zurückgerechnet in eine Währung, sodass zwei Seiten in verschiedenen Commodities sich dennoch aufheben. Beancount erzwingt die Regel strikt: Eine Transaktion, deren Buchungen nicht ausgeglichen sind, ist ein Fehler, keine Warnung.
2026-03-02 * "Bank" "Buy euros"
Assets:US:BofA:EUR 100.00 EUR @ 1.08 USD
Assets:US:BofA:Checking -108.00 USDUmschlagbudgetierung
Die Umschlag-Budgetierung legt Geld für einen Zweck beiseite, bevor Sie es ausgeben, sodass jede Kategorie ihr eigenes Limit hat, statt um einen gemeinsamen Saldo zu konkurrieren. Der Name stammt von den Papierumschlägen, die Menschen einst am Zahltag mit Bargeld füllten. In einem Plain-Text-Ledger modellieren Sie Umschläge mit dedizierten Konten oder Budget-Direktiven — siehe Budgets.
Fava
Fava ist die Weboberfläche für Beancount: Diagramme, Bilanzen, Gewinn- und Verlustrechnungen, ein Abfrageeditor und ein Eingabeformular, bereitgestellt aus Ihrer Ledger-Datei. Sie ist überwiegend lesend und läuft lokal, sodass sie ändert, wie Sie Ihre Bücher sehen, ohne zu ändern, wie Sie sie erfassen. beancount.io hostet eine verwaltete Version zusammen mit seinem eigenen Tooling; der UI Features-Leitfaden behandelt, was Sie dort tun können.
Inventar
Ein Inventar ist die Sammlung der Positionen, die ein Konto derzeit hält, jede mit ihrer eigenen Commodity und, wo relevant, ihrer eigenen Kostenbasis und ihrem Erwerbsdatum. Ein Brokerkonto, das dieselbe Aktie dreimal gekauft hat, hält drei separate Lots in einem Inventar, nicht eine vermischte Zahl. Lots getrennt zu halten ist es, was genaue Gewinnberechnungen möglich macht.
Journal
Das Journal ist die chronologische Liste von allem, was in Ihren Büchern geschah — der rohe Strom der Transaktionen, in Datumsreihenfolge, vor jeder Gruppierung oder Zusammenfassung. Es ist die Ansicht, die Sie überfliegen, wenn Sie beantworten wollen: „Was habe ich im März eigentlich getan?". Favas Journal-Seite ist meist der schnellste Ort, um einen falsch kategorisierten Eintrag zu entdecken.
Journal (Buch)
Ein Ledger ist die vollständige Sammlung der Buchhaltungsaufzeichnungen für eine Entität, was in Beancount Ihre Plain-Text-Datei bedeutet (plus alles, was sie einschließt). Das Wort dient zugleich als Name für das ganze Buch der Konten und als Name der Datei selbst. Da es Text ist, kann ein Ledger wie Quellcode diffed, reviewt, verzweigt und gemergt werden.
Los
Ein Lot ist ein bestimmter Erwerb einer Commodity, identifiziert durch seine Kostenbasis und sein Erwerbsdatum. Denselben ETF im Januar und erneut im Juni zu kaufen erzeugt zwei Lots, und später zu verkaufen bedeutet, zu wählen, welches Lot Sie verkaufen. Lots sind der Grund, warum Beancount realisierte Gewinne exakt berechnen kann statt sie anzunähern.
2026-06-15 * "Broker" "Buy VTI"
Assets:US:Broker:VTI 5 VTI {260.00 USD, 2026-06-15}
Assets:US:Broker:Cash -1,300.00 USDErzählung
Die Narration ist die Freitextbeschreibung dessen, wofür eine Transaktion war, geschrieben als zweiter Zeichenkettenwert in der Transaktionszeile. Sie ist für Menschen gedacht: „Monatsmiete", „Lebensmittel und Haushalt". Beancount parst sie nicht, aber sie ist das, was Sie lesen werden, wenn der Eintrag in sechs Monaten keinen Sinn mehr ergibt.
Öffnungsdirektive
Eine open-Direktive deklariert ein Konto, das Datum, ab dem es nutzbar ist, und optional
die Commodities, die es halten darf, und die Buchungsmethode, die es verwendet. Beancount
verlangt, dass jedes Konto vor seiner ersten Buchung geöffnet wird, was verhindert, dass ein
Tippfehler stillschweigend ein brandneues Konto erzeugt. Die erlaubten Commodities
einzuschränken verwandelt eine weitere ganze Fehlerklasse in Fehler.
2026-01-01 open Assets:US:Broker:VTI VTI "FIFO"Pad
Eine pad-Direktive weist Beancount an, denjenigen Betrag einzufügen, der nötig ist, damit
die nächste Saldoüberprüfung eines Kontos gelingt, und die Differenz auf ein zweites Konto
zu buchen. Sie existiert für genau eine Aufgabe: ein Ledger mitten im Leben zu eröffnen,
ohne Jahre der Historie zu rekonstruieren. Über diese Ersteinrichtung hinaus zu padden
bedeutet meist, dass ein echter Fehler übertüncht wird.
Zahlungsempfänger
Der Payee ist, mit wem Sie transagiert haben, geschrieben als erster Zeichenkettenwert in
einer Transaktionszeile. Payees konsistent zu halten — immer "Whole Foods", nie
manchmal "WholeFoods" — ist es, was Payee-basierte Berichte und automatisierte Importer
funktionieren lässt. Beancount behandelt den Payee als optional; eine Transaktion darf nur
eine Narration tragen.
Buchführung im Klartext
Plain-Text-Accounting ist die Praxis, Ihre Bücher in einer menschenlesbaren Textdatei unter Versionskontrolle zu halten, verarbeitet von quelloffenen Kommandozeilenwerkzeugen. Es tauscht eine Point-and-Click-Oberfläche gegen Haltbarkeit, Auditierbarkeit und Automatisierung: Ihre Daten überleben jeden Anbieter, jede Änderung ist ein überprüfbarer Diff, und jedes Skript kann sie lesen. Beancount, Ledger und hledger sind die drei bekanntesten Implementierungen.
Plugin
Ein Plugin ist ein Python-Modul, das Beancount beim Verarbeiten Ihrer Datei lädt und das
Direktiven hinzufügen, transformieren oder validieren kann, bevor Berichte erstellt werden.
Plugins sind es, wie Prognosen, Abschreibungspläne und eigene Prüfungen implementiert
werden, ohne die Kernsprache zu ändern. Sie aktivieren eines mit einer eigenständigen
plugin-Zeile am Anfang Ihres Ledgers, niemals mit einer option —
option "plugin" "…" wird mit Option 'plugin' may not be set abgelehnt. Der
Forecast Plugin-Leitfaden führt durch ein echtes Beispiel.
Posten
Eine Buchung ist eine Seite einer Transaktion: ein Konto, ein Betrag und optional Kosten
oder Preis. Was über eine Transaktion zu null summieren muss, sind nicht die rohen Beträge,
sondern ihre Gewichte: Ein einfacher Betrag wiegt sich selbst, 10 FUND @ 38.46 USD wiegt
384.60 USD, und 10 FUND {384.61 USD} wiegt 3,846.10 USD, weil einfache geschweifte
Klammern die Kosten einer Einheit halten. Höchstens eine Buchung darf ihren Betrag leer
lassen; in dem Fall berechnet Beancount den ausgleichenden Wert für Sie. Siehe
Precision & Tolerances für die vollständigen Gewichtsregeln.
Preisdirektive
Eine price-Direktive erfasst den Wechselkurs zwischen zwei Commodities an einem Datum,
womit Beancount eine Position in Berichten in ihren Marktwert umrechnet. Eine
price-Direktive ist reine Referenzdaten: Sie bewegt kein Geld und gehört zu keiner
Transaktion. Verwechseln Sie sie nicht mit dem @-Preis, der in einer Buchung geschrieben
wird — dieser ist Arithmetik: Er gibt 10 FUND @ 38.46 USD ein Gewicht von 384.60 USD
und entscheidet damit, ob die Transaktion ausgeglichen ist. Ohne price-Direktiven
balanciert ein Portfolio noch zu Anschaffungskosten, kann aber nicht zum Marktwert bewertet
werden.
2026-06-30 price VTI 271.40 USDLive Prices liefert verwaltete price-Direktiven für unterstützte Assets in gehosteten Ledgers. Ihr eigener Preis gewinnt für dasselbe Datum und Paar, einschließlich des reziproken Paares. Ein verwalteter Preis an einem späteren Datum kann weiterhin für eine spätere Bewertung gelten.
Abstimmung
Abstimmung ist der Akt, zu belegen, dass Ihre Bücher mit einer externen Aufzeichnung wie einem Bank- oder Brokerauszug übereinstimmen. Im Plain-Text-Accounting ist sie weitgehend mechanisch: Fügen Sie für jedes Auszugsdatum eine Saldoüberprüfung hinzu und lassen Sie das Werkzeug Ihnen sagen, ob die Zahlen übereinstimmen. Ein Ledger, das jeden Monat sauber abgestimmt wird, ist eines, aus dem Sie ohne Furcht Steuern einreichen können.
Tags und Links
Tags und Links sind die beiden Etiketten, die Sie an Transaktionen anhängen, um sie
außerhalb der Kontenhierarchie zu gruppieren: Ein Tag mit # markiert ein Thema wie
#trip-japan, und ein Link mit ^ verbindet verwandte Einträge wie ^invoice-2026-014
miteinander. Tags beantworten „zeig mir alles in dieser Kategorie"; Links beantworten „zeig
mir die Einträge, die zu diesem einen Ereignis gehören". Beide sind in Fava filterbar und in
BQL abfragbar — siehe Filtering and Searching.
Transaktion
Eine Transaktion ist ein datiertes wirtschaftliches Ereignis zusammen mit den Buchungen, die
es erfassen, und sie ist die Direktive, die Sie am häufigsten schreiben werden. Sie trägt
einen Flag (* für bestätigt, ! für prüfbedürftig), einen optionalen Payee, eine Narration
und zwei oder mehr Buchungen, deren Gewichte zu null summieren. Alles andere in einer
Beancount-Datei existiert, um Transaktionen zu deklarieren, zu prüfen oder zu annotieren.
2026-02-14 * "Blue Bottle" "Coffee with Dana"
Expenses:Food:Coffee 9.50 USD
Assets:US:BofA:Checking -9.50 USDHängen Sie noch an einem Wort? Das Help Center indexiert jeden Leitfaden auf dieser Seite, und das Cheatsheet stellt die Syntax für jede Direktive nebeneinander.