
Para decidir cuánto comprar, primero separo lo vendido de lo que no se pudo vender por falta de stock. Después proyecto la demanda hasta la próxima reposición: mirar ventas al momento no alcanza.
En esta guía te muestro cómo paso de los datos a una decisión:
Mi regla: <u>no uso el forecast si faltan datos críticos</u>. Las señales de Burbuxa, WhatsApp e Instagram pueden ayudar a revisar lo que pasa, pero no las cuento como ventas.
Forecast de ventas: de los datos a la compra
Armá una base única por línea de pedido que conecte ventas, catálogo, inventario, devoluciones, promociones y canales. Registrá las devoluciones y los reembolsos como eventos separados, sin borrar la transacción original. Antes de calcular el forecast, definí qué campos debe tener esa base.
Cada línea debe incluir el sistema de origen, order_id, line_item_id, producto, variante, SKU canónico, ubicación y cantidad. Sumá precio unitario, descuentos, impuestos, envío, ingreso neto, moneda, canal, fuente e ID de campaña, junto con los estados de pago, cumplimiento, cancelación, devolución y reembolso.
Para identificar al cliente o la sesión analítica, usá una , no el teléfono ni el correo. Guardá el historial de stock disponible, reservado y entrante por ubicación. También registrá los quiebres de stock, precios, promociones y atributos del catálogo con sus fechas de vigencia.
Distinguí tres marcas de tiempo: event_time indica cuándo ocurrió el evento; processed_at, cuándo llegó a la base; y last_updated_at, cuándo se corrigió. Almacenalas en UTC y aplicá la zona horaria local al calcular los cortes.
Definí la latencia máxima por entidad: para pedidos e inventario, el límite operativo es de 5 minutos. Monitoreá demoras, reintentos y registros que llegan después del cierre de la ventana. Si llegan datos tarde, reprocesá los períodos afectados.
Validá los datos al importarlos y antes de actualizar el forecast. Guardá cada registro rechazado en una tabla de errores con su motivo.
Separá pedidos brutos, pagados, cumplidos, cancelados y devueltos. Un reembolso financiero no siempre implica una devolución física. Estos controles evitan que un error técnico parezca una caída de demanda.
| Problema | Efecto sobre el forecast | Regla de validación o corrección |
|---|---|---|
| Pedidos o eventos duplicados | Infla unidades e ingresos | Deduplicá por origen, ID del objeto y versión; agregá el ID de línea cuando corresponda. |
| Estados mezclados | Cuenta pedidos pendientes o anulados como ventas | Definí qué estados incluye cada métrica; separá pedidos pagados, cumplidos y ventas netas. |
| Devoluciones y reembolsos | Puede descontar dos veces o inflar ingresos | Vinculalos con la línea original y conciliá unidades e importes por separado. |
| SKU inconsistentes | Fragmenta el historial | Usá un mapa de SKU canónicos con fechas de vigencia y rechazá códigos sin correspondencia. |
| Cambios de catálogo | Interrumpe el historial | Conservá los identificadores anteriores y sus correspondencias con fechas de vigencia. |
| Eventos cerca de medianoche | Asigna ventas al día equivocado | Validá que cada evento quede asignado al día local correcto antes de cerrar la ventana. |
| Cortes de integración | Simula una caída de ventas recientes | Controlá los intervalos faltantes y recuperá registros por API; no completés los huecos con ceros. |
| Falta de disponibilidad | Oculta demanda no atendida | Cruzá ventas con stock, publicación, precio y promoción. Estimá las unidades perdidas con períodos comparables de las últimas cuatro semanas. Guardá estimated_lost_units, el método y la confianza como ajuste de insumo del forecast, sin reemplazar las ventas observadas. |
Si tu operación ya usa integraciones en tiempo real, revisá la sincronización antes de alimentar el forecast. Los errores pueden distorsionar las estimaciones por canal, categoría o SKU.
Burbuxa sincroniza en tiempo real productos, pedidos, clientes, inventario, descuentos y políticas con Shopify, Tiendanube, VTEX y stacks personalizados vía API. Validá los campos críticos, la cobertura histórica y la frecuencia real de sincronización. Después, conciliá pedidos, unidades, reembolsos e ingresos contra la tienda.
Usá las señales de intención de WhatsApp e Instagram como variables auxiliares, no como ventas observadas. Configurá alertas para los datos atrasados y frená la actualización del forecast si faltan campos críticos.
Con los datos limpios y sincronizados, arrancá con una línea base simple. Sumá complejidad solo cuando las pruebas históricas muestren que reduce el error. En casos de alta volatilidad, podés evaluar métodos ensemble para combinar modelos y ganar precisión.
Separá tres ritmos de trabajo: ingesta continua, actualización diaria o semanal según la rotación - u horaria en picos de demanda - y recalibración semanal o mensual. No recalcules el modelo por cada pedido. Usá horizontes de 24–72 horas para la operación, de 7–28 días para reposición y el plazo de entrega del proveedor para compras.
El patrón de demanda debe guiar la elección del método, no la sofisticación del algoritmo.
| Método | Patrón de demanda | Velocidad de respuesta | Uso y límite |
|---|---|---|---|
| Ingenuo (naive) | Estable, sin ciclos claros | Inmediata | Sirve como referencia de corto plazo, pero también copia picos aislados |
| Ingenuo estacional | Ciclos repetidos | Rápida | Repite períodos equivalentes; necesita historia comparable |
| Media móvil | Estable, con ruido | Mayor con ventanas cortas | Suaviza fluctuaciones, pero se retrasa ante tendencias |
| Suavizado exponencial simple | Nivel estable, sin tendencia | Ajustable | Actualiza la línea base; no explica ciclos ni eventos |
| Holt / Holt-Winters | Crecimiento, caída o ciclos | Moderada | Modela tendencias o estacionalidad; puede prolongar cambios temporales |
| Ajustado por eventos | Promociones, lanzamientos o cambios de precio | Rápida con datos del evento | Separa el efecto comercial; requiere antecedentes comparables |
| Demanda intermitente | Muchos períodos sin ventas | Moderada | Usa Croston, SBA o TSB; no sirve para demanda continua |
Para SKU de baja rotación, medí la proporción de períodos sin demanda, las unidades por venta y el intervalo entre ventas. Si hay pocos ceros, probá primero con ingenuo estacional o media móvil. Si predominan los ceros y los intervalos irregulares, testeá Croston, SBA o TSB.
Cuando no puedas aplicar un método directo a la serie, recurrí al nivel de categoría o canal. Para productos nuevos, usá productos análogos, precio y exposición prevista, con revisión humana. Después, distribuí el pronóstico según el mix y la disponibilidad.
La media móvil se calcula así:
$$ F(t+1)=\frac{\sum_{i=0}^{n-1} y(t-i)}{n} $$
(y(t)) es la demanda del período y (n), la cantidad de observaciones. Probá ventanas de 3–7 días para responder rápido y de 28 días para dar más estabilidad, siempre respetando ciclos completos.
Para el suavizado exponencial simple, usá:
$$ F(t+1)=\alpha \times y(t)+(1-\alpha)\times F(t) $$
(F(t)) es el pronóstico previo y (0<\alpha<1). Cuanto mayor sea (\alpha), más responderá el modelo a cambios y picos. Elegí la ventana y el parámetro mediante backtesting.
Separá el efecto de los eventos - promociones, lanzamientos, feriados y cambios de precio - de la demanda habitual:
$$ \text{Demanda prevista}=\text{línea base}\times(1+\text{uplift})+\text{otros ajustes} $$
Estimá el uplift con eventos comparables por descuento, canal y exposición, sin incorporarlo al nivel habitual. Registrá cada evento con fecha y hora locales de Argentina, canal, categoría, SKU, campaña, audiencia, profundidad del descuento, ubicación, precio, disponibilidad de inventario y restricciones de despacho. Para Hot Sale y CyberMonday, tomá las fechas publicadas de cada edición y el período real del evento, no fechas fijas.
Conservá dos resultados: demanda sin restricciones y ventas posibles según stock. Un quiebre de stock no debería reducir automáticamente la línea base. Validá esa base y sus ajustes con ventanas históricas.
En cada corte histórico, usá solo la información disponible en ese momento, pronosticá el horizonte operativo y avanzá al siguiente corte. Compará los métodos sobre los mismos períodos y horizontes, por canal, categoría y SKU.
Calculá el WAPE:
$$ \mathrm{WAPE}=\frac{\sum_t |y_t-\hat{y}_t|}{\sum_t y_t}\times100 $$
(y_t) es la demanda real y (\hat{y}_t), el forecast. Si la demanda total es cero, WAPE no está definido. Para bajo volumen, complementalo con MAE y resultados por SKU.
Registrá también el sesgo firmado, (\sum_t(\hat{y}_t-y_t)): un valor positivo indica sobrepronóstico; uno negativo, subpronóstico. Medí la cobertura de los intervalos: un intervalo nominal del 90 % debería cubrir cerca del 90 % de los casos. Antes de aprobar un modelo más complejo, revisá la cobertura y el error por horizonte, canal, categoría y evento.
Una vez validado el forecast, identificá cuánto del desvío se explica por atribución, stock o latencia. Esa lectura te ayuda a decidir la reposición.
Separá canal de compra y fuente atribuida. Guardá una sola venta por order_id, sin duplicar pedidos, y registrá las interacciones en otra tabla. Definí ventanas de atribución de 7 días para compras promocionales y de 30 días para compras con ciclos más largos. Usá último contacto para la operación y atribución asistida o multitáctil para el análisis.
Etiquetá ventas orgánicas y tráfico directo, campañas pagas, automatizaciones de WhatsApp e Instagram, promociones, lanzamientos, migraciones de canal, cancelaciones y devoluciones. Si integrás interacciones de WhatsApp e Instagram, concilialas con los pedidos y vinculalas mediante order_id.
Atribuir una venta no demuestra demanda incremental. Mantener esa distinción permite analizar el desvío sin confundir el canal con su causa.
Compará las ventas reales con el forecast congelado antes del período, siempre para el mismo canal, SKU, unidad y tramo horario. Calculá:
Si el forecast es cero, informá las unidades y “sin base porcentual”. Marcá los días incompletos y los pedidos tardíos como provisorios hasta el corte acordado en hora argentina (UTC−3).
| Posible causa | Qué revisar | Acción |
|---|---|---|
| Cambio brusco de demanda | Ventas de categoría, clima y eventos externos | Aplicá un ajuste temporal con fecha de fin. |
| Efecto de campaña | Gasto, impresiones, clics, conversión, cupones y atribución | Separá el efecto comercial; no subas la base sin evidencia. |
| Quiebre de stock | Inventario disponible, períodos sin caja de compra, backorders, carritos, listas de espera y ventas sustitutas | Estimá la demanda perdida y excluí el período restringido de la base histórica. |
| Demora de registros | Ingesta, estado de pago, latencia de API y duplicados | Mantené el período provisorio y recalculá cuando se complete. |
| Cambio de precio o catálogo | Fecha efectiva, historial de precios, mapeo de SKU y estado del catálogo | Corregí el mapeo o segmentá la serie según el cambio. |
| Aumento de devoluciones | Motivos, fecha de devolución, pedido original y familia de producto | Pronosticá ventas brutas y netas por separado si el impacto es material. |
| Modelo rezagado | Error por SKU, categoría y canal; demanda reciente frente a la histórica | Acortá la ventana, sumá variables de evento o recalibrá el modelo. |
En cada revisión, actualizá ventas, inventario y supuestos de eventos. Después validá los registros, compará los resultados, diagnosticá el desvío y documentá la decisión.
Como punto de partida, activá una alerta diaria cuando el desvío porcentual supere el 15 % y el desvío en unidades sea de al menos 10. Ajustá ese umbral según el error histórico y el costo del quiebre. Escalá de inmediato cualquier quiebre de stock, caída del feed o falla de datos.
Marketing revisa la atribución; operaciones, el stock y los proveedores; datos, las demoras; y planificación, el sesgo. Registrá evidencia, acción, responsable, vencimiento y resultado. Revisá los patrones semanalmente. Cada mes, recalibrá las ventanas de atribución, los supuestos de eventos, los plazos de entrega, el stock de seguridad y los parámetros.
Con el desvío diagnosticado, traducilo a reposición.
El forecast no define la compra. También tenés que considerar reservas, mínimos, packs, capacidad del proveedor y prioridades por canal. Confirmá cuándo llegará cada entrada: una compra confirmada no evita un faltante si ingresa tarde. Exigí aprobación humana para cambios importantes en compras, asignaciones o stock de seguridad.
Compra propuesta = demanda esperada durante el plazo de entrega y hasta la próxima revisión + buffer − stock utilizable − entradas confirmadas, ajustada por pack y capacidad del proveedor.
Antes de usar el forecast en compras o campañas, completá esta revisión.
Los datos compartidos de pedidos, inventario, campañas y conversaciones de Burbuxa ayudan a conciliar señales y dejar un registro de los ajustes. La aprobación final del forecast sigue en manos del equipo.
No hay un mínimo de historial que sirva para todos los casos. Los datos deben ser relevantes y de buena calidad, según el tipo de pronóstico y su complejidad. Para empezar con reglas y medición de atribución, usá entre 30 y 90 días de historial como base.
Para modelos más sólidos, incluí datos que cubran la estacionalidad y mantené actualizado el flujo de datos. Hacé revisiones trimestrales o anuales para que el historial siga reflejando el comportamiento actual.
Cero ventas no siempre significa baja demanda. Armá datos diarios o semanales por fecha, SKU y canal. Separá las ventas observadas de la demanda real y corregí los quiebres de stock usando el stock inicial y final, los minutos sin stock y stockout_flag.
Si no tenés historial, usá un “arranque en frío” basado en los atributos del producto, los patrones de SKUs similares y el contexto: precio, promociones y descuentos, campañas, clima y eventos. Validá en orden cronológico con una referencia estacional.
Calculá la demanda pronosticada según la decisión que tengas que tomar: de 1 a 6 semanas para reposición, de 3 a 6 meses para compras y promos, o de 6 a 18 meses para surtido.
Ajustá el pronóstico por quiebres de stock: las ventas registradas durante períodos sin stock no reflejan la demanda real y pueden sesgarlo.
Agregá stock de seguridad para cubrir picos y variaciones en la demanda. Alinealo con tu política de stock disponible («available») y comprometido («committed»), para vender solo lo que está realmente disponible.