Vai al contenuto

Excel per il portafoglio FIRE: template, formule, alert ribilanciamento

Struttura operativa di un foglio di calcolo per il portafoglio FIRE: transazioni, posizioni, allocazione, performance money-weighted e time-weighted, dividend log, alert di drift sopra il 5% e import quotazioni con GOOGLEFINANCE o Power Query.

10 min di letturaGuida approfondita

Su un PAC mensile portato avanti per dieci anni, il foglio di calcolo accumula tipicamente 200-300 righe di transazioni tra acquisti, dividendi e cedole. Calcolare il rendimento "vero" su quella massa di flussi non è banale: un CAGR semplice basato su valore iniziale e finale ignora completamente la sequenza dei versamenti, e può discostarsi del 2-3% annuo dal rendimento reale percepito dal portafoglio. Per questo la prima funzione che un foglio FIRE serio deve contenere è XIRR: il rendimento money-weighted su flussi non periodici, definito da Microsoft come la soluzione iterativa dell'equazione di valore attuale netto sui cash flow effettivi.

Perché un foglio di calcolo invece di un'app dedicata

Le app dedicate (Portfolio Performance, Sharesight, Curvo, Yapily-based aggregator) automatizzano l'import e calcolano gli indicatori out-of-the-box. Il prezzo è triplice: dipendenza dal fornitore per i dati storici, costi ricorrenti sopra una certa soglia di patrimonio o di transazioni, e una scatola nera che impedisce di capire come il rendimento è stato calcolato — distinzione non banale tra time-weighted e money-weighted, trattamento dei dividendi reinvestiti, gestione dei cambi valuta.

Un foglio di calcolo costruito a mano ha tre vantaggi operativi: ogni formula è ispezionabile, la logica di calcolo coincide con quella che si usa per controllare la dichiarazione dei redditi, e il file resta proprietà dell'utente anche se il broker chiude o cambia fornitore di reportistica. È un approccio più educativo che operativo: chi monitora il proprio portafoglio in Excel sa esattamente quanto ha pagato per ogni acquisto, quale è il costo medio ponderato di ogni posizione e quale è il rendimento effettivo dopo commissioni e tasse — informazioni che le app aggregate spesso semplificano o stimano.

Struttura del template: sei fogli, una sola fonte di verità

La struttura minima funzionale è composta da sei fogli con dipendenze a cascata: tutto parte dalle transazioni, e tutti gli altri fogli sono viste derivate. Questa separazione è la stessa adottata dai template open source raccolti nel Bogleheads Wiki e replicata da gran parte dei tracker community-maintained.

Foglio Scopo Formule chiave
Transazioni log immutabile di ogni operazione (acquisto, vendita, dividendo, cedola, commissione) input puro, nessuna formula — solo data, ticker, tipo, quantità, prezzo, controvalore
Posizioni quantità e costo medio ponderato per ticker SUMIFS, SUMPRODUCT per weighted avg cost
Quotazioni prezzo corrente per ogni ticker in portafoglio GOOGLEFINANCE o Power Query da Yahoo Finance
Allocation controvalore corrente per asset class e drift vs target VLOOKUP/XLOOKUP su Posizioni e Quotazioni
Performance XIRR money-weighted, time-weighted return, CAGR XIRR, PRODUCT di sub-period returns
Dividend log flusso cedole/dividendi annuo netto, yield on cost SUMIFS per anno e ticker

La separazione tra Transazioni (log) e Posizioni (vista aggregata) è il punto critico. Il foglio Transazioni non si modifica mai: ogni nuova operazione è una riga aggiuntiva in fondo, mai una sovrascrittura. Tutto il resto si ricalcola.

Le formule chiave: XIRR, TWR e costo medio ponderato

Il costo medio ponderato di una posizione è il numeratore di ogni calcolo successivo di plus/minusvalenza. La formula tipica nella colonna "Costo medio" del foglio Posizioni, dato un ticker in cella A2:

=SUMIFS(Transazioni!F:F; Transazioni!B:B; A2; Transazioni!C:C; "BUY") /
 SUMIFS(Transazioni!D:D; Transazioni!B:B; A2; Transazioni!C:C; "BUY")

dove F è il controvalore (prezzo × quantità + commissioni) e D è la quantità. Le vendite parziali con metodo LIFO/FIFO complicano lievemente la formula — il regime amministrato italiano usa LIFO, quindi vale la pena replicare quel metodo per coerenza con la documentazione del broker.

XIRR è la funzione che calcola il rendimento money-weighted annualizzato su una serie di flussi di cassa non periodici. La sintassi è:

=XIRR(flussi; date; [tentativo])

Con i versamenti come valori negativi, i prelievi e il valore corrente del portafoglio come positivi, XIRR restituisce il tasso di rendimento composto annuo che azzera il valore attuale netto della serie. Su un PAC decennale di 200 versamenti, XIRR riflette quanto effettivamente quel piano ha reso considerando il tempo in cui ogni euro è rimasto investito — molto più informativo di un CAGR che assumerebbe tutto il capitale presente dal giorno uno.

