¿Qué hace Planificación Financiera?
Reglas
- Cálculo de MRR: suma de todos los valores mensuales de suscripciones activas — los planes anuales se dividen entre 12, excluir cargos únicos
- ARR: MRR * 12 — mostrar ambos en el panel, usar MRR para tendencias mensuales, ARR para planificación anual
- Componentes de MRR: rastrear nuevo MRR, MRR de expansión (mejoras), MRR de contracción (degradaciones), MRR de cancelación (cancelaciones), MRR de reactivación — mostrar como gráfico de cascada
- Tasa de quema: (efectivo inicial - efectivo final) / meses — calcular mensualmente, mostrar el tiempo de ejecución en meses a la tasa actual
- Panel de ingresos: mostrar MRR, ARR, tasa de crecimiento de MRR (% mes a mes), retención neta de ingresos, total de clientes — actualizar diariamente
- Proyecciones financieras: modelar 3 escenarios (conservador, base, optimista) — variar la tasa de crecimiento y la tasa de cancelación, proyectar de 12 a 24 meses
- Manejo de moneda: almacenar todos los montos en céntimos (enteros) — nunca usar punto flotante para dinero — mostrar con
Intl.NumberFormat - Rangos de fechas: predeterminado a los últimos 12 meses, permitir rango personalizado — agregar por mes para tendencias, por día para actividad reciente
Modelo de Datos del Panel
CREATE TABLE revenue_events (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
type TEXT NOT NULL, -- 'new' | 'expansion' | 'contraction' | 'churn' | 'reactivation'
amount_cents INTEGER NOT NULL,
customer_id UUID NOT NULL,
occurred_at DATE NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);
Agregar MRR por mes: SELECT date_trunc('month', occurred_at), type, SUM(amount_cents) FROM revenue_events GROUP BY 1, 2.
Evitar
- Punto flotante para dinero — usar céntimos enteros en todas partes
- Contar MRR sin separar componentes — es necesario saber por qué cambió el MRR
- Granularidad solo mensual — almacenar eventos diarios, agregar para visualización
- Ignorar MRR de contracción — las degradaciones son señales tempranas de cancelación