## Documentation - Align MCH-029 to MCH-032 with template-saas modules (SAAS-008 to SAAS-015) - Create MCH-034 (Analytics) and MCH-035 (Reports) from SAAS-016/017 - Update PLAN-DESARROLLO.md with Phase 7 and 8 - Update _MAP.md indexes (35 total epics) ## Database (5 new schemas, 14 tables) - Add storage schema: buckets, files, signed_urls - Add webhooks schema: endpoints, deliveries - Add audit schema: logs, retention_policies - Add features schema: flags, tenant_flags (14 seeds) - Add analytics schema: metrics, events, reports, report_schedules - Add auth.oauth_connections for MCH-030 - Add timestamptz_to_date() IMMUTABLE function - Update EXPECTED_SCHEMAS in recreate-database.sh ## Analysis Reports - ANALISIS-INTEGRACION-TEMPLATE-SAAS-2026-01-13.md - VALIDACION-COHERENCIA-2026-01-13.md - GAP-ANALYSIS-BD-2026-01-13.md - REPORTE-EJECUCION-2026-01-13.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
532 lines
17 KiB
Markdown
532 lines
17 KiB
Markdown
---
|
|
id: EPIC-MCH-034
|
|
type: Epic
|
|
title: "MCH-034: Analytics y Metricas del Negocio"
|
|
code: MCH-034
|
|
status: Planificado
|
|
phase: 8
|
|
priority: P1
|
|
created_at: 2026-01-13
|
|
updated_at: 2026-01-13
|
|
simco_version: "4.0.1"
|
|
dependencies:
|
|
blocks: []
|
|
depends_on: ["MCH-031", "MCH-021"]
|
|
---
|
|
|
|
# MCH-034: Analytics y Metricas del Negocio
|
|
|
|
## Metadata
|
|
- **Codigo:** MCH-034
|
|
- **Fase:** 8 - Reportes y Metricas
|
|
- **Prioridad:** P1 (Alta)
|
|
- **Estado:** Planificado
|
|
- **Story Points:** 21
|
|
- **Sprint Objetivo:** Sprint 8-9
|
|
|
|
## Descripcion
|
|
|
|
Modulo de analytics que proporciona metricas y KPIs clave para el changarrito. Incluye metricas de ventas, clientes, fiados e inventario con tendencias historicas. Todas las metricas se calculan en tiempo real basandose en datos de ventas, clientes, fiados, productos y logs de auditoria. Este modulo permite al tendero tomar decisiones informadas sobre su negocio.
|
|
|
|
## Objetivos
|
|
|
|
1. Proporcionar metricas de ventas (totales, ticket promedio, tendencias, productos top)
|
|
2. Calcular metricas de clientes (nuevos, recurrentes, retencion)
|
|
3. Analizar estado de fiados (pendientes, cobrados, morosidad)
|
|
4. Monitorear inventario (stock bajo, rotacion de productos)
|
|
5. Generar resumen de KPIs para dashboard del tendero
|
|
|
|
## Alcance
|
|
|
|
### Incluido
|
|
- Metricas de ventas por periodo (dia, semana, mes)
|
|
- Metricas de clientes nuevos y recurrentes
|
|
- Estado de fiados y cobranza
|
|
- Alertas de inventario bajo
|
|
- Resumen de KPIs principales para dashboard
|
|
- Tendencias historicas para graficos
|
|
- Soporte para periodos: 7d, 30d, 90d, 1y
|
|
|
|
### Excluido
|
|
- Exportacion de reportes a PDF/Excel
|
|
- Metricas en tiempo real (streaming)
|
|
- Comparativas entre sucursales/tenants
|
|
- Alertas automaticas basadas en metricas
|
|
- Predicciones con machine learning
|
|
|
|
## Metricas Disponibles
|
|
|
|
### Metricas de Ventas
|
|
| Metrica | Descripcion |
|
|
|---------|-------------|
|
|
| totalSales | Total de ventas en pesos en el periodo |
|
|
| salesCount | Cantidad de transacciones realizadas |
|
|
| averageTicket | Ticket promedio por venta |
|
|
| salesByDay | Ventas agrupadas por dia |
|
|
| salesByHour | Distribucion de ventas por hora del dia |
|
|
| topProducts | Top 10 productos mas vendidos |
|
|
| salesGrowth | Crecimiento de ventas (%) vs periodo anterior |
|
|
| cashSales | Ventas en efectivo |
|
|
| cardSales | Ventas con tarjeta |
|
|
| fiadoSales | Ventas a credito (fiados) |
|
|
|
|
### Metricas de Clientes
|
|
| Metrica | Descripcion |
|
|
|---------|-------------|
|
|
| totalCustomers | Total de clientes registrados |
|
|
| newCustomers | Nuevos clientes en el periodo |
|
|
| activeCustomers | Clientes que compraron en el periodo |
|
|
| customerRetention | Tasa de retencion (%) clientes recurrentes |
|
|
| averagePurchaseFrequency | Frecuencia promedio de compra por cliente |
|
|
| topCustomers | Top 10 clientes por monto de compra |
|
|
| customerGrowth | Crecimiento de clientes (%) vs periodo anterior |
|
|
|
|
### Metricas de Fiados
|
|
| Metrica | Descripcion |
|
|
|---------|-------------|
|
|
| totalFiados | Cantidad total de fiados activos |
|
|
| pendingBalance | Saldo total pendiente por cobrar |
|
|
| paidThisPeriod | Monto cobrado en el periodo |
|
|
| paidOnTime | Porcentaje de pagos a tiempo |
|
|
| overdueCount | Cantidad de fiados vencidos |
|
|
| overdueAmount | Monto total vencido |
|
|
| averageFiadoAmount | Monto promedio por fiado |
|
|
| fiadosByCustomer | Distribucion de fiados por cliente |
|
|
| collectionRate | Tasa de cobranza del periodo |
|
|
|
|
### Metricas de Inventario
|
|
| Metrica | Descripcion |
|
|
|---------|-------------|
|
|
| totalProducts | Total de productos en catalogo |
|
|
| activeProducts | Productos con stock disponible |
|
|
| lowStockCount | Productos con stock bajo el minimo |
|
|
| outOfStockCount | Productos agotados |
|
|
| turnoverRate | Tasa de rotacion de inventario |
|
|
| inventoryValue | Valor total del inventario |
|
|
| topSellingCategories | Categorias con mayor venta |
|
|
| slowMovingProducts | Productos con baja rotacion |
|
|
|
|
### Summary KPIs (Dashboard)
|
|
| Metrica | Descripcion |
|
|
|---------|-------------|
|
|
| totalSalesToday | Ventas del dia actual |
|
|
| totalSalesWeek | Ventas de la semana |
|
|
| totalSalesMonth | Ventas del mes |
|
|
| pendingFiados | Monto pendiente de fiados |
|
|
| lowStockAlerts | Alertas de stock bajo |
|
|
| activeCustomers | Clientes activos del mes |
|
|
| salesGrowth | Crecimiento vs mes anterior |
|
|
| topProductToday | Producto mas vendido hoy |
|
|
|
|
### Trend Data (Graficos)
|
|
| Serie | Descripcion |
|
|
|-------|-------------|
|
|
| daily_sales | Ventas diarias |
|
|
| weekly_sales | Ventas semanales |
|
|
| new_customers | Nuevos clientes por periodo |
|
|
| fiados_collected | Fiados cobrados por periodo |
|
|
| inventory_value | Valor de inventario por periodo |
|
|
|
|
## Endpoints API
|
|
|
|
| Metodo | Endpoint | Descripcion |
|
|
|--------|----------|-------------|
|
|
| GET | /analytics/sales | Metricas de ventas |
|
|
| GET | /analytics/customers | Metricas de clientes |
|
|
| GET | /analytics/fiados | Metricas de fiados |
|
|
| GET | /analytics/inventory | Metricas de inventario |
|
|
| GET | /analytics/summary | Resumen de KPIs para dashboard |
|
|
| GET | /analytics/trends | Datos de tendencias historicas |
|
|
|
|
### GET /analytics/sales
|
|
|
|
Retorna metricas de ventas para el changarrito autenticado.
|
|
|
|
**Query Parameters:**
|
|
| Parametro | Tipo | Default | Descripcion |
|
|
|-----------|------|---------|-------------|
|
|
| period | string | 30d | Periodo: 7d, 30d, 90d, 1y |
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"totalSales": 45000.00,
|
|
"salesCount": 320,
|
|
"averageTicket": 140.63,
|
|
"salesGrowth": 12.5,
|
|
"cashSales": 35000.00,
|
|
"cardSales": 5000.00,
|
|
"fiadoSales": 5000.00,
|
|
"topProducts": [
|
|
{ "productId": "uuid", "name": "Coca-Cola 600ml", "quantity": 150, "revenue": 3750.00 },
|
|
{ "productId": "uuid", "name": "Pan Bimbo Grande", "quantity": 80, "revenue": 3200.00 }
|
|
],
|
|
"salesByDay": [
|
|
{ "date": "2026-01-01", "total": 1500.00, "count": 12 },
|
|
{ "date": "2026-01-02", "total": 1800.00, "count": 15 }
|
|
],
|
|
"peakHour": 18
|
|
}
|
|
```
|
|
|
|
### GET /analytics/customers
|
|
|
|
Retorna metricas de clientes para el changarrito autenticado.
|
|
|
|
**Query Parameters:**
|
|
| Parametro | Tipo | Default | Descripcion |
|
|
|-----------|------|---------|-------------|
|
|
| period | string | 30d | Periodo: 7d, 30d, 90d, 1y |
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"totalCustomers": 85,
|
|
"newCustomers": 12,
|
|
"activeCustomers": 45,
|
|
"customerRetention": 72.5,
|
|
"averagePurchaseFrequency": 3.2,
|
|
"customerGrowth": 8.5,
|
|
"topCustomers": [
|
|
{ "customerId": "uuid", "name": "Juan Perez", "totalPurchases": 2500.00, "visits": 15 },
|
|
{ "customerId": "uuid", "name": "Maria Garcia", "totalPurchases": 1800.00, "visits": 12 }
|
|
]
|
|
}
|
|
```
|
|
|
|
### GET /analytics/fiados
|
|
|
|
Retorna metricas de fiados para el changarrito autenticado.
|
|
|
|
**Query Parameters:**
|
|
| Parametro | Tipo | Default | Descripcion |
|
|
|-----------|------|---------|-------------|
|
|
| period | string | 30d | Periodo: 7d, 30d, 90d, 1y |
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"totalFiados": 25,
|
|
"pendingBalance": 8500.00,
|
|
"paidThisPeriod": 12000.00,
|
|
"paidOnTime": 68.5,
|
|
"overdueCount": 8,
|
|
"overdueAmount": 3200.00,
|
|
"averageFiadoAmount": 340.00,
|
|
"collectionRate": 58.5,
|
|
"fiadosByCustomer": [
|
|
{ "customerId": "uuid", "name": "Pedro Lopez", "balance": 1500.00, "fiados": 3 },
|
|
{ "customerId": "uuid", "name": "Ana Martinez", "balance": 800.00, "fiados": 2 }
|
|
]
|
|
}
|
|
```
|
|
|
|
### GET /analytics/inventory
|
|
|
|
Retorna metricas de inventario para el changarrito autenticado.
|
|
|
|
**Query Parameters:**
|
|
| Parametro | Tipo | Default | Descripcion |
|
|
|-----------|------|---------|-------------|
|
|
| period | string | 30d | Periodo: 7d, 30d, 90d, 1y |
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"totalProducts": 150,
|
|
"activeProducts": 142,
|
|
"lowStockCount": 12,
|
|
"outOfStockCount": 8,
|
|
"turnoverRate": 2.5,
|
|
"inventoryValue": 85000.00,
|
|
"topSellingCategories": [
|
|
{ "category": "Bebidas", "sales": 15000.00, "percentage": 33.3 },
|
|
{ "category": "Abarrotes", "sales": 12000.00, "percentage": 26.7 }
|
|
],
|
|
"lowStockProducts": [
|
|
{ "productId": "uuid", "name": "Leche Lala 1L", "currentStock": 3, "minStock": 10 },
|
|
{ "productId": "uuid", "name": "Huevo 12pz", "currentStock": 2, "minStock": 5 }
|
|
]
|
|
}
|
|
```
|
|
|
|
### GET /analytics/summary
|
|
|
|
Retorna resumen de KPIs principales para dashboard del tendero.
|
|
|
|
**Response:**
|
|
```json
|
|
{
|
|
"totalSalesToday": 2500.00,
|
|
"totalSalesWeek": 15000.00,
|
|
"totalSalesMonth": 45000.00,
|
|
"salesGrowth": 12.5,
|
|
"pendingFiados": 8500.00,
|
|
"lowStockAlerts": 12,
|
|
"activeCustomers": 45,
|
|
"topProductToday": {
|
|
"name": "Coca-Cola 600ml",
|
|
"quantity": 25,
|
|
"revenue": 625.00
|
|
},
|
|
"salesByPaymentMethod": {
|
|
"cash": 35000.00,
|
|
"card": 5000.00,
|
|
"fiado": 5000.00
|
|
}
|
|
}
|
|
```
|
|
|
|
### GET /analytics/trends
|
|
|
|
Retorna datos de tendencias historicas para graficos.
|
|
|
|
**Query Parameters:**
|
|
| Parametro | Tipo | Default | Descripcion |
|
|
|-----------|------|---------|-------------|
|
|
| period | string | 30d | Periodo: 7d, 30d, 90d, 1y |
|
|
|
|
**Response:**
|
|
```json
|
|
[
|
|
{
|
|
"metric": "daily_sales",
|
|
"data": [
|
|
{ "date": "2026-01-01", "value": 1500.00 },
|
|
{ "date": "2026-01-02", "value": 1800.00 },
|
|
{ "date": "2026-01-03", "value": 2200.00 }
|
|
]
|
|
},
|
|
{
|
|
"metric": "new_customers",
|
|
"data": [
|
|
{ "date": "2026-01-01", "value": 2 },
|
|
{ "date": "2026-01-02", "value": 1 },
|
|
{ "date": "2026-01-03", "value": 3 }
|
|
]
|
|
},
|
|
{
|
|
"metric": "fiados_collected",
|
|
"data": [
|
|
{ "date": "2026-01-01", "value": 500.00 },
|
|
{ "date": "2026-01-02", "value": 350.00 },
|
|
{ "date": "2026-01-03", "value": 800.00 }
|
|
]
|
|
},
|
|
{
|
|
"metric": "inventory_value",
|
|
"data": [
|
|
{ "date": "2026-01-01", "value": 82000.00 },
|
|
{ "date": "2026-01-02", "value": 83500.00 },
|
|
{ "date": "2026-01-03", "value": 85000.00 }
|
|
]
|
|
}
|
|
]
|
|
```
|
|
|
|
## Permisos Requeridos
|
|
|
|
| Endpoint | Permiso | Rol Minimo |
|
|
|----------|---------|------------|
|
|
| GET /analytics/sales | analytics:read | Owner |
|
|
| GET /analytics/customers | analytics:read | Owner |
|
|
| GET /analytics/fiados | analytics:read | Owner |
|
|
| GET /analytics/inventory | analytics:read | Owner |
|
|
| GET /analytics/summary | analytics:read | Owner, Empleado |
|
|
| GET /analytics/trends | analytics:read | Owner |
|
|
|
|
**Nota:** El endpoint /analytics/summary esta disponible para empleados con vista reducida (solo ventas del dia y alertas de stock).
|
|
|
|
---
|
|
|
|
## Historias de Usuario
|
|
|
|
### MCH-US-150: Dashboard de Metricas del Tendero
|
|
|
|
**Como** dueno del changarrito
|
|
**Quiero** ver un resumen de metricas clave en mi dashboard
|
|
**Para** entender rapidamente el estado de mi negocio
|
|
|
|
**Story Points:** 8
|
|
|
|
**Criterios de Aceptacion:**
|
|
- [CA-150-1] Dashboard muestra ventas del dia, semana y mes
|
|
- [CA-150-2] Muestra crecimiento porcentual vs periodo anterior
|
|
- [CA-150-3] Indica cantidad de fiados pendientes y monto
|
|
- [CA-150-4] Alerta visualmente sobre productos con stock bajo
|
|
- [CA-150-5] Muestra producto mas vendido del dia
|
|
- [CA-150-6] Grafico de ventas de los ultimos 7 dias
|
|
- [CA-150-7] Se actualiza en tiempo real al registrar ventas
|
|
|
|
**Tareas:**
|
|
| ID | Tarea | Tipo | SP |
|
|
|----|-------|------|-----|
|
|
| MCH-TT-150-01 | Crear AnalyticsModule en backend | Backend | 0.5 |
|
|
| MCH-TT-150-02 | Implementar AnalyticsService base | Backend | 1 |
|
|
| MCH-TT-150-03 | Endpoint GET /analytics/summary | Backend | 1 |
|
|
| MCH-TT-150-04 | Componente DashboardMetrics en frontend | Frontend | 2 |
|
|
| MCH-TT-150-05 | Integracion con graficos (Chart.js/Recharts) | Frontend | 1.5 |
|
|
| MCH-TT-150-06 | Widget de alertas de stock bajo | Frontend | 1 |
|
|
| MCH-TT-150-07 | Tests unitarios | Test | 0.5 |
|
|
| MCH-TT-150-08 | Documentacion de endpoints | Docs | 0.5 |
|
|
|
|
---
|
|
|
|
### MCH-US-151: Reportes de Ventas
|
|
|
|
**Como** dueno del changarrito
|
|
**Quiero** ver reportes detallados de mis ventas
|
|
**Para** identificar tendencias y productos estrella
|
|
|
|
**Story Points:** 8
|
|
|
|
**Criterios de Aceptacion:**
|
|
- [CA-151-1] Filtrar ventas por periodo (7d, 30d, 90d, 1y)
|
|
- [CA-151-2] Ver desglose por metodo de pago (efectivo, tarjeta, fiado)
|
|
- [CA-151-3] Lista de top 10 productos mas vendidos
|
|
- [CA-151-4] Grafico de ventas por dia
|
|
- [CA-151-5] Identificar hora pico de ventas
|
|
- [CA-151-6] Calcular ticket promedio del periodo
|
|
|
|
**Tareas:**
|
|
| ID | Tarea | Tipo | SP |
|
|
|----|-------|------|-----|
|
|
| MCH-TT-151-01 | Endpoint GET /analytics/sales | Backend | 1.5 |
|
|
| MCH-TT-151-02 | Queries SQL optimizadas para agregaciones | Backend | 1 |
|
|
| MCH-TT-151-03 | Endpoint GET /analytics/trends | Backend | 1 |
|
|
| MCH-TT-151-04 | Pagina ReportesVentas en frontend | Frontend | 2 |
|
|
| MCH-TT-151-05 | Componente filtro de periodos | Frontend | 0.5 |
|
|
| MCH-TT-151-06 | Graficos de tendencias | Frontend | 1 |
|
|
| MCH-TT-151-07 | Tests de integracion | Test | 0.5 |
|
|
| MCH-TT-151-08 | Documentacion | Docs | 0.5 |
|
|
|
|
---
|
|
|
|
### MCH-US-152: Metricas de Fiados y Clientes
|
|
|
|
**Como** dueno del changarrito
|
|
**Quiero** ver el estado de mis fiados y comportamiento de clientes
|
|
**Para** gestionar mejor la cobranza y fidelizar clientes
|
|
|
|
**Story Points:** 5
|
|
|
|
**Criterios de Aceptacion:**
|
|
- [CA-152-1] Ver saldo total pendiente de fiados
|
|
- [CA-152-2] Lista de clientes con fiados vencidos
|
|
- [CA-152-3] Tasa de cobranza del periodo
|
|
- [CA-152-4] Top clientes por monto de compra
|
|
- [CA-152-5] Nuevos clientes vs clientes recurrentes
|
|
- [CA-152-6] Alertas de fiados por vencer
|
|
|
|
**Tareas:**
|
|
| ID | Tarea | Tipo | SP |
|
|
|----|-------|------|-----|
|
|
| MCH-TT-152-01 | Endpoint GET /analytics/fiados | Backend | 1 |
|
|
| MCH-TT-152-02 | Endpoint GET /analytics/customers | Backend | 1 |
|
|
| MCH-TT-152-03 | Pagina MetricasFiados en frontend | Frontend | 1.5 |
|
|
| MCH-TT-152-04 | Componente lista fiados vencidos | Frontend | 0.5 |
|
|
| MCH-TT-152-05 | Tests unitarios | Test | 0.5 |
|
|
| MCH-TT-152-06 | Documentacion | Docs | 0.5 |
|
|
|
|
---
|
|
|
|
## Resumen de Story Points
|
|
|
|
| Historia | SP | Sprint |
|
|
|----------|-----|--------|
|
|
| MCH-US-150: Dashboard de Metricas | 8 | 8 |
|
|
| MCH-US-151: Reportes de Ventas | 8 | 8 |
|
|
| MCH-US-152: Metricas de Fiados y Clientes | 5 | 9 |
|
|
| **TOTAL** | **21** | 8-9 |
|
|
|
|
---
|
|
|
|
## Criterios de Aceptacion de Epica
|
|
|
|
- [ ] Dashboard muestra KPIs correctos en tiempo real
|
|
- [ ] Metricas de ventas calculan correctamente por periodo
|
|
- [ ] Metricas de fiados reflejan estado actual de cobranza
|
|
- [ ] Metricas de inventario identifican productos con stock bajo
|
|
- [ ] Graficos de tendencias muestran datos historicos correctos
|
|
- [ ] Filtro de periodos funciona (7d, 30d, 90d, 1y)
|
|
- [ ] Datos se filtran por tenant_id del usuario autenticado
|
|
- [ ] Cobertura de tests >80%
|
|
- [ ] Rendimiento: endpoints responden en <500ms
|
|
|
|
## Entregables
|
|
|
|
| Entregable | Estado | Sprint | Ubicacion |
|
|
|------------|--------|--------|-----------|
|
|
| analytics.module.ts | Planificado | 8 | `apps/backend/src/modules/analytics/` |
|
|
| analytics.controller.ts | Planificado | 8 | `apps/backend/src/modules/analytics/` |
|
|
| analytics.service.ts | Planificado | 8 | `apps/backend/src/modules/analytics/` |
|
|
| DTOs | Planificado | 8 | `apps/backend/src/modules/analytics/dto/` |
|
|
| Pagina Dashboard | Planificado | 8 | `apps/frontend/src/pages/dashboard/` |
|
|
| Pagina Reportes | Planificado | 8 | `apps/frontend/src/pages/reportes/` |
|
|
|
|
## Dependencias
|
|
|
|
### Depende de
|
|
- MCH-031 (Audit Logs) - Para metricas de uso y actividad
|
|
- MCH-021 (Ventas y POS) - Datos de ventas y transacciones
|
|
|
|
### Bloquea a
|
|
- Ninguno (modulo de solo lectura)
|
|
|
|
### Entidades Utilizadas
|
|
```typescript
|
|
import { Sale } from '../sales/entities/sale.entity';
|
|
import { Customer } from '../customers/entities/customer.entity';
|
|
import { Fiado } from '../fiados/entities/fiado.entity';
|
|
import { FiadoPayment } from '../fiados/entities/fiado-payment.entity';
|
|
import { Product } from '../products/entities/product.entity';
|
|
import { AuditLog } from '../audit/entities/audit-log.entity';
|
|
```
|
|
|
|
## Notas de Implementacion
|
|
|
|
### Calculo de Periodos
|
|
- El periodo se calcula desde la fecha actual hacia atras
|
|
- Para comparar crecimiento, se usa el periodo anterior de igual duracion
|
|
- Truncamiento de fechas:
|
|
- 7d, 30d: Por dia
|
|
- 90d: Por semana
|
|
- 1y: Por mes
|
|
|
|
### Performance
|
|
- Las consultas utilizan agregaciones SQL para eficiencia
|
|
- Se usa COUNT(DISTINCT customer_id) para clientes activos unicos
|
|
- Las tendencias usan DATE_TRUNC para agrupar por periodo
|
|
- Considerar cache en Redis para metricas frecuentes (summary)
|
|
|
|
### Estimaciones
|
|
- `customerRetention`: Se calcula como `(clientesRecurrentes / clientesActivos) * 100`
|
|
- `turnoverRate`: Se calcula como `(costoVentas / inventarioPromedio)`
|
|
|
|
---
|
|
|
|
## Referencia Template-SaaS
|
|
|
|
Esta epica esta basada en el modulo SAAS-016 de template-saas, adaptado al contexto de punto de venta para changarritos:
|
|
|
|
| Modulo SAAS | Version | Adaptacion MCH |
|
|
|-------------|---------|----------------|
|
|
| SAAS-016 Analytics | 1.0.0 | Metricas de ventas, clientes, fiados, inventario |
|
|
|
|
### Mapeo de Metricas SAAS-016 a MCH-034
|
|
|
|
| SAAS-016 Original | MCH-034 Adaptado |
|
|
|-------------------|------------------|
|
|
| User Metrics | Customer Metrics |
|
|
| Billing Metrics | Sales Metrics |
|
|
| Usage Metrics | Inventory Metrics |
|
|
| - | Fiados Metrics (nuevo) |
|
|
|
|
Ver documentacion fuente en `projects/template-saas/docs/01-modulos/SAAS-016-analytics.md`
|
|
|
|
---
|
|
|
|
**Ultima actualizacion:** 2026-01-13
|
|
**Autor:** Architecture Team
|
|
**Alineacion:** template-saas v1.0.0 (SAAS-016)
|