Naar hoofdinhoud springen
Voorraadbeheer

Voorraadbeheer

Leer hoe u effectief voorraad beheert in Beancount, gericht op het volgen van activa zoals aandelen en valuta, het begrijpen van kostprijs en het berekenen van vermogenswinsten voor een beter portefeuilleresultaat.

Het voorraadsysteem van Beancount is een krachtige functie voor het volgen van activa die in de loop van de tijd worden gekocht en verkocht, zoals aandelen, beleggingsfondsen of vreemde valuta. Het maakt een nauwkeurige registratie van de kostprijs mogelijk, wat essentieel is voor het berekenen van vermogenswinsten en het begrijpen van de portefeuilleprestaties. Deze handleiding behandelt de kernmechanismen van voorraadbeheer in uw grootboek.

Kernconcepten

Voorraadbeheer draait in de kern om het volgen van posities. Een "positie" is eenvoudigweg een hoeveelheid van een grondstof die op een rekening wordt aangehouden. Beancount maakt onderscheid tussen twee fundamentele soorten posities.

Positietypen

  1. Eenvoudige Positie (Zonder Kosten): Dit is een standaard saldoboeking. Het vertegenwoordigt een hoeveelheid van een grondstof zonder bijbehorende aanschafkosten. Het is geschikt voor contant geld of eenvoudige saldocontroles.

    Assets:Bank:Checking      100.00 USD
  2. Positie met Kostprijs: Dit type positie bevat niet alleen het aantal eenheden en de grondstof, maar ook de kosten waartegen het is verworven. Dit is de basis van voorraadbeheer. De kosten worden gespecificeerd tussen accolades {}.

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

    In dit voorbeeld houden we 10 eenheden VTSAX aan. Elke eenheid is aangeschaft tegen een kostprijs van $100,00 USD. Deze specifieke partij aandelen wordt aangeduid als een "lot."

Voorraadbewerkingen

Er zijn twee primaire bewerkingen die u op een voorraad kunt uitvoeren:

  1. Toevoegingen (Voorraad vergroten): Wanneer u een grondstof koopt, vergroot u uw voorraad. U creëert een nieuw lot met een specifiek aantal eenheden en een kostprijs.

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

    Hier kopen we 50 eenheden STOCK tegen een prijs van $25,00 USD per eenheid. Dit creëert een lot op de rekening Assets:Invest:STOCK.

  2. Verminderingen (Voorraad verwijderen): Wanneer u een grondstof verkoopt, vermindert u uw voorraad. U moet specificeren uit welk lot u verkoopt. Dit gebeurt door overeenkomende informatie tussen de accolades te plaatsen.

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

    In deze transactie verkopen we 25 eenheden STOCK uit het lot dat is gekocht tegen $25,00 USD per eenheid.

Boekingsmethoden

Wanneer u een voorraad vermindert, heeft Beancount een regel nodig om te bepalen welk specifiek lot moet worden gebruikt als meerdere loten overeenkomen of als de overeenkomst dubbelzinnig is. Deze regel wordt de "boekingsmethode" genoemd. U kunt een standaardmethode voor uw hele bestand instellen of een methode per rekening specificeren.

1. STRICT (Standaard)

De STRICT-methode is de standaard en veiligste boekingsmethode. Het dwingt expliciete en ondubbelzinnige matching af.

2024-01-01 open Assets:Invest:STOCK "STRICT"
  • Vereist Exacte Lot Overeenkomst: U moet voldoende informatie verstrekken in de verminderingsboeking ({...}) om het lot dat wordt verkocht uniek te identificeren.
  • Fout bij Dubbelzinnige Overeenkomsten: Als de verstrekte informatie overeenkomt met meerdere loten, geeft Beancount een foutmelding, waardoor u gedwongen wordt specifieker te zijn.
  • Uitzondering: Als een verminderingsboeking exact het totale aantal eenheden verwijdert dat op een rekening wordt aangehouden, is een lege kostenspecificatie ({}) toegestaan.

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

