Zum Hauptinhalt springen

Einführung in Beancount.io

Dieser Leitfaden fasst die Best Practices für die Plain-Text-Buchhaltung mit dem leistungsstarken Open-Source-Plain-Text-Buchhaltungstool Beancount zusammen. Er behandelt die grundlegende Philosophie, die grundlegende bis fortgeschrittene Syntax, praktische Fallstudien für komplexe Vermögenswerte und langfristige Strategien für die Ledger-Verwaltung.

Teil 1: Das "Warum" - Grundlagen der intelligenten Buchhaltung

Bevor wir uns mit dem "Wie" befassen, ist es wichtig, das "Warum" zu verstehen. Eine effektive Buchhaltung ist das Fundament der persönlichen Finanzverwaltung und ein notwendiger Schritt zu finanzieller Klarheit und Freiheit.

Mehr als nur Ausgaben erfassen: Der Weg zur finanziellen Klarheit

Einfache Apps zur Ausgabenverfolgung zeigen Ihnen, wohin Ihr Geld geflossen ist. Ein robustes Buchhaltungssystem sagt Ihnen das und noch viel mehr: Es bietet ein vollständiges Bild Ihrer finanziellen Gesundheit, einschließlich Ihres Nettovermögens, Ihres Cashflows und der Performance Ihrer Anlagen. Das Hauptziel ist die Beobachtbarkeit - ein klares, datengestütztes Verständnis Ihres finanziellen Lebens zu erlangen, das Sie in die Lage versetzt, fundierte Entscheidungen zu treffen, Risiken einzuschätzen und auf langfristige Ziele wie den Ruhestand hinzuarbeiten.

Warum doppelte Buchführung? Die Macht eines ausgeglichenen Systems

Im Gegensatz zur einfachen Buchführung (einer einfachen Liste von Ausgaben) erfasst die doppelte Buchführung jede Transaktion als Wertfluss zwischen mindestens zwei Konten. Ihr Kernprinzip ist die grundlegende Buchungsgleichung:

Vermo¨gen=Schulden+Eigenkapital (Nettovermo¨gen)\text{Vermögen} = \text{Schulden} + \text{Eigenkapital (Nettovermögen)}

Dieses System stellt sicher, dass Ihre Bücher immer ausgeglichen sind, wodurch Fehler drastisch reduziert werden. Es bietet ein vollständiges finanzielles Bild durch die Erstellung wesentlicher Berichte wie einer Bilanz (was Sie besitzen und schulden) und einer Gewinn- und Verlustrechnung (was Sie verdient und ausgegeben haben).

Teil 2: Erste Schritte mit Beancount

Beancount ist ein leistungsstarkes, Python-basiertes Tool für die Plain-Text-Buchhaltung.

Ihr erster Blick mit Fava auf Beancount.io

Beancount.io bietet eine leistungsstarke Umgebung, die die Beancount-Engine mit einer mobilen App (iOS, Android) und Web-App kombiniert - Fava, eine fantastische webbasierte Oberfläche zur Visualisierung Ihres Ledgers. Es ist keine Installation erforderlich. Wenn Sie die Plattform nutzen, interagieren Sie direkt mit einem Texteditor für Ihre Ledger-Datei (z. B. main.bean) und sehen, wie sich die von Fava generierten Berichte in Echtzeit aktualisieren.

Fava nimmt den von Ihnen geschriebenen Klartext und wandelt ihn in interaktive Diagramme, Finanzberichte und filterbare Transaktionslisten um, wodurch Sie einen klaren Überblick über Ihre Finanzberichte erhalten.

Die fünf Kern-Kontotypen

Beancount verwendet fünf Top-Level-Kontotypen, die die Struktur Ihres Ledgers bilden:

KontotypBeschreibungTypischer Saldo
AssetsWas Sie besitzen (Bargeld, Bankkonten, Anlagen, Immobilien).Positiv
LiabilitiesWas Sie schulden (Kreditkartenschulden, Kredite, Hypotheken).Negativ
IncomeWoher das Geld kommt (Gehalt, Boni, Zinsen).Negativ
ExpensesWohin das Geld fließt (Essen, Miete, Reisen, Steuern).Positiv
EquityIhr Nettovermögen; wird für Anfangssalden verwendet.Negativ

Die Beancount-Gleichung

Beancount erzwingt seine eigene Version der Buchungsgleichung, bei der die Summe aller Buchungen über Ihr gesamtes Ledger hinweg Null ergibt:

Vermo¨gen+Ausgaben+Schulden+Einkommen+Eigenkapital=0\text{Vermögen} + \text{Ausgaben} + \text{Schulden} + \text{Einkommen} + \text{Eigenkapital} = 0

