Previsione del flusso di cassa: il metodo della previsione rolling a 13 settimane
Questa guida fornisce un metodo semplice, di livello CFO, per gestire la liquidità della tua azienda. Costruendo una previsione di cassa rolling a 13 settimane, puoi vedere il tuo cash runway settimana per settimana, guidare strategicamente gli incassi e i pagamenti ed eliminare le sorprese finanziarie. È un sistema pensato per i founder — e questa pagina include il modello vero e proprio: un workbook basato su formule con dati di esempio, più il ledger Beancount di esempio alla base delle sue prime due settimane (vedi i download qui sotto).
Due cose che questa guida non è: una previsione è fatta di stime prospettiche che digiti tu, mentre i movimenti contabili effettivi sono movimenti bancari già registrati nel tuo ledger — perciò il workbook li tiene separati. Congeli una copia del tuo piano come baseline datata, digiti la cassa bancaria di ogni settimana chiusa su un foglio Actuals separato, e leggi la differenza su un foglio Variance; il piano con cui confronti non viene mai sovrascritto. Nulla qui si sincronizza automaticamente: il workbook non ha macro né connessioni esterne, e nessun passaggio preleva dati dalla tua banca o da Beancount da solo.
Perché 13 settimane?
Una previsione a 13 settimane è lo standard di riferimento per la gestione operativa della cassa, per diverse ragioni chiave:
- Controllo a breve termine: Copre circa un trimestre commerciale, offrendoti una visione chiara della tua liquidità immediata. Questo orizzonte è abbastanza lungo da includere 2–3 cicli di payroll, versamenti fiscali e le tipiche condizioni di pagamento dei fornitori, ma abbastanza corto da restare altamente accurato e azionabile.
- Vista incassi e pagamenti: La previsione usa il "metodo diretto", concentrandosi puramente sulla cassa in entrata e in uscita. Non si tratta di contabilità per competenza o di redditività; si tratta di ciò che effettivamente entrerà o uscirà dal tuo conto bancario, assicurando che la previsione si colleghi direttamente al tuo saldo bancario.
- Rolling, non statica: Non è un budget una tantum. Ogni settimana elimini la settimana appena trascorsa, aggiungi una nuova settimana in fondo (settimana 13) e aggiorni le tue ipotesi. Questo mantiene costante l'orizzonte prospettico, trasformando la previsione in una disciplina dinamica e settimanale.
Cosa costruirai
- Una griglia di previsione: Il cuore del sistema è un foglio con 13 colonne (dalla Settimana 1 alla Settimana 13) e sezioni chiaramente definite: Cassa iniziale, Incassi, Pagamenti, Cassa netta e Cassa finale. Tre fogli di accompagnamento con le stesse righe conservano una Baseline congelata di quel piano, gli Actuals registrati dalla tua banca e la Variance tra i due.
- Mappatura delle categorie: Un sistema semplice per mappare le transazioni dal tuo ledger alle categorie della previsione (ad esempio, tutti i pagamenti da Stripe sono mappati a "Incassi clienti"; i pagamenti Gusto sono mappati a "Buste paga"). La scheda Vendor Mapping del workbook codifica già questa mappa, inclusa la regola di non doppio conteggio banca/carta — parti da lì invece di inventarne una tua.
- Un ritmo settimanale: Un processo ripetibile per registrare gli actuals, rivedere la varianza rispetto alla baseline che ti sei impegnato a rispettare, ri-stimare le settimane future e un set di trigger predefiniti per agire quando si raggiungono determinate soglie finanziarie.
Scarica i file di partenza
Salta la configurazione da pagina bianca: questa guida include un workbook basato su formule con dati di esempio, più il ledger di esempio alla base delle sue prime due settimane.
- Workbook di previsione a 13 settimane (XLSX, v1.1.0) — cash-flow-forecast-13-week-it.xlsx. Ipotesi modificabili, settimane concatenate da formule, uno snapshot Baseline di soli valori, un foglio Actuals, un foglio Variance di sole formule e una scheda di mappatura fornitori. Ogni numero di esempio è l'esempio svolto — sostituiscilo con il tuo (vedi Esempio vs. i tuoi dati qui sotto).
- Ledger di esempio e actuals (ledger Beancount,
.bean) — sample.bean. Ledger di esempio bilanciato la cui cassa bancaria W1–W2 è esattamente ciò che il foglio Actuals del workbook contiene per le sue prime due settimane.
Come funzionano i file di partenza (leggi prima di digitare)
Fogli. Il workbook (cash-flow-forecast-13-week-it.xlsx, v1.1.0) ha sei fogli, in quest'ordine:
- Forecast — il tuo piano attivo: le 13 settimane datate, le ipotesi, gli incassi, i pagamenti, la cassa netta/finale. Modificalo quanto vuoi.
- Baseline — uno snapshot di soli valori delle righe 2–29 di Forecast, etichettato con una versione in
B31e una data di riferimento inB32. Non contiene formule, quindi nulla di ciò che fai altrove può modificarlo. - Actuals — la cassa bancaria che ogni settimana chiusa ha realmente movimentato, inserita da te: uno stato nella riga 3 (
completeopartial), importi per categoria nelle stesse righe di Forecast e un saldo estratto conto opzionale nella riga 30. - Variance — solo formule: Actual − Baseline per ogni categoria e totale, abbinate per data di inizio settimana, più una legenda che spiega ogni parola di stato. Non legge mai Forecast.
- Vendor Mapping — la mappa ledger→categoria con la regola del conteggio cassa banca/carta per fonte.
- Notes — meccaniche, la revisione settimanale, i toggle di scenario e la versione, duplicate dal generatore affinché il file si spieghi da solo offline.
Tutte e quattro le griglie settimanali condividono un unico layout: le settimane W1–W13 sono le colonne B–N, la riga 2 contiene la data di inizio di ogni settimana, la cassa iniziale è la riga 10, gli incassi le righe 12–14 (totale 15), i pagamenti le righe 17–26 (totale 27), la riga netta è la 28 e la finale la 29. Quindi B12 è l'incasso clienti della W1 su ognuna di esse.
Base temporale. Le settimane iniziano di lunedì, W1 a partire dal 2026-09-14 fino a W13 a partire dal 2026-12-07 (riga 2 di Forecast; modifica queste date quando adotti il modello — ogni formula è relativa alla settimana, quindi la catena sopravvive — e portale su Baseline e Actuals quando catturi la tua baseline). Una transazione appartiene alla settimana che contiene la sua data di registrazione, da lunedì a domenica.
Unità. Interi USD ovunque (formato numerico #,##0). L'azienda di esempio è una SaaS in fase seed che apre a 85.000 con payroll settimanale alternato 0 / 11.000, affitto mensile e un addebito automatico del prestito di 900/settimana.
Cosa digiti vs. cosa si calcola. Su Forecast, le celle blu sono input manuali e tutto il resto è una formula (Actuals funziona allo stesso modo con i propri input, descritti sotto Catturare una baseline e nella revisione settimanale qui sotto):
- Input: saldo iniziale
B5(85.000), toggleB6/B7(1,0), floorB8(40.000), le tre basi delle categorie di incasso, le dieci basi delle categorie di pagamento e le date di inizio settimana su Forecast. - Formule (mostrate per la colonna B, settimana 1 — ogni settimana successiva sposta la lettera di colonna): Cassa iniziale
B10 = $B$5(le settimane 2–13 invece riportano, ad esempioC10 = B29); Totale incassiB15 = B12*$B$6+B13*$B$7+B14; Totale pagamentiB27 = SUM(B17:B26); NettoB28 = B15-B27; FinaleB29 = B10+B28. - Il ricalcolo è Automatico e il file imposta
fullCalcOnLoad, quindi Excel, LibreOffice e Numbers ricalcolano all'apertura (il file non memorizza valori di formula in cache). Cambia una cella blu e tutte le 13 settimane si muovono — ad esempio, impostando il toggle di incassoB6a 1,2 si porta l'incasso della W1 da 12.200 a 14.600 e la cassa finale della W1 da 87.500 a 89.900. - Rigenera il file originale in qualsiasi momento con
yarn generate:cash-flow-forecast(generatore:scripts/generate-cash-flow-forecast.py, writer openpyxl 3.1.5;--verifyriapre il file e verifica che ogni cella totale contenga una formula reale).
Esempio vs. i tuoi dati. Tre cose sono precompilate, e tutte e tre sono l'esempio svolto, non la tua azienda:
- le celle blu su Forecast (il piano attuale dell'azienda di esempio);
- lo snapshot su Baseline, versione
B1al 2026-09-11 — il piano così com'era prima che le prime due settimane si chiudessero; - le voci W1–W2 su Actuals (colonne B–C), che sono la cassa bancaria nel ledger di esempio (
sample.bean, sopra). W3–W13 sono lasciate vuote.
Poiché la Baseline e gli Actuals di esempio differiscono, il foglio Variance si apre su un confronto reale: la W1 chiude +500 sopra il piano e la W2 +300 (vedi Revisione della varianza qui sotto). Prima della tua prima revisione, sostituisci tutte e tre: digita il tuo piano su Forecast, cancella le voci di esempio su Actuals e cattura la tua Baseline sopra B1 (passaggi sotto). I due toggle (B6 scala tutti gli incassi clienti, B7 scala tutti i prepagati) sono l'unica cosa destinata a restare generica, per il gioco di scenario.
Vieni dalla v1.0.0? Il layout del foglio Forecast non è cambiato, quindi puoi trasferire il tuo piano deliberatamente: nel tuo vecchio file copia solo gli intervalli di input — B2:N2 (date), B5:B8, B12:N14 e B17:N26 — e incollali come valori agli stessi indirizzi nel Forecast del nuovo file, mai sopra le righe di formula. La v1.0.0 non conservava alcuna baseline, quindi ogni settimana passata che hai sovrascritto con gli actuals non ha un piano recuperabile: digita la cassa bancaria di quelle settimane su Actuals e inizia la tua prima Baseline dal Forecast di oggi.
Struttura (le righe che ti servono)
Il tuo foglio di previsione dovrebbe essere strutturato con le seguenti righe per catturare tutti i movimenti di cassa. Come è disposto il workbook: le righe seguenti vivono su Forecast (le 13 settimane datate con Cassa iniziale, tre categorie di incasso, dieci categorie di pagamento, Netta e Finale), e Baseline, Actuals e Variance le ripetono riga per riga; Vendor Mapping mappa le fonti del ledger a queste categorie, inclusa la regola di non doppio conteggio banca/carta, e Notes spiega le meccaniche offline. Su Forecast, gli incassi sono raggruppati come Incassi clienti, Nuove prenotazioni/Prepagati e Altri afflussi; i pagamenti sono raggruppati come Buste paga, Collaboratori, Cloud/Hosting, Software/SaaS, Marketing, Affitto, Legale e Contabilità, Tasse e commissioni, Servizio del debito e Una tantum; i totali scorrono da Cassa iniziale → Totale incassi → Totale pagamenti → Netto → Finale.
-
Saldo di cassa iniziale (Deve collegarsi al Saldo di cassa finale della settimana precedente)
-
Incassi (cassa in entrata)
- Incassi clienti: Cassa che prevedi di incassare da fatture esistenti (crediti commerciali).
- Nuove prenotazioni/Prepagati: Pagamenti anticipati che prevedi da nuovi accordi che si chiudono entro la finestra di 13 settimane.
- Altri afflussi: Qualsiasi altra cassa in entrata, come rimborsi fiscali, redditi da interessi o finanziamenti tramite grant.
-
Pagamenti (cassa in uscita)
- Buste paga: Il costo in cassa completo, incluso il netto ai dipendenti e tutte le imposte sul payroll a carico del datore di lavoro.
- Collaboratori e freelance: Pagamenti a non dipendenti.
- Cloud/Hosting (COGS): Costi di infrastruttura principali come AWS, GCP, ecc.
- SaaS/Strumenti: Tutti i tuoi abbonamenti software.
- Marketing: Spesa pubblicitaria, compensi agenzia e altri costi legati al brand.
- Affitto/Ufficio: Costi dell'ufficio fisico.
- Legale e Contabilità: Compensi per servizi professionali.
- Tasse e commissioni: Versamenti dell'IVA e altri pagamenti governativi.
- Servizio del debito: Sia le quote capitale che gli interessi su eventuali prestiti.
- Una tantum: Pagamenti irregolari e infrequenti come premi assicurativi annuali, depositi cauzionali o hardware/capex (laptop, attrezzature) — tutto ciò che non ha una propria riga sopra finisce qui.
-
Flusso di cassa netto (= Totale incassi − Totale pagamenti)
-
Saldo di cassa finale (= Cassa iniziale + Flusso di cassa netto)
Esempio svolto a 13 settimane (USD)
La tabella sotto è il foglio Forecast del workbook per l'azienda di esempio, settimana per settimana — il piano attuale, ri-previsionato dopo la chiusura di W1 e W2, quindi quelle due colonne ora contengono ciò che la banca ha effettivamente fatto. W1 e W2 sono actuals del ledger — equivalgono ai totali che yarn check:cash-flow-actuals deriva da sample.bean (incassi 12.200 / 13.200, pagamenti 9.700 / 17.200, chiusura 87.500 / 83.500). W3–W13 sono ipotesi del workbook dalle basi di esempio del generatore (non registrate nel ledger). Il piano a cui l'azienda si era impegnata in precedenza è conservato separatamente su Baseline e differisce da queste colonne W1–W2; Revisione della varianza qui sotto confronta i due. La valuta è USD interi; Chiusura = Iniziale + Incassi − Pagamenti ogni settimana.
| Voce | W1 | W2 | W3 | W4 | W5 | W6 | W7 | W8 | W9 | W10 | W11 | W12 | W13 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Iniziale | 85.000 | 87.500 | 83.500 | 92.500 | 82.000 | 81.000 | 72.000 | 80.000 | 72.800 | 75.300 | 63.800 | 79.800 | 71.800 |
| Incassi | 12.200 | 13.200 | 15.200 | 9.200 | 18.200 | 8.200 | 14.200 | 14.200 | 12.200 | 9.200 | 22.200 | 9.200 | 12.200 |
| Pagamenti | 9.700 | 17.200 | 6.200 | 19.700 | 19.200 | 17.200 | 6.200 | 21.400 | 9.700 | 20.700 | 6.200 | 17.200 | 9.700 |
| Netto | 2.500 | -4.000 | 9.000 | -10.500 | -1.000 | -9.000 | 8.000 | -7.200 | 2.500 | -11.500 | 16.000 | -8.000 | 2.500 |
| Chiusura | 87.500 | 83.500 | 92.500 | 82.000 | 81.000 | 72.000 | 80.000 | 72.800 | 75.300 | 63.800 | 79.800 | 71.800 | 74.300 |
Le meccaniche rolling (come costruite nel workbook)
La logica della previsione rolling è semplice e potente — e nel download è già cablata come formule sul foglio Forecast (righe tra parentesi):
Cassa iniziale (Settimana 1) = ipotesi di saldo iniziale— cellaB10 = $B$5.Cassa iniziale (Settimana n) = Cassa finale (Settimana n−1)— ad esempioC10 = B29(riga 10, settimane 2–13).Totale incassi (Settimana n) = Incassi clienti × toggle incasso + Prepagati × toggle prenotazioni + Altro— ad esempioB15 = B12*$B$6+B13*$B$7+B14(riga 15).Totale pagamenti (Settimana n) = SOMMA delle 10 righe di categoria— ad esempioB27 = SUM(B17:B26)(riga 27).Cassa netta (Settimana n) = Totale incassi − Totale pagamenti— ad esempioB28 = B15-B27(riga 28).Cassa finale (Settimana n) = Cassa iniziale + Cassa netta— ad esempioB29 = B10+B28(riga 29).
Le stesse righe esistono su Actuals come totali semplici (B15 = SUM(B12:B14), B27 = SUM(B17:B26), B28 = B15-B27, B29 = B10+B28, C10 = B29), con la cassa iniziale effettiva della settimana digitata una volta in Actuals!B10. Actuals non ha toggle e non fa mai riferimento a un altro foglio.
Catturare una baseline (una volta per orizzonte)
Fallo quando il tuo Forecast contiene il piano rispetto al quale vuoi essere misurato — prima che la prima settimana si chiuda.
- Copia il piano come valori. Seleziona
Forecast!B2:N29e copia. SelezionaBaseline!B2e incolla solo valori — Excel: Incolla speciale → Valori; LibreOffice: Incolla speciale → Solo valori; Numbers: Modifica → Incolla risultati formula. Un incolla normale porterebbe con sé formule attive e la "baseline" seguirebbe silenziosamente ogni modifica successiva. - Etichettala. Digita una versione (ad esempio
B1) inBaseline!B31e la data odierna inBaseline!B32. Entrambe si trovano sotto il blocco incollato, quindi una cattura successiva non le sovrascrive mai. - Allinea le settimane. Copia
Baseline!B2:N2e incolla i valori inActuals!B2, così entrambi i fogli indicano le stesse 13 date di inizio settimana, e digita il saldo bancario con cui parti inActuals!B10.
Da qui, digitare gli actuals, modificare Forecast o spostare un toggle ricalcola Forecast e Variance e lascia Baseline esattamente come catturata.
La tua revisione settimanale del lunedì (rispetto a questo workbook)
- Registra la settimana su Actuals — mai su Forecast. Nella colonna la cui data della riga 2 è il lunedì appena chiuso, digita la cassa bancaria della settimana per categoria nelle righe 12–14 e 17–26 (mappatura sotto). Digita
0dove non si è mossa cassa: una cella vuota significa "non ancora inserito", non zero. Metti il saldo di chiusura dell'estratto conto nella riga 30; la riga 31 dovrebbe poi leggere0. Qualsiasi altro valore è un errore di mappatura — di solito un addebito su carta conteggiato o uno sweep mantenuto — non un errore bancario. - Verifica che la settimana sia completa. Digita
completenella riga 3 una volta che ogni riga di categoria contiene un numero, oppurepartialfinché la settimana è ancora aperta (il menu a tendina offre entrambi). Variance confronta una settimana solo quando ècomplete, ogni categoria è inserita e la data di Actuals è uguale alla data di Baseline nella stessa colonna. - Leggi Variance. La riga 3 indica lo stato di ogni settimana; solo le settimane
comparedmostrano numeri, e ogni altro stato mostran/a, mai0, così una settimana non inserita non può passare per "in linea con il piano". I segni sono Actual − Baseline (la colonna O li ripete): incassi, netto e finale positivi = più cassa del previsto; pagamenti positivi = più spesa del previsto. La riga 29 è cumulativa — include ogni settimana precedente — ed esiste solo finché ogni settimana fino a essa ècompared. Le righe 32–35 esprimono i totali come quota della baseline (n/aquando la baseline è zero). - Ri-stima il futuro su Forecast. Aggiorna le celle blu per le prossime 2–4 settimane con le informazioni più fresche (fatture appena inviate, pagamenti fornitori imminenti, date payroll confermate). Per mantenere una finestra prospettica completa di 13 settimane, fai scorrere la finestra di Forecast: sposta i suoi input blu, incluse le date della riga 2, di una colonna a sinistra (la vecchia Settimana 2 diventa Settimana 1), poi svuota la colonna N e assegnale la nuova data della Settimana 13. Le formule di riporto si ri-ancorano automaticamente; Baseline, Actuals e Variance non vengono toccati.
Far scorrere l'orizzonte di revisione (un passaggio deliberato, non settimanale)
Baseline e Actuals restano sull'orizzonte che hai catturato finché non decidi di spostarli — tipicamente quando il Forecast è scorso avanti di un mese o un trimestre, o il piano è cambiato abbastanza da volere un nuovo metro di paragone.
- Archivia. Salva una copia del workbook (ad esempio
cash-flow-forecast-B1.xlsx). Conserva insieme la vecchia baseline, i suoi actuals e la loro varianza; il file di lavoro non mantiene alcuno storico. - Cancella gli input effettivi. Su Actuals, cancella le righe 3, 12–14, 17–26 e 30 nelle colonne B–N, e
B10. Lascia stareC10:N10, le righe 15 e 27–29 e la riga 31 — sono formule. - Cattura una nuova baseline dal Forecast di oggi con la versione successiva (
B2) e la data odierna, poi allinea le date di Actuals e il saldo iniziale esattamente come in Catturare una baseline sopra.
Non inserire né eliminare mai colonne settimanali. Se ri-catturi una baseline ma dimentichi di ri-datare Actuals, ogni settimana interessata mostra date mismatch invece di confrontare una settimana con il piano di una settimana diversa.
Mappatura da Beancount alla tua previsione
Ambito della cassa bancaria (la regola che previene il doppio conteggio). Gli actuals settimanali sono le registrazioni su Assets:Bank:* soltanto — un unico ambito che neutralizza entrambe le trappole:
- Carte di credito: un acquisto con carta si registra su
Liabilities:CreditCard:*e non muove cassa bancaria, quindi non viene conteggiato quando viene addebitato. La cassa esce una sola volta, al regolamento (il pagamento banca→carta). Conteggiare l'addebito più il regolamento conta la stessa spesa due volte. Nel ledger di esempio, la W1 contiene 420,00 USD di addebiti Amex SaaS (solo passività, ignorati) accanto al regolamento dell'estratto conto di agosto di 600,00 USD (conteggiato). Il totale ingenuo "uscite bancarie + addebiti carta" per la W1 è 10.120,00 USD — esattamente 420,00 in più; il workbook conta 9.700,00. - Trasferimenti interni: uno sweep Checking↔Savings ha due gambe bancarie opposte, quindi si azzera all'interno di questo ambito ed è escluso sia dagli incassi sia dai pagamenti. Gli sweep di esempio di 3.000,00 USD (W1) e 1.500,00 USD (W2) altrimenti gonfierebbero entrambi i lati di tali importi.
- Corollario: mappa le gambe bancarie, non le gambe di Ricavi/Costi. Il capitale del prestito non è un costo ma è un'uscita bancaria (gli addebiti automatici di esempio di 900,00 USD = 800 capitale + 100 interessi, tutti conteggiati sotto Servizio del debito); un acquisto con carta è un costo ma non è ancora un'uscita bancaria.
Suddivisione incassi/pagamenti. Dalle gambe bancarie esportate: le gambe positive sono incassi, le gambe negative sono pagamenti, le gambe di trasferimento escluse. Mappa delle categorie (come la scheda Vendor Mapping): payout Stripe/PayPal → Incassi clienti; bonifici da nuovi clienti → Nuove prenotazioni / Prepagati; interessi bancari/grant → Altri afflussi; Gusto/ADP → Buste paga; AWS/GCP → Cloud/Hosting; SaaS pagato tramite banca → Software/SaaS; locatore → Affitto; studio legale → Legale/Contabilità; autorità fiscale → Tasse e commissioni; addebito automatico prestito → Servizio del debito.
- Gestione dell'IVA: Anche se l'IVA non è ricavo, è una voce di flusso di cassa. Tratta la raccolta dell'IVA come incasso di cassa e il versamento al governo come pagamento. L'impatto sui ricavi vive nei tuoi libri per competenza, ma il movimento di cassa conta qui.
Estratto Beancount che alimenta la W1
Ogni registrazione sotto esiste anche nel sample.bean fornito. Salvato da solo, questo estratto supera uvx --from beancount bean-check e produce gli incassi (12.200), i pagamenti (9.700) e la chiusura (87.500) della W1 della tabella una volta applicato l'ambito della cassa bancaria sopra (escludi lo sweep Checking↔Savings da entrambi i lati; conta il regolamento Amex, non gli addebiti di passività).
option "title" "Cash forecast sample — W1 excerpt"
option "operating_currency" "USD"
2026-09-13 open Assets:Bank:Checking USD
2026-09-13 open Assets:Bank:Savings USD
2026-09-13 open Liabilities:CreditCard:Amex USD
2026-09-13 open Liabilities:Loan USD
2026-09-13 open Equity:Opening-Balances USD
2026-09-13 open Income:Sales USD
2026-09-13 open Income:Interest USD
2026-09-13 open Expenses:Contractors USD
2026-09-13 open Expenses:Cloud USD
2026-09-13 open Expenses:Software USD
2026-09-13 open Expenses:Marketing USD
2026-09-13 open Expenses:Rent USD
2026-09-13 open Expenses:Interest USD
2026-09-13 * "Opening balances"
Assets:Bank:Checking 80000.00 USD
Assets:Bank:Savings 5000.00 USD
Liabilities:CreditCard:Amex -600.00 USD
Liabilities:Loan -20000.00 USD
Equity:Opening-Balances -64400.00 USD
2026-09-14 * "Stripe" "Customer receipts W1"
Assets:Bank:Checking 12000.00 USD
Income:Sales -12000.00 USD
2026-09-15 * "Contractor" "Contractors W1"
Expenses:Contractors 1500.00 USD
Assets:Bank:Checking -1500.00 USD
2026-09-15 * "AWS" "Cloud hosting W1"
Expenses:Cloud 2200.00 USD
Assets:Bank:Checking -2200.00 USD
2026-09-16 * "Bank" "Checking -> Savings sweep"
Assets:Bank:Savings 3000.00 USD
Assets:Bank:Checking -3000.00 USD
2026-09-17 * "SaaS vendor" "Amex SaaS charges"
Expenses:Software 250.00 USD
Liabilities:CreditCard:Amex -250.00 USD
2026-09-17 * "SaaS vendor" "Amex SaaS charges"
Expenses:Software 170.00 USD
Liabilities:CreditCard:Amex -170.00 USD
2026-09-18 * "Amex" "August statement settlement"
Liabilities:CreditCard:Amex 600.00 USD
Assets:Bank:Checking -600.00 USD
2026-09-19 * "Landlord" "Rent W1"
Expenses:Rent 3500.00 USD
Assets:Bank:Checking -3500.00 USD
2026-09-19 * "Agency" "Marketing W1"
Expenses:Marketing 1000.00 USD
Assets:Bank:Checking -1000.00 USD
2026-09-19 * "Bank" "Interest W1"
Assets:Bank:Checking 200.00 USD
Income:Interest -200.00 USD
2026-09-19 * "Lender" "Loan autopay W1"
Liabilities:Loan 800.00 USD
Expenses:Interest 100.00 USD
Assets:Bank:Checking -900.00 USDSettimana svolta: W1 dall'inizio alla fine (2026-09-14 – 2026-09-20)
La cassa bancaria iniziale è 85.000,00 (Checking 80.000 + Savings 5.000 al 2026-09-13) — il valore in Actuals!B10. Le gambe bancarie della W1 nel ledger, dopo aver escluso la coppia di sweep di 3.000,00, vanno nella colonna B del foglio Actuals; ogni categoria non elencata è digitata come 0, e la riga 3 è impostata a complete:
| Voce Actuals (cella) | Gambe bancarie | Importo |
|---|---|---|
Incassi clienti (B12) | Stripe 12.000 | 12.000,00 |
Altri afflussi (B14) | Interessi bancari 200 | 200,00 |
| Totale incassi | B15 = SUM(B12:B14) = 12.000 + 0 + 200 | 12.200,00 |
Collaboratori (B18) | 1.500 | 1.500,00 |
Cloud/Hosting (B19) | AWS 2.200 | 2.200,00 |
Software/SaaS (B20) | regolamento Amex 600 (addebiti esclusi) | 600,00 |
Marketing (B21) | Agenzia 1.000 | 1.000,00 |
Affitto (B22) | Locatore 3.500 | 3.500,00 |
Servizio del debito (B25) | Addebito automatico prestito 900 | 900,00 |
| Totale pagamenti | B27 = SUM(B17:B26) | 9.700,00 |
| Netto | B28 = B15−B27 | +2.500,00 |
| Finale | B29 = B10+B28 = 85.000 + 2.500 | 87.500,00 |
Riporto nella W2. C10 = B29, quindi la W2 apre a 87.500,00. Le sue gambe bancarie danno incassi 8.000 (Stripe) + 5.000 (prepagato) + 200 (interessi) = 13.200,00 e pagamenti 11.000 (payroll Gusto) + 1.500 + 2.200 + 600 (SaaS addebitato dalla banca) + 1.000 + 900 = 17.200,00; netto −4.000,00, finale 83.500,00 — esattamente la colonna W2 del workbook su Actuals (e sul foglio Forecast ri-previsionato). I saldi dell'estratto conto 87.500 e 83.500 stanno in Actuals!B30:C30, quindi la riga 31 legge 0 per entrambe le settimane: è la tua prova che la mappatura funziona. Cosa hanno fatto le settimane rispetto al piano è una domanda separata, a cui si risponde su Variance qui sotto.
Riproducilo (verificato 2026-09-09, Beancount 3.2.3 + beanquery 0.2.0)
uvx --from beancount bean-check public/downloads/cash-flow-forecast/sample.bean
yarn check:cash-flow-actualsIl checker esegue bean-check (le asserzioni balance del ledger stesso provano la cassa finale di ogni settimana), le query di esportazione sotto e un riporto indipendente in Python che verifica che tutti e tre concordino — W1 12.200,00 / 9.700,00 / 87.500,00, W2 13.200,00 / 17.200,00 / 83.500,00:
SELECT date, narration, account, position
FROM date >= 2026-09-14 AND date <= 2026-09-20
WHERE account ~ "^Assets:Bank" ORDER BY date;
SELECT sum(position) AS net
FROM date >= 2026-09-14 AND date <= 2026-09-20
WHERE account ~ "^Assets:Bank";
SELECT sum(position) AS bank_cash
FROM close ON 2026-09-21 WHERE account ~ "^Assets:Bank";(Sposta le date di 7 per la W2, chiudendo al 2026-09-28.) Un limite di BQL da conoscere: questa versione di beanquery non riesce a filtrare le registrazioni per segno, quindi la suddivisione incassi/pagamenti è applicata alle righe esportate — gambe bancarie positive agli incassi, negative ai pagamenti, coppie di sweep escluse — esattamente come fa il checker.
Il ritmo di aggiornamento (30–45 minuti a settimana)
- Estrai gli Actuals (15 min): Esporta le registrazioni della settimana su
Assets:Bank:*(esegui le query sopra, oppure scarica le transazioni dai tuoi conti bancari — gli addebiti carta restano fuori; conta solo il pagamento di regolamento) e digitale sul foglio Actuals. Conferma che la Cassa finale della settimana su Actuals corrisponda perfettamente al tuo saldo bancario combinato effettivo (Checking + Savings) — la riga 31 legge0. Questa riconciliazione non è negoziabile. - Rivedi i crediti commerciali (10 min): Elenca tutte le fatture in sospeso e collocale nella settimana in cui ti aspetti il pagamento. Sii conservativo e applica ritardi di incasso realistici basati sulle performance passate.
- Rivedi i debiti e il payroll (10 min): Colloca le date di scadenza di tutte le bollette imminenti note. Precompila le date e gli importi del payroll per l'intero trimestre. Programma i pagamenti non critici per il venerdì per preservare l'opzionalità di cassa durante la settimana.
- Riunione sulla varianza (10 min): Apri il foglio Variance e percorri la colonna
compareddella settimana: quali categorie si sono mosse, in quale direzione e cosa ha fatto alla cassa finale cumulativa. Annota le cause di eventuali differenze significative e decidi se devi aggiustare le tue regole di previsione in futuro.
Accuratezza e processo decisionale
Regole empiriche di accuratezza
- Weeks 1–2: Punta a un errore ±5–10%. Queste date e questi importi dovrebbero essere altamente certi.
- Weeks 3–6: Aspettati un errore ±10–20%. Questo periodo sarà un mix di bollette note e stime basate su pattern.
- Weeks 7–13: Questa parte della previsione è direzionale. È guidata dalla tua pipeline di vendita e dalle spese di run-rate.
Codici di confidenza: Per rendere la previsione più facile da leggere, contrassegna ogni riga di previsione con un codice di confidenza: Impegnato (ad esempio, payroll, affitto), Probabile (ad esempio, fatture a buoni clienti) o Upside (ad esempio, nuovi accordi dalla pipeline).
Trigger e azioni (decidili in anticipo)
Una previsione è inutile senza un piano. Predefinisci le tue azioni per quando raggiungi determinate soglie.
- Cassa minima (floor): Ad esempio, la tua regola potrebbe essere "Dobbiamo mantenere cassa ≥ 1,5× il prossimo importo payroll completo in ogni momento." Se la previsione mostra che violerai questo floor, esegui immediatamente un piano preconcordato, come uno sprint di incassi e una pausa su tutta la spesa discrezionale.
- Guardrail di runway: Ad esempio, "Se la Cassa finale della Settimana 13 implica meno di X mesi di burn, avvieremo il nostro piano di finanziamento." Questo potrebbe comportare la ricerca di un term sheet, l'offerta ai clienti di uno sconto per il pagamento anticipato dei ricavi o l'utilizzo di una linea di credito.
- Regola dei grandi deflussi: Ad esempio, "Qualsiasi singolo pagamento non payroll superiore al 5% del nostro saldo di cassa attuale deve essere approvato con due settimane di anticipo e avere un piano di riserva."
Template e scenari
Set di categorie semplice (per una SaaS in fase seed)
- Incassi: Incassi clienti, Altri afflussi (interessi, rimborsi, grant)
- Pagamenti: Buste paga (netto + imposte datore), Collaboratori, Cloud/Hosting (COGS), Software/SaaS (OpEx), Marketing (Paid/Brand), Affitto/Ufficio, Legale/Contabilità, Tasse e commissioni, Servizio del debito, Una tantum / Annuali
- Calcolati: Cassa netta, Cassa finale
Template (già costruito nel download; copia questo per ricostruire da zero)
La tabella sotto è la forma del foglio Forecast — stesse righe, stesse formule — per ricostruire su un foglio vuoto. Nel download, la riga 2 contiene già le date di inizio settimana (W1 2026-09-14 fino a W13 2026-12-07) e ogni totale è cablato; blocca sotto la riga 3 e a destra della colonna A (B4 nel file) per allinearti.
| Riga / Settimana | W1 | W2 | W3 | ... | W13 |
|---|---|---|---|---|---|
| Cassa iniziale | |||||
| --- INCASSI --- | |||||
| Incassi clienti | |||||
| Nuovi prepagati/Anticipi | |||||
| Altri afflussi | |||||
| Totale incassi | =SUM() | =SUM() | =SUM() | =SUM() | |
| --- PAGAMENTI --- | |||||
| Buste paga (netto + imposte datore) | |||||
| Collaboratori | |||||
| Cloud/Hosting (COGS) | |||||
| Software/SaaS (OpEx) | |||||
| Marketing | |||||
| Affitto/Ufficio | |||||
| Legale/Contabilità | |||||
| Tasse e commissioni | |||||
| Servizio del debito | |||||
| Una tantum / Annuali | |||||
| Totale pagamenti | =SUM() | =SUM() | =SUM() | =SUM() | |
| Cassa netta | =Incassi-Pagamenti | ||||
| Cassa finale | =Iniziale+Netta |
Toggle di scenario (mantienili leggeri)
Puoi costruire una semplice pianificazione di scenario senza creare un modello complesso. Aggiungi una cella "toggle" in cima al tuo foglio per i driver chiave. Ad esempio:
Toggle rallentamento incassi B6: [1,0](Cambia a 1,2 per modellare un rallentamento del 20% negli incassi — il Totale incassi di ogni settimana si ricalcola tramiteCOL15 = COL12*$B$6+COL13*$B$7+COL14)Toggle nuove prenotazioni B7: [1,0](Cambia a 0,8 per modellare un mancato raggiungimento del 20% rispetto al piano)
Queste sono le celle di ipotesi effettive sul foglio Forecast — nessun cablaggio extra necessario.
Imparare ed evitare errori
Revisione della varianza (fai in modo che l'apprendimento si accumuli)
Il workbook fa per te la contabilità della varianza: Variance = Actual − Baseline, per categoria e per totale, per ogni settimana i cui Actuals sono complete e datati come la Baseline. Il tuo compito è spiegare i numeri. Quando rivedi, etichetta le ragioni delle differenze principali: ritardo di incasso, slittamento di scope, acquisto fornitore non pianificato, spostamento temporale. Se lo stesso tipo di varianza si ripete, cambia la regola alla base del tuo modello. Ad esempio, se gli incassi sono costantemente in ritardo di una settimana, cambia la tua ipotesi predefinita di ritardo di incasso da 21 giorni a 28 giorni.
Confronto svolto (l'esempio fornito). La Baseline B1 è stata catturata il 2026-09-11 da un'apertura di 85.000; gli Actuals sono la cassa bancaria del ledger di esempio. I segni seguono il foglio Variance: incassi, netto e finale positivi = più cassa del previsto, spesa positiva = più speso del previsto.
| Settimana | Baseline in / out / finale | Actual in / out / finale | Δ incassi | Δ spesa | Δ netto | Δ finale (cumulativo) |
|---|---|---|---|---|---|---|
| W1 (2026-09-14) | 12.000 / 10.000 / 87.000 | 12.200 / 9.700 / 87.500 | +200 | −300 | +500 | +500 |
| W2 (2026-09-21) | 13.200 / 17.000 / 83.200 | 13.200 / 17.200 / 83.500 | 0 | +200 | −200 | +300 |
| W3 (2026-09-28) | 15.200 / 6.000 / 92.400 | non inserito | n/a | n/a | n/a | n/a |
Leggendolo come lo dispone il foglio Variance:
- W1, +500. Gli incassi clienti sono arrivati 200 sopra gli 11.800 previsti (
Variance!B12= +200) e AWS ha fatturato 2.200 contro i 2.500 previsti (Variance!B19= −300: meno spesa, favorevole). 85.000 + 12.200 − 9.700 = 87.500 effettivo contro 85.000 + 12.000 − 10.000 = 87.000 previsto. - W2, +300. Gli incassi sono atterrati esattamente sul piano, ma la bolletta SaaS pagata dalla banca era 600 contro i 400 previsti (
Variance!C20= +200: più spesa, sfavorevole). Il netto della settimana è −200, quindi il vantaggio cumulativo sulla cassa finale si riduce da +500 a +300 (Variance!C29): 87.500 + 13.200 − 17.200 = 83.500 contro 87.000 + 13.200 − 17.000 = 83.200. - Dalla W3 in poi,
not observed. Non è stato inserito nulla, quindi ogni cella mostran/a— non un confortante0. - Come percentuali (righe 32–33): W1 incassi +1,67% e spesa −3,00%; W2 incassi 0,00% e spesa +1,18%.
Da questo emergono due etichette: la stima AWS è troppo alta e la riga SaaS pagata dalla banca era prevista 200 troppo bassa. Entrambe sono correzioni alle ipotesi di Forecast — la Baseline B1 resta così com'è, così il trimestre prossimo puoi ancora vedere quanto il piano originale fosse distante.
Insidie comuni (evitale)
- Sovrascrivere il piano: Digitare gli actuals sopra le celle di Forecast (o re-incollare la Baseline ogni settimana) distrugge il piano rispetto al quale dovevi essere misurato. Gli actuals vanno su Actuals; la Baseline cambia solo quando fai scorrere deliberatamente l'orizzonte.
- Mescolare competenza e cassa: Questa previsione è per la sola cassa. Ricavi riconosciuti, ammortamenti e altri concetti di competenza appartengono al tuo ledger principale, non qui.
- Dimenticare gli annuali irregolari: I premi assicurativi annuali, i grandi rinnovi SaaS e i pagamenti fiscali trimestrali possono essere enormi sorprese. Programmali nella tua previsione appena ne vieni a conoscenza.
- Ignorare la cassa dell'IVA: Anche se è una passività di transito, la cassa è nel tuo conto bancario finché non la versi. Modella sia l'afflusso che il deflusso.
- Non riconciliare: Se la Cassa finale della settimana su Actuals non corrisponde al tuo saldo bancario combinato effettivo (Checking + Savings; saldi carta esclusi), hai un errore di mappatura — di solito un addebito su carta conteggiato o uno sweep mantenuto. Devi risolverlo prima di poter fidarti della previsione.
- Nessun responsabile chiaro: Assegna a una persona la responsabilità di aggiornare la previsione ogni singola settimana. Nomina un vice per le vacanze.
Collegamenti rapidi a Beancount
- Piano dei conti: Mantieni puliti i tuoi bucket di cassa (ad esempio,
Assets:Bank:Checking,Assets:Bank:Savings,Liabilities:CreditCard:Amex). Gli actuals settimanali sono solo le gambeAssets:Bank:*— il conto carta esiste perché i regolamenti abbiano da dove provenire, non come seconda fonte di uscite. - Non usare il Conto economico come verifica: Il Conto economico di Fava è per competenza — registra gli acquisti con carta quando vengono addebitati e ignora il capitale del prestito — quindi sarà in disaccordo con questa previsione di cassa per design. La verifica di cassa è l'esportazione bean-query + riporto sopra (
yarn check:cash-flow-actuals), che deve collegarsi alla Cassa finale ogni settimana. - Documentazione: Quando hai una grande voce una tantum, allega il PDF della fattura nella tua cartella Beancount
documents/e collegalo nella colonna note della tua previsione.
Pacchetto per il board/investitori (una slide)
- Grafico: Un semplice grafico a linee della tua Cassa finale per settimana per tutte le 13 settimane. Aggiungi una linea orizzontale che mostra la tua cassa minima (floor).
- Tabella: Una piccola tabella che mostra i numeri di Cassa finale da W1 a W13, più un elenco puntato dei 5 maggiori afflussi e deflussi attesi nel trimestre.
- Note: Alcuni punti chiave sulle ipotesi principali che sono cambiate dall'ultimo aggiornamento e su eventuali trigger che hai raggiunto o prevedi di raggiungere.