Domanda e previsione

Forecast accuracy: quanto puoi sbagliare senza fare danni

Il MAPE dice quanto sbagli, il bias dice da che parte. Due previsioni con lo stesso identico MAPE possono costare l'una niente e l'altra ottocento euro al mese: qui c'è il conto, e il metodo per costruire le tue fasce di errore per orizzonte.

11 min di lettura 2.265 parole

Un forecast a tre giorni che sbaglia di quattro camere su centoventi non fa danni: è dentro il rumore normale di un albergo. Lo stesso errore di quattro camere, sempre in eccesso, ripetuto per trenta giorni, costa turni di pulizia inutili e un overbooking calcolato male. Quanto puoi sbagliare dipende dall’orizzonte, ma quello che fa davvero il danno è il segno dell’errore, non la sua dimensione.

La misura più usata, il MAPE, dice quanto sbagli in media in percentuale. È utile, ma da sola non basta: si può avere un MAPE ottimo ed essere ottimisti tutti i giorni. Serve affiancarle una misura con il segno, il bias, e serve leggere le due cose insieme.

Qui costruiamo tutto su una struttura dichiarata: un quattro stelle di 120 camere in una città d’arte del centro Italia, con una settimana di riferimento a metà maggio. Tutti i numeri che seguono sono costruiti su quella struttura, non sono medie di settore.

Che cosa si misura, e contro che cosa#

L’oggetto della misura sono le camere vendute per data di soggiorno. Non il ricavo, non l’occupazione percentuale, non il totale del mese. Le camere, giorno per giorno, perché è su quelle che si prendono le decisioni operative: quanti turni di pulizia, quanta colazione, quanto overbooking, quale prezzo.

Il ricavo si può misurare, ma va scomposto. L’errore relativo sul ricavo è circa la somma di due errori distinti:

ΔRRΔCC+ΔADRADR
(Δ R) / (R) ≈ (Δ C) / (C) + (Δ ADR) / (ADR)
il primo termine è l'errore relativo sul ricavo camere, il secondo l'errore relativo sulle camere vendute, il terzo l'errore relativo sulla tariffa media. Tutti e tre sono frazioni, non punti percentuali
L'errore sul ricavo nasconde due errori diversi

Se non li separi, un errore sulle camere compensato da un errore opposto sull’ADR ti fa credere di avere previsto bene. Misura prima le camere, poi l’ADR, poi eventualmente il ricavo.

Il secondo punto è il contro che cosa. Una previsione ha senso solo se è stata congelata a una certa distanza dalla data di soggiorno. Se confronti il consuntivo con la previsione che il sistema ha ricalcolato ieri sera, stai misurando quanto è bravo il sistema a copiare l’on the books, non quanto è bravo a prevedere. Serve una fotografia salvata a D-3, una a D-7, una a D-30, e ogni fotografia va confrontata solo con sé stessa.

MAPE: la formula, e un esempio su sette giorni#

Il MAPE, errore percentuale assoluto medio, è la media degli errori giornalieri espressi in percentuale del valore reale.

MAPE=1nt=1n|FtAt|At×100
MAPE = (1) / (n)∑_t=1^n (|F_t – A_t|) / (A_t) × 100
F con indice tcamere previste per la data tA con indice tcamere effettivamente vendute per la data tnnumero di date del periodole barre verticali indicano il valore assoluto
Il MAPE misura la distanza media, ma perde il segno

Il valore assoluto rende positivo ogni errore prima della media. È lì che si perde l’informazione più importante, ed è il motivo per cui il MAPE da solo non basta.

Ecco la settimana di riferimento. La previsione è stata congelata sette giorni prima di ogni data di soggiorno.

Data Previsto Venduto Errore Errore assoluto Errore %
Lunedì 12 78 82 -4 4 4,88%
Martedì 13 95 91 +4 4 4,40%
Mercoledì 14 101 97 +4 4 4,12%
Giovedì 15 99 104 -5 5 4,81%
Venerdì 16 112 108 +4 4 3,70%
Sabato 17 118 116 +2 2 1,72%
Domenica 18 70 63 +7 7 11,11%
Totale 673 661 +12 30

Hotel 120 camere, settimana di metà maggio, previsione congelata a 7 giorni

somma degli errori assoluti
30 camere
numero di date
7
somma degli errori percentuali
34,75 punti
MAPE, cioè 34,75 diviso 7
4,96%
MAE, cioè 30 diviso 7
4,29 camere al giorno
errore medio con segno, cioè +12 diviso 7
+1,71 camere al giorno

