La potenza di Beancount risiede non solo nel suo formato in testo semplice, ma nella sua estensibilità tramite plugin. I plugin nativi sono moduli integrati che migliorano le funzionalità di Beancount, automatizzano attività noiose e impongono le migliori pratiche contabili. In questa guida completa, esploreremo tutti i plugin nativi disponibili in Beancount e come usarli efficacemente.
Cosa Sono i Plugin di Beancount?
I plugin di Beancount sono moduli Python che elaborano le voci del tuo registro per aggiungere automazione, validazione o capacità di trasformazione. Vengono eseguiti durante la fase di caricamento del file del registro e possono:
- Automatizzare attività ripetitive (es. creare dichiarazioni di conti)
- Validare l'integrità dei dati (es. controllare la presenza di transazioni duplicate)
- Trasformare voci (es. generare voci di prezzo dalle transazioni)
- Imporre regole contabili (es. una merce per conto)
Come Usare i Plugin
Per abilitare un plugin nel tuo file Beancount, aggiungi una direttiva plugin all'inizio del tuo registro:
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"Alcuni plugin accettano opzioni di configurazione:
plugin "beancount.plugins.check_commodity" "USD,EUR,CAD"Categorie di Plugin Nativi
I plugin nativi di Beancount rientrano in quattro categorie principali:
1. Plugin di Automazione
2. Plugin di Validazione
3. Plugin di Trasformazione
4. Meta-Plugin
1. Plugin di Automazione
Questi plugin automatizzano attività contabili ripetitive, facendoti risparmiare tempo e riducendo gli errori manuali.
auto_accounts - Dichiarazioni Automatiche dei Conti
Cosa fa: Inserisce automaticamente le direttive Open per i conti che compaiono nelle transazioni ma non sono stati dichiarati esplicitamente.
Perché usarlo: Elimina la necessità di dichiarare manualmente ogni conto prima di usarlo. Perfetto per iniziare rapidamente o per utenti che preferiscono codice boilerplate minimo.
Esempio:
plugin "beancount.plugins.auto_accounts"
2026-01-01 * "Caffetteria"
Expenses:Food:Coffee 4.50 USD
Assets:Cash -4.50 USDSenza il plugin, dovresti aggiungere manualmente:
2025-12-01 open Expenses:Food:Coffee
2025-12-01 open Assets:CashQuando usarlo: Ideale per principianti o per chi desidera un registro meno verboso. Tuttavia, le dichiarazioni esplicite dei conti possono aiutare a individuare errori di battitura.
close_tree - Chiusura Automatica della Gerarchia dei Conti
Cosa fa: Quando chiudi un conto padre, questo plugin chiude automaticamente tutti i suoi conti discendenti.
Perché usarlo: Mantiene la coerenza nella tua gerarchia di conti. Se chiudi Assets:Investments, tutti i sottoconti come Assets:Investments:Stocks e Assets:Investments:Bonds verranno chiusi automaticamente.
Esempio:
plugin "beancount.plugins.close_tree"
2025-06-30 close Assets:Investments
; Questi verranno chiusi automaticamente:
; Assets:Investments:Stocks
; Assets:Investments:Bonds
; Assets:Investments:RealEstateQuando usarlo: Quando ristrutturi la tua gerarchia di conti o chiudi intere categorie di conti.
implicit_prices - Generazione Automatica di Voci di Prezzo
Cosa fa: Sintetizza le direttive Price dalle registrazioni di transazioni che includono costi (@) o prezzi (@@).
Perché usarlo: Popola automaticamente il tuo database dei prezzi dalle tue transazioni, consentendo un reporting accurato del valore di mercato senza voci di prezzo manuali.
Esempio:
plugin "beancount.plugins.implicit_prices"
2026-01-02 * "Acquisto azioni AAPL"
Assets:Investments:Stocks 10 AAPL @ 150.00 USD
Assets:Cash -1500.00 USDQuesto genera automaticamente:
2026-01-02 price AAPL 150.00 USDQuando usarlo: Essenziale per il monitoraggio degli investimenti e la contabilità multivaluta in cui desideri una cronologia automatica dei prezzi.
2. Plugin di Validazione
Questi plugin impongono l'integrità dei dati e le migliori pratiche contabili, rilevando gli errori prima che diventino problemi.
noduplicates - Rilevamento Transazioni Duplicate
Cosa fa: Verifica che non ci siano due transazioni identiche calcolando e confrontando gli hash dei dati della transazione.
Perché usarlo: Previene voci duplicate accidentali, specialmente quando si importano transazioni da più fonti.
Esempio:
plugin "beancount.plugins.noduplicates"
2026-01-02 * "Pagamento affitto"
Expenses:Rent 1200.00 USD
Assets:Checking -1200.00 USD
; Questo attiverebbe un errore:
2026-01-02 * "Pagamento affitto"
Expenses:Rent 1200.00 USD
Assets:Checking -1200.00 USDQuando usarlo: Sempre consigliato, specialmente se stai importando da estratti conto bancari o utilizzando più fonti di dati.
check_commodity - Validazione Dichiarazione delle Merci
Cosa fa: Assicura che tutte le merci utilizzate nel tuo registro abbiano corrispondenti direttive Commodity.
Perché usarlo: Impone dichiarazioni esplicite delle merci, aiutandoti a mantenere un elenco pulito di attività e valute.
Esempio:
plugin "beancount.plugins.check_commodity"
2015-01-01 commodity USD
2020-01-01 commodity AAPL
; Questo attiverebbe un errore senza una dichiarazione della merce:
2026-01-02 * "Acquisto Bitcoin"
Assets:Crypto 0.5 BTC @ 45000 USD
Assets:Cash -22500.00 USDQuando usarlo: Consigliato per mantenere un monitoraggio rigoroso delle merci e prevenire errori di battitura nei simboli ticker.
check_average_cost - Validazione della Base di Costo
Cosa fa: Verifica che la base di costo sia correttamente preservata nelle transazioni, specialmente quando si utilizza la contabilità a costo medio.
Perché usarlo: Assicura che la tua contabilità dei costi rimanga accurata per la dichiarazione fiscale e i calcoli delle plusvalenze.
Quando usarlo: Fondamentale per i portafogli di investimento e qualsiasi scenario in cui sia importante un monitoraggio accurato dei costi.
check_closing - Validazione della Chiusura del Saldo
Cosa fa: Espande i metadati closing in controlli di saldo, assicurando che le posizioni siano a zero dopo le operazioni di chiusura.
Perché usarlo: Conferma che quando vendi un'intera posizione, il saldo sia effettivamente zero (nessuna frazione di azioni rimanente).
Esempio:
plugin "beancount.plugins.check_closing"
2026-01-02 * "Chiusura posizione AAPL completa" #closing
Assets:Investments:Stocks -100 AAPL {150.00 USD}
Assets:Cash 15000.00 USD
Income:Investments:Gains -500.00 USDIl tag #closing dice al plugin di verificare che la tua posizione AAPL sia zero dopo questa transazione.
Quando usarlo: Quando vendi intere posizioni per assicurarti che non rimanga nulla.
coherent_cost - Controllo di Coerenza Valuta/Costo
Cosa fa: Convalida che le valute non siano utilizzate in modo incoerente — sia con che senza annotazioni di costo.
Perché usarlo: Previene la mescolanza di valute semplici (come 100 USD) con valute con costo (come 100 USD {1.2 CAD}), che può causare errori contabili.
Quando usarlo: Consigliato per registri multivaluta per mantenere la coerenza.
leafonly - Imposizione dei Conti Foglia
Cosa fa: Assicura che solo i conti foglia (conti senza figli) ricevano registrazioni.
Perché usarlo: Impone una gerarchia di conti pulita in cui i conti di riepilogo come Expenses:Food non hanno registrazioni dirette, ma solo i loro figli come Expenses:Food:Groceries e Expenses:Food:Restaurants.
Esempio:
plugin "beancount.plugins.leafonly"
; Questo attiverebbe un errore:
2026-01-02 * "Spesa al supermercato"
Expenses:Food 50.00 USD ; Errore: Dovrebbe registrare su un conto foglia
Assets:Cash -50.00 USD
; Modo corretto:
2026-01-02 * "Spesa al supermercato"
Expenses:Food:Groceries 50.00 USD ; Corretto: Registrazione su conto foglia
Assets:Cash -50.00 USDQuando usarlo: Quando desideri mantenere una contabilità gerarchica rigorosa con una chiara categorizzazione.
nounused - Rilevamento Conti Non Utilizzati
Cosa fa: Identifica i conti che sono stati aperti ma mai effettivamente utilizzati in alcuna transazione.
Perché usarlo: Ti aiuta a pulire le dichiarazioni dei tuoi conti e identificare potenziali errori di battitura o conti abbandonati.
Quando usarlo: Periodicamente, per verificare e pulire la struttura dei tuoi conti.
onecommodity - Singola Merce per Conto
Cosa fa: Impone che ogni conto contenga un solo tipo di merce.
Perché usarlo: Previene la mescolanza di diverse attività nello stesso conto, che è generalmente una buona pratica contabile.
Esempio:
plugin "beancount.plugins.onecommodity"
2026-01-02 * "Acquisto azioni"
Assets:Investments 10 AAPL @ 150 USD
Assets:Cash -1500.00 USD
; Questo attiverebbe un errore:
2026-01-03 * "Acquisto altre azioni"
Assets:Investments 5 GOOGL @ 140 USD ; Errore: Merce diversa
Assets:Cash -700.00 USDQuando usarlo: Quando preferisci una separazione rigorosa dei conti (un conto per azione/attività).
sellgains - Validazione delle Plusvalenze
Cosa fa: Controlla in modo incrociato le plusvalenze dichiarate rispetto alle plusvalenze calcolate dalle vendite di lotti, assicurando che i calcoli di profitto/perdita siano accurati.
Perché usarlo: Rileva errori nei calcoli manuali delle plusvalenze, fondamentale per una dichiarazione fiscale accurata.
Esempio:
plugin "beancount.plugins.sellgains"
2026-01-02 * "Vendita azioni AAPL"
Assets:Investments:Stocks -10 AAPL {140.00 USD}
Assets:Cash 1500.00 USD
Income:Investments:Gains -100.00 USD ; Il plugin convalida che questo sia correttoIl plugin verificherà: Provento della vendita (1500) - Base di costo (1400) = Plusvalenze (100)
Quando usarlo: Essenziale per chiunque faccia trading di azioni, criptovalute o altri asset in cui le plusvalenze sono importanti.
unique_prices - Controllo Unicità Prezzo
Cosa fa: Assicura che ci sia una sola voce di prezzo per merce per data.
Perché usarlo: Previene dati di prezzo in conflitto che potrebbero portare a valutazioni errate.
Quando usarlo: Consigliato quando si inseriscono manualmente i prezzi o si importano da più fonti di prezzo.
3. Plugin di Trasformazione
Questi plugin modificano o migliorano i dati del tuo registro in modi utili.
currency_accounts - Conti per Trading di Valute
Cosa fa: Implementa conti per il trading di valute per tracciare esplicitamente le conversioni forex.
Perché usarlo: Fornisce un monitoraggio dettagliato delle transazioni di conversione valutaria, utile per gli standard contabili che lo richiedono.
Quando usarlo: Quando hai bisogno di tracciare separatamente le plusvalenze/perdite forex o soddisfare specifici requisiti contabili.
commodity_attr - Validazione Attributi Merce
Cosa fa: Convalida che le direttive sulle merci abbiano gli attributi richiesti (come export, name, ecc.).
Perché usarlo: Assicura che i metadati delle tue merci siano completi e coerenti.
Quando usarlo: Quando mantieni metadati dettagliati sulle merci per scopi di reporting o esportazione.
4. Meta-Plugin
Questi plugin sono raccolte di altri plugin per comodità.
auto - Tutti i Plugin Automatici
Cosa fa: Abilita una raccolta di plugin "rilassati" o automatici in un'unica direttiva.
Quando usarlo: Configurazione rapida per utenti che desiderano la massima automazione con una configurazione minima.
pedantic - Tutti i Plugin di Validazione
Cosa fa: Abilita tutti i plugin di validazione rigorosa in una volta sola.
Perché usarlo: Impone la massima integrità dei dati e rigore contabile. Ottimo per registri di produzione o quando l'accuratezza è fondamentale.
Esempio:
plugin "beancount.plugins.pedantic"
; Questo è equivalente ad abilitare:
; - check_commodity
; - check_average_cost
; - coherent_cost
; - leafonly
; - noduplicates
; - nounused
; - onecommodity
; - sellgains
; - unique_pricesQuando usarlo: Per registri di produzione in cui desideri la massima validazione e sei disposto a mantenere pratiche contabili più rigorose.
Configurazioni Consigliate dei Plugin
Per Principianti
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.noduplicates"
plugin "beancount.plugins.implicit_prices"Questo set minimo fornisce automazione prevenendo errori comuni.
Per Investitori
plugin "beancount.plugins.auto_accounts"
plugin "beancount.plugins.implicit_prices"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_average_cost"
plugin "beancount.plugins.unique_prices"Si concentra sul monitoraggio degli investimenti e l'accuratezza delle plusvalenze.
Per Contabilità Rigorosa
plugin "beancount.plugins.pedantic"
plugin "beancount.plugins.sellgains"
plugin "beancount.plugins.check_closing"Massima validazione per ambienti di produzione.
Configurazione Predefinita su Beancount.io
Su Beancount.io, includiamo il plugin auto_accounts per impostazione predefinita in tutti i nuovi file di registro:
plugin "beancount.plugins.auto_accounts"Questo fornisce un ottimo equilibrio tra facilità d'uso e funzionalità per iniziare rapidamente.
Migliori Pratiche
-
Inizia in modo minimo, aggiungi secondo necessità: Inizia con
auto_accountsenoduplicates, poi aggiungi plugin di validazione man mano che il tuo registro matura. -
Testa i plugin individualmente: Quando aggiungi più plugin, abilitali uno alla volta per comprenderne gli effetti.
-
Leggi attentamente i messaggi di errore: Gli errori dei plugin spesso indicano problemi contabili reali che devono essere risolti.
-
Usa
pedanticper la produzione: Una volta stabilito il tuo flusso di lavoro, considera di abilitare la validazione rigorosa. -
Combina con plugin personalizzati: I plugin nativi funzionano insieme a plugin personalizzati come il plugin forecast per la massima funzionalità.
Oltre i Plugin Nativi
Mentre i plugin nativi forniscono funzionalità di base, l'ecosistema Beancount include molti plugin sviluppati dalla comunità per esigenze specializzate:
- fava.plugins.forecast - Per la previsione di transazioni ricorrenti
- fava.plugins.link_documents - Per collegare transazioni a file di ricevute
- Importatori personalizzati per formati CSV specifici della banca
- Calcolatori e report fiscali specifici
Esplora l'ecosistema Beancount per ulteriori opzioni.
Conclusione
I plugin nativi di Beancount trasformano la contabilità in testo semplice da un processo manuale in un sistema di gestione finanziaria automatizzato, validato e robusto. Comprendendo e sfruttando questi strumenti integrati, puoi:
- ✅ Automatizzare noiose attività contabili
- ✅ Rilevare errori prima che diventino problemi
- ✅ Mantenere una rigorosa integrità dei dati
- ✅ Generare report finanziari accurati
- ✅ Concentrarti sugli approfondimenti finanziari piuttosto che sull'immissione di dati
Inizia a sperimentare con questi plugin nel tuo registro oggi. Inizia con auto_accounts e implicit_prices, poi aggiungi gradualmente plugin di validazione man mano che le tue pratiche contabili maturano.
Pronto a provare questi plugin? Vai su Beancount.io e inizia a usarli nel tuo file di registro oggi!
Fonti
- Riferimento API Plugin Beancount
- Guida alla Scrittura di Script e Plugin Beancount
- Plugin e Opzioni Beancount di Bryan Alves
- Repository GitHub di Beancount
Hai domande sui plugin di Beancount? Unisciti alla discussione sul nostro forum della comunità o consulta la nostra documentazione.
Esplora un registro di esempio di criptovaluta dal vivo: