Paquete para la junta a partir de tu cierre más reciente. Resumen ejecutivo arriba de todo, efectivo, quema, runway, ingresos mensuales / ingresos anuales, margen bruto, cantidad de empleados, los 3 principales factores de variación, seguido de los estados completos, KPIs de SaaS, retención por cohortes, y sensibilidad del runway más abajo. Espejo opcional en Google Docs para que tu junta pueda comentar sobre el mismo documento. Solo borradores, nunca envío nada.
Ejecuto el trabajo externo a través de Composio. Antes de correr esta skill, reviso que las categorías de abajo estén vinculadas. Si falta alguna, nombro la categoría, te pido que la conectes desde la pestaña de Integraciones, y me detengo.
Esta skill se arma por completo a partir de tus meses ya cerrados, tus reportes de runway, y tus cronogramas de reconocimiento de ingresos. Ninguna conexión bloquea la corrida.
Primero leo tu contexto contable. Por cada campo obligatorio que falte, hago UNA pregunta en lenguaje sencillo (mejor modalidad: app conectada > archivo > URL > texto pegado) y espero.
-
Leo el contexto. Cargo context/bookkeeping-context.md, config/context-ledger.json, config/chart-of-accounts.json. Campos obligatorios del libro de contexto: universal.company, universal.accountingMethod, domains.revenue.model, domains.investors.anchorKpis. Si falta un campo, hago una pregunta puntual con pista de modalidad (app conectada > archivo > URL > texto pegado), la guardo de forma atómica antes de continuar.
-
Ubico el último cierre. Listo closes/*/package.md, elijo el YYYY-MM más reciente. Si el último cierre figura como draft en outputs.json, te aviso y pregunto: ¿seguimos con el borrador o esperamos? Registro el período del cierre como fecha de corte del paquete.
-
Ubico el último reporte de runway. Listo runway/*.md, elijo el más reciente por fecha en el nombre del archivo. Leo el saldo de efectivo, la quema neta (de 3 y 6 meses), los meses de runway, y las 3 principales sensibilidades por factor de costo.
-
Leo los cronogramas de reconocimiento de ingresos. En modelos de SaaS/suscripción, cargo cada revrec/{customer-slug}/{contract-slug}.json. Los ingresos mensuales actuales = suma de reconocimiento mensual activo por contrato. Ingresos anuales = ingresos mensuales * 12.
-
Calculo la cascada de ingresos mensuales (si es SaaS). Con los últimos 12 meses de cronogramas de reconocimiento de ingresos:
- Ingresos mensuales nuevos - contratos cuyo primer mes de reconocimiento cae dentro del período.
- Ingresos mensuales de expansión - aumentos en contratos de clientes existentes (upsell, expansión de asientos).
- Ingresos mensuales de contracción - disminuciones en contratos de clientes existentes (downgrade, reducción de asientos).
- Ingresos mensuales de baja - contratos cuyo reconocimiento se detuvo en el período (el cliente se fue).
- Ingresos mensuales netos nuevos = Nuevos + Expansión − Contracción − Baja.
Cito cada delta con la ruta
revrec/{customer}/{contract}.json + el id del contrato.
-
Calculo el NRR sobre la cohorte de los últimos 12 meses. Cohorte = clientes activos hace 12 meses. NRR = (ingresos mensuales actuales de la cohorte) / (ingresos mensuales de la cohorte hace 12 meses). Lo reporto en porcentaje. Solo lo calculo si los datos de contratos abarcan ≥ 13 meses.
-
Calculo el margen bruto. Margen bruto % = (Ingresos − costo de ventas) / Ingresos, del estado de resultados del último cierre. Extraigo las líneas de ingresos + costo de ventas directamente de closes/{YYYY-MM}/package.md.
-
Calculo la recuperación de CAC (opcional). Si el gasto de marketing y ventas es identificable en el estado de resultados Y ya calculé los ingresos mensuales nuevos: CAC = gasto de Ventas y Marketing / clientes nuevos; meses de recuperación de CAC = CAC / (ingresos mensuales nuevos * margen bruto %). Lo reporto solo si ambos insumos son números reales, si no, lo marco como Por definir, necesita atribución del gasto de marketing.
-
Armo la tabla de retención por cohortes (si hay datos de contratos). Filas = mes de la cohorte (primer mes de contrato); columnas = meses desde la adquisición (M0..M12+); celdas = ingresos mensuales retenidos / ingresos mensuales M0 de la cohorte. Una fila por mes de cohorte. La incluyo solo si existen ≥ 6 cohortes.
-
Armo el paquete en investor-financials/{yyyy-qq}.md. Slug del trimestre: 2026-q1, 2026-q2, etc., derivado del mes del período de cierre. Estructura:
- Resumen ejecutivo (una página) - saldo de efectivo, quema neta promedio de 3 meses, meses de runway, ingresos mensuales, ingresos anuales, margen bruto %, cantidad de empleados, los 3 principales factores de variación vs. el trimestre anterior.
- Estado de resultados - copiado del cierre.
- Balance general - copiado del cierre.
- Flujo de efectivo - copiado del cierre.
- KPIs de SaaS (si aplica) - cascada de ingresos mensuales, ingresos anuales, NRR, margen bruto %, recuperación de CAC.
- Tabla de retención por cohortes (si hay ≥ 6 cohortes).
- Runway + sensibilidad - copiado del último reporte de runway.
- Notas de decisiones de criterio - cualquier posición que necesite tu confirmación (casos límite en la definición de baja, alcance del CAC).
Cada KPI cita su fuente (ruta del cierre + línea, rutas de reconocimiento de ingresos, ruta del runway). Sin números inventados.
-
Espejo opcional en Google Docs. Si composio search docs devuelve un slug de Docs conectado, reflejo el paquete en un Doc nuevo, incluyo la URL arriba del .md. Sin conexión, lo salto en silencio.
-
Rama mode=saas-metrics. Salto los pasos 3, 9, y el armado completo del paso 10. Escribo investor-financials/metrics-{YYYY-MM}.md con solo: ingresos mensuales (actuales + cascada), ingresos anuales, margen bruto %, NRR. Sin espejo en Docs.
-
Escritura atómica. .tmp + renombrar sobre la ruta de destino.
-
Agrego a outputs.json. Fila: {type: "investor-financials", title: "Investor pack {yyyy-qq}" | "SaaS metrics {YYYY-MM}", summary, path, status: "draft", domain: "reporting"}. Leo, combino y escribo.
-
Te resumo. Un párrafo: qué armé, sobre qué período de cierre se basa, los números principales (efectivo, quema, runway, ingresos anuales, margen bruto %), cualquier partida "por definir", y el siguiente paso (tú lo revisas, nunca lo envío). Nunca publico, nunca envío correos.