Saltar al contenido
Telemetry
Ingresos y facturación receta SQL

Calcular el movimiento de ingresos recurrentes mensuales

Separe los MRR nuevos, de expansión, contracción, abandono y reactivación de los eventos del ciclo de vida de facturación.

Intermediobilling_eventsRevisado 2026-07-27Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Compatibilidad con SQL, contrato de eventos, resultados sintéticos y advertencias operativas. Revisar los estándares y la propiedad

Pregunta respondida

¿Qué provocó que los ingresos recurrentes crecieran o disminuyeran cada mes?

Net MRR oculta por qué cambiaron los ingresos recurrentes. La clasificación de movimientos mutuamente excluyentes muestra si el crecimiento provino de nuevos clientes, expansión de cuentas existentes o recuperación de la deserción.

Contrato de evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampTiempo de movimiento de facturación.
account_idUtf8Identificador de cuenta de facturación estable.
movement_typeUtf8nuevo, expansión, contracción, abandono o reactivación.
mrr_change_usdFloat64Cambio de ingresos recurrentes normalizados firmado.
DataFusionSQL

Copiar la consulta

sql
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.

monthgrowth_mrr_usdlost_mrr_usdnet_mrr_change_usdaccounts_changed
2026-0518.400720011.20093
2026-0622.100980012.300117
2026-0720.70013.4007300126

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Recurring-revenue growth and loss: gráfico estático de valores sintéticos de growth_mrr_usd del resultado del ejemplo Calculate Monthly Recurring Revenue Movement
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

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

  1. 1Los movimientos positivos combinan MRR de nueva, expansión y reactivación.
  2. 2El MRR perdido se niega para obtener una barra positiva legible, mientras que el cambio neto conserva el total firmado.
  3. 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 alerta

Pon 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

Ejecú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.

Obtén una clave API