michangarrito/docs/01-epicas/MCH-009-prediccion-inventario.md
rckrdmrd 928eb795e6 [SIMCO-V38] feat: Actualizar a SIMCO v3.8.0 + cambios apps
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8
- Cambios en backend y frontend

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-10 08:53:05 -06:00

194 lines
4.2 KiB
Markdown

---
id: EPIC-MCH-009
type: Epic
title: "MCH-009: Prediccion de Inventario"
code: MCH-009
status: Completado
phase: 2
priority: P1
created_at: 2026-01-10
updated_at: 2026-01-10
simco_version: "3.8.0"
dependencies:
blocks: ["MCH-012"]
depends_on: ["MCH-003", "MCH-004", "MCH-007"]
---
# 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