Resumen ejecutivo
Lo esencial en 30 segundos
ene–may 2026 (comparación correcta)
ene–jun 2026 (todas las monedas)
nominal multi-moneda
por devoluciones (GCP ARS)
Preguntas frecuentes del negocio — respuestas directas:
is_paid — excluye cancelados/devueltos.bi_rebuild + moneda explícita.Tres fuentes de verdad (y para qué sirve cada una)
Antes de comparar números, hay que saber qué sistema responde qué pregunta
Legacy SAP (BetterezSAP)
Sistema histórico pre-GCP. Recibía lotes de ventas y guardaba cada operación como fila en una tabla de tickets.
- Fecha: cuándo el batch guardó el evento (
event.created) - Sin campo moneda ISO — solo país
AR - Devoluciones: filas nuevas con prefijo
R-y monto negativo - No recibe actualizaciones posteriores de estado
Uso: auditoría histórica
GCP + BI (plataforma actual)
Recibe cada venta y cambio de estado vía webhooks. Una fila por boleto, con moneda, refunds y estados curados para reportes.
- Fecha de venta:
sale_date(hora Argentina en tablero) - Moneda explícita: ARS, CLP, BOB, USD
- Devoluciones en tabla separada (
refund_details) - Estados actualizados (cancel, changed, expired)
Uso: KPIs y tableros
La comparación correcta (y la incorrecta)
Cómo se audita Legacy vs GCP — reglas que evitan conclusiones erróneas
currency = ARS.
Legacy no distingue monedas; su campo accountCountry = AR agrupa pesos argentinos, pesos chilenos, bolivianos y dólares en una sola suma nominal.
Detrás de escena (técnico): el SQL reproducible está en
scripts/sql/bi_rebuild/operativo/validate_amounts_legacy_vs_gcp_monthly.sql.
La auditoría documentada completa: docs/comunicaciones/2026-06-03_auditoria_montos_efectivos_legacy_vs_gcp.md.
La trampa de la moneda — explicación pedagógica
Por qué en enero Legacy “parecía” 4% más grande que GCP (y no lo era)
Enero 2026 — desglose GCP por moneda
| Moneda | Tickets | Monto bruto | Nota |
|---|---|---|---|
| ARS | 131.950 | $ 7.151,7 M | Pesos argentinos |
| CLP | 9.243 | $ 311,9 M | Pesos chilenos (nominal) |
| BOB | 488 | $ 0,7 M | Bolivianos |
| USD | 222 | $ 0,5 M | Dólares |
| Total GCP (correcto) | 141.903 | $ 7.464,7 M | Comparar con Legacy |
| Legacy venta (AR) | 141.586 | $ 7.433,8 M | Δ +0,42% |
Si comparáramos Legacy ($ 7.433,8 M) contra solo ARS ($ 7.151,7 M), la brecha sería +3,9% — completamente artificial.
Tres formas de medir el mismo mes en GCP
No es un error: son tres preguntas de negocio distintas
¿Por qué neto ≠ BI oficial?
El neto resta el monto devuelto pero puede dejar valor residual en cancelaciones parciales (penalidad retenida).
El BI oficial (is_paid) excluye todo el boleto del revenue si hubo cualquier devolución o cancelación — regla conservadora para KPIs de ventas netas.
Para cuadrar con la web de Betterez por agencia: usar is_paid_including_partial_cancel (incluye parciales).
Tabla mensual completa — GCP 2026
Datos en vivo al corte del 11-jun-2026 23:52 UTC
2026-06-11 23:52 UTC ·
BI fact_ticket hasta 2026-06-11 (date) ·
Legacy: última corrida exitosa 2026-06-11 ~17:17 UTC (VPN; no disponible al refresh nocturno).
Legacy vs GCP — comparación mes a mes
Metodología correcta: Legacy bruto venta vs GCP bruto nominal all
Junio 2026 — mes en curso
Junio muestra brecha mayor (~6–11%) porque el mes no está cerrado: Legacy y GCP cortan en momentos distintos del día, y hay ~1.976 tickets ARS en OLTP que aún no llegaron al tablero BI (lag ETL diario, ~$104 M). No interpretar como pérdida de ventas.
OLTP vs tablero BI — calidad del tablero
¿El tablero refleja lo que está en la base operativa?
matched ene–may ARS
ene–may 2026
lag ETL (transitorio)
Detrás de escena: el ETL incremental corre 2×/día (00:00 y 12:00 ART). La ventana de lookback la define etl_control.lookback_interval (prod jun-2026: 2 días).
Ventas tardías del mismo día pueden aparecer en OLTP pero no en BI hasta la corrida nocturna.
Junio acumula ~1.976 tickets ARS sin fila BI (~$104 M) al corte.
Por qué hay brechas — seis causas explicadas
Cada diferencia tiene origen distinto; no es un solo bug
Matriz rápida — ¿es un problema?
| Si ves esto… | ¿Bug? | Acción |
|---|---|---|
| Legacy “mucho mayor” que GCP ARS | No | Corregir metodología de comparación |
| Legacy vs GCP all < 1,5% | No | Esperado — ruido normal |
| Bruto ≫ neto (~6,5%) | No | Devoluciones del mes |
| Neto ≫ BI oficial (~0,8%) | No | Regla is_paid |
| BI < OLTP en junio | Operativo | Esperar ETL nocturno |
Qué usar en MicroStrategy y reuniones
Guía práctica para cada pregunta de negocio
- Usar siempre moneda explícita en tableros — nunca mezclar ARS + CLP en una suma
- Para KPIs de revenue:
is_paid = trueenbi_rebuild.fact_ticket - Legacy solo para auditoría histórica — no para cerrar gaps del día
- No comparar Legacy vs GCP ARS-solo en presentaciones ejecutivas
- Junio (mes parcial): esperar cierre de mes + ETL para cifras definitivas
Glosario
Términos técnicos en lenguaje de negocio
- Monto bruto
- Suma de todos los boletos vendidos, antes de restar devoluciones.
- Monto neto
- Bruto menos devoluciones. Puede quedar valor en cancelaciones parciales.
- BI oficial / is_paid
- Revenue reconocido por el tablero. Excluye boletos cancelados o devueltos.
- Nominal multi-moneda
- Sumar montos en distintas monedas sin convertir (como hace Legacy).
- Filas R- (Legacy)
- Devoluciones guardadas como ticket nuevo con monto negativo y prefijo R-.
- refund_details (GCP)
- Tabla de devoluciones vinculada al boleto original (modelo upsert).
- OLTP / public
- Base operativa GCP. Copia fiel de Betterez en tiempo casi real.
- bi_rebuild
- Capa analítica para MicroStrategy. Tablas en singular (fact_ticket, etc.).
- ETL
- Proceso 2×/día que sincroniza OLTP → BI. Lookback vía
etl_control.lookback_interval(prod ~2 días). - PI- (sold item)
- Transacción de ítem adicional (seguro, impuesto). Excluida de métricas de pasaje.
- sale_date
- Fecha de venta. Eje temporal canónico del tablero (hora Argentina).
- Drift
- Diferencia entre OLTP y BI. Normal < 0,2% en meses cerrados.