Zum Hauptinhalt springen

Glossar zu Beancount und Klartext-Buchhaltung

Allgemein verständliche Definitionen von Beancount- und Klartext-Buchhaltungsbegriffen: Konten, Buchungen, Anschaffungskosten, Buchungsmethoden und mehr.

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 USD

Beancount​

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:Checking

Wertpapier​

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 USD

Umschlagbudgetierung​

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 USD

Erzä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 USD

Live 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 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 USD

Hä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.

Quelle: https://beancount.io/de/docs/glossary