De FIFO-methode boekt verminderingen automatisch tegen de oudste beschikbare loten.

2024-01-01 open Assets:Invest:STOCK "FIFO"
  • Automatische Resolutie: Het lost dubbelzinnigheid op door de oudste overeenkomende loten te selecteren.
  • Chronologische Matching: Dit is een veelgebruikte boekhoudkundige methode waarbij u ervan uitgaat dat u de activa verkoopt die u het langst heeft aangehouden. Dit is in veel landen de vereiste methode voor fiscale doeleinden.

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

De LIFO-methode is het tegenovergestelde van FIFO. Het boekt verminderingen tegen de nieuwste beschikbare loten.

2024-01-01 open Assets:Invest:STOCK "LIFO"
  • Omgekeerde Chronologische Volgorde: Het selecteert de meest recent verworven loten die overeenkomen met de verminderingscriteria.
  • Belastingoptimalisatie: In sommige rechtsgebieden kan deze methode worden gebruikt voor belastingoptimalisatie, bijvoorbeeld door eerst de aandelen met de hoogste kostprijs te verkopen om vermogenswinsten te minimaliseren.

4. NONE

De NONE-methode schakelt lot-matching volledig uit.

2024-01-01 open Assets:Invest:STOCK "NONE"
  • Geen Lot Matching: Beancount probeert geen verminderingen aan toevoegingen te koppelen.
  • Staat Gemengde Tekens Toe: Dit staat een rekening toe om tegelijkertijd zowel positieve als negatieve saldi van dezelfde grondstof aan te houden. Dit gedrag is vergelijkbaar met hoe de Ledger CLI-tool grondstoffen verwerkt.

Lot Specificatie

Een "lot" is een specifiek blok van een grondstof, verworven op een bepaalde datum en tegen een bepaalde prijs. Wanneer u een positie creëert of vermindert, kunt u de lotkenmerken in detail specificeren.

Volledige Specificatie

Bij het toevoegen aan een voorraad (kopen) kunt u maximaal drie kenmerken voor het lot specificeren:

Assets:Invest:STOCK  10 STOCK {
    100.00 USD,           # Kostprijs (kosten per eenheid)
    2024-01-15,           # Aanschafdatum
    "lot-identificatie"   # Een uniek tekstlabel
}

Hoewel alle drie optioneel zijn, is het standaard om ten minste de kostprijs te verstrekken.

Matching Methoden

Bij het verminderen van een voorraad (verkopen) gebruikt u dezelfde syntaxis om te specificeren welk(e) lot(en) u wilt verkopen.

  • Matchen op basis van kostprijs: Dit is de meest gebruikelijke methode.

    Assets:Invest:STOCK  -5 STOCK {100.00 USD}
  • Matchen op basis van datum: Als de kostprijzen identiek zijn, kunt u differentiëren met behulp van de aanschafdatum.

    Assets:Invest:STOCK  -5 STOCK {2024-01-15}
  • Matchen op basis van label: Labels bieden een waterdichte manier om een lot te identificeren.

    Assets:Invest:STOCK  -5 STOCK {"lot-identificatie"}
  • Matchen met elk lot: Een lege set accolades {} komt overeen met elk beschikbaar lot. Dit wordt vaak gebruikt met FIFO- of LIFO-boekingen, waarbij het specifieke lot automatisch wordt geselecteerd.

    Assets:Invest:STOCK  -5 STOCK {}

Prijsafhandeling

Het is cruciaal om het verschil te begrijpen tussen kostprijs ({}) en prijs (@). Ze dienen verschillende doelen en zijn niet uitwisselbaar.

Prijs versus Kosten

  • {kosten}: Definieert de aanschafkosten van een actief. Het maakt deel uit van het voorraadlot zelf en wordt gebruikt voor het boeken van verminderingen en het berekenen van vermogenswinsten.
  • @ prijs: Een aantekening die een marktprijs registreert op het moment van een transactie. Het wordt gebruikt voor valutaomrekeningen of om de marktwaarde op een bepaalde datum aan te geven.