Aus diesem Grund halten Income-, Liabilities- und Equity-Konten konventionsgemäß negative Werte - sie sind die Quellen von Geldern, die Ihre Assets und Expenses erhöhen.

Teil 3: Die Sprache von Beancount - Kernsyntax

Alle Einträge in Beancount sind Direktiven, die mit einem Datum beginnen.

Definieren von Konten (open) und Waren

Bevor Sie ein Konto verwenden können, müssen Sie es mit der open-Direktive deklarieren. Sie können optional auch die Währungen oder "Waren" angeben, die es enthalten soll.

; YYYY-MM-DD open Account:Name [Commodity1, Commodity2, ...]
2020-01-01 open Assets:Bank:US:Chase:Checking USD
2020-01-01 open Liabilities:CreditCard:US:Discover USD
2020-01-01 open Expenses:Food:Groceries
2020-01-01 open Income:Salary:Google

Waren können reale Währungen sein (z. B. USD, JPY) oder eine benutzerdefinierte Einheit, die Sie definieren, wie z. B. Flugmeilen (MILES_UA) oder Aktienticker (HOOL).

Aufzeichnen Ihrer ersten Transaktion (*)

Transaktionen sind der häufigste Eintrag. Sie beginnen mit einem Datum, einer Kennzeichnung (* für eine vollständige Transaktion oder ! für eine unvollständige), einem optionalen Zahlungsempfänger und einer Beschreibung. Jede Zeile, die folgt (um zwei Leerzeichen eingerückt), ist eine "Buchung" auf einem Konto.

; YYYY-MM-DD * "Payee" "Description"
; Account1 Amount Commodity
; Account2 -Amount Commodity

2024-07-28 * "Trader Joe's" "Wöchentliche Einkäufe"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover -125.50 USD

Der Einfachheit halber können Sie den Betrag in der zweiten Zeile weglassen, wenn eine Transaktion nur zwei Buchungen hat, und Beancount berechnet ihn automatisch.

2024-07-28 * "Trader Joe's" "Wöchentliche Einkäufe"
Expenses:Food:Groceries 125.50 USD
Liabilities:CreditCard:US:Discover

Transaktionsbasierter Ausgleich: Noch wichtiger für den täglichen Gebrauch ist, dass jede einzelne Transaktion auch ausgeglichen sein muss - die Summe aller Buchungen innerhalb einer einzelnen Transaktion muss Null ergeben. Wenn eine Transaktion nicht ausgeglichen ist, zeigt Beancount eine Fehlermeldung wie diese an:

Beancount Error Alert

Umgang mit Transaktionen in mehreren Währungen (@ und @@)

Beancount zeichnet sich durch die Buchhaltung in mehreren Währungen aus.

  • Verwenden Sie @, um einen Umrechnungskurs pro Einheit anzugeben.
  • Verwenden Sie @@, um die Gesamtkosten der Umrechnung anzugeben.
; Kauf eines Fluges in EUR mit einer USD-Karte
2024-08-01 * "Lufthansa" "Flug nach Berlin"
Expenses:Travel:Flights 500.00 EUR @@ 545.00 USD ; 500 EUR kosteten mich insgesamt 545 USD
Liabilities:CreditCard:US:Discover -545.00 USD

Teil 4: Sicherstellung der Genauigkeit - Die Kunst der Abstimmung

Eine wichtige Vorgehensweise zur Aufrechterhaltung eines genauen Ledgers ist die regelmäßige Abstimmung. Dies beinhaltet den Vergleich der Salden in Ihrem Beancount-Ledger mit offiziellen Kontoauszügen Ihrer Finanzinstitute.

Automatisierung von Prüfungen mit Saldobestätigungen (balance)

Die balance-Direktive ist Ihr wichtigstes Werkzeug für automatisierte Prüfungen. Sie bestätigen, dass ein Konto an einem bestimmten Datum einen bestimmten Saldo aufwies. Beancount wirft einen Fehler aus, wenn der berechnete Saldo nicht mit Ihrer Behauptung übereinstimmt. Dies ist von unschätzbarem Wert, um Fehler schnell zu lokalisieren.

Hinweis: Die Saldobestätigung prüft den Zustand des Kontos am Anfang des angegebenen Tages (vor allen Transaktionen an diesem Tag).

; Aus Ihrem monatlichen Kreditkartenauszug
2024-08-01 balance Liabilities:CreditCard:US:Discover -1432.78 USD

Verknüpfen von Belegen (document)

Sie können auf externe Dateien wie Kontoauszüge oder Quittungen verlinken, um eine nachvollziehbare Historie zu erstellen. Fava macht diese Links anklickbar.

2024-08-01 document Liabilities:CreditCard:US:Discover "statements/discover-2024-07.pdf"

Fehler korrigieren und Anfangssalden initialisieren

Wenn Sie Ihr Ledger starten oder eine Diskrepanz feststellen, die Sie nicht nachvollziehen können, müssen Sie eine Anpassung vornehmen. Die Standardmethode besteht darin, ein spezielles Equity-Konto zu verwenden.

; Initialisieren eines Bargeldkontos beim Start Ihres Ledgers
2020-01-01 * "Anfangssaldo" "Einrichtung eines Bargeldkontos"
Assets:Cash:Wallet 200.00 USD
Equity:Opening-Balances -200.00 USD

Das Konto Equity:Opening-Balances enthält Beträge, die aus unbekannten oder externen Quellen in Ihr Ledger gelangen.

Für schnelle Korrekturen, bei denen die genaue Diskrepanz unwichtig ist, kann die pad-Direktive den Saldo eines Kontos automatisch anpassen, um einer nachfolgenden balance-Bestätigung zu entsprechen, wobei die Differenz auf ein Equity-Konto gebucht wird. Verwenden Sie dies mit Vorsicht, da es größere Probleme verdecken kann. Explizite Anpassungen sind im Allgemeinen sicherer.

Teil 5: Fortgeschrittene und realistische Transaktionsmuster

Verfolgen von Schulden: Verwalten von Forderungen und Verbindlichkeiten

Die doppelte Buchführung ist perfekt, um Geld zu verfolgen, das Ihnen geschuldet wird (Assets:Receivables) oder das Sie schulden (Liabilities:Payable).

Beispiel: Sie bezahlen ein Gruppenessen für 90 USD, und Ihr Freund Bob schuldet Ihnen seinen Anteil von 45 USD.

  1. Erfassen Sie die anfänglichen Ausgaben und die Forderung:

    2024-08-05 * "Dinner Place" "Abendessen mit Bob"
    Expenses:Food:Restaurant 45.00 USD ; Ihr Anteil
    Assets:Receivables:Bob 45.00 USD ; Bob schuldet Ihnen
    Assets:Bank:US:Chase:Checking -90.00 USD
  2. Wenn Bob Sie zurückzahlt:

    2024-08-06 * "Bob" "Hat mich für das Abendessen zurückbezahlt"
    Assets:Bank:US:Chase:Checking 45.00 USD
    Assets:Receivables:Bob -45.00 USD

Das Konto Assets:Receivables:Bob ist jetzt Null, und Ihre Bücher sind perfekt ausgeglichen.

Vermögen vs. Ausgaben: Ein Autokauf und die Abschreibung

Eine große Anschaffung wie ein Auto ist keine einfache Ausgabe; es ist der Erwerb eines Vermögenswerts, der im Laufe der Zeit an Wert verliert (Abschreibung).

  1. Erfassen Sie den Kauf als Vermögenswert:

    2023-01-15 * "Toyota Dealer" "Kauf eines Neuwagens"
    Assets:Car:ToyotaCamry 30000.00 USD
    Assets:Bank:US:Chase:Checking -30000.00 USD
  2. Erfassen Sie die jährliche Abschreibung: Angenommen, Sie schätzen, dass das Auto jedes Jahr 3.000 USD an Wert verliert. Am Ende des Jahres erfassen Sie dies als Ausgabe.

    2023-12-31 * "Abschreibung" "Jährliche Abschreibung des Autowerts"
    Expenses:Depreciation:Car 3000.00 USD
    Assets:Car:ToyotaCamry -3000.00 USD

Nach diesem Eintrag spiegelt Ihr Konto Assets:Car:ToyotaCamry korrekt den neuen Wert des Autos wider (27.000 USD), und Sie haben die Nutzungskosten ordnungsgemäß als Ausgabe für dieses Jahr verbucht.

Teil 6: Tiefes Eintauchen - Modellierung komplexer realer Vermögenswerte

Fallstudie 1: Buchhaltung für Immobilien