Time-weighted return (TWR) è la metrica che il CFA Institute raccomanda per confrontare il rendimento del portafoglio con un benchmark, perché neutralizza l'effetto dei flussi di cassa. Si calcola spezzando il periodo in sotto-periodi delimitati dai versamenti/prelievi, calcolando il rendimento di ogni sotto-periodo, e moltiplicando i fattori (1+r):

TWR = (1+r1) × (1+r2) × ... × (1+rn) - 1

In pratica: una colonna ausiliaria nel foglio Performance con il valore del portafoglio prima di ogni movimento e dopo il movimento, una colonna r_sub = (V_post - V_pre) / V_pre, e una formula =PRODUCT(1+colonna_r) - 1 per l'aggregato. Per confrontare il rendimento del proprio portafoglio con un FTSE All-World si usa TWR; per misurare quanto si è effettivamente guadagnato in euro sui flussi propri si usa XIRR. La differenza tra le due metriche è esattamente l'effetto del market timing dei versamenti.

Import quotazioni: GOOGLEFINANCE, Power Query, alternative

In Google Sheets la funzione GOOGLEFINANCE copre la maggior parte dei casi per ETF quotati su Borsa Italiana, Xetra e LSE. La sintassi documentata da Google Support per un prezzo corrente è:

=GOOGLEFINANCE("BIT:VWCE"; "price")

Per ETF UCITS armonizzati la copertura è buona ma non totale: alcuni ISIN poco scambiati o ETF appena lanciati possono restituire #N/A. In quei casi si ricorre a un fallback su IMPORTXML puntato alla pagina pubblica di justETF o Borsa Italiana, accettando che la formula si rompa se il sito cambia struttura HTML.

In Excel desktop la soluzione più robusta è Power Query con una connessione web a Yahoo Finance o a un endpoint pubblico tipo query1.finance.yahoo.com. Power Query permette di programmare l'aggiornamento all'apertura del file e gestisce i retry. Per portafogli sopra le 30-40 posizioni vale la pena un piccolo script in Office Scripts (Excel online) o in VBA che batchi le richieste, evitando il rate limiting dei server gratuiti.

Una terza opzione — più stabile ma manuale — è incollare ogni mese la lista NAV ufficiali dalle pagine prodotto degli emittenti (iShares, Vanguard, Amundi). Per chi monitora il portafoglio una volta al mese in occasione del refill del PAC, il manuale è spesso preferibile: nessuna dipendenza, nessuna formula rotta, e l'esercizio di leggere la pagina del fondo riporta l'attenzione su TER, AUM e tracking difference, tutte metriche utili che un import automatico nasconde.

Allocation grafica e alert di drift

Il foglio Allocation contiene una pivot semplice (asset class × controvalore corrente) e un grafico a torta. Il valore reale però sta nelle due colonne accanto: % effettiva e drift vs target.

Drift % = (% effettiva - % target)
Alert  = SE(ASS(Drift%) > 5%; "RIBILANCIA"; "OK")

La soglia del 5% in valore assoluto è la convenzione più diffusa nella letteratura sul ribilanciamento (Vanguard la usa nei suoi white paper insieme a una soglia temporale annuale; approfondiamo nella guida al ribilanciamento del portafoglio). Una formattazione condizionale che colora di rosso la riga quando l'alert è attivo rende il foglio leggibile a colpo d'occhio durante la review mensile.

Per chi ribilancia con nuovi versamenti invece di vendere — approccio fiscalmente più efficiente in Italia data l'aliquota 26% sui capital gain — è utile una colonna aggiuntiva "Importo riequilibrio" che calcola quanto andrebbe versato sull'asset sottopesato per riportarlo a target senza vendere nulla. Questa logica è lo stesso principio illustrato nei calcoli del simulatore PAC ETF.

Dividend log, cash flow e collegamento con il piano FIRE

Il dividend log è una vista del foglio Transazioni filtrata sui tipi "DIV" e "CEDOLA", aggregata per anno fiscale e per ticker. Le metriche utili sono tre: dividendo netto annuo totale (al netto del 26% o 12,5% per titoli di Stato), yield on cost (dividendo annuo / costo medio ponderato della posizione) e tasso di crescita annuo composto del dividendo (CAGR del flusso su 5-10 anni).

Lo yield on cost è la metrica più fraintesa: non è un rendimento confrontabile con il tasso di un BTP nuovo, ma una misura di quanto il flusso passivo è cresciuto rispetto al capitale investito. È particolarmente rilevante per chi struttura un FIRE basato su flussi cedolari, e va letta insieme al tracking difference dell'ETF se si confrontano fondi a distribuzione di emittenti diversi.