Un MAPE del 4,96% a sette giorni, su questa struttura, è un risultato buono. Ma guarda la colonna dell’errore con segno: cinque giorni su sette la previsione era in eccesso. Ci torniamo fra poco.

Perché il MAPE esplode sui numeri piccoli#

Il denominatore del MAPE è il valore reale. Quando il valore reale è piccolo, la stessa differenza in camere diventa una percentuale enorme. Domenica 18 l’errore è di 7 camere su 63 vendute: 11,11%. Le stesse 7 camere su un sabato da 116 sarebbero il 6,03%. Identico errore operativo, percentuale quasi doppia.

Su 120 camere, quelle 7 camere valgono 5,8 punti di occupazione in entrambi i casi. Ed è quella la grandezza che conta per decidere i turni.

Il problema diventa serio in tre situazioni.

  • Strutture piccole. Un affittacamere da 8 unità ha errori del 12,5% ogni volta che sbaglia di una singola camera. Il MAPE giornaliero è praticamente illeggibile.
  • Misura per segmento. Se il segmento corporate fa 6 camere in un giorno e ne avevi previste 9, il MAPE di quella riga è il 50%. La previsione di segmento non è sbagliata: è il MAPE a essere lo strumento sbagliato.
  • Bassa stagione e giorni morti. Con 12 camere vendute a febbraio ogni scostamento è a due cifre. E se un giorno vendi zero camere il MAPE non esiste, perché si dovrebbe dividere per zero.

C’è anche un’asimmetria che quasi nessuno nota: il MAPE punisce più la sovrastima della sottostima. Prevedere 20 camere quando ne vendi 10 dà il 100%; prevedere 10 quando ne vendi 20 dà il 50%. Lo stesso errore di dieci camere, due punteggi diversi.

La correzione più semplice è il WAPE, l’errore percentuale pesato: invece di fare la media delle percentuali, si divide la somma degli errori per la somma delle camere vendute.

WAPE=t=1n|FtAt|t=1nAt×100
WAPE = ∑_t=1^n |F_t – A_t|∑_t=1^n A_t × 100
F con indice tcamere previste per la data tA con indice tcamere vendute per la data tla somma corre su tutte le date del periodo
Il WAPE non si lascia dominare dai giorni piccoli

Sulla nostra settimana: 30 diviso 661 fa 4,54%. Il MAPE diceva 4,96%. La differenza è tutta domenica, che nel WAPE pesa per le camere che vale e non per la percentuale che produce.

MAE e RMSE: quando servono davvero#

Il MAE, errore assoluto medio, è la stessa cosa del MAPE ma espressa in camere invece che in percentuale. È la misura più onesta per parlare con la governante e con la cucina, perché le camere sono l’unità in cui loro lavorano.

MAE=1nt=1n|FtAt|
MAE = (1) / (n)∑_t=1^n |F_t – A_t|
F con indice tcamere previsteA con indice tcamere vendutennumero di date. Il risultato è in camere al giorno
Il MAE parla la lingua dei reparti: camere

Il RMSE, radice dell’errore quadratico medio, eleva al quadrato gli scarti prima di mediarli. Il risultato è che gli errori grandi pesano molto più di quelli piccoli.

RMSE=1nt=1n(FtAt)2
RMSE = (1) / (n)∑_t=1^n (F_t – A_t)^2
F con indice tcamere previsteA con indice tcamere vendutennumero di date. Anche il RMSE è espresso in camere
Il RMSE punisce i disastri isolati

Stessa settimana: MAE e RMSE a confronto

scarti al quadrato
16 + 16 + 16 + 25 + 16 + 4 + 49
somma degli scarti al quadrato
142
media dei quadrati, cioè 142 diviso 7
20,29
RMSE, cioè la radice quadrata di 20,29
4,50 camere
MAE
4,29 camere
rapporto fra RMSE e MAE
1,05

Quando RMSE e MAE sono vicini, come qui, gli errori sono distribuiti in modo uniforme: nessuna data è andata fuori controllo. Quando il RMSE è molto più grande del MAE, diciamo il doppio, significa che la media nasconde uno o due giorni disastrosi. Quei giorni vanno guardati uno per uno: quasi sempre c’è un gruppo entrato all’ultimo, una cancellazione grossa o un evento che non era nel calendario.

