Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Tiempo de movimiento de facturación. |
| account_id | Utf8 | Identificador de cuenta de facturación estable. |
| movement_type | Utf8 | nuevo, expansión, contracción, abandono o reactivación. |
| mrr_change_usd | Float64 | Cambio de ingresos recurrentes normalizados firmado. |
Copiar la consulta
SELECT
date_trunc('month', timestamp_utc) AS month,
SUM(CASE
WHEN movement_type IN ('new', 'expansion', 'reactivation')
THEN mrr_change_usd ELSE 0.0
END) AS growth_mrr_usd,
-SUM(CASE
WHEN movement_type IN ('contraction', 'churn')
THEN mrr_change_usd ELSE 0.0
END) AS lost_mrr_usd,
SUM(mrr_change_usd) AS net_mrr_change_usd,
COUNT(DISTINCT account_id) AS accounts_changed
FROM billing_events
WHERE timestamp_utc >= now() - INTERVAL '12 months'
GROUP BY date_trunc('month', timestamp_utc)
ORDER BY month;Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.
Resultado de la consulta
Crecimiento y pérdida de ingresos recurrentes
Julio siguió siendo positivo, pero la contracción y la rotación consumieron mucho más del crecimiento bruto.
| month | growth_mrr_usd | lost_mrr_usd | net_mrr_change_usd | accounts_changed |
|---|---|---|---|---|
| 2026-05 | 18.400 | 7200 | 11.200 | 93 |
| 2026-06 | 22.100 | 9800 | 12.300 | 117 |
| 2026-07 | 20.700 | 13.400 | 7300 | 126 |
Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.
Reproducir el ejemplo
Descargar el accesorio público
El paquete JSON incluye el contrato de evento escrito, illustrative filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.
Cómo funciona el SQL
- 1Los movimientos positivos combinan MRR de nueva, expansión y reactivación.
- 2El MRR perdido se niega para obtener una barra positiva legible, mientras que el cambio neto conserva el total firmado.
- 3El recuento de cuentas distinto ayuda a distinguir un movimiento amplio de un contrato inusualmente grande.
Casos extremos para decidir
- Emitir exactamente un movimiento para un cambio de facturación o conciliar por ID de evento del proveedor.
- Defina si los contratos anuales aportan valor mensual normalizado en el momento de la reserva o del servicio.
- Separe las tarifas únicas y los ingresos por uso de los ingresos recurrentes.
Panel recomendado
- Barras apiladas: growth_mrr_usd y lost_mrr_usd
- Tendencia: net_mrr_change_usd
- Tabla: mayores movimientos a nivel de cuenta
Guía de alerta
Revise cuándo la pérdida de MRR consume una proporción inusualmente grande del crecimiento bruto durante un mes completo.
Leer configuración de alertaPon la receta a trabajar
Instrumentación y guías relacionadas.
Definir los datos de origen
Esquemas de eventos para este análisis.
Continuar el análisis
Encuentre funciones utilizadas antes de la actualización
Únase a eventos destacados para actualizar eventos y clasificar comportamientos que ocurren antes de la conversión paga.
Receta abiertaMedir la rotación y la reactivación por cohorte
Clasifique las cuentas como retenidas, canceladas o reactivadas a partir de una actividad recurrente significativa del producto.
Receta abiertaCalcular la conversión de prueba a pago
Mida cuántas cuentas de prueba se convierten en clientes pagos dentro de una ventana de conversión fija.
Receta abiertaEjecútelo en eventos reales.
Crea una tabla, adapta los campos y guarda el resultado.
Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.