Zum Hauptinhalt springen
Bestandsverwaltung

Bestandsverwaltung

Erfahren Sie, wie Sie mit Beancount Ihr Inventar effektiv verwalten, insbesondere die Verfolgung von Vermögenswerten wie Aktien und Währungen, das Verständnis von Anschaffungskosten und die Berechnung von Kapitalgewinnen für eine bessere Portfolioprfomance.

Das Inventarsystem von Beancount ist eine leistungsstarke Funktion zur Verfolgung von Vermögenswerten, die im Laufe der Zeit gekauft und verkauft werden, wie Aktien, Investmentfonds oder Fremdwährungen. Es ermöglicht die präzise Verfolgung der Anschaffungskosten, die für die Berechnung von Kapitalgewinnen und das Verständnis der Portfolioprfomance unerlässlich ist. Dieses Tutorial behandelt die Kernmechanismen der Verwaltung von Beständen in Ihrem Hauptbuch.

Kernkonzepte

Im Kern dreht sich die Bestandsverwaltung um die Verfolgung von Positionen. Eine "Position" ist einfach eine Menge eines Wertgegenstands, der auf einem Konto gehalten wird. Beancount unterscheidet zwischen zwei grundlegenden Arten von Positionen.

Positionsarten

  1. Einfache Position (Ohne Kosten): Dies ist eine standardmäßige Saldobuchung. Sie stellt eine Menge eines Wertgegenstands ohne zugehörige Anschaffungskosten dar. Sie eignet sich für Bargeld oder einfache Saldenprüfungen.

    Assets:Bank:Checking      100.00 USD
  2. Position mit Anschaffungskosten: Diese Art von Position beinhaltet nicht nur die Anzahl der Einheiten und den Wertgegenstand, sondern auch die Kosten, zu denen er erworben wurde. Dies ist die Grundlage der Bestandsverfolgung. Die Kosten werden in geschweiften Klammern {} angegeben.

    Assets:Invest:VTSAX      10 VTSAX {100.00 USD, "lot-1"}

    In diesem Beispiel halten wir 10 Einheiten von VTSAX. Jede Einheit wurde zu einem Preis von 100,00 USD erworben. Diese spezifische Charge von Aktien wird als "Los" bezeichnet.

Inventaroperationen

Es gibt zwei primäre Operationen, die Sie an einem Inventar durchführen können:

  1. Erweiterungen (Hinzufügen zum Inventar): Wenn Sie einen Wertgegenstand kaufen, erweitern Sie Ihr Inventar. Sie erstellen ein neues Los mit einer bestimmten Anzahl von Einheiten und einem Anschaffungskostenwert.

    2024-01-15 * "Aktien kaufen"
      Assets:Invest:STOCK     50 STOCK {25.00 USD, "lot-1"}
      Assets:Bank:Checking   -1250.00 USD

    Hier kaufen wir 50 Einheiten von STOCK zu einem Stückpreis von 25,00 USD. Dies erstellt ein Los auf dem Konto Assets:Invest:STOCK.

  2. Reduzierungen (Entfernen aus dem Inventar): Wenn Sie einen Wertgegenstand verkaufen, reduzieren Sie Ihr Inventar. Sie müssen angeben, aus welchem Los Sie verkaufen. Dies geschieht durch die Angabe passender Informationen in den geschweiften Klammern.

    2024-01-20 * "Aktien verkaufen"
      Assets:Invest:STOCK    -25 STOCK {25.00 USD}
      Assets:Bank:Checking    625.00 USD

    In dieser Transaktion verkaufen wir 25 Einheiten von STOCK aus dem Los, das zu 25,00 USD pro Einheit gekauft wurde.

Buchungsmethoden

Wenn Sie ein Inventar reduzieren, benötigt Beancount eine Regel, um zu entscheiden, aus welchem spezifischen Los entnommen werden soll, falls mehrere Lose übereinstimmen oder die Übereinstimmung mehrdeutig ist. Diese Regel wird als "Buchungsmethode" bezeichnet. Sie können eine Standardmethode für Ihre gesamte Datei festlegen oder eine für jedes Konto angeben.

1. STRICT (Standard)

Die Methode STRICT ist die standardmäßige und sicherste Buchungsmethode. Sie erzwingt eine explizite und eindeutige Zuordnung.

2024-01-01 open Assets:Invest:STOCK "STRICT"
  • Erfordert exakte Los-Übereinstimmung: Sie müssen in der Reduzierungsbuchung ({...}) genügend Informationen angeben, um das zu verkaufende Los eindeutig zu identifizieren.
  • Fehler bei mehrdeutigen Übereinstimmungen: Wenn die angegebenen Informationen mit mehreren Losen übereinstimmen, gibt Beancount einen Fehler aus und zwingt Sie, genauer zu sein.
  • Ausnahme: Wenn eine Reduzierungsbuchung genau die Gesamtzahl der auf einem Konto gehaltenen Einheiten entfernt, ist ein leerer Kostenspezifizierer ({}) erlaubt.