Il foglio Cash flow chiude il cerchio: aggrega versamenti annui (PAC), prelievi futuri (in fase di decumulo) e dividendi netti, e li confronta con il fabbisogno annuo. È il foglio operativo che alimenta la checklist annuale del risparmiatore FIRE e il dimensionamento dei secchi nella bucket strategy a 3 secchi. I migliori ETF da inserire in questa struttura sono trattati nella guida ETF per FIRE.

Template open source da cui partire

Reinventare la struttura da zero non ha senso. Tre punti di partenza maturi e gratuiti:

  • I template raccolti nel Bogleheads Wiki coprono tracking, asset allocation e simulazione del decumulo, sviluppati e mantenuti dalla community da quasi 20 anni. Sono in inglese e con tassazione USA, ma la struttura è adattabile.
  • Portfolio Performance (open source, Java, multipiattaforma) non è un foglio Excel ma può esportare in CSV ogni metrica, ed è uno standard di fatto tra gli investitori europei DIY. Utile come benchmark per validare le proprie formule.
  • I template di Curvo e Just ETF (in parte gratuiti, in parte a pagamento) sono interessanti soprattutto come reference per la rappresentazione grafica dell'allocation; le formule sottostanti sono replicabili in Excel in poche ore.

In tutti i casi la regola operativa è sempre la stessa: usare un template altrui per imparare la struttura, poi riscriverlo nel proprio foglio. Solo le formule scritte e capite a mano sono affidabili nel lungo periodo.

Sintesi operativa

  • Sei fogli a cascata: Transazioni (log immutabile), Posizioni, Quotazioni, Allocation, Performance, Dividend log. Nessuna sovrascrittura sul foglio Transazioni.
  • XIRR per il rendimento money-weighted, TWR per confrontare con un benchmark: due metriche complementari, mai una sola.
  • Costo medio ponderato calcolato in regime LIFO per coerenza con la documentazione del broker italiano.
  • Import quotazioni con GOOGLEFINANCE su Google Sheets, Power Query o copia manuale dei NAV emittente su Excel desktop.
  • Alert di drift sopra il 5% in valore assoluto sull'asset class, con suggerimento di ribilanciamento via nuovi versamenti dove possibile.
  • Template open source (Bogleheads, Portfolio Performance) come reference, mai come prodotto chiuso da copiare.

Domande frequenti

XIRR e CAGR danno risultati diversi: quale è "giusto"?

Sono entrambi corretti ma rispondono a domande diverse. CAGR ipotizza tutto il capitale investito al tempo zero e calcola il tasso composto annuo che porta dal valore iniziale a quello finale. XIRR considera la sequenza reale dei flussi e restituisce il rendimento money-weighted: quanto effettivamente ha reso il tuo piano di versamenti. Per un PAC decennale la differenza tra le due metriche può essere di 1-3 punti annui. Il CAGR semplice è quasi sempre fuorviante per un investitore che versa periodicamente.

Posso usare Google Sheets per un portafoglio sopra 100 mila euro?

Sì, la dimensione del patrimonio non cambia la complessità del foglio. Quello che cambia è il numero di transazioni e il numero di asset class: sopra le 1000 righe di transazioni Google Sheets resta usabile ma l'aggiornamento di GOOGLEFINANCE diventa più lento. A quel punto un Excel desktop con Power Query o Portfolio Performance offrono performance migliori, ma è una questione di comfort operativo, non di affidabilità.

Come gestisco i cambi valuta nel foglio?

Per ETF UCITS armonizzati quotati in EUR il problema non si pone: la conversione è già fatta dal market maker e il broker fattura tutto in euro. Per posizioni in USD o GBP serve una colonna aggiuntiva con il tasso di cambio alla data della transazione (importabile via GOOGLEFINANCE("CURRENCY:USDEUR") o via Power Query) e una colonna "controvalore EUR" che neutralizza l'effetto cambio per il calcolo XIRR. La distinzione tra rendimento in valuta locale e rendimento in EUR diventa visibile esplicitamente.

Quanto tempo richiede la manutenzione mensile del foglio?

Una volta costruita la struttura, l'aggiornamento mensile è 10-15 minuti: inserire le transazioni del mese nel log, verificare che le quotazioni si siano aggiornate, leggere la riga di alert nel foglio Allocation, annotare eventuali ribilanciamenti previsti per il versamento successivo. La review trimestrale completa (riconciliazione con estratto conto del broker, controllo dividendi incassati, verifica formule) richiede 30-45 minuti.

Metti in pratica

Usa i nostri simulatori gratuiti per applicare i concetti di questo articolo ai tuoi numeri reali.

Newsletter mensile

La Cedola

Analisi fiscali, aggiornamenti normativi e simulazioni di portafoglio. Un'email al mese, zero spam, zero affiliazioni.

Indipendente al 100% Cancellabile in un click Ogni primo lunedì del mese

Nessun dato condiviso con terze parti.