Chiudi un mese di contabilità dall'inizio alla fine con bea, lo strumento a riga di comando di Beancount.io. Aprirai una contabilità, registrerai acquisti, importerai un estratto conto bancario, riconcilierai con un saldo di 3206,81 USD e leggerai il conto economico e lo stato patrimoniale del mese.
Il mese è agosto 2026 e la contabilità inizia con 1.250 USD sul conto corrente. Niente qui ti chiede di scrivere Python o una query.
Installa bea prima se non l'hai già fatto: la guida rapida alla CLI di Beancount copre Homebrew e uv. La contabilità locale non richiede un account Beancount.io.
Lavora in una directory vuota. Scarica i due file di input in essa prima di iniziare:
- first-month.csv — l'estratto conto bancario che importi nella settimana 3.
- rules.toml — le regole di categorizzazione utilizzate da quell'estratto.
Ogni comando indica la contabilità con --file august/main.bean, così puoi eseguirli da quella directory senza cambiare nella cartella della contabilità.
Settimana 1 — imposta i libri contabili
Crea la contabilità, poi apri l'unico conto che il modello non include per questo mese.
bea --no-input init august --currency USD --date 2026-08-01 \
--opening-balance "Assets:Checking 1250"
bea --file august/main.bean add open --date 2026-08-01 --account Expenses:Transport:Fuel -c USDinit scrive august/main.bean con quattordici conti, incluso Expenses:Uncategorized. Le importazioni inseriscono lì le righe che non riescono a categorizzare.
Settimana 2 — registra gli acquisti quotidiani
Registra gli acquisti mentre accadono. La data è impostata per impostazione predefinita su oggi, quindi per le registrazioni retrodatate passa --date esplicitamente.
bea --file august/main.bean add transaction "Coffee" --date 2026-08-03 \
--posting "Expenses:Dining 4.50" --posting "Assets:Checking"
bea --file august/main.bean add transaction "Weekly groceries" --date 2026-08-05 \
--posting "Expenses:Groceries 62.30" --posting "Assets:Checking"
bea --file august/main.bean add transaction --date 2026-08-07 --payee "Employer" \
--narration "August salary" --posting "Assets:Checking 2100" --posting "Income:Salary"Ogni aggiunta viene verificata rispetto all'intera contabilità prima che il file venga sostituito. La seconda registrazione è lasciata vuota, quindi Beancount inserisce l'importo di bilanciamento.
Settimana 3 — importa l'estratto conto bancario
L'estratto conto per il resto di agosto contiene tre righe:
Date,Payee,Amount
2026-08-10,Whole Foods,-28.40
2026-08-12,Shell,-35.00
2026-08-20,Mystery Shop,-9.99Il file delle regole abbina un beneficiario a un conto. Le regole vengono eseguite in ordine di file e vince la prima corrispondenza.
[[rule]]
match = "whole foods|trader joe|corner market"
account = "Expenses:Groceries"
[[rule]]
match = "shell|chevron|exxon"
account = "Expenses:Transport:Fuel"
[[rule]]
match = "salary|payroll|employer"
account = "Income:Salary"Mappa le colonne dell'estratto con --csv, visualizza l'anteprima del risultato, poi ripeti con --apply per scriverlo.
bea --file august/main.bean import first-month.csv \
--csv date=Date,amount=Amount,payee=Payee --account Assets:Checking --rules rules.toml
bea --file august/main.bean import first-month.csv --applyL'anteprima stampa una riga per ogni voce con la regola che l'ha abbinata, più il diff esatto che scriverebbe. Non viene scritto nulla fino a --apply.
Il secondo comando non richiede flag: la mappatura delle colonne, il conto e le regole vengono ricordati per quel file. Ogni voce scritta include una riga import-id, quindi importando di nuovo lo stesso estratto conto si saltano le voci già presenti nella contabilità.
Due righe corrispondono a una regola. La terza, Mystery Shop, non corrisponde a nulla, quindi viene registrata su Expenses:Uncategorized con il flag ! — la tua coda di revisione per dopo.
Per il formato della colonna addebito/accredito, altre valute e importatori Python, vedi Importare estratti conto bancari con la CLI.
Settimana 4 — riconcilia con l'estratto conto
L'estratto conto di agosto chiude il conto corrente a 3206,81 USD. I tuoi libri dicono 3209,81 USD. La differenza è una commissione bancaria di 3,00 USD che l'estratto conto non ha rilevato.
Registra la commissione, poi verifica il saldo dell'estratto conto. Beancount controlla una verifica all'inizio del suo giorno, quindi una verifica del 1° settembre copre ogni transazione di agosto.
bea --file august/main.bean add transaction "Bank fee" --date 2026-08-31 \
--posting "Expenses:Fees 3.00" --posting "Assets:Checking"
bea --file august/main.bean add balance --date 2026-09-01 --account Assets:Checking \
--amount "3206.81 USD"
bea --file august/main.bean list transaction --flag '!' --detailsLa coda contiene una transazione, la riga Mystery Shop. --details stampa il suo numero di file e di riga.
Apri quella riga nel tuo editor. Modifica la sua registrazione Expenses:Uncategorized nel conto a cui appartiene — Expenses:Dining qui — e cambia il suo flag da ! a * per segnarla come revisionata. Mantieni la riga import-id così una ripetizione dell'import salterà ancora la riga.
Poi conferma che la contabilità si carichi e che la coda sia vuota:
bea --file august/main.bean check
bea --file august/main.bean list transaction --flag '!' --detailsUna contabilità pulita esce con codice 0. Una verifica interrotta o un conto sconosciuto vengono elencati con un'uscita non zero. La coda ora stampa Nessuna transazione trovata.
Leggi il mese
bea --file august/main.bean report income-statement --time 2026-08
bea --file august/main.bean report balance-sheet
bea --file august/main.bean report income-statement --time monthIl conto economico netta lo stipendio di 2.100,00 USD contro 143,19 USD di spese per un utile netto di 1.956,81 USD. I saldi dei conti vengono stampati con la segnaletica di Beancount, quindi le righe di reddito sono negative. Lo stato patrimoniale mostra il conto corrente a 3.206,81 USD, corrispondente all'estratto conto con cui hai riconciliato.
--time 2026-08 fissa il mese di questo tutorial. --time month significa sempre quello corrente, che è ciò che utilizzerai una volta che i tuoi libri saranno aggiornati.
Continua da qui
- Importare estratti conto bancari con la CLI per la revisione dei duplicati, altre disposizioni di colonne e importazioni ripetute.
- Automatizzare la contabilità con bea per il formato JSON, i codici di uscita e le esecuzioni non supervisionate.
- Riferimento CLI di Beancount per ogni comando e opzione.