2. FIFO (First-In, First-Out)

Die Methode FIFO bucht Reduzierungen automatisch gegen die ältesten verfügbaren Lose.

2024-01-01 open Assets:Invest:STOCK "FIFO"
  • Automatische Auflösung: Sie löst Mehrdeutigkeiten auf, indem sie die ältesten übereinstimmenden Lose auswählt.
  • Chronologische Zuordnung: Dies ist eine gängige Buchhaltungsmethode, bei der angenommen wird, dass Sie die Vermögenswerte verkaufen, die Sie am längsten gehalten haben. Dies ist in vielen Ländern die vorgeschriebene Methode für Steuerzwecke.

3. LIFO (Last-In, First-Out)

Die Methode LIFO ist das Gegenteil von FIFO. Sie bucht Reduzierungen gegen die neuesten verfügbaren Lose.

2024-01-01 open Assets:Invest:STOCK "LIFO"
  • Umgekehrte chronologische Reihenfolge: Sie wählt die zuletzt erworbenen Lose aus, die den Reduzierungskriterien entsprechen.
  • Steueroptimierung: In einigen Rechtsordnungen kann diese Methode zur Steueroptimierung verwendet werden, z. B. durch den Verkauf der Aktien mit den höchsten Anschaffungskosten zuerst, um Kapitalgewinne zu minimieren.

4. NONE

Die Methode NONE deaktiviert die Loszuordnung vollständig.

2024-01-01 open Assets:Invest:STOCK "NONE"
  • Keine Loszuordnung: Beancount versucht nicht, Reduzierungen Erweiterungen zuzuordnen.
  • Erlaubt gemischte Vorzeichen: Dies erlaubt es einem Konto, gleichzeitig positive und negative Salden desselben Wertgegenstands zu halten. Dieses Verhalten ähnelt der Art und Weise, wie das Ledger CLI-Tool mit Wertgegenständen umgeht.

Lösspezifikation

Ein "Los" ist ein spezifischer Block eines Wertgegenstands, der zu einem bestimmten Zeitpunkt und zu einem bestimmten Preis erworben wurde. Wenn Sie eine Position erstellen oder reduzieren, können Sie ihre Losattribute detailliert angeben.

Vollständige Spezifikation

Beim Erweitern eines Inventars (Kauf) können Sie bis zu drei Attribute für das Los angeben:

Assets:Invest:STOCK  10 STOCK {
    100.00 USD,           # Anschaffungskosten (Stückkosten)
    2024-01-15,           # Erwerbsdatum
    "los-identifikator"   # Ein eindeutiger String-Bezeichner
}

Obwohl alle drei optional sind, ist die Angabe zumindest der Anschaffungskosten Standardpraxis.

Zuordnungsmethoden

Beim Reduzieren eines Inventars (Verkauf) verwenden Sie dieselbe Syntax, um anzugeben, aus welchem(n) Los(en) verkauft werden soll.

  • Zuordnung nach Kosten: Dies ist die gebräuchlichste Methode.

    Assets:Invest:STOCK  -5 STOCK {100.00 USD}
  • Zuordnung nach Datum: Wenn die Kosten identisch sind, können Sie mit dem Erwerbsdatum eindeutig zuordnen.

    Assets:Invest:STOCK  -5 STOCK {2024-01-15}
  • Zuordnung nach Bezeichner: Bezeichner bieten eine narrensichere Möglichkeit, ein Los zu identifizieren.

    Assets:Invest:STOCK  -5 STOCK {"los-identifikator"}
  • Beliebiges Los zuordnen: Ein leeres Klammerpaar {} ordnet jedes verfügbare Los zu. Dies wird oft mit der Buchungsmethode FIFO oder LIFO verwendet, bei der das spezifische Los automatisch ausgewählt wird.

    Assets:Invest:STOCK  -5 STOCK {}

Preisbehandlung

Es ist entscheidend, den Unterschied zwischen Anschaffungskosten ({}) und Preis (@) zu verstehen. Sie dienen unterschiedlichen Zwecken und sind nicht austauschbar.

Preis vs. Kosten

  • {kosten}: Definiert die Anschaffungskosten eines Vermögenswerts. Es ist Teil des Inventarloses selbst und wird für die Buchung von Reduzierungen und die Berechnung von Kapitalgewinnen verwendet.
  • @ preis: Eine Anmerkung, die einen Marktpreis zum Zeitpunkt einer Transaktion festhält. Sie wird für Währungsumrechnungen oder zur Angabe des Marktwerts an einem bestimmten Datum verwendet.