Ein Haus ist oft Ihr größtes Vermögen und Ihre größte Schuld. So modellieren Sie es.

  1. Erstellen Sie Konten und eine benutzerdefinierte Ware:

    2022-01-01 commodity HOUSE_123MAIN
    name: "Immobilie in der 123 Main St"
    2022-01-01 open Assets:Property:Home:123Main HOUSE_123MAIN
    2022-01-01 open Liabilities:Mortgage:HomeLoan USD
    2022-01-01 open Expenses:Home:Interest
    2022-01-01 open Expenses:Home:PropertyTax
  2. Erfassen Sie den Kauf: Nehmen wir an, Sie kaufen ein Haus für 500.000 USD mit einer Anzahlung von 100.000 USD und einem Darlehen von 400.000 USD.

    2022-03-15 * "Settlement Company" "Kauf von 123 Main St"
    Assets:Property:Home:123Main 1 HOUSE_123MAIN {500000.00 USD}
    Assets:Bank:DownPayment -100000.00 USD
    Liabilities:Mortgage:HomeLoan -400000.00 USD
  3. Erfassen Sie die monatlichen Hypothekenzahlungen: Ihre monatliche Zahlung besteht aus Tilgung (reduziert die Verbindlichkeit) und Zinsen (eine Ausgabe).

    2022-04-01 * "Hypothekenbank" "Monatliche Hypothekenzahlung"
    Liabilities:Mortgage:HomeLoan 800.00 USD ; Tilgung
    Expenses:Home:Interest 1200.00 USD ; Zinsen
    Assets:Bank:US:Chase:Checking -2000.00 USD
  4. Verfolgen der Wertsteigerung (nicht realisierte Gewinne): Der Marktwert eines Hauses ändert sich. Um dies zu verfolgen, ohne Ihr offizielles Nettovermögen zu beeinflussen (da der Gewinn erst beim Verkauf realisiert wird), können Sie eine Preisdirektive mit einer "virtuellen" Währung verwenden.

    ; Der Kaufpreis ist die reale Kostenbasis
    2022-03-15 price HOUSE_123MAIN 500000.00 USD

    ; Eine aktualisierte Marktschätzung ist ein nicht realisierter Gewinn
    2024-01-01 price HOUSE_123MAIN 550000.00 USD.UNREALIZED

Dadurch können Sie den geschätzten Wert in Favas Diagrammen sehen, ohne Ihre Bilanz unangemessen aufzublähen.

Fallstudie 2: Verfolgen von Restricted Stock Units (RSUs)

RSUs sind eine gängige Form der Aktienvergütung. Die Buchhaltung umfasst die Verfolgung der anfänglichen Gewährung, der Ausübungsereignisse und des Steuerabzugs.

  1. Ersteinrichtung: Erstellen Sie Waren für unverfallbare (HOOL) und unverfallbare (HOOL.UNVEST) Aktien zusammen mit den erforderlichen Konten.

    2021-01-01 commodity HOOL
    2021-01-01 commodity HOOL.UNVEST
    2021-01-01 open Assets:Brokerage:Etrade:HOOL HOOL
    2021-01-01 open Assets:Grant:Unvested HOOL.UNVEST
    2021-01-01 open Income:Salary:Hooli:RSU
    2021-01-01 open Expenses:Taxes:Federal
  2. Erfassen Sie die anfängliche Gewährung: Diese Transaktion zeigt, dass die gesamte Gewährung in ein unverfallbares Vermögenskonto verschoben wird.

    2021-02-01 * "Hooli" "Anfängliche RSU-Gewährung"
    Assets:Grant:Unvested 1000 HOOL.UNVEST
    Income:Grant:Awards -1000 HOOL.UNVEST
  3. Erfassen Sie ein Ausübungsereignis: Dies ist die Schlüsseltransaktion. Wenn Aktien unverfallbar werden, erfassen Sie Einkommen, zahlen Steuern (oft durch den Verkauf einiger Aktien) und erhalten die Nettoaktien. Angenommen, 100 Aktien werden zu 150 USD/Aktie unverfallbar.

    2022-02-01 * "Hooli" "RSU-Ausübungsereignis"
    ; Erfassen Sie das Gesamteinkommen von 100 * $150 = $15.000
    Income:Salary:Hooli:RSU -15000.00 USD

    ; Zeigen Sie die aus diesem Einkommen gezahlten Steuern
    Expenses:Taxes:Federal 4000.00 USD
    Expenses:Taxes:State 1000.00 USD

    ; Sie erhalten die Nettoaktien (angenommen 60 Aktien) zu ihrer Kostenbasis
    Assets:Brokerage:Etrade:HOOL 60 HOOL {150.00 USD}

    ; Die anderen 40 Aktien wurden verkauft, um Steuern in Höhe von 6.000 USD zu decken.
    ; Diese Transaktion gleicht das Einkommen, die Steuern und die erhaltenen Aktien aus.
    ; Wir müssen auch die Reduzierung der unverfallbaren Aktien aufzeigen.
    Assets:Grant:Unvested -100 HOOL.UNVEST
    Expenses:Grant:Vested 100 HOOL.UNVEST

