How accurate is your demand forecast — and would AI actually improve it?¿Qué tan exacto es tu pronóstico de demanda — y la IA realmente lo mejoraría?

Run a forecast on sample or uploaded data, read MAPE, WMAPE and bias on a real holdout, and get the statistical baseline any AI platform must beat.Corre un pronóstico sobre datos de ejemplo o propios, lee MAPE, WMAPE y sesgo sobre un holdout real, y obtén la línea base estadística que cualquier plataforma de IA debe superar.

3 classical methods3 métodos clásicosOut-of-sample holdoutHoldout fuera de muestra100% in-browser · no upload100% en navegador · sin subir datos
🎯
This is the statistical baseline, not an AI model. These are transparent, classical methods — the benchmark every machine-learning or AI forecast has to beat. The accuracy you see here is the bar; AI-native platforms (RELEX, o9, SAP IBP, Blue Yonder) earn their keep only by improving on it. See where AI adds value in the Demand Forecasting reference. Esta es la línea base estadística, no un modelo de IA. Son métodos clásicos y transparentes — el punto de referencia que todo pronóstico con aprendizaje automático o IA tiene que superar. La exactitud que ves aquí es la vara; las plataformas nativas de IA (RELEX, o9, SAP IBP, Blue Yonder) solo justifican su costo si la mejoran. Consulta dónde aporta valor la IA en la referencia Pronóstico de demanda.
Forecast vs. actualsPronóstico vs. demanda real
History (train)Historia (entrenamiento)
Holdout actualsReales de validación (holdout)
ForecastPronóstico
95% confidence bandBanda de confianza del 95%
How these methods workCómo funcionan estos métodos
The active method is highlighted. Choose by SKU profile, not by fashion — matching the method to the demand pattern matters more than the algorithm's sophistication.El método activo aparece resaltado. Elige según el perfil del SKU, no por moda — ajustar el método al patrón de demanda importa más que la sofisticación del algoritmo.
Forecast detailDetalle del pronóstico
Holdout rows show actual vs. forecast; future rows show the forward forecast with bounds.Las filas de validación (holdout) muestran real vs. pronóstico; las filas futuras muestran el pronóstico hacia adelante con sus límites.
About this tool. The Studio runs entirely in your browser — no data is uploaded or stored. The models are transparent, classical implementations (Holt-Winters triple exponential smoothing, simple moving average, additive seasonal decomposition) intended to teach the workflow and let you sanity-check a demand series, not to replace a production forecasting platform such as RELEX, SAP IBP, o9, Kinaxis or Blue Yonder. MAPE, bias and WMAPE are computed on a held-out tail of the series so the accuracy figures reflect out-of-sample performance. Sobre esta herramienta. El Estudio corre completamente en tu navegador — no se sube ni se almacena ningún dato. Los modelos son implementaciones clásicas y transparentes (suavizamiento exponencial triple de Holt-Winters, promedio móvil simple, descomposición estacional aditiva) pensadas para enseñar el flujo de trabajo y ayudarte a validar una serie de demanda, no para reemplazar una plataforma de pronóstico en producción como RELEX, SAP IBP, o9, Kinaxis o Blue Yonder. El MAPE, el sesgo y el WMAPE se calculan sobre el tramo final reservado de la serie (validación), de modo que las cifras de exactitud reflejan el desempeño fuera de muestra.
💡How to use this toolCómo usar esta herramientaStart hereEmpieza aquí
1
Choose a datasetElige un conjunto de datos
Pick one of the four sample profiles — or upload a CSV with weekly/monthly demand numbers.Selecciona uno de los cuatro perfiles de ejemplo, o sube un CSV con tu demanda semanal o mensual.
2
Select method & horizonElige método y horizonte
Try Holt-Winters first (best for seasonal demand). Adjust the slider to how far ahead you need to plan.Prueba primero Holt-Winters (el mejor para demanda estacional). Mueve el control deslizante según qué tan adelante necesitas planear.
3
Read the MAPELee el MAPE
Green (≤10%) = reliable. Amber (10–25%) = manageable. Red (>25%) = the model needs help. That number is the bar any AI tool must beat on your data.Verde (≤10%) = confiable. Ámbar (10–25%) = manejable. Rojo (>25%) = el modelo necesita ayuda. Ese número es la vara que cualquier herramienta de IA debe superar con tus datos.
'; } function exportReport(){ var doc=buildReportHTML(); var w=window.open('','fc_report','width=1180,height=800,scrollbars=yes,resizable=yes'); if(w){w.document.write(doc);w.document.close();w.focus();} } /* ---------- Language + menu (matches site pattern) ---------- */ function interpForecast(mape,bias){ if(!isFinite(mape))return ''; var icon,cls,txt,mp=mape.toFixed(1); if(mape<=10){ icon='✅';cls='green'; txt=L('Excellent accuracy (MAPE '+mp+'%). Reliable enough to drive purchasing and production commitments. AI platforms would need clear improvement to justify their cost.', 'Exactitud excelente (MAPE '+mp+'%). Suficientemente confiable para respaldar compromisos de compra y producción. Las plataformas de IA tendrían que demostrar una mejora clara para justificar su costo.'); }else if(mape<=25){ icon='🟡';cls='amber'; txt=L('Acceptable accuracy (MAPE '+mp+'%). Workable for most planning decisions, but review high-error SKUs before committing large orders. ML models with external signals (promotions, weather) can typically cut error by 20–40%.', 'Exactitud aceptable (MAPE '+mp+'%). Funcional para la mayoría de las decisiones de planeación, pero revisa los SKUs con error alto antes de comprometer pedidos grandes. Los modelos de ML con señales externas (promociones, clima) suelen reducir el error entre 20 y 40%.'); }else{ icon='🟥';cls='red'; txt=L('High error (MAPE '+mp+'%). This level of inaccuracy causes excess inventory and stockouts simultaneously — the worst of both worlds. Priority: audit data quality, remove outliers, and consider AI-native forecasting with causal variables.', 'Error alto (MAPE '+mp+'%). Este nivel de inexactitud provoca exceso de inventario y desabasto al mismo tiempo — lo peor de ambos mundos. Prioridad: audita la calidad de los datos, elimina valores atípicos y considera un pronóstico nativo de IA con variables causales.'); } if(Math.abs(bias)>5){ txt+=' '+L('— Bias of '+bias.toFixed(1)+'%: the model consistently '+(bias>0?'over-':'under-')+'forecasts; apply a proportional adjustment factor.', '— Sesgo de '+bias.toFixed(1)+'%: el modelo sistemáticamente '+(bias>0?'sobrepronostica':'subpronostica')+'; aplica un factor de ajuste proporcional.')+''; } return '
'+icon+'
'+txt+'
'; } var HOWTO_SHOW='Show ▼Mostrar ▼'; var HOWTO_HIDE='Hide ▲Ocultar ▲'; function toggleHowTo(){ var h=document.getElementById('howTo'),b=document.getElementById('howToBtn'); var col=h.classList.toggle('collapsed'); b.innerHTML=col?HOWTO_SHOW:HOWTO_HIDE; try{localStorage.setItem('howto_hidden',col?'1':'');}catch(ex){} } (function(){ try{ if(localStorage.getItem('howto_hidden')==='1'){ var h=document.getElementById('howTo'); if(h){ h.classList.add('collapsed'); var b=document.getElementById('howToBtn'); if(b){b.innerHTML=HOWTO_SHOW;} } } }catch(ex){} })(); var __lang="en"; function setLang(l){ __lang=l; document.querySelectorAll('.li-en').forEach(function(e){ e.style.display=l==='en'?(e.tagName==='SPAN'||e.tagName==='BUTTON'?'inline':'block'):'none'; }); document.querySelectorAll('.li-es').forEach(function(e){ e.style.display=l==='es'?(e.tagName==='SPAN'||e.tagName==='BUTTON'?'inline':'block'):'none'; }); document.getElementById('btn-lang-en').classList.toggle('on',l==='en'); document.getElementById('btn-lang-es').classList.toggle('on',l==='es'); try{localStorage.setItem('lang',l);}catch(ex){} } function toggleMenu(){ var b=document.getElementById('hamburger'),m=document.getElementById('mobileMenu'); b.classList.toggle('open');m.classList.toggle('open'); } function closeMenu(){ var b=document.getElementById('hamburger'),m=document.getElementById('mobileMenu'); if(b)b.classList.remove('open');if(m)m.classList.remove('open'); } document.addEventListener('click',function(e){ var m=document.getElementById('mobileMenu'),b=document.getElementById('hamburger'); if(m&&m.classList.contains('open')&&!m.contains(e.target)&&b&&!b.contains(e.target))closeMenu(); },false); /* ---------- Init ---------- */ STATE.series=genSeries('retail'); refreshStaticI18n(); generate(); /* Re-render the tool whenever the site language (html.msc-es) changes; selections and data in STATE/controls are kept. */ (function(){ var lastES=isES(); new MutationObserver(function(){ var nowES=isES(); if(nowES===lastES)return; lastES=nowES; refreshStaticI18n(); generate(); }).observe(document.documentElement,{attributes:true,attributeFilter:['class']}); })(); /* Legacy nav sync: read-only (no generate()-time writes to localStorage 'lang'). */ (function(){try{var s=localStorage.getItem('lang');if(s==='es'||s==='en'){setLang(s);}}catch(e){}})();