Hier sind die drei Szenarien:

  1. Preisanmerkung (Umrechnung): Verwenden Sie @, um von einer Währung in eine andere umzurechnen.

    Assets:Forex     1000 USD @ 0.85 EUR
  2. Anschaffungskosten (Erwerb): Verwenden Sie {} beim Kauf eines Vermögenswerts, um seine Kosten festzulegen.

    Assets:Invest    10 STOCK {100.00 USD}
  3. Beides (Verkauf mit Preisaufzeichnung): Verwenden Sie beim Verkauf eines Vermögenswerts {}, um das zu verkaufende Los zu identifizieren, und @, um den Verkaufspreis zu erfassen. Dies ermöglicht die automatisierte Berechnung von Kapitalgewinnen.

    Assets:Invest    -10 STOCK {100.00 USD} @ 105.00 USD

    Dieser Eintrag verkauft 10 STOCK aus dem Los, das 100,00 USD pro Stück gekostet hat, zu einem Verkaufspreis von 105,00 USD pro Stück.

Preisverwendungsregeln

  1. Preisanmerkungen (@) beeinflussen nicht, welches Los gebucht wird. Die Loszuordnung wird ausschließlich durch die Anschaffungskosten ({}) und die Buchungsmethode des Kontos bestimmt.
  2. Das Symbol @ wird nur verwendet für:
  • Währungsumrechnungen.
  • Erfassung des Marktwerts eines Vermögenswerts zum Zeitpunkt einer Transaktion.
  • Angabe des Verkaufspreises für die Berechnung von Kapitalgewinnen.

Konfiguration

Sie können Buchungsmethoden global oder auf Kontobasis konfigurieren.

Globale Buchungsmethode

Sie können eine standardmäßige Buchungsmethode für Ihre gesamte Beancount-Datei mit der Direktive option festlegen.

option "booking_method" "STRICT"

Die verfügbaren Optionen sind "STRICT", "FIFO", "LIFO" und "NONE".

Kontospezifische Überschreibung

Es ist oft nützlich, verschiedene Methoden für verschiedene Konten zu haben. Zum Beispiel möchten Sie vielleicht FIFO für ein Rentenkonto, aber STRICT für ein steuerpflichtiges Brokerkonto, um sicherzustellen, dass Sie spezifische Steuerlose verkaufen. Sie können die Buchungsmethode festlegen, wenn Sie das Konto eröffnen.

2024-01-01 open Assets:Retirement:401K "FIFO"
2024-01-01 open Assets:Taxable:Stock  "STRICT"

Best Practices

  1. Inventarorganisation: Um Ihr Hauptbuch sauber und einfach zu halten, wird dringend empfohlen, separate Konten für jeden eindeutigen Wertgegenstand zu verwenden, den Sie halten.

    # GUT: Separate Konten nach Wertgegenstand
    Assets:Invest:VTSAX    ; Nur VTSAX-Positionen hier
    Assets:Invest:VFIAX    ; Nur VFIAX-Positionen hier

    Vermeiden Sie es, verschiedene Aktien oder Fonds im selben Konto zu mischen, da dies die Bestandsverwaltung erschwert.

  2. Losverwaltung:

  • Verwenden Sie aussagekräftige Bezeichner für Lose, insbesondere für spezifische Transaktionen wie Steuerverlustverkäufe oder Mitarbeiteraktienzusagen.

    Assets:Invest:STOCK  10 STOCK {100.00 USD, "steuerverlust-verkauf-2024"}
  • Dokumentieren Sie Ihre Geschäfte mit Kommentaren. Dies macht Ihr Hauptbuch später leichter lesbar und verständlich.

    Assets:Invest:STOCK  -10 STOCK {100.00 USD} @ 110.00 USD ; Gewinn: 10%
  1. Fehlersuche: Wenn Sie Fehler oder unerwartetes Verhalten feststellen, bietet Beancount Werkzeuge, um den Zustand Ihres Inventars zu überprüfen.
  • Inventarzustand prüfen: Das Werkzeug bean-doctor kann Ihnen den genauen Zustand aller Bestände an jedem Punkt Ihrer Datei anzeigen.

    Ersetzen Sie <LINENO> mit der Zeilennummer direkt nach einer Transaktion, um deren Effekt zu sehen.

  • Loszuordnung überprüfen: Das Werkzeug bean-check validiert Ihre gesamte Datei. Es erfasst alle Buchungsfehler, wie z. B. mehrdeutige Loszuordnungen im Modus STRICT.