{"id":1407,"date":"2021-09-10T14:52:00","date_gmt":"2021-09-10T12:52:00","guid":{"rendered":"https:\/\/brentasoft.com\/blog\/demand-forecasting-prophet-arima-pmi-2021\/"},"modified":"2026-06-03T15:48:28","modified_gmt":"2026-06-03T13:48:28","slug":"demand-forecasting-prophet-arima-pmi-2021","status":"publish","type":"post","link":"https:\/\/brentasoft.com\/blog\/demand-forecasting-prophet-arima-pmi-2021\/","title":{"rendered":"Demand forecasting con Prophet e ARIMA: guida pratica PMI (2021)"},"content":{"rendered":"<p>La fine del 2020 e tutto il 2021 hanno scardinato qualsiasi certezza sulla previsione della domanda. Lockdown a fasi alterne, riapertura disordinata dei consumi, crisi dei semiconduttori, costi container quintuplicati, scaffali vuoti in piena stagione. Le PMI italiane si sono trovate strette tra due fuochi: <strong>stock-out<\/strong> che bruciano fatturato e clienti perduti, oppure <strong>overstock<\/strong> che immobilizza cassa e occupa magazzini gia saturi. In questo contesto il vecchio file Excel con la media mobile a 3 mesi non basta piu, perche estrapola un passato che non somiglia al presente.<\/p>\n<p>La buona notizia e che nel 2021 il <strong>machine learning<\/strong> applicato al <strong>demand forecasting<\/strong> e diventato finalmente accessibile: librerie open source mature, dataset pubblici, laptop sufficienti per modelli statistici seri, cloud a consumo per training piu pesanti. Una PMI manifatturiera o un distributore food non ha piu bisogno di assumere un team di data scientist per partire: bastano un analista con buone basi Python, due settimane di lavoro e dati di vendita degli ultimi 24-36 mesi.<\/p>\n<p>In questa guida vediamo cosa significa fare previsione della domanda con metodi statistici e ML, confrontiamo i due strumenti dominanti del 2021 (<strong>Prophet<\/strong> di Facebook e <strong>ARIMA<\/strong>\/<strong>SARIMA<\/strong> della famiglia <strong>statsmodels<\/strong>), affrontiamo feature engineering reale (festivita italiane, promozioni, eventi), metriche di validazione (<strong>MAPE<\/strong>, <strong>MAE<\/strong>, <strong>RMSE<\/strong>) e integrazione con <strong>ERP<\/strong>\/<strong>MRP<\/strong> per re-order point dinamici. Chiudiamo con un caso reale di una PMI emiliana del food retail che ha tagliato lo stock-out del 47% in sei mesi, e una roadmap pratica di 60 giorni per partire.<\/p>\n<div class=\"tldr-box\" style=\"background:#f0f6ff;border-left:4px solid #1e60c9;padding:18px 22px;margin:24px 0;border-radius:6px\">\n<p><strong>TL;DR<\/strong><\/p>\n<ul>\n<li><strong>Demand forecasting<\/strong> oggi e una commodity tecnica: Python piu <strong>Prophet<\/strong> o <strong>statsmodels<\/strong> bastano per il 90% dei casi PMI.<\/li>\n<li><strong>Prophet<\/strong> e piu rapido da mettere in produzione, gestisce festivita ed eventi nativamente, perdona dati sporchi e missing.<\/li>\n<li><strong>ARIMA<\/strong>\/<strong>SARIMA<\/strong> vince in interpretabilita e su serie stabili con stagionalita marcata; richiede pero piu cura sui residui.<\/li>\n<li>Metrica giusta dipende dal caso: <strong>MAPE<\/strong> per executive, <strong>MAE<\/strong> per pianificazione operativa, <strong>RMSE<\/strong> quando gli errori grandi sono molto costosi.<\/li>\n<li>Caso reale food retail: -47% stock-out, -32% overstock, <strong>ROI<\/strong> 6 mesi, investimento circa 18.000 euro.<\/li>\n<li>Roadmap 60 giorni: dataset, baseline naive, Prophet, validazione walk-forward, integrazione gestionale.<\/li>\n<\/ul>\n<\/div>\n<h2>Cosa significa fare demand forecasting nel 2021<\/h2>\n<p>Il <strong>demand forecasting<\/strong> e l&#8217;attivita di stimare la domanda futura di un prodotto o servizio per supportare decisioni di acquisto, produzione, capacita e prezzo. In una PMI italiana finisce per toccare quattro reparti: <strong>acquisti<\/strong> (quanto ordinare al fornitore), <strong>produzione<\/strong> (cosa schedulare), <strong>commerciale<\/strong> (target e quota), <strong>finanza<\/strong> (cash flow e working capital). Non e solo un numero in fondo a un report: e l&#8217;input principale del processo <strong>S&amp;OP<\/strong> (Sales and Operations Planning) che allinea domanda e capacita su orizzonti da 4 a 18 mesi.<\/p>\n<p>Applicazioni tipiche nel mondo PMI:<\/p>\n<ul>\n<li><strong>Retail e GDO locale<\/strong>: previsione SKU per punto vendita per definire ordini settimanali, ridurre rotture e scarti su freschissimi.<\/li>\n<li><strong>E-commerce<\/strong>: previsione campagne per dimensionare scorte pre-Black Friday e post-saldi.<\/li>\n<li><strong>Manifatturiero<\/strong>: previsione domanda a livello famiglia di prodotto per dimensionare materie prime e turni.<\/li>\n<li><strong>Distribuzione B2B<\/strong>: previsione per cliente o per area geografica per ottimizzare giri consegna e stock di filiale.<\/li>\n<li><strong>Servizi<\/strong>: previsione di volume chiamate, ticket, appuntamenti per dimensionare il personale.<\/li>\n<\/ul>\n<p>Per approfondire i numeri da monitorare in parallelo, vale la pena leggere la nostra guida ai <a href=\"https:\/\/brentasoft.com\/blog\/kpi-logistica-magazzino-otif-2021\/\">KPI di logistica e magazzino<\/a> e l&#8217;articolo dedicato al <a href=\"https:\/\/brentasoft.com\/blog\/demand-planning-erp-guida-2021\/\">demand planning lato ERP<\/a>: la previsione e solo l&#8217;inizio, poi serve un sistema gestionale che la trasformi in ordini reali.<\/p>\n<h2>Metodi naive: moving average, exponential smoothing e quando bastano<\/h2>\n<p>Prima di tirare fuori l&#8217;artiglieria, va detto chiaramente che in molti casi PMI un metodo naive ben fatto e gia un enorme passo avanti rispetto al &#8220;facciamo come l&#8217;anno scorso&#8221;. I metodi naive sono:<\/p>\n<ul>\n<li><strong>Naive forecast<\/strong>: la previsione di domani e uguale all&#8217;ultimo valore osservato. Semplice ma sorprendentemente competitivo su serie molto rumorose.<\/li>\n<li><strong>Moving average<\/strong> (media mobile): media degli ultimi N periodi. Smorza il rumore, ma reagisce lentamente ai cambi di trend.<\/li>\n<li><strong>Exponential smoothing semplice<\/strong>: media pesata che da piu peso alle osservazioni recenti tramite un parametro alpha tra 0 e 1.<\/li>\n<li><strong>Holt-Winters<\/strong>: estensione che modella esplicitamente trend e stagionalita additiva o moltiplicativa. Disponibile in <strong>statsmodels<\/strong> come ExponentialSmoothing.<\/li>\n<\/ul>\n<p>Quando bastano: prodotti maturi con domanda stabile, orizzonti corti (1-4 settimane), poche SKU. Quando crollano: shock esterni, lanci di prodotto, promo aggressive, stagionalita complessa. Una regola pratica: se la <strong>MAPE<\/strong> del modello naive scende sotto al 15-18% sulla vostra serie, non avete bisogno di nient&#8217;altro. Se sta sopra al 30%, e ora di passare a modelli statistici o ML.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/brentasoft.com\/blog\/wp-content\/uploads\/2021\/09\/img_w36_2_inline1.jpg\" alt=\"Foglio di calcolo aperto su laptop con grafico di vendita - punto di partenza per la previsione naive in PMI\" title=\"Excel come baseline per il forecasting\" loading=\"lazy\" style=\"max-width:100%;height:auto;border-radius:8px;margin:18px 0\" \/><\/p>\n<h2>ARIMA, SARIMA e Holt-Winters: modelli statistici classici<\/h2>\n<p>Il salto di qualita successivo si chiama <strong>ARIMA<\/strong> (AutoRegressive Integrated Moving Average), formalizzato da Box e Jenkins gia negli anni Settanta ma diventato facile da usare grazie a <strong>statsmodels<\/strong> e <strong>pmdarima<\/strong>. Tre componenti:<\/p>\n<ul>\n<li><strong>AR<\/strong> (p): dipendenza dal passato lineare, &#8220;il valore di oggi dipende dai p valori precedenti&#8221;.<\/li>\n<li><strong>I<\/strong> (d): differenziazione, per rendere la serie stazionaria togliendo trend.<\/li>\n<li><strong>MA<\/strong> (q): dipendenza dagli errori passati.<\/li>\n<\/ul>\n<p><strong>SARIMA<\/strong> aggiunge una componente stagionale (P, D, Q, s) e diventa molto utile su serie con pattern settimanali o annuali marcati. <strong>Holt-Winters<\/strong> (esponenziale triplo) e una scorciatoia piu robusta quando la stagionalita e regolare e non avete voglia di stimare 7 parametri.<\/p>\n<p>Punti di forza: alta <strong>interpretabilita<\/strong> (potete spiegare il modello a un controller), buona performance su serie pulite e regolari, integrazione facile con statsmodels e con la familia <strong>scikit-learn<\/strong>-compatible di pmdarima per auto_arima. Punti deboli: serve preprocessing rigoroso, test di stazionarieta (Dickey-Fuller), gestione manuale di outlier, non sopporta dati missing senza ricodifica e fatica con regressori esterni complessi (promozioni multiple sovrapposte, eventi rari).<\/p>\n<h2>Facebook Prophet: perche e diventato lo standard PMI nel 2021<\/h2>\n<p>Quando Facebook ha pubblicato <strong>Prophet<\/strong> nel 2017 come progetto open source, l&#8217;obiettivo dichiarato era &#8220;rendere il forecasting accessibile agli analisti non statistici&#8221;. Nel 2021 la promessa si e in larga parte realizzata: <strong>Prophet 1.0<\/strong> e stato rilasciato a marzo del 2021 con backend Stan stabilizzato e bug fix importanti su gestione festivita e changepoint detection. La ragione del successo nelle PMI e una sola: funziona out of the box.<\/p>\n<p>Cosa fa <strong>Prophet<\/strong> sotto al cofano:<\/p>\n<ul>\n<li>Decompone la serie in <strong>trend<\/strong>, <strong>stagionalita<\/strong> (annuale, settimanale, giornaliera) e <strong>holiday effects<\/strong>.<\/li>\n<li>Modella il trend come piecewise linear o logistic con changepoint automatici.<\/li>\n<li>Gestisce nativamente i missing data e gli outlier in fase di fitting bayesiano.<\/li>\n<li>Espone parametri &#8220;umani&#8221; interpretabili (changepoint_prior_scale, holidays_prior_scale).<\/li>\n<\/ul>\n<p>Tradotto in pratica: si passa da pandas DataFrame con colonne &#8220;ds&#8221; e &#8220;y&#8221; al modello in due righe di codice. Tre righe se si aggiungono le festivita italiane via add_country_holidays(country_name=&#8217;IT&#8217;). La curva di apprendimento e bassissima e il modello e robusto su serie rumorose. Lo svantaggio principale e una certa opacita rispetto a un ARIMA &#8220;manuale&#8221;: le intuizioni statistiche piu sottili si perdono.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/brentasoft.com\/blog\/wp-content\/uploads\/2021\/09\/img_w36_2_inline2.png\" alt=\"Codice Python in Jupyter Notebook che addestra un modello Prophet per la previsione della domanda\" title=\"Stack Python per il forecasting nel 2021\" loading=\"lazy\" style=\"max-width:100%;height:auto;border-radius:8px;margin:18px 0\" \/><\/p>\n<h2>Confronto pratico Prophet vs ARIMA su un dataset retail<\/h2>\n<p>Per dare numeri concreti, prendiamo un dataset interno di un distributore alimentare emiliano (anonimizzato): vendite settimanali di una linea di pasta secca, 156 settimane, picchi a Natale e Pasqua, calo estivo, due promozioni l&#8217;anno. Holdout sulle ultime 26 settimane, walk-forward validation a step 4.<\/p>\n<table style=\"width:100%;border-collapse:collapse;margin:18px 0\">\n<thead>\n<tr style=\"background:#f5f5f5\">\n<th style=\"padding:10px;border:1px solid #ddd;text-align:left\">Modello<\/th>\n<th style=\"padding:10px;border:1px solid #ddd\">MAPE<\/th>\n<th style=\"padding:10px;border:1px solid #ddd\">MAE (cartoni)<\/th>\n<th style=\"padding:10px;border:1px solid #ddd\">RMSE<\/th>\n<th style=\"padding:10px;border:1px solid #ddd\">Tempo training<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"padding:10px;border:1px solid #ddd\">Naive (ultimo valore)<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">28,4%<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">214<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">298<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">istantaneo<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:10px;border:1px solid #ddd\">Moving average 4w<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">22,1%<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">167<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">241<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">istantaneo<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:10px;border:1px solid #ddd\"><strong>Holt-Winters<\/strong><\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">14,8%<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">112<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">163<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">2 sec<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:10px;border:1px solid #ddd\"><strong>SARIMA<\/strong> (2,1,1)(1,1,1,52)<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">11,3%<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">85<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">128<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">38 sec<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:10px;border:1px solid #ddd\"><strong>Prophet<\/strong> + holidays IT<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">9,7%<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">73<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">109<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">11 sec<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:10px;border:1px solid #ddd\"><strong>Prophet<\/strong> + holidays + regressori promo<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">7,2%<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">52<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">78<\/td>\n<td style=\"padding:10px;border:1px solid #ddd;text-align:center\">14 sec<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Lettura: il salto qualitativo arriva con la modellazione esplicita di stagionalita ed eventi. <strong>Prophet<\/strong> con regressori promo e nettamente il miglior compromesso prestazioni\/effort per questa serie. <strong>SARIMA<\/strong> resta competitivo se serve interpretabilita statistica. Naive e moving average vanno bene solo come baseline di sanity check.<\/p>\n<h2>Feature engineering 2021: festivita italiane, eventi, promozioni<\/h2>\n<p>La qualita del forecast nel mondo reale non dipende quasi mai dalla scelta del modello: dipende dalle <em>feature<\/em> esogene che riuscite a inserire. Le piu importanti per una PMI italiana:<\/p>\n<ul>\n<li><strong>Festivita nazionali italiane<\/strong>: in Prophet basta add_country_holidays(country_name=&#8217;IT&#8217;). Catturate Natale, Capodanno, Epifania, Pasqua (variabile), 25 aprile, 1 maggio, 2 giugno, Ferragosto, Tutti i Santi, 8 dicembre.<\/li>\n<li><strong>Festivita locali<\/strong>: santo patrono, sagre. Vanno aggiunti manualmente come custom holiday DataFrame.<\/li>\n<li><strong>Eventi commerciali<\/strong>: Black Friday, Cyber Monday, Single&#8217;s Day, saldi gennaio e luglio. Da modellare come holiday con finestra (lower_window, upper_window).<\/li>\n<li><strong>Promozioni<\/strong>: sconto attivo si\/no come regressore binario, oppure intensita promozionale numerica (% sconto).<\/li>\n<li><strong>Meteo<\/strong>: per food, gelati, bevande, abbigliamento stagionale. API gratuite come Open-Meteo o storico ARPA.<\/li>\n<li><strong>Calendario scolastico<\/strong>: per famiglie, libri, articoli sportivi.<\/li>\n<li><strong>Ciclo stipendi<\/strong>: per beni di consumo (effetto &#8220;fine mese&#8221;).<\/li>\n<\/ul>\n<p>Una regola operativa: una feature merita di stare nel modello se la <strong>MAPE<\/strong> di validazione scende almeno del 5% relativo dopo averla aggiunta. Sotto quella soglia, e rumore mascherato da segnale.<\/p>\n<h2>Stack Python 2021: pandas, NumPy, Prophet, statsmodels, scikit-learn<\/h2>\n<p>Lo stack tipico per il <strong>demand forecasting<\/strong> in una PMI nel 2021 e fatto di librerie consolidate:<\/p>\n<ul>\n<li><strong>Python 3.9<\/strong>: la versione standard sui sistemi moderni, con buon supporto per type hints e performance migliorate.<\/li>\n<li><strong>pandas 1.3<\/strong>: gestione DataFrame, serie temporali, resampling. La nuova API di groupby e enormemente piu pulita.<\/li>\n<li><strong>NumPy 1.21<\/strong>: aritmetica vettoriale di base, dietro tutte le altre librerie.<\/li>\n<li><strong>Prophet 1.0<\/strong>: rilasciato a marzo 2021 con backend Stan stabile via cmdstanpy.<\/li>\n<li><strong>statsmodels 0.12<\/strong>: ARIMA, SARIMA, Holt-Winters, VAR, test statistici.<\/li>\n<li><strong>scikit-learn 0.24<\/strong>: pipeline, cross-validation temporale (TimeSeriesSplit), metriche.<\/li>\n<li><strong>pmdarima 1.8<\/strong>: auto_arima per esplorazione automatica dei parametri ARIMA.<\/li>\n<li><strong>matplotlib<\/strong>, <strong>seaborn<\/strong>, <strong>plotly<\/strong>: visualizzazione di residui, previsioni, intervalli di confidenza.<\/li>\n<\/ul>\n<p>Modelli ML &#8220;moderni&#8221; che valeva la pena valutare nel 2021 per casi complessi: <strong>XGBoost<\/strong> e <strong>LightGBM<\/strong> con feature lag e rolling, particolarmente forti quando avete decine di SKU correlate; <strong>TFP STS<\/strong> (TensorFlow Probability Structural Time Series) per problemi gerarchici; <strong>Pyro<\/strong> per modelli bayesiani custom. Tutto su laptop con 16 GB di RAM e Jupyter Notebook, oppure su <strong>Google Colab<\/strong> gratuito per training piu pesanti.<\/p>\n<p>Quando il volume cresce o serve schedulazione, le opzioni cloud del 2021 erano <strong>AWS Forecast<\/strong> (servizio managed AWS), <strong>Azure Machine Learning<\/strong> con automated ML, e il neonato <strong>Vertex AI Forecast<\/strong> di Google Cloud (lanciato proprio nel 2021). Per la maggior parte delle PMI italiane resta pero piu sensato partire on-premise o su una VM dedicata: si controlla il costo, si mantengono i dati in casa e si evita lock-in.<\/p>\n<h2>Validazione: MAPE, MAE, RMSE e cross-validation temporale<\/h2>\n<p>Senza una metrica di validazione coerente, il forecasting diventa religione. Le tre metriche cardine:<\/p>\n<ul>\n<li><strong>MAPE<\/strong> (Mean Absolute Percentage Error): errore in %, intuitivo per i non tecnici. Difetto: esplode quando il valore reale e vicino a zero, sbilanciata verso sottostime.<\/li>\n<li><strong>MAE<\/strong> (Mean Absolute Error): errore assoluto medio, in unita native (pezzi, euro). Utile per pianificazione operativa quando serve sapere &#8220;di quanti pezzi sbaglio in media&#8221;.<\/li>\n<li><strong>RMSE<\/strong> (Root Mean Square Error): penalizza piu severamente gli errori grandi. Da usare quando un errore grande costa molto di piu di tanti errori piccoli (es. stock-out di prodotti ad alto margine).<\/li>\n<\/ul>\n<p>Quale scegliere? Una buona pratica e calcolarle tutte e tre, ma scegliere una sola come metrica primaria di selezione modello. Per executive reporting: <strong>MAPE<\/strong>. Per pianificazione acquisti: <strong>MAE<\/strong>. Per gestione rischio stock-out: <strong>RMSE<\/strong>.<\/p>\n<p>Altrettanto importante e la <strong>cross-validation temporale<\/strong>: NON si puo usare K-Fold standard sulle serie storiche, perche si rischia di addestrare sul futuro per predire il passato. Si usa <strong>walk-forward validation<\/strong> (rolling origin): si parte con un training set fisso, si predice il periodo successivo, si include quel periodo nel training, si predice il successivo, e cosi via. Sia <strong>Prophet<\/strong> (cross_validation) sia <strong>scikit-learn<\/strong> (TimeSeriesSplit) supportano questo schema in due righe.<\/p>\n<h2>Integrazione con ERP\/MRP: re-order point dinamico<\/h2>\n<p>Una previsione che non finisce mai in un sistema di gestione resta un esercizio accademico. Il punto di contatto piu naturale e il <strong>re-order point<\/strong>: la soglia di stock sotto la quale l&#8217;<strong>ERP<\/strong> genera un ordine di acquisto al fornitore. La formula classica e:<\/p>\n<p style=\"background:#f5f5f5;padding:12px;border-radius:6px;font-family:monospace;text-align:center\">re-order point = (domanda media * lead time) + scorta di sicurezza<\/p>\n<p>La differenza nel 2021 e che la <strong>domanda media<\/strong> e la <strong>scorta di sicurezza<\/strong> non sono piu statiche, ma calcolate dinamicamente dal modello di forecasting. La pipeline tipica:<\/p>\n<ol>\n<li>Job notturno schedulato (cron, Airflow, o scheduler interno) ricalcola la previsione per ogni SKU su orizzonte di 4-8 settimane.<\/li>\n<li>Lo script calcola domanda attesa nel lead time, deviazione standard dei residui, e applica un fattore Z corrispondente al livello di servizio target (es. 1,65 per servizio al 95%).<\/li>\n<li>Aggiorna via API o tramite tabella di raccordo i campi &#8220;punto di riordino&#8221; e &#8220;stock di sicurezza&#8221; del gestionale.<\/li>\n<li>Il gestionale, quando riceve la vendita successiva, confronta giacenza con re-order point aggiornato e propone l&#8217;ordine.<\/li>\n<\/ol>\n<p>Per una panoramica piu strutturata dell&#8217;integrazione tra previsione e gestionale e dei processi <strong>MRP<\/strong> nel manifatturiero, vedi le nostre guide su <a href=\"https:\/\/brentasoft.com\/blog\/erp-manifatturiero-mrp-guida-2021\/\">ERP manifatturiero e MRP<\/a> e su <a href=\"https:\/\/brentasoft.com\/blog\/automazione-magazzino-guida-pmi-2021\/\">automazione del magazzino<\/a>. Lato architettura, conviene quasi sempre esporre il modello come microservizio interno (Flask o FastAPI) che il gestionale chiama via REST: si separa il ciclo di vita del modello da quello dell&#8217;<strong>ERP<\/strong>.<\/p>\n<h2>Errori comuni: i sei modi piu rapidi di rovinare un forecast<\/h2>\n<ol>\n<li><strong>Training su periodo troppo corto<\/strong>: 6-12 mesi di storico non bastano a catturare stagionalita annuale. Minimo 24 mesi, idealmente 36+.<\/li>\n<li><strong>Ignorare i changepoint di trend<\/strong>: la pandemia ha creato discontinuita strutturali in molte serie. Trattare il pre-Covid come &#8220;outlier&#8221; o spezzare la serie con dummy variable di regime.<\/li>\n<li><strong>No cross-validation temporale<\/strong>: usare random split su time series. Errore grave, sovrastima la performance.<\/li>\n<li><strong>Modelli unici per migliaia di SKU<\/strong>: spesso conviene approccio gerarchico (categoria, brand, SKU) o cluster di SKU simili. <strong>Prophet<\/strong> per categoria + disaggregazione proporzionale e una strategia robusta.<\/li>\n<li><strong>Non monitorare il modello in produzione<\/strong>: la performance si degrada nel tempo (concept drift). Serve un job di monitoraggio settimanale che ricalcola <strong>MAPE<\/strong> sulle previsioni in uscita rispetto al consuntivo.<\/li>\n<li><strong>Confondere previsione e budget<\/strong>: il forecast e ipotesi piu probabile; il budget e impegno commerciale. Vanno tenuti separati, riconciliati ma mai sovrapposti.<\/li>\n<\/ol>\n<h2>Caso reale: PMI emiliana food retail, -47% stock-out in 6 mesi<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/brentasoft.com\/blog\/wp-content\/uploads\/2021\/09\/img_w36_2_inline3.jpg\" alt=\"Scaffalature di supermercato piene di prodotti alimentari - caso studio food retail PMI\" title=\"Caso reale: food retail emiliano riduce stock-out del 47%\" loading=\"lazy\" style=\"max-width:100%;height:auto;border-radius:8px;margin:18px 0\" \/><\/p>\n<p>Cliente: distributore alimentare emiliano con 4 punti vendita e una piattaforma di consegne a HoReCa. Catalogo di 2.400 SKU attivi, fatturato annuo circa 9 milioni di euro nel 2020. Problema iniziale: <strong>stock-out<\/strong> medio del 6,8% misurato sugli ordini ricevuti (riga ordine non evasa per mancanza prodotto), overstock cronico su categorie a bassa rotazione, capitale circolante immobilizzato per circa 380.000 euro.<\/p>\n<p>Approccio:<\/p>\n<ul>\n<li>Estrazione storico vendite 36 mesi dal gestionale via export CSV settimanale.<\/li>\n<li>Segmentazione SKU per rotazione (A\/B\/C) e variabilita della domanda. Focus iniziale sui 320 SKU di classe A (80% del fatturato).<\/li>\n<li>Modello <strong>Prophet<\/strong> con holidays IT, regressori promo e meteo per la linea bevande.<\/li>\n<li>Walk-forward validation con orizzonte 4 settimane, metrica <strong>MAPE<\/strong>.<\/li>\n<li>Integrazione via script Python schedulato che aggiorna i campi &#8220;punto di riordino dinamico&#8221; del gestionale ogni notte.<\/li>\n<li>Dashboard di monitoraggio per il responsabile acquisti (Streamlit interno).<\/li>\n<\/ul>\n<p>Risultati dopo 6 mesi di esercizio:<\/p>\n<ul>\n<li><strong>Stock-out<\/strong> sceso dal 6,8% al 3,6%: <strong>-47%<\/strong>.<\/li>\n<li><strong>Overstock<\/strong> ridotto da 380.000 euro a 258.000 euro di capitale immobilizzato: <strong>-32%<\/strong>.<\/li>\n<li>Margine recuperato su mancate vendite stimato a circa <strong>48.000 euro\/anno<\/strong>.<\/li>\n<li>Investimento totale (analisi, sviluppo, training team): circa <strong>18.000 euro<\/strong>.<\/li>\n<li><strong>ROI<\/strong> calcolato in poco meno di <strong>6 mesi<\/strong>.<\/li>\n<\/ul>\n<p>Lezione operativa: il valore non e venuto dal modello ML in se, ma dall&#8217;attenzione ai dati di input (pulizia anagrafica articoli, gestione delle SKU phased out) e dall&#8217;integrazione fluida con il flusso ordini quotidiano. Per chi si chiede da dove partire con un percorso simile, consigliamo di leggere il nostro pezzo sulla <a href=\"https:\/\/brentasoft.com\/blog\/intelligenza-artificiale-pmi-guida-2021\/\">intelligenza artificiale per PMI<\/a> e quello su <a href=\"https:\/\/brentasoft.com\/blog\/machine-learning-pmi-casi-uso-2021\/\">machine learning con casi d&#8217;uso concreti<\/a>.<\/p>\n<h2>Roadmap di adozione 60 giorni<\/h2>\n<p>Una progressione realistica per una PMI che parte da zero, senza data scientist interni dedicati, contando su un analista con basi Python e supporto consulenziale esterno. Lo schema HowTo qui sotto e il dettaglio operativo passo-passo.<\/p>\n<p>{&#8220;@context&#8221;:&#8221;https:\/\/schema.org&#8221;,&#8221;@type&#8221;:&#8221;HowTo&#8221;,&#8221;name&#8221;:&#8221;Implementare il demand forecasting in una PMI italiana in 60 giorni&#8221;,&#8221;description&#8221;:&#8221;Roadmap pratica di 60 giorni per introdurre il forecasting della domanda con Prophet o ARIMA in una PMI italiana.&#8221;,&#8221;totalTime&#8221;:&#8221;P60D&#8221;,&#8221;step&#8221;:[<br \/>\n{&#8220;@type&#8221;:&#8221;HowToStep&#8221;,&#8221;name&#8221;:&#8221;Settimane 1-2: dataset e baseline&#8221;,&#8221;text&#8221;:&#8221;Estrazione storico vendite 24-36 mesi dal gestionale, pulizia, classificazione ABC, calcolo baseline naive e moving average con MAPE\/MAE\/RMSE come benchmark.&#8221;},<br \/>\n{&#8220;@type&#8221;:&#8221;HowToStep&#8221;,&#8221;name&#8221;:&#8221;Settimane 3-4: modello Prophet&#8221;,&#8221;text&#8221;:&#8221;Implementazione Prophet con festivita italiane, primo set di regressori promo, validazione walk-forward su orizzonte 4 settimane sui top 100 SKU.&#8221;},<br \/>\n{&#8220;@type&#8221;:&#8221;HowToStep&#8221;,&#8221;name&#8221;:&#8221;Settimane 5-6: feature engineering e tuning&#8221;,&#8221;text&#8221;:&#8221;Aggiunta meteo, eventi locali, ciclo stipendi se rilevanti; confronto Prophet vs SARIMA su sottoinsiemi SKU; selezione finale modello per cluster.&#8221;},<br \/>\n{&#8220;@type&#8221;:&#8221;HowToStep&#8221;,&#8221;name&#8221;:&#8221;Settimane 7-8: integrazione ERP e produzione&#8221;,&#8221;text&#8221;:&#8221;Esposizione modello come microservizio FastAPI, job notturno che aggiorna re-order point dinamico nel gestionale, dashboard di monitoraggio per il responsabile acquisti.&#8221;},<br \/>\n{&#8220;@type&#8221;:&#8221;HowToStep&#8221;,&#8221;name&#8221;:&#8221;Settimane 9-10: monitoraggio e iterazione&#8221;,&#8221;text&#8221;:&#8221;Monitoraggio MAPE settimanale in produzione, primi retraining, raccolta feedback team acquisti, espansione progressiva a SKU di classe B.&#8221;}<br \/>\n]}<\/p>\n<p>Versione narrativa degli step:<\/p>\n<ol>\n<li><strong>Settimane 1-2<\/strong>: estrazione dati e baseline. Pulizia anagrafica articoli, mappatura SKU phased out, calcolo metriche di baseline naive\/moving average. Definizione SKU prioritari (top 80-100).<\/li>\n<li><strong>Settimane 3-4<\/strong>: prima implementazione <strong>Prophet<\/strong> con festivita italiane. Validazione walk-forward, confronto con baseline.<\/li>\n<li><strong>Settimane 5-6<\/strong>: feature engineering avanzato (meteo per bevande\/gelati, eventi locali, ciclo stipendi). Test SARIMA su sottoinsieme. Tuning iperparametri.<\/li>\n<li><strong>Settimane 7-8<\/strong>: messa in produzione. Microservizio FastAPI, job notturno integrato col gestionale, dashboard di monitoring.<\/li>\n<li><strong>Settimane 9-10<\/strong>: monitoraggio settimanale, primo retraining ufficiale, espansione progressiva.<\/li>\n<\/ol>\n<p>Per chi vuole legare questa roadmap a un percorso piu ampio di trasformazione digitale, vale la pena dare un&#8217;occhiata alla <a href=\"https:\/\/brentasoft.com\/blog\/automazione-processi-aziendali-guida-pmi\/\">guida all&#8217;automazione processi PMI<\/a> e alle <a href=\"https:\/\/brentasoft.com\/soluzioni\/automazione.php\">nostre soluzioni di automazione operativa<\/a>.<\/p>\n<h2>FAQ<\/h2>\n<h3>Quanti dati storici servono per fare demand forecasting con Prophet o ARIMA?<\/h3>\n<p>Per catturare una stagionalita annuale serve come minimo un ciclo completo, ma realisticamente almeno 24 mesi e idealmente 36+. Sotto i 24 mesi i modelli statistici e Prophet possono comunque funzionare ma rischiate di confondere ciclo annuale e trend di lungo periodo. Per orizzonti molto brevi (1-2 settimane) e SKU non stagionali bastano anche 12 mesi.<\/p>\n<h3>Prophet o ARIMA: qual e meglio per una PMI italiana?<\/h3>\n<p>Nel 90% dei casi PMI <strong>Prophet<\/strong> e il punto di partenza piu pragmatico: gestisce festivita italiane out of the box, tollera dati sporchi e missing, parametri umani interpretabili. <strong>ARIMA<\/strong>\/<strong>SARIMA<\/strong> resta preferibile quando serve massima interpretabilita statistica, su serie pulite e regolari, o quando il team ha gia competenze econometriche solide.<\/p>\n<h3>Quale metrica usare per validare il modello: MAPE, MAE o RMSE?<\/h3>\n<p>Dipende dal contesto. <strong>MAPE<\/strong> per executive reporting (intuitiva in %). <strong>MAE<\/strong> per pianificazione acquisti (errore in pezzi\/euro). <strong>RMSE<\/strong> per gestione rischio stock-out (penalizza errori grandi). Una buona pratica e calcolarle tutte e tre ma sceglierne una come metrica primaria di selezione modello.<\/p>\n<h3>Quanto costa implementare un sistema di demand forecasting in una PMI?<\/h3>\n<p>L&#8217;investimento iniziale per un progetto pilota su 100-300 SKU varia tipicamente tra 12.000 e 25.000 euro, comprensivo di analisi dati, sviluppo modello e integrazione col gestionale. Il <strong>ROI<\/strong> tipico, quando il problema base e reale (stock-out o overstock significativi), si misura tra 4 e 9 mesi.<\/p>\n<h3>Serve un cloud per fare forecasting o basta un laptop?<\/h3>\n<p>Per la stragrande maggioranza delle PMI italiane un laptop o una VM on-premise con 16 GB di RAM bastano e avanzano. Cloud come <strong>AWS Forecast<\/strong> o <strong>Vertex AI Forecast<\/strong> hanno senso quando il numero di SKU supera le 10.000 unita, o quando serve schedulazione e monitoring industrializzati senza personale DevOps interno.<\/p>\n<h3>Come si integra il forecast con il gestionale ERP?<\/h3>\n<p>Il pattern piu diffuso e: job notturno che ricalcola il forecast per ogni SKU, aggiorna campi &#8220;punto di riordino&#8221; e &#8220;scorta di sicurezza&#8221; nel gestionale via API o tabella di raccordo. L&#8217;<strong>ERP<\/strong> mantiene la sua logica di generazione ordini, ma con soglie dinamiche invece che statiche. Si separa cosi il ciclo di vita del modello ML da quello del gestionale.<\/p>\n<h3>Cosa succede se la previsione sbaglia molto in un periodo specifico?<\/h3>\n<p>E normale e gestibile. La buona pratica e: monitoraggio settimanale di <strong>MAPE<\/strong> e <strong>MAE<\/strong> in produzione, alert quando si supera una soglia (es. <strong>MAPE<\/strong> &gt; 25% per 2 settimane consecutive), retraining mensile, analisi dei residui per identificare nuove feature mancanti. Un calo di performance non significa &#8220;il modello e rotto&#8221;, spesso significa &#8220;e cambiato qualcosa nel mondo che il modello non vede ancora&#8221;.<\/p>\n<p>{&#8220;@context&#8221;:&#8221;https:\/\/schema.org&#8221;,&#8221;@type&#8221;:&#8221;FAQPage&#8221;,&#8221;mainEntity&#8221;:[<br \/>\n{&#8220;@type&#8221;:&#8221;Question&#8221;,&#8221;name&#8221;:&#8221;Quanti dati storici servono per fare demand forecasting con Prophet o ARIMA?&#8221;,&#8221;acceptedAnswer&#8221;:{&#8220;@type&#8221;:&#8221;Answer&#8221;,&#8221;text&#8221;:&#8221;Per catturare una stagionalita annuale serve come minimo un ciclo completo, ma realisticamente almeno 24 mesi e idealmente 36+. Sotto i 24 mesi i modelli statistici e Prophet possono comunque funzionare ma rischiate di confondere ciclo annuale e trend di lungo periodo.&#8221;}},<br \/>\n{&#8220;@type&#8221;:&#8221;Question&#8221;,&#8221;name&#8221;:&#8221;Prophet o ARIMA: qual e meglio per una PMI italiana?&#8221;,&#8221;acceptedAnswer&#8221;:{&#8220;@type&#8221;:&#8221;Answer&#8221;,&#8221;text&#8221;:&#8221;Nel 90% dei casi PMI Prophet e il punto di partenza piu pragmatico: gestisce festivita italiane out of the box, tollera dati sporchi e missing. ARIMA\/SARIMA resta preferibile quando serve massima interpretabilita statistica o quando il team ha gia competenze econometriche solide.&#8221;}},<br \/>\n{&#8220;@type&#8221;:&#8221;Question&#8221;,&#8221;name&#8221;:&#8221;Quale metrica usare per validare il modello: MAPE, MAE o RMSE?&#8221;,&#8221;acceptedAnswer&#8221;:{&#8220;@type&#8221;:&#8221;Answer&#8221;,&#8221;text&#8221;:&#8221;MAPE per executive reporting. MAE per pianificazione acquisti. RMSE per gestione rischio stock-out. Una buona pratica e calcolarle tutte e tre ma sceglierne una come metrica primaria di selezione modello.&#8221;}},<br \/>\n{&#8220;@type&#8221;:&#8221;Question&#8221;,&#8221;name&#8221;:&#8221;Quanto costa implementare un sistema di demand forecasting in una PMI?&#8221;,&#8221;acceptedAnswer&#8221;:{&#8220;@type&#8221;:&#8221;Answer&#8221;,&#8221;text&#8221;:&#8221;L&#8217;investimento iniziale per un progetto pilota su 100-300 SKU varia tra 12.000 e 25.000 euro. Il ROI tipico, quando il problema base e reale, si misura tra 4 e 9 mesi.&#8221;}},<br \/>\n{&#8220;@type&#8221;:&#8221;Question&#8221;,&#8221;name&#8221;:&#8221;Serve un cloud per fare forecasting o basta un laptop?&#8221;,&#8221;acceptedAnswer&#8221;:{&#8220;@type&#8221;:&#8221;Answer&#8221;,&#8221;text&#8221;:&#8221;Per la maggior parte delle PMI italiane un laptop o una VM on-premise con 16 GB di RAM bastano. Cloud come AWS Forecast o Vertex AI Forecast ha senso oltre i 10.000 SKU o quando serve schedulazione industrializzata.&#8221;}},<br \/>\n{&#8220;@type&#8221;:&#8221;Question&#8221;,&#8221;name&#8221;:&#8221;Come si integra il forecast con il gestionale ERP?&#8221;,&#8221;acceptedAnswer&#8221;:{&#8220;@type&#8221;:&#8221;Answer&#8221;,&#8221;text&#8221;:&#8221;Pattern tipico: job notturno che ricalcola il forecast per ogni SKU e aggiorna i campi punto di riordino e scorta di sicurezza nel gestionale via API. L&#8217;ERP mantiene la sua logica di generazione ordini ma con soglie dinamiche.&#8221;}},<br \/>\n{&#8220;@type&#8221;:&#8221;Question&#8221;,&#8221;name&#8221;:&#8221;Cosa succede se la previsione sbaglia molto in un periodo specifico?&#8221;,&#8221;acceptedAnswer&#8221;:{&#8220;@type&#8221;:&#8221;Answer&#8221;,&#8221;text&#8221;:&#8221;E normale e gestibile. Monitoraggio settimanale di MAPE e MAE in produzione, alert quando si supera una soglia, retraining mensile, analisi dei residui per identificare nuove feature mancanti.&#8221;}}<br \/>\n]}<\/p>\n<div class=\"cta-box\" style=\"background:linear-gradient(135deg,#1e60c9 0%,#3a83e0 100%);color:#fff;padding:28px 32px;border-radius:10px;margin:30px 0\">\n<h3 style=\"color:#fff;margin-top:0\">Vuoi portare il forecasting nel tuo gestionale?<\/h3>\n<p style=\"color:#fff\">Aiutiamo le PMI italiane a integrare modelli di previsione della domanda con <strong>ERP<\/strong>, magazzino e flusso ordini, senza riscrivere il sistema gestionale esistente. Microservizio FastAPI, job schedulati, dashboard di monitoring inclusi.<\/p>\n<p style=\"margin-bottom:0\">\n<a href=\"https:\/\/brentasoft.com\/soluzioni\/automazione.php\" style=\"background:#fff;color:#1e60c9;padding:12px 22px;border-radius:6px;font-weight:600;text-decoration:none;margin-right:10px\">Soluzioni di automazione<\/a><br \/>\n<a href=\"https:\/\/brentasoft.com\/preventivatore.php\" style=\"background:#0a3a87;color:#fff;padding:12px 22px;border-radius:6px;font-weight:600;text-decoration:none;border:1px solid #fff\">Richiedi un preventivo<\/a>\n<\/p>\n<\/div>\n<p>Hai un progetto di <strong>demand forecasting<\/strong> da valutare? Approfondisci anche i <a href=\"https:\/\/brentasoft.com\/soluzioni\/gestionali-personalizzati.php\">gestionali personalizzati Brentasoft<\/a> e leggi il nostro pezzo su <a href=\"https:\/\/brentasoft.com\/blog\/automazione-reporting-aziendale\/\">automazione del reporting aziendale<\/a> per capire come dati storici puliti diventino il vero abilitatore di qualsiasi modello predittivo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La fine del 2020 e tutto il 2021 hanno scardinato qualsiasi certezza sulla previsione della domanda. Lockdown a fasi alterne, riapertura disordinata dei consumi, crisi dei semiconduttori, costi&hellip;<\/p>\n","protected":false},"author":2,"featured_media":1408,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Demand forecasting Prophet e ARIMA 2021: guida PMI | Brentasoft","_seopress_titles_desc":"Guida pratica al demand forecasting con Prophet e ARIMA per PMI italiane nel 2021: feature engineering, MAPE, integrazione ERP, caso reale ROI 6 mesi.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"Demand forecasting con Prophet e ARIMA: guida PMI 2021","_seopress_social_fb_desc":"Prophet vs ARIMA per il forecasting della domanda in PMI italiane: confronto MAPE, feature engineering, integrazione ERP, caso reale food retail.","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"Demand forecasting Prophet e ARIMA per PMI 2021","_seopress_social_twitter_desc":"Guida pratica al forecasting della domanda con Prophet e ARIMA: tutorial Python, MAPE, integrazione gestionale, caso reale -47% stock-out.","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"demand forecasting prophet arima pmi","footnotes":""},"categories":[4],"tags":[],"class_list":["post-1407","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intelligenza-artificiale"],"_links":{"self":[{"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/posts\/1407","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/comments?post=1407"}],"version-history":[{"count":1,"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/posts\/1407\/revisions"}],"predecessor-version":[{"id":1412,"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/posts\/1407\/revisions\/1412"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/media\/1408"}],"wp:attachment":[{"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/media?parent=1407"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/categories?post=1407"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/brentasoft.com\/blog\/wp-json\/wp\/v2\/tags?post=1407"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}