Optimizador de compra de temporada
Decide cuántas unidades comprar de un producto que se compra una sola vez por temporada: ni de menos ni de más.
El problema
Definir cuánto comprar de un producto que no se repone era puro criterio individual: si comprabas poco te quedabas sin stock, si comprabas de más te sobraba mercadería.
Qué hice
Definí el método para decidir cuánto comprar y lo llevé a un pipeline estadístico de nueve pasos: desestacionalización, selección de mejores semanas, distribución normal inversa o t-Student según el tamaño de muestra, niveles de servicio configurables y re-estacionalización, con un score de confiabilidad de 0 a 100 por SKU. Para productos sin historia, resolví el cold-start con búsqueda visual por embeddings CLIP sobre Qdrant.
Qué resultó
En producción, en manos del equipo de compras. El proyecto fijó además el estándar de ingeniería y seguridad del resto del ecosistema.
Cómo calcula el lote
- Historial de venta por SKUEntrada
- DesestacionalizaciónSacar el efecto de temporada
- Selección de mejores semanasDemanda representativa
- Normal inversa o t-StudentSegún el tamaño de muestra
- Nivel de servicio y re-estacionalizaciónCuánto riesgo de quiebre aceptar
- Lote sugerido y score de confiabilidadSalida
El producto se compra una sola vez por temporada: no hay reposición que corrija el error. Por eso el pipeline elige la distribución según el tamaño de muestra y entrega, junto al número, cuánta confianza merece.
Stack
- Python
- Streamlit
- SciPy
- SQL Server
- CLIP
- Qdrant
- LangChain
- GPT-4o
- Docker
Proyecto interno de Blue Star Group — el código no es público.
Siguiente proyecto: Predictor de costos FOB →