# PRD: POS "Welcomeback POS" — El Primer POS QSR Nativo en IA para la Recurrencia
**Versión:** 1.1  
**Fecha:** 2026-06-03  
**Estado:** Listo para desarrollo  
**Stack:** React 18 + Node.js (Fastify) + PostgreSQL  
**Desarrollado por:** Welcomeback

---

## 1. Resumen Ejecutivo

**Welcomeback POS** es el primer POS de Quick Service Restaurant (QSR) del mercado chileno con inteligencia de recurrencia nativa, desarrollado por Welcomeback. No es un POS con fidelización añadida como módulo — es un POS que nació con el cliente en el centro.

**Segmento foco:** QSR — cafeterías de especialidad, locales de almuerzo rápido, dark kitchens con retiro. Cero gestión de mesas. Alto volumen en barra.

**Propuesta de valor doble:**
1. **Para el cajero:** Flujo completo Pedir → Modificar → Pagar → Boleta SII → Ticket Barra en ≤15 segundos. Para clientes recurrentes identificados: ≤5 segundos con "¿Lo de siempre?".
2. **Para el dueño:** El primer POS que convierte cada transacción en dato de retención. Sabe quién vuelve, quién se fue, y cuándo actuar.

**El diferenciador real:** Todos los demás POS del mercado tratan cada transacción como si fuera la primera vez. Welcomeback POS + Welcomeback saben que Juan viene todos los martes a las 9am, que siempre pide NotMilk, y que lleva 16 días sin aparecer.

**Mercado objetivo MVP:** 50 locales QSR en Santiago (beta cerrado). Validación en rush hour: 08:30-10:00 y 13:00-14:30.

---

## 2. Contexto de Mercado

### 2.1 Tamaño y Oportunidad

| Métrica | Valor |
|---|---|
| Locales gastronómicos activos en Chile (SII 2025) | ~55.000 |
| Adopción de POS digital | ~35% |
| Gap en segmento takeaway/barra | Sin solución específica |
| Precio objetivo | $45-70 USD/mes |

### 2.2 Análisis Competitivo

| Eje | Toteat | Bsale | SumUp | Welcomeback POS |
|---|---|---|---|---|
| Precio mensual | $80-150 USD | $63-98 USD | $0 + % | **$45-70 USD** |
| DTE nativo | Sí | Parcial | No | **Sí (default)** |
| Modificadores 1-clic | No optimizado | No tiene | No | **Diferenciador #1** |
| Foco takeaway/barra | Secundario | No | No | **Core use case** |
| Ticket dual cajero+barra | Sí | No | No | **Sí** |
| Offline mode | Sí | No | No | **Sí** |
| Setup time | Demo requerido | ~2 horas | Inmediato | **Target ≤30 min** |
| Clientes en Chile | 3.000-4.000 | 12.000 total | 15.000-30.000 | 50 (beta) |

### 2.3 Lo que los competidores hacen bien (y tomamos)

- **Toteat:** KDS, integración SII, offline mode → los tres van en MVP o roadmap cercano.
- **Bsale:** Pricing transparente, autoservicio sin demo → modelo que adoptamos.
- **Square:** Interfaz limpia, hardware agnóstico, onboarding rápido → inspiración UX.
- **Poster POS:** Setup en 2-3 días, soporte 24/7, 15-day trial → go-to-market a copiar.

### 2.4 Lo que los competidores hacen mal (nuestra ventaja)

- Todos diseñados para mesas y garzones. Nadie optimiza la **Matriz de Modificadores para QSR**.
- Redelcom cobra el DTE como **add-on**. Nosotros lo incluimos por defecto.
- Toteat requiere demo de ventas. Nosotros: autoservicio, live en 30 minutos.
- Ninguno tiene **ticket dual automático** (cajero + barra) sin configuración adicional.
- **El vacío más grande:** Ningún POS del mercado chileno tiene inteligencia de recurrencia nativa. Todos tratan cada transacción como si fuera nueva. Welcomeback ya tiene el historial de clientes — Welcomeback POS lo convierte en acción en la caja.

### 2.5 Oportunidad comercial — Cumplimiento SII y el riesgo de clausura

**Contexto (dato de campo — reunión con Andrés Tursky, dueño de Fogo de Chão Chile):**

Una práctica generalizada en restaurantes chilenos es el uso del "ticket de preventa" o pre-cuenta: un papel informal que se lleva al cliente antes de emitir la boleta real. Esta práctica es **ilegal** según el marco tributario chileno y expone al negocio a clausura inmediata.

#### Marco legal relevante