Regola pratica: il MAE per parlare con i reparti, il RMSE per capire se hai un problema di picchi, il WAPE per confrontare mesi diversi o strutture di dimensione diversa. Il MAPE tienilo per abitudine, ma non farci una politica sopra.

Il bias: l’errore che ha un segno#

Tutte le misure viste finora buttano via il segno. Il bias, o errore medio con segno, non lo butta via.

ME=1nt=1n(FtAt)
ME = (1) / (n)∑_t=1^n (F_t – A_t)
F con indice tcamere previsteA con indice tcamere vendutennumero di date. Il risultato è positivo se la previsione è in eccesso, negativo se è in difetto
Il bias è l'unica misura che dice da che parte sbagli

Da solo il ME è difficile da interpretare, perché non si sa se +1,71 camere siano poco o tanto. Si legge meglio in rapporto al MAE:

Rapporto di bias=MEMAE
Rapporto di bias = (ME) / (MAE)
MEerrore medio con segno, in camereMAEerrore assoluto medio, in camere. Il rapporto è un numero puro compreso fra -1 e +1
Il rapporto di bias dice quanta parte dell'errore è sistematica

Se vale zero, gli errori si compensano: sbagli in modo casuale, che è il massimo a cui si può aspirare. Se vale +1, ogni singolo giorno hai previsto in eccesso. Se vale -1, ogni singolo giorno in difetto. Un valore oltre 0,4 in valore assoluto è un errore sistematico: il modello, o la persona, ha una piega che va corretta.

Ecco perché il MAPE da solo inganna. Prendi la stessa settimana e una seconda previsione, chiamiamola previsione B, che sbaglia esattamente delle stesse quantità ma sempre nella stessa direzione: 86, 95, 101, 109, 112, 118, 70 camere.

Misura Previsione A Previsione B
MAE (camere al giorno) 4,29 4,29
MAPE 4,96% 4,96%
RMSE (camere) 4,50 4,50
Errore medio con segno +1,71 +4,29
Rapporto di bias +0,40 +1,00
Camere previste in più sulla settimana 12 30

Le prime tre righe sono identiche. Un cruscotto che mostra solo il MAPE dichiara che le due previsioni sono equivalenti. Non lo sono: la B sovrastima ogni singolo giorno, e la sovrastima si accumula.

L'errore che si vede più spesso

Misurare l’accuratezza solo sul totale del mese. Su trenta giorni con una media di 94 camere il consuntivo fa 2.820 camere-notte, e la previsione ne diceva 2.830: uno scarto dello 0,35%, che sembra un risultato eccellente. Ma quel totale nasce da errori giornalieri intorno al 5% che si sono compensati fra loro. Le decisioni si prendono sul giorno, non sul mese: se misuri sul mese non stai misurando niente di utile.

Quanto costa un bias ottimista#

Una previsione sistematicamente alta produce tre costi, e nessuno dei tre compare nel MAPE.

Il costo del lavoro programmato. Governante e ricevimento pianificano i turni sulla previsione. Se la previsione è alta, i turni sono troppi.

Trenta giorni di previsione B, hotel 120 camere

sovrastima media giornaliera
4,3 camere
giorni del mese
30
camere-notte previste e mai arrivate
129
camere pulite per turno
15
turni programmati in eccesso, cioè 129 diviso 15
8,6
costo pieno di un turno
95 EUR
costo del lavoro non necessario, cioè 8,6 per 95
817 EUR al mese

Ottocento euro al mese non sono un dramma isolato, ma sono quasi diecimila euro l’anno su una singola voce, prodotti da un errore che il cruscotto dichiarava sotto il 5%.

Il costo dell’overbooking mal tarato. L’overbooking si calcola sulle cancellazioni e sui no show attesi, e si somma alla previsione di occupazione. Se la previsione è già in eccesso di quattro camere, l’overbooking parte da una base gonfiata e i due errori si sommano. Il risultato sono camere vendute che non esistono, con il costo di mandare un cliente a dormire altrove.

Il costo delle decisioni di prezzo. Se credi di avere più domanda di quella che hai, tieni il prezzo alto troppo a lungo e chiudi i canali troppo presto. Il bias positivo diventa camere invendute a tariffa piena, che è il modo più silenzioso di perdere ricavo.