Diese einzelne, ausgeglichene Transaktion modelliert das gesamte Ereignis korrekt: Die unverfallbare Gewährung wird reduziert, Einkommen wird erfasst, Steuern werden gezahlt und die unverfallbaren Nettoaktien erscheinen mit der korrekten Kostenbasis für zukünftige Kapitalertragsberechnungen in Ihrem Brokerage-Konto.

Teil 7: Projektmanagement für Ihr Ledger

Wenn Ihr Ledger wächst, wird die Organisation entscheidend.

Verwenden der Versionskontrolle (Git) zum Schutz Ihrer Daten

Da Ihr Ledger eine Textdatei ist, eignet sie sich perfekt für die Versionskontrolle mit Git. Dadurch erhalten Sie eine vollständige Historie aller Änderungen und sind vor versehentlichem Löschen oder Fehlern geschützt. Warnung: Ihre Finanzdaten sind höchst sensibel. Verwenden Sie ein privates Repository auf Diensten wie GitHub/GitLab oder hosten Sie Ihr eigenes.

Beancount bietet zwei Möglichkeiten, Transaktionen über Konten hinaus zu gruppieren:

  • Tags (#): Verwenden Sie sie für Ereignisse oder Projekte. Sie können beispielsweise alle Transaktionen filtern, die sich auf eine bestimmte Reise beziehen. 2024-07-20 * "Hotel" "Wien" #trip-europe-2024
  • Links (^): Verwenden Sie sie, um finanziell verwandte Transaktionen zu verbinden, die zu unterschiedlichen Zeiten stattfinden, z. B. eine Bargeldabhebung und die damit verbundene Bankgebühr.

Eine skalierbare Strategie zum Strukturieren Ihrer Dateien (include)

Eine einzelne, massive Datei ist schwer zu verwalten. Verwenden Sie die include-Direktive, um Ihr Ledger in mehrere Dateien aufzuteilen. main.bean:

; Hauptledger-Datei

; Globale Optionen
option "title" "Mein persönliches Ledger"
option "operating_currency" "USD"

; Kontoerklärungen und andere Dateien einschließen
include "accounts.bean"
include "years/2023.bean"
include "years/2024.bean"
include "events/trip-europe-2024.bean"

Eine robuste Organisationsstrategie, in der Reihenfolge der Priorität:

  1. Nach Ereignis: Erstellen Sie eine separate Datei für ein großes, in sich geschlossenes Ereignis (z. B. trip-europe-2024.bean).
  2. Nach Kategorie/Zahlungsempfänger: Gruppieren Sie für sehr regelmäßige, wiederkehrende Transaktionen wie Nebenkostenabrechnungen oder Gehälter diese in einer eigenen Datei (z. B. recurring-rent.bean).
  3. Nach Konto: Erwägen Sie für Transaktionen, die eng an ein bestimmtes Konto gekoppelt sind (Zinsen, Gebühren, Kreditkartenzahlungen), eine kontospezifische Datei.
  4. Nach Datum: Für alle anderen allgemeinen Transaktionen ist eine einfache Aufteilung nach Jahr (2024.bean) oder Monat (2024/07.bean) effektiv.

Teil 8: Fazit

Beancount bietet eine steile Lernkurve, belohnt die Mühe aber mit beispielloser Leistung, Flexibilität und Kontrolle über Ihre Finanzdaten. Indem Sie die Prinzipien der doppelten Buchführung und die praktischen Tools von Beancount nutzen, können Sie von der einfachen Ausgabenverfolgung zu einem vollständigen, genauen und aufschlussreichen System der persönlichen Finanzverwaltung übergehen. Ihr Ledger wird zu einem dauerhaften, privaten und unschätzbaren Vermögenswert, um Ihre Vergangenheit zu verstehen und Ihre Zukunft zu planen.

Erste Schritte mit Beancount.io

Beancount.io ist eine moderne Cloud-basierte Finanzmanagementplattform, die Ihre textbasierten Transaktionsaufzeichnungen in umfassende Finanzberichte umwandelt, einschließlich Gewinn- und Verlustrechnungen, Bilanzen und Saldenlisten. Durch die Kombination der Zuverlässigkeit von Klartextdateien mit leistungsstarken Visualisierungstools hilft Ihnen Beancount.io, die präzise Kontrolle über Ihr finanzielles Leben zu behalten und gleichzeitig wertvolle Einblicke in Ihre Anlageperformance zu gewinnen.

Starten Sie Ihre finanzielle Reise mit Beancount.io - Kostenlos während unserer Werbephase!

Expenses

Income Statement

Balance Sheet