| Norma | Qué dice |
|---|---|
| **Art. 55, DL 825** (Ley de IVA) | Obliga a emitir la boleta al momento de la entrega o el pago — no existe margen legal para diferirla. [bcn.cl](https://www.bcn.cl/leychile/navegar?idNorma=6369) |
| **Art. 97 N°10, Código Tributario** | No emitir boleta → multa hasta 10× el monto. Reincidencia → multa doble. Infracciones reiteradas o públicas → **clausura del local hasta 20 días**. [bcn.cl](https://www.bcn.cl/leychile/navegar?idNorma=4984) |

#### Cómo opera el flujo legal (dato operativo de campo)

- **Offline autorizado:** El restaurante descarga un stack de folios CAF autorizados por el SII. El POS firma las boletas localmente sin necesidad de internet en tiempo real.
- **Sincronización al cierre:** Al cerrar caja, el sistema sube automáticamente todas las boletas del día al SII en lote.
- **Anulaciones:** Si una boleta quedó mal, no se puede editar. El flujo legal exige emitir una **Nota de Crédito (Tipo 61)** para anularla y generar una nueva.

#### El gancho comercial

Welcomeback POS emite la boleta electrónica automáticamente al confirmar el pago. No existe pantalla de "pre-cuenta" ni documento no tributario en el flujo. El POS es 100% legal por diseño.

**Argumento de venta directo:** salir a restaurantes advirtiendo del riesgo real de clausura por el uso de pre-cuentas y ofreciendo una solución donde el flujo de boleta directa y notas de crédito automáticas es rápido, limpio y sin riesgo tributario.

---

## 3. Alcance del MVP (Fase 1)

### 3.1 Incluido

| Módulo | Descripción |
|---|---|
| M1 — Pantalla de Venta Fast-Lane | Grid de productos con top 12 visibles, resumen de orden en tiempo real |
| M2 — Matriz de Modificadores | Modal con grupos configurables, precio dinámico, validación de requeridos |
| M3 — Flujo de Cobro y Pago | Efectivo / Débito / Crédito / Mixto + integración Transbank/SumUp |
| M4 — Emisión DTE | Boleta electrónica SII automática, modo offline con cola, CAF automático |
| M5 — Impresión Dual | Ticket cliente (con QR) + Ticket barra (solo items/modificadores) |
| M6 — Backoffice | Gestión de carta, modificadores, configuración local, reporte de caja |
| **M7 — Welcomeback IA** | **Identificación del cliente, sugerencia "¿Lo de siempre?", stamps automáticos, alertas de retención. El diferenciador central.** |
| **M8 — Dashboard de Reportes** | **Overview, Sales summary, Payment methods, DTE history, SII sync status. Acceso desde dashboard.welcomeback.io** |

### 3.2 Explícitamente fuera del MVP

| Feature | Fase |
|---|---|
| Reportes avanzados (Menu analysis, Labor, Guest engagement) | Fase 2 |
| KDS pantalla barra (marcar "Listo") | Fase 2 |
| Gestión de inventario de insumos | Fase 2 |
| Integración Cover Manager (reservas → mesas automáticas) | Fase 2 |
| Integración Rappi/PedidosYa/Uber Eats | Fase 2 |
| App nativa iOS/Android | Fase 2-3 |
| WhatsApp "pedido listo" | Fase 3 |
| Kiosco de auto-atención (totem) | Fase 3 |
| Benchmarking anónimo entre locales | Fase 3 |
| Kitchen operations reports (requiere KDS) | Fase 3 |
| IA predicción de producción fresca (pastelería) | Fase 4 |
| Gestión de mesas / salones | Nunca en este producto |
| División de cuentas | Nunca en este producto |

---

## 4. Usuarios y Personas

### Cajero / Barista de Barra
- **Nombre:** Camila, 24 años
- **Contexto:** Trabaja en una cafetería de especialidad en Providencia. Maneja entre 80-150 transacciones diarias en hora peak.
- **Pain point:** Con el POS actual pierde 10-15 segundos por pedido personalizado. La fila se acumula.
- **Goal:** Cerrar una transacción compleja (Latte + 3 modificadores) en ≤5 segundos de digitación.
- **Device:** Tablet Android 10" o iPad Mini en posición horizontal, montada en soporte de mostrador.

### Dueño / Administrador del Local
- **Nombre:** Sebastián, 34 años
- **Contexto:** Dueño de 2 cafeterías. Revisa ventas desde el celular. No tiene tiempo para configuraciones complejas.
- **Pain point:** No sabe si sus cajeros están emitiendo todas las boletas. Le preocupa el SII.
- **Goal:** Ver el reporte del día en 10 segundos desde el celular. Saber que el DTE está al día.
- **Device:** iPhone / Android para backoffice. MacBook para configuración inicial.

### Barista / Cocinero de Producción
- **Nombre:** Felipe, 28 años
- **Contexto:** Está detrás de la barra preparando pedidos. No ve la pantalla del cajero.
- **Pain point:** Los tickets impresos a veces no muestran las modificaciones claramente.
- **Goal:** Ver en el ticket exactamente qué preparar, sin precios ni datos que no le importan.
- **Device:** Impresora térmica 58mm o 80mm junto a su estación.

---

## 5. Métricas de Éxito del MVP

### KPIs de Producto

| Métrica | Target MVP | Cómo medir |
|---|---|---|
| Tiempo de transacción simple | ≤8 segundos | Timestamp inicio tap → DTE emitido |
| Tiempo de transacción compleja | ≤15 segundos | Igual, 3+ items con modificadores |
| Uptime durante horas de operación | ≥99.5% | Monitoreo 07:00-21:00 |
| Transacciones sin boleta al cierre | 0 | Reconciliación DTE vs ventas |
| NPS cajeros (semana 1) | ≥50 | Survey in-app post primera semana |
| Retención beta (30 días) | ≥80% | Locales activos / locales ingresados |

### KPIs de Adopción

| Métrica | Target |
|---|---|
| Locales en beta cerrado | 50 |
| Tiempo de onboarding (activación) | ≤30 minutos |
| Soporte tickets semana 1 | ≤2 por local |

---

## 6. Modelo de Datos

```
Local
├── id, nombre, rut, logo_url
├── certificado_sii (encrypted)
├── plan_suscripcion, activo
├── Cajeros[]
├── Categorias[]
│   └── Productos[]
│       ├── nombre, precio, foto_url, activo
│       ├── frecuencia_uso (para ordenar grid)
│       └── GruposModificadores[]
│           ├── nombre, tipo (single|multi|input), requerido
│           ├── min_seleccion, max_seleccion
│           └── OpcionesModificador[]
│               └── nombre, precio_extra, activo
├── Ordenes[]
│   ├── numero_diario, nombre_cliente, estado
│   ├── created_at, closed_at
│   ├── ItemsOrden[]
│   │   ├── producto_id, cantidad, precio_unitario
│   │   └── ModificadoresSeleccionados[]
│   │       └── opcion_id, nombre_snapshot, precio_extra_snapshot
│   ├── Pagos[]
│   │   └── metodo, monto, referencia_transbank
│   └── DTE[]
│       └── folio, tipo (39|33), xml, timbre, estado (pendiente|emitido|error)
└── FoliosCAF[]
    └── desde, hasta, disponibles, certificado_xml
```

---

## 7. Flujo Happy Path (15 segundos)

```
t=0s    Cajero toca "Latte Grande" en el grid
t=1s    Modal de modificadores aparece (carga <200ms)
t=3s    Cajero selecciona: NotMilk / +1 shot / Sin azúcar
t=5s    Toca "Agregar" → ítem aparece en resumen con precio actualizado
t=6s    Toca "Cobrar" (botón footer verde)
t=7s    Pantalla de pago: total $5.300, botones método de pago
        Cajero escribe "Juan" en campo nombre (opcional)
t=9s    Selecciona "Débito" → terminal Transbank se activa
t=12s   Cliente pasa tarjeta → terminal confirma pago aprobado
t=12s   POS genera DTE XML + envía a SII (background async)
        Impresora 1 → ticket cliente (folio, QR)
        Impresora 2 → ticket barra (#42 Juan / Latte / NotMilk / +1 shot)
t=13s   Pantalla vuelve a estado inicial lista para siguiente cliente
t=14s   SII confirma timbre ✓ (async, sin bloquear UI)
```

---

## 8. Estados de la Orden

```
ACTIVA → (pago iniciado) → PROCESANDO_PAGO → PAGO_APROBADO → DTE_ENVIADO → CERRADA
                                            → PAGO_RECHAZADO → ACTIVA (retry)
                                                               → ACTIVA (cambio método)
ACTIVA → (cajero cancela) → CANCELADA
CERRADA + sin internet → DTE_PENDIENTE → (reconecta) → DTE_ENVIADO → CERRADA
```

---

## 9. Requisitos No Funcionales

| Requisito | Especificación |
|---|---|
| Rendimiento | Modal de modificadores: <200ms. Pantalla de venta: <100ms respuesta a tap |
| Offline | Operación completa sin internet. Cola DTE hasta 200 transacciones (24h legal SII) |
| Compatibilidad | Chrome 100+, Edge, Firefox. Tablet Android 8+ / iPad iOS 14+ |
| Seguridad | HTTPS everywhere. JWT con refresh. Certificado SII encriptado en reposo (AES-256) |
| Impresoras | ESC/POS: Epson TM-T20III, Star TSP100, Bixolon SRP-350 (USB/Ethernet/BT) |
| Concurrencia | Un local puede tener hasta 3 terminales activos simultáneos |

---

## 10. Estructura de Archivos del PRD

```
MVP Pos/
├── PRD_Speed_Go_v1.md          ← Este documento
├── screens/
│   ├── 01_pantalla_venta.md    ← Grid productos + resumen orden
│   ├── 02_modificadores.md     ← Modal modificadores
│   ├── 03_cobro_pago.md        ← Flujo pago
│   ├── 04_emision_dte.md       ← SII / boleta electrónica
│   ├── 05_kds_barra.md         ← Ticket barra + impresión
│   └── 06_reportes.md          ← Dashboard de reportes (todas las fases)
├── flujos/
│   ├── flujo_cajero.md         ← Happy path + edge cases cajero
│   └── flujo_barista.md        ← Perspectiva barista/producción
└── tech/
    ├── arquitectura.md         ← Stack completo, módulos, decisiones
    └── integraciones.md        ← SII, Transbank, ESC/POS
```

---

## 11. Criterios de Aceptación del MVP Completo

- [ ] Un cajero sin entrenamiento previo puede completar su primera transacción en ≤2 minutos de uso.
- [ ] El tiempo promedio de transacción compleja en condiciones reales es ≤15 segundos.
- [ ] 0 transacciones sin boleta emitida al cierre del día (online o en cola offline).
- [ ] El backoffice permite configurar la carta completa de un local en ≤30 minutos.
- [ ] El sistema opera sin degradación durante 4 horas continuas de uso intensivo (100 transacciones/hora).
- [ ] Los tickets impresos cumplen con los requisitos visuales del SII (folio, timbre, QR).
- [ ] El dashboard de reportes muestra Overview, Sales summary, Payment methods y DTE status en ≤3 segundos.

---

## 12. Módulo de Reportes (M8) — dashboard.welcomeback.io/reportes

### 12.1 Filosofía del Módulo

El dashboard de reportes de Welcomeback POS está diseñado con tres principios:

1. **Acción, no solo datos**: Cada reporte debe responder "¿qué hago con esto?" y ofrecer una acción clara.
2. **Mobile-first**: El dueño revisa desde el celular entre clientes. Diseño responsive obligatorio.
3. **Diferenciación por IA**: Los reportes de Guest Engagement convierten data de transacciones en acciones de retención — algo que ningún competidor tiene.

### 12.2 Estructura de Navegación

```
dashboard.welcomeback.io/reportes/
├── Overview (Fase 1 — MVP)
├── Sales (Fase 1 — MVP)
│   ├── Sales summary
│   ├── Product mix
│   ├── Payment methods
│   ├── Hourly sales (Fase 2)
│   ├── Day part analysis (Fase 2)
│   └── Sales by cashier (Fase 2)
├── Menu (Fase 2)
│   ├── Top products
│   ├── Product performance
│   ├── Modifier analysis
│   ├── Category mix
│   └── Low performers
├── Payments (Fase 1 — MVP)
│   ├── Payment methods breakdown
│   ├── Cash reconciliation (Fase 2)
│   └── Failed transactions (Fase 2)
├── Invoices (Fase 1 — MVP)
│   ├── DTE history
│   ├── Credit notes
│   ├── SII sync status
│   └── Monthly DTE export
├── Cash and loss management (Fase 2)
│   ├── Cash drawer variance
│   ├── Voids & refunds
│   ├── Discount usage
│   └── Over/short report
├── Guest engagement ⭐ (Fase 2 — DIFERENCIADOR)
│   ├── Recurrence rate
│   ├── Visit frequency
│   ├── Churn alerts
│   ├── AI recommendations
│   └── Campaign performance
├── Benchmarking (Fase 3)
│   ├── Overview
│   ├── Menu insights
│   └── Service insights
├── Kitchen operations (Fase 3 — requiere KDS)
│   ├── Ticket times
│   ├── Order accuracy
│   └── Peak hour efficiency
├── Labor (Fase 2)
│   ├── Labor summary
│   ├── Time & attendance
│   └── Labor cost %
└── Settings (Fase 1 — MVP)
    ├── Report scheduling
    ├── Export templates
    └── User permissions
```

---

### 12.3 Reportes por Fase

#### **FASE 1 (MVP) — Reportes Esenciales**

Los reportes de Fase 1 responden las 3 preguntas que un dueño hace todos los días:
1. ¿Cuánto vendí?
2. ¿Están todas las boletas en orden con el SII?
3. ¿Cómo cobraron los pagos?

##### **Overview Dashboard**
- **Qué muestra:** Métricas del día actual (ventas totales, # transacciones, ticket promedio, top 5 productos)
- **Gráfico principal:** Ventas por hora del día (línea)
- **Comparación:** vs día anterior (% cambio)
- **Alertas críticas:** Banner superior con DTE pendientes, caja descuadrada, sync SII
- **Acción:** Selector de rango de fechas, exportar PDF
- **Target de carga:** <3 segundos

##### **Sales Summary**
- **Qué muestra:** Tabla de ventas por día (fecha, # transacciones, total $, ticket promedio)
- **Gráfico:** Línea de tendencia del periodo
- **Filtros:** Rango de fechas, cajero, método de pago
- **Acción:** Exportar a Excel/CSV
- **Criterio de aceptación:** Paginación de tabla (20 filas/página), ordenar por columna

##### **Product Mix**
- **Qué muestra:** Distribución de ventas por categoría de producto
- **Gráfico:** Pie/donut chart con % por categoría
- **Tabla:** Categoría, # unidades, total $, % del total
- **Acción:** Click en segmento filtra tabla, exportar PDF

##### **Payment Methods Breakdown**
- **Qué muestra:** Desglose de métodos de pago (Efectivo, Débito, Crédito, Mixto)
- **Gráfico:** Barras horizontales
- **Tabla:** Método, # transacciones, monto total, % del total, promedio ticket
- **Acción:** Filtro por rango de fechas, exportar Excel

##### **DTE History**
- **Qué muestra:** Historial de todas las boletas emitidas
- **Tabla:** Folio, Fecha/Hora, Cliente, Monto, Tipo (39/61), Estado (enviado/pendiente/error)
- **Filtros:** Fecha, tipo DTE, estado, búsqueda por folio/RUT
- **Estados con color:** Verde (enviado), amarillo (pendiente), rojo (error)
- **Acciones:** Ver XML, descargar PDF, exportar selección múltiple (ZIP)
- **Criterio:** Paginación 50/página, click en fila abre modal con detalle completo

##### **SII Sync Status**
- **Qué muestra:** Estado de sincronización con el SII
- **Elementos:**
  - Último sync exitoso (timestamp)
  - DTE pendientes de envío (contador + lista)
  - DTE con error (contador + razón del error)
  - Log de últimos 10 syncs
- **Acciones:** Botón "Sincronizar ahora" (manual), botón "Reenviar" para DTEs con error
- **Criterio:** Actualización automática cada 5 minutos, notificación si >10 DTEs pendientes

##### **Monthly DTE Export**
- **Qué muestra:** Exportación masiva de DTEs para contabilidad
- **Selector:** Mes/año
- **Resumen:** Total boletas y total $ del mes
- **Acciones:** 
  - Exportar XML (ZIP con estructura: `{mes}_{año}/DTE_{folio}.xml`)
  - Exportar Excel (detalle con Folio, Fecha, RUT, Nombre, Neto, IVA, Total)
- **Criterio:** Generación asíncrona para meses con >500 boletas (progress bar)

##### **Export Templates (Settings)**
- **Qué configura:** Formato de exportaciones predeterminado
- **Opciones:** 
  - Incluir logo en PDFs
  - Formato de fecha (DD/MM/YYYY vs DD-MM-YYYY)
  - Incluir gráficos en Excel
  - Preview antes de exportar
- **Criterio:** Guardar preferencias por usuario, aplicar automáticamente

---

#### **FASE 2 — Reportes Avanzados + Guest Engagement ⭐**

Los reportes de Fase 2 responden:
1. ¿Qué productos funcionan y cuáles no?
2. ¿Mis clientes vuelven o se van?
3. ¿Mi caja está cuadrada?

##### **Hourly Sales**
- **Qué muestra:** Ventas desglosadas por hora del día
- **Gráfico:** Barras (ventas por hora 00:00-23:00)
- **Heatmap:** Lunes-domingo vs horas (identificar peak hours)
- **Tabla:** Hora, # transacciones, total $, ticket promedio
- **Insight automático:** "Top 3 horas: 9am ($XXX), 1pm ($XXX), 6pm ($XXX)"
- **Acción:** Comparar semana actual vs anterior, exportar heatmap PNG, filtro por día semana

##### **Day Part Analysis**
- **Qué muestra:** Ventas por segmento del día (configurable)
- **Configuración:** Desayuno 7-11, Almuerzo 11-16, Once 16-19, Cena 19-22 (editable)
- **Gráfico:** Barras apiladas (ventas por day part)
- **Tabla:** Day part, # transacciones, total $, % del total
- **Insight automático:** "Cena genera solo 8% de ventas — considera extender horario o promoción"
- **Acción:** Comparar con mes anterior, exportar PDF con insights

##### **Sales by Cashier**
- **Qué muestra:** Ranking de performance de cajeros
- **Tabla:** Cajero, # transacciones, total $, ticket promedio, hora más productiva
- **Gráfico:** Barras comparativas
- **Badge:** "Top performer" para cajero con mejor ticket promedio
- **Criterio de privacidad:** Solo admin y dueño ven este reporte
- **Acción:** Comparar vs promedio del local, exportar PDF

##### **Menu — Top Products**
- **Qué muestra:** Los 20 productos más vendidos
- **Tabla:** Nombre, categoría, unidades vendidas, $ total, % del total, tendencia (↑↓ vs periodo anterior)
- **Gráfico:** Barras horizontales
- **Acción:** Click en producto abre "Product Performance Detail", exportar top N (10/20/50)

##### **Menu — Product Performance Detail**
- **Qué muestra:** Vista detallada de un producto individual
- **Elementos:**
  - Gráfico de línea: ventas en el tiempo
  - Margen de contribución (si costo configurado)
  - Horarios más populares para este producto
  - Modificadores más seleccionados
  - Productos comprados junto con este (upsell opportunities)
- **Insight automático:** Si tendencia a la baja → "Este producto bajó 25% vs mes anterior"
- **Acción:** Comparar con benchmark de categoría

##### **Menu — Modifier Analysis**
- **Qué muestra:** Uso de modificadores
- **Tabla:** Modificador, # veces usado, $ extra generado, tasa de attach (%)
- **Gráfico de embudo:** Productos con más → menos modificadores
- **Insight:** "Missed revenue: si 'Extra shot' se usara 20% más → +$150.000/mes"
- **Acción:** Filtrar por producto base, exportar PDF con recommendations

##### **Menu — Category Mix**
- **Qué muestra:** Distribución de ventas por categoría (versión avanzada de Product Mix)
- **Gráfico:** Donut chart + línea de tendencia mensual por categoría
- **Tabla:** Categoría, $ mes actual, $ mes anterior, % cambio, benchmark recomendado
- **Acción:** Comparar con benchmark de tipo de local (ej: cafeterías = 60% bebidas, 30% comida, 10% retail)

##### **Menu — Low Performers**
- **Qué muestra:** Productos con <5 ventas en 30 días
- **Tabla:** Producto, # ventas, última venta hace X días, categoría
- **Métrica:** % de productos "muertos" en la carta
- **Insight:** "15% de tu carta no se vende — considera eliminar para simplificar operación"
- **Acción:** Marcar producto para "revisar", excluir productos de temporada

##### **Cash and Loss — Cash Drawer Variance**
- **Qué muestra:** Diferencia entre efectivo esperado vs real
- **Tabla:** Fecha cierre caja, cajero, efectivo esperado, efectivo declarado, diferencia
- **Gráfico:** Línea de diferencias en el tiempo
- **Alerta:** Si diferencia >$10.000 → banner rojo
- **Acumulado:** Diferencias por cajero (detectar patrones)
- **Acción:** Agregar "razón" de diferencia (ej: "cambio para cliente"), exportar Excel

##### **Cash and Loss — Voids & Refunds**
- **Qué muestra:** Items cancelados y notas de crédito
- **Tabla:** Fecha, cajero, producto cancelado, razón, monto
- **Métrica:** Total $ perdido por voids, % de órdenes con void
- **Alerta:** Si cajero tiene >10% de voids vs promedio
- **Acción:** Obligar selección de razón al hacer void, exportar con notas crédito asociadas

##### **Cash and Loss — Discount Usage**
- **Qué muestra:** Descuentos aplicados
- **Tabla:** Tipo descuento, # veces usado, $ total descontado, aplicado por (cajero)
- **Métrica:** % de transacciones con descuento
- **Alerta:** Si cajero usa descuentos >2× más que promedio
- **Acción:** Filtrar por tipo, exportar con detalle de cada aplicación

##### **Cash and Loss — Over/Short Report**
- **Qué muestra:** Consolidado mensual de sobrantes/faltantes
- **Tabla:** Mes, total sobrantes, total faltantes, neto, desglose por cajero
- **Política:** Tolerancia configurable (ej: <$2.000 aceptable)
- **Benchmark:** Estándar QSR = <0.5% de ventas
- **Acción:** Highlight cajeros fuera de política

##### **Guest Engagement ⭐ — Recurrence Rate**
**DIFERENCIADOR WELCOMEBACK**
- **Qué muestra:** % de clientes que volvieron en 7/14/30 días
- **Gráfico:** Línea de evolución de recurrence rate
- **Benchmark:** QSR promedio = 20-35%
- **Cohort analysis:** Clientes nuevos del mes X → cuántos volvieron
- **Alerta:** Si recurrence rate cae >5% mes a mes
- **Integración:** Welcomeback API (identificación de clientes)
- **Acción:** Exportar cohort analysis Excel

##### **Guest Engagement ⭐ — Visit Frequency Distribution**
- **Qué muestra:** Distribución de clientes por frecuencia de visita
- **Gráfico de barras:** 1 visita, 2-5 visitas, 6-10 visitas, 11+ visitas (últimos 30/90 días)
- **Tabla:** Segmento, # clientes, % del total, valor total ($)
- **Objetivo estratégico:** Mover clientes de "1 visita" a "2-5 visitas"
- **Acción:** Click en segmento → lista de clientes, exportar para campañas

##### **Guest Engagement ⭐ — Churn Alerts**
- **Qué muestra:** Clientes que solían venir y dejaron de hacerlo
- **Lista priorizada:** Clientes "en riesgo" (visitaban regularmente, llevan X días sin venir)
- **Configuración:** Threshold (ej: cliente 1×/semana, >14 días sin venir = en riesgo)
- **Datos por cliente:** Nombre, último pedido, frecuencia histórica, CLV (customer lifetime value)
- **Acción sugerida:** "Enviar cupón de bienvenida de vuelta"
- **Integración:** Módulo de campañas para mensaje directo
- **Criterio:** Marcar como "contactado", trackear si vuelve

##### **Guest Engagement ⭐ — AI Recommendations**
- **Qué muestra:** Motor de recomendaciones IA para retención
- **Panel principal:** "Hoy deberías contactar a estos clientes" (top 5-10)
- **Razón:** "Juan viene todos los martes a las 9am, hoy es martes y no ha venido"
- **Template:** Mensaje sugerido pre-llenado
- **Tracking efectividad:** % de contactados que volvieron
- **Requisito:** Mínimo 90 días de operación para entrenar IA
- **Acción:** Click → abre WhatsApp con mensaje, medir ROI ($ generado por clientes que volvieron)
- **Criterio:** Recomendaciones actualizadas cada mañana 7am

##### **Guest Engagement ⭐ — Campaign Performance**
- **Qué muestra:** Performance de campañas de retención
- **Tabla:** Campaña, fecha lanzamiento, # clientes contactados, tasa apertura, tasa retorno, $ generado
- **Métrica:** ROI de cada campaña
- **Insight:** Mejores días/horarios para enviar mensajes, templates con mejor performance
- **Integración:** Welcomeback (tracking de cupones)
- **Acción:** Comparar campañas, sugerencias de optimización

##### **Labor — Labor Summary**
- **Qué muestra:** Costos laborales vs ventas
- **Métrica principal:** Labor cost % (costo personal / ventas totales)
- **Target range:** 25-30% para QSR
- **Alerta:** Si supera 35%
- **Gráfico:** Línea de labor % por día
- **Proyección:** "Si mantienes este labor %, gastarás $XXX este mes"
- **Integración:** Sistema de marcaje (reloj control)
- **Acción:** Comparar con benchmark

##### **Labor — Time & Attendance**
- **Qué muestra:** Registro entrada/salida personal
- **Tabla:** Empleado, fecha, hora entrada, hora salida, total horas
- **Métricas:** Retrasos (llegadas tardías), horas extra acumuladas
- **Acción:** Exportar a nómina, integración con sistema de pago

##### **Labor — Labor Cost % Tracker**
- **Qué muestra:** Seguimiento diario/semanal de labor cost %
- **Gráfico:** Línea de labor % por día
- **Highlight:** Días donde se superó target
- **Simulador:** "Si reduces 2 horas diarias, ahorras $XXX al mes"
- **Acción:** Sugerencia de ajuste de turnos

---

#### **FASE 3 — Benchmarking + Kitchen Operations**

Los reportes de Fase 3 responden:
1. ¿Cómo me comparo con locales similares?
2. ¿Mi cocina es eficiente?

##### **Benchmarking — Overview**
**DIFERENCIADOR COMPETITIVO**
- **Qué muestra:** Comparación anónima vs promedio de locales similares
- **Selector:** Tipo de local (cafetería, almuerzo rápido, heladería, etc.)
- **Métricas comparadas:** Ticket promedio, recurrence rate, top 3 productos
- **Gráfico de radar:** Tu local vs promedio en 6 dimensiones
- **Métrica de posición:** "Estás en el top 25% de cafeterías"
- **Criterio:** Data anonimizada, opt-in voluntario, mínimo 10 locales en categoría
- **Actualización:** Mensual

##### **Benchmarking — Menu Insights**
- **Qué muestra:** Productos populares en locales similares que este local no tiene
- **Lista:** "Top productos en tu categoría que no tienes"
- **Estimación:** $ potencial si agregas ese producto
- **Comparación precios:** Tu precio vs promedio (si ya lo tienes)
- **Sugerencias:** Modificadores populares que podrías agregar
- **Criterio:** Solo sugerir productos relevantes (no sugerir hamburguesas a cafeterías)
- **Acción:** Click → formulario para agregar a carta, tracking de performance si se agrega

##### **Benchmarking — Service Insights**
- **Qué muestra:** Tiempos de atención vs benchmark
- **Métricas:** 
  - Tiempo promedio transacción vs categoría
  - Tiempo preparación (KDS) vs promedio
  - Horas peak comparadas
- **Sugerencias:** Si estás por debajo del promedio
- **Criterio:** Benchmark por tipo de local (cafeterías ≠ comida rápida)

##### **Kitchen Operations — Ticket Times** (requiere KDS)
- **Qué muestra:** Tiempo desde orden confirmada hasta "Lista" en KDS
- **Tabla:** Producto, tiempo promedio, tiempo objetivo, % que cumple objetivo
- **Gráfico histograma:** Distribución (0-2 min, 2-5 min, 5+ min)
- **Identificar:** Productos "lentos"
- **Comparación:** Peak hours vs horas normales
- **Target configurable:** Cafetería 3-5 min, comida rápida 2-3 min
- **Alerta:** Si promedio supera target
- **Acción:** Exportar con detalle por producto

##### **Kitchen Operations — Order Accuracy** (requiere KDS)
- **Qué muestra:** % de órdenes sin reclamos/devoluciones
- **Métrica principal:** % accuracy (target: >98%)
- **Desglose razones:** Producto equivocado, falta modificador, etc.
- **Comparación:** Por estación KDS (si múltiples)
- **Costo:** $ de órdenes rehechas
- **Integración:** Sistema de voids/refunds
- **Acción:** Marcar razón al hacer refund, tendencia en tiempo

##### **Kitchen Operations — Peak Hour Efficiency** (requiere KDS)
- **Qué muestra:** Performance durante horas peak
- **Identificación automática:** Peak hours (ej: 8:30-10am, 1-2pm)
- **Comparación:** Ticket times peak vs non-peak
- **Métrica:** % de órdenes que superan target en peak
- **Sugerencia:** "Considera +1 barista en peak" (basado en data)
- **Acción:** Comparar con staffing actual

---

### 12.4 Diferenciadores vs Competencia

| Feature | Toast | Toteat | Bsale | **Welcomeback POS** |
|---|---|---|---|---|
| Overview dashboard | ✓ | ✓ | ✓ | ✓ |
| Sales reports básicos | ✓ | ✓ | ✓ | ✓ |
| DTE/SII reports | N/A | Básico | ✓ | **✓ Avanzado + sync status** |
| Menu analysis | ✓ | Parcial | No | **✓ + modifier analysis** |
| **Guest engagement reports** | Básico | No | No | **⭐ IA nativa de recurrencia** |
| **Churn alerts** | No | No | No | **⭐ "Juan lleva 16 días sin venir"** |
| **AI recommendations** | No | No | No | **⭐ "Contacta estos 5 hoy"** |
| **Benchmarking anónimo** | No | No | No | **⭐ Comparación con similares** |
| Kitchen operations | ✓ | ✓ (KDS) | No | ✓ Fase 3 |
| Labor management | ✓ | Parcial | No | ✓ Fase 2 |
| Mobile-first design | Parcial | No | No | **✓ Diseñado para celular** |

---

### 12.5 Requisitos Técnicos del Módulo

| Aspecto | Especificación |
|---|---|
| **URL** | `dashboard.welcomeback.io/reportes` (subdomain dedicado) |
| **Autenticación** | JWT + refresh token, sesión compartida con POS |
| **Performance** | Dashboard Overview <3s, reportes complejos <5s |
| **Responsive** | Mobile-first (iPhone 12/13/14), tablet, desktop |
| **Exportaciones** | PDF (con logo), Excel (con gráficos opcionales), CSV |
| **Gráficos** | Recharts o Chart.js, interactivos (hover, click) |
| **Actualización** | Datos en tiempo real (WebSocket) para ventas del día, resto cached 5 min |
| **Permisos** | Roles: Dueño (ve todo), Admin (ve todo excepto benchmarking), Cajero (solo sus ventas) |
| **Offline** | No requerido (dashboard solo online) |
| **Integraciones** | Welcomeback API (guest engagement), SII (DTE status), Transbank (settlements) |

---

### 12.6 Métricas de Éxito del Módulo de Reportes

| Métrica | Target |
|---|---|
| **Fase 1 (MVP)** | |
| Dueños que acceden al dashboard ≥1× por semana | ≥80% |
| Tiempo promedio de carga de Overview | <3 segundos |
| Exportaciones de DTE mes a mes | ≥90% de locales |
| NPS del dashboard (Fase 1) | ≥60 |
| **Fase 2** | |
| Dueños que usan Churn Alerts ≥1× por semana | ≥50% |
| Clientes contactados vía AI Recommendations que vuelven | ≥25% |
| Locales que activan campañas de retención | ≥60% |
| ROI promedio de campañas ($ generado / $ invertido) | ≥3× |
| **Fase 3** | |
| Locales que opt-in a benchmarking | ≥70% |
| Productos agregados desde "Menu Insights" | ≥0.5 por local/mes |
| Mejora de ticket times después de ver Kitchen reports | ≥10% |

---

### 12.7 Roadmap de Implementación

**Prioridad 1 (MVP — Fase 1):** 3-4 semanas
- Overview Dashboard
- Sales Summary + Product Mix + Payment Methods
- DTE History + SII Sync Status + Monthly Export
- Export Templates (Settings)

**Prioridad 2 (Fase 2):** 4-5 semanas
- Reportes avanzados de Sales (Hourly, Day Part, By Cashier)
- Menu analysis completo (Top Products → Low Performers)
- Cash and Loss Management completo
- **Guest Engagement completo ⭐** (Recurrence → Campaign Performance)
- Labor Summary + Time & Attendance

**Prioridad 3 (Fase 3):** 3-4 semanas
- Benchmarking completo (Overview → Service Insights)
- Kitchen Operations completo (requiere KDS de Fase 2)
- Labor Cost % Tracker avanzado

---

### 12.8 Dependencias Técnicas

| Reporte | Dependencia |
|---|---|
| Guest Engagement (todos) | Welcomeback API funcionando + mínimo 90 días de data |
| Kitchen Operations (todos) | Módulo KDS implementado (Fase 2) |
| Labor reports (todos) | Sistema de marcaje/reloj control implementado |
| Benchmarking | Mínimo 50 locales activos opt-in |
| AI Recommendations | Modelo de IA entrenado con data del local (90+ días) |

---

**Fin del Módulo de Reportes (M8)**
