| id |
type |
title |
code |
status |
phase |
priority |
story_points |
created_at |
updated_at |
simco_version |
dependencies |
| EPIC-MCH-009 |
Epic |
MCH-009: Prediccion de Inventario |
MCH-009 |
Completado |
2 |
P1 |
13 |
2026-01-10 |
2026-01-17 |
4.0.1 |
|
MCH-009: Prediccion de Inventario
Metadata
- Codigo: MCH-009
- Fase: 2 - Inteligencia
- Prioridad: P1
- Estado: Completado
- Story Points: 13
- Fecha completado: 2026-01-10
Descripcion
Sistema de prediccion de inventario basado en historico de ventas: alertas de stock bajo, sugerencias de reabastecimiento, prediccion de demanda, y deteccion de productos de lento movimiento.
Objetivos
- Alertas de stock bajo
- Prediccion de demanda semanal
- Sugerencias de pedido a proveedor
- Deteccion de productos sin movimiento
- Dias de inventario estimados
Alcance
Incluido
- Alerta cuando stock < min_stock
- Prediccion basada en promedio movil
- Calculo de punto de reorden
- Lista de sugerencias de compra
- Productos sin venta en X dias
Excluido
- ML avanzado (LSTM, Prophet)
- Integracion automatica con proveedores
- Pedidos automaticos
Algoritmos
Prediccion de Demanda
Promedio Movil Ponderado (4 semanas)
- Semana -1: peso 0.4
- Semana -2: peso 0.3
- Semana -3: peso 0.2
- Semana -4: peso 0.1
Demanda_estimada = Σ(ventas_semana * peso)
Punto de Reorden
Punto_reorden = (Demanda_diaria * Lead_time) + Stock_seguridad
Donde:
- Demanda_diaria = Demanda_semanal / 7
- Lead_time = dias para recibir pedido (default: 3)
- Stock_seguridad = Demanda_diaria * 2
Dias de Inventario
Dias_inventario = Stock_actual / Demanda_diaria
Endpoints API
| Metodo |
Endpoint |
Descripcion |
| GET |
/inventory/low-stock |
Productos bajo minimo |
| GET |
/inventory/predictions |
Predicciones de demanda |
| GET |
/inventory/reorder-suggestions |
Sugerencias de pedido |
| GET |
/inventory/slow-moving |
Productos sin movimiento |
| GET |
/inventory/days-on-hand |
Dias de inventario |
| GET |
/inventory/analytics |
Dashboard completo |
Modelo de Datos
Tablas Adicionales
inventory_predictions (cache)
- id, product_id, period_start, period_end
- predicted_demand, confidence
- calculated_at
reorder_suggestions
- id, tenant_id, product_id
- current_stock, suggested_quantity
- priority, status, created_at
Flujos de Usuario
Alerta de Stock Bajo
1. Sistema detecta stock < min_stock
2. Genera notificacion push
3. Muestra en dashboard
4. Dueno revisa y decide
Ver Sugerencias de Pedido
1. Dueno abre "Sugerencias de compra"
2. Ve lista ordenada por prioridad
3. Cada item muestra:
- Producto
- Stock actual
- Cantidad sugerida
- Proveedor (si conocido)
4. Puede marcar como "Pedido"
Reporte Semanal
1. Lunes a las 8am
2. Sistema genera reporte:
- Top 10 productos por venta
- Productos a reordenar
- Productos sin movimiento
3. Envia via WhatsApp al dueno
UI Components
InventoryDashboard
- Grafica de stock vs demanda
- Lista de alertas
- Indicadores clave
ReorderList
- Tabla de sugerencias
- Filtros por categoria
- Accion: marcar como pedido
Entregables
| Entregable |
Estado |
Archivo |
| predictions.service |
Pendiente |
services/predictions.service.ts |
| inventory.analytics |
Pendiente |
modules/inventory/analytics/ |
| Dashboard FE |
Pendiente |
components/inventory/ |
| Cron jobs |
Pendiente |
jobs/inventory.jobs.ts |
Dependencias
Depende de
- MCH-003 (Productos)
- MCH-004 (POS) - historial de ventas
- MCH-007 (Inventory module base)
Bloquea a
- MCH-012 (Chat LLM puede consultar predicciones)
Criterios de Aceptacion
Configuracion por Tenant
{
predictions: {
enabled: true,
low_stock_threshold: 5,
lead_time_days: 3,
safety_stock_days: 2,
slow_moving_days: 30,
weekly_report_enabled: true
}
}
Historias de Usuario
MCH-US-080: Alertas de Stock Bajo
Como dueno de changarrito
Quiero recibir alertas cuando un producto esta por agotarse
Para poder reabastecer a tiempo y no perder ventas
- Story Points: 3
- Prioridad: P1
Criterios de Aceptacion
| ID |
Criterio |
| CA-080-1 |
Sistema detecta cuando stock actual < min_stock configurado |
| CA-080-2 |
Se genera notificacion push al dispositivo del dueno |
| CA-080-3 |
Alerta visible en dashboard con indicador visual claro |
| CA-080-4 |
Lista de productos en alerta ordenada por urgencia |
Tareas
| ID |
Tarea |
Estimacion |
| MCH-TT-080-01 |
Implementar detector de stock bajo en backend |
2h |
| MCH-TT-080-02 |
Crear endpoint GET /inventory/low-stock |
1h |
| MCH-TT-080-03 |
Configurar notificaciones push |
2h |
| MCH-TT-080-04 |
Componente AlertList en dashboard |
2h |
MCH-US-081: Prediccion de Demanda
Como dueno de changarrito
Quiero ver predicciones de venta para los proximos dias
Para planificar mis compras con anticipacion
- Story Points: 3
- Prioridad: P1
Criterios de Aceptacion
| ID |
Criterio |
| CA-081-1 |
Prediccion usa promedio movil ponderado de 4 semanas |
| CA-081-2 |
Precision de prediccion >70% en productos con historial |
| CA-081-3 |
Muestra demanda estimada por producto para proxima semana |
| CA-081-4 |
Calcula dias de inventario restantes por producto |
Tareas
| ID |
Tarea |
Estimacion |
| MCH-TT-081-01 |
Implementar algoritmo promedio movil ponderado |
3h |
| MCH-TT-081-02 |
Crear predictions.service.ts |
2h |
| MCH-TT-081-03 |
Endpoint GET /inventory/predictions |
1h |
| MCH-TT-081-04 |
Cache de predicciones en tabla inventory_predictions |
2h |
MCH-US-082: Sugerencias de Reorden
Como dueno de changarrito
Quiero recibir sugerencias de que productos reabastecer y en que cantidad
Para optimizar mis compras y no quedarme sin stock
- Story Points: 3
- Prioridad: P1
Criterios de Aceptacion
| ID |
Criterio |
| CA-082-1 |
Calcula punto de reorden basado en lead time y stock de seguridad |
| CA-082-2 |
Sugiere cantidad optima a pedir por producto |
| CA-082-3 |
Lista ordenada por prioridad (mas urgente primero) |
| CA-082-4 |
Permite marcar sugerencia como "Pedido realizado" |
Tareas
| ID |
Tarea |
Estimacion |
| MCH-TT-082-01 |
Implementar calculo de punto de reorden |
2h |
| MCH-TT-082-02 |
Crear tabla reorder_suggestions |
1h |
| MCH-TT-082-03 |
Endpoint GET /inventory/reorder-suggestions |
1h |
| MCH-TT-082-04 |
Componente ReorderList con acciones |
2h |
MCH-US-083: Productos Sin Movimiento
Como dueno de changarrito
Quiero identificar productos que no se han vendido en mucho tiempo
Para tomar decisiones sobre promociones o descontinuarlos
- Story Points: 2
- Prioridad: P2
Criterios de Aceptacion
| ID |
Criterio |
| CA-083-1 |
Detecta productos sin ventas en X dias (configurable, default 30) |
| CA-083-2 |
Muestra ultima fecha de venta por producto |
| CA-083-3 |
Calcula valor de inventario estancado |
| CA-083-4 |
Sugiere acciones (promocion, liquidacion) |
Tareas
| ID |
Tarea |
Estimacion |
| MCH-TT-083-01 |
Query para detectar productos sin movimiento |
1h |
| MCH-TT-083-02 |
Endpoint GET /inventory/slow-moving |
1h |
| MCH-TT-083-03 |
Vista de productos estancados en UI |
2h |
MCH-US-084: Reporte Semanal Automatico
Como dueno de changarrito
Quiero recibir un resumen semanal de inventario via WhatsApp
Para mantenerme informado sin entrar a la app constantemente
- Story Points: 2
- Prioridad: P2
Criterios de Aceptacion
| ID |
Criterio |
| CA-084-1 |
Reporte se envia automaticamente los lunes a las 8am |
| CA-084-2 |
Incluye top 10 productos mas vendidos de la semana |
| CA-084-3 |
Lista productos que necesitan reorden urgente |
| CA-084-4 |
Muestra productos sin movimiento |
| CA-084-5 |
Formato legible y conciso para WhatsApp |
Tareas
| ID |
Tarea |
Estimacion |
| MCH-TT-084-01 |
Crear cron job semanal |
1h |
| MCH-TT-084-02 |
Generar reporte consolidado |
2h |
| MCH-TT-084-03 |
Integrar envio via WhatsApp API |
2h |
| MCH-TT-084-04 |
Template de mensaje formateado |
1h |
Resumen de Story Points
| Historia |
Descripcion |
SP |
| MCH-US-080 |
Alertas de Stock Bajo |
3 |
| MCH-US-081 |
Prediccion de Demanda |
3 |
| MCH-US-082 |
Sugerencias de Reorden |
3 |
| MCH-US-083 |
Productos Sin Movimiento |
2 |
| MCH-US-084 |
Reporte Semanal Automatico |
2 |
|
TOTAL EPIC MCH-009 |
13 |
Ultima actualizacion: 2026-01-17