Hier zijn de drie scenario's:

  1. Prijsaantekening (Omrekening): Gebruik @ om van de ene valuta naar de andere om te rekenen.

    Assets:Forex     1000 USD @ 0.85 EUR
  2. Kostprijs (Aanschaf): Gebruik {} bij het kopen van een actief om de kosten ervan vast te stellen.

    Assets:Invest    10 STOCK {100.00 USD}
  3. Beide (Verkoop met Prijsregistratie): Gebruik bij het verkopen van een actief {} om het lot dat wordt verkocht te identificeren en @ om de verkoopprijs te registreren. Dit maakt geautomatiseerde berekening van vermogenswinsten mogelijk.

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

    Deze boeking verkoopt 10 STOCK uit het lot dat 100,00perstukkostte,tegeneenverkoopprijsvan100,00 per stuk kostte, tegen een verkoopprijs van 105,00 per stuk.

Prijs Gebruiksregels

  1. Prijsaantekeningen (@) beïnvloeden niet welk lot wordt geboekt. Lot-matching wordt uitsluitend afgehandeld door de kostprijs ({}) en de boekingsmethode van de rekening.
  2. Het @-symbool wordt alleen gebruikt voor:
  • Valutaomrekeningen.
  • Het registreren van de marktwaarde van een actief op het moment van een transactie.
  • Het verstrekken van de verkoopprijs voor de berekening van vermogenswinsten.

Configuratie

U kunt boekingsmethoden globaal of per rekening configureren.

Globale Boekingsmethode

U kunt een standaard boekingsmethode voor uw gehele Beancount-bestand instellen met behulp van de option-richtlijn.

option "booking_method" "STRICT"

De beschikbare opties zijn "STRICT", "FIFO", "LIFO" en "NONE".

Overschrijving per Rekening

Het is vaak nuttig om verschillende methoden voor verschillende rekeningen te hebben. U wilt bijvoorbeeld FIFO voor een pensioenrekening, maar STRICT voor een belastbare brokerrekening om er zeker van te zijn dat u specifieke fiscale loten verkoopt. U kunt de boekingsmethode instellen wanneer u de rekening opent.

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

Best Practices

  1. Voorraadorganisatie: Om uw grootboek overzichtelijk en eenvoudig te houden, wordt het ten zeerste aanbevolen om aparte rekeningen te gebruiken voor elke unieke grondstof die u aanhoudt.

    # GOED: Aparte rekeningen per grondstof
    Assets:Invest:VTSAX    ; Alleen VTSAX-posities hier
    Assets:Invest:VFIAX    ; Alleen VFIAX-posities hier

    Vermijd het mengen van verschillende aandelen of fondsen op dezelfde rekening, omdat dit het voorraadbeheer compliceert.

  2. Lotbeheer:

  • Gebruik betekenisvolle labels voor loten, vooral voor specifieke transacties zoals belastingverlies oogsten of aandelenverstrekkingen aan werknemers.

    Assets:Invest:STOCK  10 STOCK {100.00 USD, "belastingverlies-oogst-2024"}
  • Documenteer uw transacties met commentaar. Dit maakt uw grootboek later gemakkelijker te lezen en te begrijpen.

    Assets:Invest:STOCK  -10 STOCK {100.00 USD} @ 110.00 USD ; Winst: 10%
  1. Debuggen: Als u fouten of onverwacht gedrag tegenkomt, biedt Beancount hulpmiddelen om de status van uw voorraad te inspecteren.
  • Voorraadstatus Controleren: De bean-doctor tool kan u de exacte status van alle voorraden op elk punt in uw bestand laten zien.

    Vervang <REGELNUMMER> door het regelnummer net na een transactie om het effect ervan te zien.

  • Lot Matching Verifiëren: De bean-check tool valideert uw gehele bestand. Het zal eventuele boekingsfouten oppikken, zoals dubbelzinnige lot-matches in STRICT-modus.