# MCH-009: Prediccion de Inventario ## Metadata - **Codigo:** MCH-009 - **Fase:** 2 - Inteligencia - **Prioridad:** P1 - **Estado:** Completado - **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 1. Alertas de stock bajo 2. Prediccion de demanda semanal 3. Sugerencias de pedido a proveedor 4. Deteccion de productos sin movimiento 5. 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 - [x] Alertas de stock bajo funcionan - [x] Predicciones tienen precision >70% - [x] Sugerencias de reorden son utiles - [x] Productos sin movimiento se detectan - [x] Dashboard muestra info clara ## Configuracion por Tenant ```typescript { predictions: { enabled: true, low_stock_threshold: 5, lead_time_days: 3, safety_stock_days: 2, slow_moving_days: 30, weekly_report_enabled: true } } ``` --- **Ultima actualizacion:** 2026-01-10