Salta al contenuto principale
Gestione dell'Inventario

Gestione dell'Inventario

Impara a gestire efficacemente l'inventario in Beancount, concentrandoti sul tracciamento di asset come azioni e valute, comprendendo il costo base e calcolando le plusvalenze per una migliore performance di portafoglio.

Il sistema di inventario di Beancount è una potente funzionalità per tracciare asset che vengono acquistati e venduti nel tempo, come azioni, fondi comuni o valute estere. Consente un tracciamento preciso del costo base, essenziale per calcolare le plusvalenze e comprendere la performance del portafoglio. Questo tutorial copre i meccanismi fondamentali per gestire gli inventari nella tua contabilità.

Concetti Fondamentali

Al suo cuore, la gestione dell'inventario ruota attorno al tracciamento delle posizioni. Una "posizione" è semplicemente una quantità di una merce detenuta in un conto. Beancount distingue tra due tipi fondamentali di posizioni.

Tipi di Posizione

  1. Posizione Semplice (Senza Costo): Questa è una registrazione standard di saldo. Rappresenta una quantità di una merce senza alcun costo di acquisizione associato. È adatta per contanti o semplici asserzioni di saldo.

    Assets:Bank:Checking      100.00 USD
  2. Posizione con Costo Base: Questo tipo di posizione include non solo il numero di unità e la merce, ma anche il costo al quale è stata acquisita. Questa è la base del tracciamento dell'inventario. Il costo è specificato tra parentesi graffe {}.

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

    In questo esempio, deteniamo 10 unità di VTSAX. Ogni unità è stata acquisita a un costo di $100.00 USD. Questo lotto specifico di azioni è identificato come un "lotto."

Operazioni sull'Inventario

