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

4.2 KiB

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

  • Alertas de stock bajo funcionan
  • Predicciones tienen precision >70%
  • Sugerencias de reorden son utiles
  • Productos sin movimiento se detectan
  • Dashboard muestra info clara

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
  }
}

Ultima actualizacion: 2026-01-10