Il bias negativo, cioè la previsione sistematicamente bassa, è meno visibile ma non innocuo: apre tariffe scontate che non servivano e lascia il personale sotto organico nei giorni pieni.

Fasce di errore per orizzonte: si costruiscono, non si copiano#

Non esiste una soglia universale di errore accettabile. Dipende dalla dimensione della struttura, dal mix di segmenti, dall’anticipo medio di prenotazione. Una struttura corporate con anticipo mediano di quattro giorni ha una previsione a trenta giorni quasi cieca; un resort con anticipo mediano di sessanta giorni a trenta giorni sa già quasi tutto. La fascia si costruisce sui propri dati, e si ricostruisce ogni anno.

Il metodo è questo.

  1. Salva ogni giorno la fotografia della previsione per tutte le date future. Serve un archivio, anche solo un foglio: data di soggiorno, data della fotografia, camere previste.
  2. Dopo il consuntivo, per ogni data di soggiorno calcola l’errore a D-3, D-7 e D-30.
  3. Accumula almeno dodici settimane di date, separando i giorni forti della settimana da quelli deboli.
  4. Calcola MAE, MAPE e rapporto di bias per ciascun orizzonte.
  5. Prendi anche l’ottantesimo percentile dell’errore assoluto: è la fascia operativa, quella dentro cui cadono otto date su dieci.

Sulla struttura di esempio, applicando il metodo a una stagione di 84 date di soggiorno, i numeri sono usciti così. Sono i numeri di questo hotel: servono come esempio di forma, non come riferimento da adottare.

Orizzonte MAE (camere) Su 120 camere MAPE Rapporto di bias Fascia all’80%
D-3 3,6 3,0 punti 4,1% +0,15 ± 6 camere
D-7 5,4 4,5 punti 6,2% +0,22 ± 9 camere
D-30 11,8 9,8 punti 13,4% +0,41 ± 19 camere

Quello che si legge in una tabella così non è il livello assoluto, ma tre relazioni.

L’errore deve restringersi avvicinandosi alla data. Se il MAE a D-3 non è sensibilmente più piccolo di quello a D-7, la previsione non sta usando l’informazione che arriva con le prenotazioni: è un modello che guarda solo lo storico e ignora il libro.

Il bias deve restare vicino a zero a ogni orizzonte. Qui a D-30 vale +0,41, oltre la soglia: su questa struttura la previsione a lungo è ottimista, e va corretta con un fattore fisso prima ancora di toccare il modello.

La fascia all’80% è il numero da comunicare. Dire alla governante che a tre giorni siamo dentro sei camere otto volte su dieci è un’informazione con cui può lavorare. Dire che il nostro MAPE è 4,1% non lo è.

Il confronto contro un bersaglio mobile

Molti sistemi mostrano l’accuratezza confrontando il consuntivo con l’ultima previsione disponibile, quella della sera prima. Quel numero è sempre ottimo e non significa niente: alla vigilia le camere sono quasi tutte già prenotate, quindi il sistema non sta prevedendo, sta leggendo. Se il tuo cruscotto dichiara un’accuratezza del 98% e non dice a che distanza dalla data la previsione è stata congelata, non stai guardando l’accuratezza della previsione.

Cosa fare lunedì mattina#

  1. Apri un foglio con quattro colonne: data di soggiorno, data della fotografia, camere previste, camere vendute. Da oggi salva ogni giorno la previsione per i prossimi 45 giorni. Senza archivio non si misura niente.
  2. Sulle ultime quattro settimane già chiuse calcola MAE e MAPE giorno per giorno a D-7. Ti bastano due formule.
  3. Calcola l’errore medio con segno sulle stesse quattro settimane e dividilo per il MAE. Se il rapporto supera 0,4 in valore assoluto, hai un problema di bias e non di precisione.
  4. Se il bias c’è, applica subito una correzione fissa alla previsione, espressa in camere, e verificala dopo due settimane. Non aspettare di sistemare il modello.
  5. Separa il calcolo fra giorni forti e giorni deboli della settimana. Quasi sempre il bias sta tutto da una parte sola.
  6. Porta in riunione revenue una sola riga per orizzonte: MAE in camere e rapporto di bias. Lascia il MAPE nelle note.
  7. Quando il RMSE supera il doppio del MAE, vai a cercare i due o tre giorni responsabili e scrivi accanto che cosa è successo. È l’unico modo per capire se è un caso o un difetto del modello.

Da leggere dopo