Ci sono due operazioni principali che puoi eseguire su un inventario:

  1. Aumenti (Aggiunta all'inventario): Quando acquisti una merce, aumenti il tuo inventario. Crei un nuovo lotto con un numero specifico di unità e un costo base.

    2024-01-15 * "Acquista azioni"
      Assets:Invest:STOCK     50 STOCK {25.00 USD, "lotto-1"}
      Assets:Bank:Checking   -1250.00 USD

    Qui, acquistiamo 50 unità di STOCK a un costo unitario di $25.00 USD. Questo crea un lotto nel conto Assets:Invest:STOCK.

  2. Riduzioni (Rimozione dall'inventario): Quando vendi una merce, riduci il tuo inventario. Devi specificare da quale lotto stai vendendo. Questo viene fatto fornendo informazioni corrispondenti tra parentesi graffe.

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

    In questa transazione, stiamo vendendo 25 unità di STOCK dal lotto acquistato a $25.00 USD per unità.

Metodi di Contabilizzazione

Quando riduci un inventario, Beancount necessita di una regola per decidere da quale lotto specifico prelevare se più lotti corrispondono o se la corrispondenza è ambigua. Questa regola è chiamata "metodo di contabilizzazione". Puoi impostare un metodo predefinito per l'intero file o specificarne uno per ogni conto.

1. STRICT (Rigoroso)

Il metodo STRICT è quello predefinito e più sicuro. Impone una corrispondenza esplicita e non ambigua.

2024-01-01 open Assets:Invest:STOCK "STRICT"
  • Richiede Corrispondenza Esatta del Lotto: Devi fornire informazioni sufficienti nella registrazione di riduzione ({...}) per identificare in modo univoco il lotto venduto.
  • Errore su Corrispondenze Ambigu: Se le informazioni fornite corrispondono a più lotti, Beancount solleverà un errore, costringendoti a essere più specifico.
  • Eccezione: Se una registrazione di riduzione rimuove esattamente il numero totale di unità detenute in un conto, è consentito uno specificatore di costo vuoto ({}).

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

Il metodo FIFO contabilizza automaticamente le riduzioni sui lotti più vecchi disponibili per primi.

2024-01-01 open Assets:Invest:STOCK "FIFO"
  • Risoluzione Automatica: Risolve l'ambiguità selezionando i lotti più vecchi corrispondenti.
  • Corrispondenza Cronologica: Questo è un metodo contabile comune in cui si assume di vendere gli asset detenuti da più tempo. È il metodo richiesto per scopi fiscali in molti paesi.

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

Il metodo LIFO è l'opposto di FIFO. Contabilizza le riduzioni sui lotti più recenti disponibili per primi.

2024-01-01 open Assets:Invest:STOCK "LIFO"
  • Ordine Cronologico Inverso: Seleziona i lotti acquisiti più recentemente che corrispondono ai criteri di riduzione.
  • Ottimizzazione Fiscale: In alcune giurisdizioni, questo metodo può essere utilizzato per l'ottimizzazione fiscale, ad esempio vendendo prima le azioni con il costo base più alto per minimizzare le plusvalenze.

4. NONE (Nessuno)

Il metodo NONE disabilita completamente la corrispondenza dei lotti.

2024-01-01 open Assets:Invest:STOCK "NONE"
  • Nessuna Corrispondenza dei Lotti: Beancount non tenta di abbinare le riduzioni agli aumenti.
  • Consente Segni Misti: Questo permette a un conto di detenere contemporaneamente saldi positivi e negativi della stessa merce. Questo comportamento è simile a come lo strumento Ledger CLI gestisce le merci.

Specifica del Lotto

Un "lotto" è un blocco specifico di una merce acquisita in un determinato momento e a un determinato prezzo. Quando crei o riduci una posizione, puoi specificare in dettaglio i suoi attributi.

Specifica Completa

Quando aumenti un inventario (acquisto), puoi specificare fino a tre attributi per il lotto:

Assets:Invest:STOCK  10 STOCK {
    100.00 USD,           # Costo base (costo per unità)
    2024-01-15,           # Data di acquisizione
    "identificativo-lotto" # Un'etichetta testuale univoca
}

Sebbene tutti e tre siano opzionali, fornire almeno il costo base è una pratica standard.

Metodi di Corrispondenza

Quando riduci un inventario (vendita), utilizzi la stessa sintassi per specificare da quale/i lotto/i vendere.

  • Corrispondenza per costo: Questo è il metodo più comune.

    Assets:Invest:STOCK  -5 STOCK {100.00 USD}
  • Corrispondenza per data: Se i costi sono identici, puoi distinguere utilizzando la data di acquisizione.

    Assets:Invest:STOCK  -5 STOCK {2024-01-15}
  • Corrispondenza per etichetta: Le etichette forniscono un modo infallibile per identificare un lotto.

    Assets:Invest:STOCK  -5 STOCK {"identificativo-lotto"}
  • Corrispondenza per qualsiasi lotto: Un insieme vuoto di parentesi {} corrisponderà a qualsiasi lotto disponibile. Questo viene spesso utilizzato con la contabilizzazione FIFO o LIFO, dove il lotto specifico viene selezionato automaticamente.

    Assets:Invest:STOCK  -5 STOCK {}

Gestione del Prezzo

È fondamentale comprendere la differenza tra costo base ({}) e prezzo (@). Servono a scopi diversi e non sono intercambiabili.

Prezzo vs Costo

  • {costo}: Definisce il costo di acquisizione di un asset. Fa parte del lotto di inventario stesso e viene utilizzato per la contabilizzazione delle riduzioni e il calcolo delle plusvalenze.
  • @ prezzo: Un'annotazione che registra un prezzo di mercato al momento di una transazione. Viene utilizzata per conversioni valutarie o per annotare il valore di mercato in una data specifica.

Ecco i tre scenari:

  1. Annotazione del Prezzo (Conversione): Usa @ per convertire da una valuta all'altra.

    Assets:Forex     1000 USD @ 0.85 EUR
  2. Costo Base (Acquisizione): Usa {} quando acquisti un asset per stabilirne il costo.

    Assets:Invest    10 STOCK {100.00 USD}
  3. Entrambi (Vendita con Registrazione del Prezzo): Quando vendi un asset, usa {} per identificare il lotto venduto e @ per registrare il prezzo di vendita. Ciò consente il calcolo automatico delle plusvalenze.

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

    Questa registrazione vende 10 STOCK dal lotto che costava 100.00ciascuno,aunprezzodivenditadi100.00 ciascuno, a un prezzo di vendita di 105.00 ciascuno.

Regole di Utilizzo del Prezzo

  1. Le annotazioni di prezzo (@) non influenzano quale lotto viene contabilizzato. La corrispondenza dei lotti è gestita esclusivamente dal costo base ({}) e dal metodo di contabilizzazione del conto.
  2. Il simbolo @ viene utilizzato solo per:
  • Conversioni valutarie.
  • Registrare il valore di mercato di un asset al momento di una transazione.
  • Fornire il prezzo di vendita per i calcoli delle plusvalenze.

Configurazione

Puoi configurare i metodi di contabilizzazione a livello globale o per singolo conto.

Metodo di Contabilizzazione Globale

Puoi impostare un metodo di contabilizzazione predefinito per l'intero file Beancount utilizzando la direttiva option.

option "booking_method" "STRICT"

Le opzioni disponibili sono "STRICT", "FIFO", "LIFO" e "NONE".

Sostituzione per Conto

Spesso è utile avere metodi diversi per conti diversi. Ad esempio, potresti volere FIFO per un conto pensionistico ma STRICT per un conto di intermediazione tassabile per assicurarti di vendere lotti fiscali specifici. Puoi impostare il metodo di contabilizzazione quando apri il conto.

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

Migliori Pratiche

  1. Organizzazione dell'Inventario: Per mantenere la tua contabilità pulita e semplice, è altamente raccomandato utilizzare conti separati per ogni merce unica che detieni.

    # BUONO: Conti separati per merce
    Assets:Invest:VTSAX    ; Solo posizioni VTSAX qui
    Assets:Invest:VFIAX    ; Solo posizioni VFIAX qui

    Evita di mescolare diverse azioni o fondi nello stesso conto, poiché ciò complica la gestione dell'inventario.

  2. Gestione dei Lotti:

  • Usa etichette significative per i lotti, specialmente per transazioni specifiche come il tax-loss harvesting o le assegnazioni di azioni ai dipendenti.

    Assets:Invest:STOCK  10 STOCK {100.00 USD, "tax-loss-harvest-2024"}
  • Documenta le tue transazioni con commenti. Questo rende la tua contabilità più facile da leggere e comprendere in seguito.

    Assets:Invest:STOCK  -10 STOCK {100.00 USD} @ 110.00 USD ; Guadagno: 10%
  1. Debugging: Se incontri errori o comportamenti imprevisti, Beancount fornisce strumenti per ispezionare lo stato del tuo inventario.
  • Esamina lo Stato dell'Inventario: Lo strumento bean-doctor può mostrarti lo stato esatto di tutti gli inventari in qualsiasi punto del tuo file.

    Sostituisci <NUMERORIGA> con il numero di riga subito dopo una transazione per vedere il suo effetto.

  • Verifica la Corrispondenza dei Lotti: Lo strumento bean-check convalida l'intero file. Catturerà eventuali errori di contabilizzazione, come corrispondenze ambigue di lotti in modalità STRICT.