Construir un drivetrain limpio es un problema de arquitectura, no de fórmulas. Las fórmulas son lo de menos. La disciplina de nunca hardcodear un número en mitad de la cadena es lo que separa un modelo que funciona cuando otro lo abre, de uno que solo tú puedes usar.
Qué significa "drivetrain" en un modelo financiero
El término viene de la ingeniería mecánica: el drivetrain transmite la potencia del motor a las ruedas. En un modelo financiero, el motor es tu pestaña de Supuestos (crecimiento de ingresos, márgenes brutos objetivo, capex como porcentaje de los ingresos, condiciones de deuda, tasa impositiva). Las ruedas son tus salidas: EBITDA, FCFF, IRR, equity multiple.
Cada pestaña intermedia (P&L, Working Capital, Debt Schedule, Cash Flow Statement, Balance Sheet, Returns Analysis) es un engranaje en esa cadena. Un engranaje que no encaja significa que el motor gira y nada se mueve.
Una sola regla gobierna todo: cada número que aparece en una pestaña de salida se calcula a partir de otras celdas o se remonta a una celda única en Supuestos. En el momento en que escribes 14.5 directamente en una fórmula de valor terminal en lugar de referenciar Assumptions!$B$22, rompiste la cadena.
Las 3 formas más comunes de romper el drivetrain
Valores hardcodeados en mitad de la cadena. Estás bajo presión, el Debt Schedule no cuadra y escribes manualmente un número en la fórmula del cash sweep para que funcione. Ese número no se mueve cuando cambia tu supuesto de tasa de interés. Seis meses después, alguien hace un stress test del modelo y el Cash Flow Statement no reconcilia con el Balance Sheet. Nadie sabe por qué.
Duplicación de pestañas por copia y pegado. Construyes Q1 y copias la pestaña para Q2-Q4. Las fórmulas parecen idénticas. Pero si ='P&L'!C12 es una referencia relativa, ahora apunta a la columna C de la pestaña P&L en el trimestre equivocado. Tres de tus cuatro trimestres toman el mismo número y tu total anual está mal en $3.8M. Esto aparece en la reunión de revisión, no antes.
Referencias cruzadas rotas después de reestructurar. Renombras una pestaña de "CF Statement" a "Cash Flow" en mitad del proyecto. Cada fórmula en Returns Analysis que referenciaba 'CF Statement'! ahora devuelve #REF!. Google Sheets no siempre propaga los renombres de pestañas como lo hace Excel. Te enteras cuando 47 celdas se ponen en rojo una hora antes de que el modelo tiene que estar listo.
La arquitectura de pestañas que funciona
La estructura que sirve para la mayoría de modelos de 3 estados con análisis de retornos:
| Pestaña | Función | Se alimenta de |
|---|---|---|
| Assumptions | Única fuente de verdad | Nada (solo entradas) |
| P&L | Ingresos, COGS, EBITDA | Assumptions |
| Working Capital | DSO, DPO, rotación de inventario | P&L, Assumptions |
| Debt Schedule | Saldo drawn, intereses, sweep | Assumptions, Cash Flow |
| Cash Flow Statement | Operativo, inversión, financiamiento | P&L, Working Capital, Debt Schedule |
| Balance Sheet | Activos, pasivos, patrimonio | P&L, Cash Flow, Debt Schedule |
| Returns Analysis | IRR, MOIC, equity bridge | Assumptions, Balance Sheet, Cash Flow |
| Sensitivity | Gráficos tornado, salidas por escenario | Assumptions (solo overrides) |
Assumptions es la única pestaña donde se permiten números hardcodeados. Todo lo demás es una fórmula.
Así se ve una fórmula del P&L que referencia Supuestos en un modelo donde alguien fue disciplinado:
// Ingresos Año 2 - base del Año 1 crecida por el supuesto en B5
='P&L'!C7 * (1 + Assumptions!$B$5)
El SUMIFS que extrae el EBITDA por segmento hacia Returns Analysis:
// EBITDA para el período de proyección, filtrado por rango de fechas de Assumptions
=SUMIFS('P&L'!$D:$D, 'P&L'!$B:$B, "EBITDA", 'P&L'!$C:$C, ">=" & Assumptions!$B$3, 'P&L'!$C:$C, "<=" & Assumptions!$B$4)
El valor terminal con el modelo de Gordon Growth, donde tanto el WACC como el crecimiento de largo plazo viven en Assumptions:
// Valor terminal - ambos inputs trazan de regreso a Assumptions, no están hardcodeados
=('Cash Flow'!G14 * (1 + Assumptions!$B$18)) / (Assumptions!$B$12 - Assumptions!$B$18)
Donde Assumptions!$B$12 es el WACC (9.8%) y Assumptions!$B$18 es la tasa de crecimiento de largo plazo (2.5%). Cambia cualquiera de los dos y el valor terminal, el equity value del DCF y el IRR se actualizan en un solo recálculo. Eso es el drivetrain funcionando.
Cómo manejar la referencia circular del Debt Schedule
El Debt Schedule es el único lugar donde una referencia circular es estructuralmente inevitable. El cash sweep referencia el efectivo disponible del tab de Cash Flow, que depende del gasto en intereses del Debt Schedule, que a su vez depende del saldo final después del sweep.
La solución: habilita el cálculo iterativo en Google Sheets a través de Archivo → Configuración → Cálculo. Según la documentación de Google Sheets sobre referencias circulares (consultada el 15 de mayo de 2026), "el cálculo iterativo permite que las fórmulas con referencias circulares se calculen un número determinado de veces." Configura las iteraciones máximas en 50 y el umbral en 0.001. Sheets resuelve la circular en 5 a 10 iteraciones. Sin esta configuración activa, obtienes una cascada de #REF!.
Mantén esta como la única circular intencional del modelo. Documéntala con una celda de comentario para que cualquier persona que abra el archivo sepa que es deliberada.
Cómo verificar que tu drivetrain está limpio
La prueba más rápida: cambia 3 celdas en Assumptions (por ejemplo, tasa de crecimiento de ingresos, WACC y múltiplo de salida) y observa cada pestaña. Si algo que debería moverse no lo hace, hay una ruptura.
De forma más sistemática, construye una pestaña de Checks con una reconciliación del Balance Sheet para cada período:
// Verificación de balance - debe ser siempre 0 para cada columna de período
='Balance Sheet'!C45 - 'Balance Sheet'!C23 - 'Balance Sheet'!C34
Si alguna columna de período es distinta de cero, detienes la distribución. Esta es la luz de check engine para un drivetrain roto.
A mayo de 2026, Google Sheets soporta hasta 10 millones de celdas por hoja de cálculo. En modelos grandes, ten cuidado con las funciones volátiles: según la referencia de funciones de Google Sheets (consultada el 15 de mayo de 2026), NOW(), TODAY() y RAND() se recalculan en cada edición. Conecta una de esas a tu drivetrain en mitad de la cadena y dispararás un recálculo completo de las 8 pestañas con cada tecla que presiones. Usa Ctrl+Shift+Alt+F9 para forzar un recálculo completo de forma intencional, en lugar de incrustar volatilidad en la cadena.
Una auditoría adicional que vale la pena hacer antes de cualquier DCF para sindicación bancaria o entrega de board pack: usa Ctrl+~ para activar la vista de fórmulas y revisa cada pestaña que no sea Assumptions en busca de celdas que muestren un número sin el signo = al inicio. Cualquier número literal en una celda de fórmula fuera de Assumptions es una ruptura potencial en la cadena.
Dónde ayuda realmente la IA
Lo que rompe el drivetrain con más frecuencia no es una arquitectura deficiente, sino la presión del tiempo. Alguien necesita una sensibilidad rápida sobre el ritmo de contrataciones y hardcodea un supuesto de headcount directamente en el modelo operativo en lugar de agregar una fila en Assumptions. El atajo toma 30 segundos. La deuda que genera toma 3 horas en resolver.
ModelMonkey puede auditar un modelo en Google Sheets para detectar literales hardcodeados dentro de celdas de fórmula: señala cualquier lugar donde aparezca un número en mitad de una fórmula en una pestaña que no sea Assumptions. Corre en menos de 60 segundos en modelos de hasta aproximadamente 50,000 celdas. Para una revisión trimestral de margen de contribución por SKU o una verificación previa a la distribución de un modelo de runway con sensibilidades, ese es el tipo de auditoría mecánica que atrapa el error de $3.8M antes de que aparezca en la reunión.
La auditoría no reemplaza el criterio sobre la lógica del modelo. Solo significa que no gastas 45 minutos rastreando manualmente 400 celdas de fórmulas buscando la que alguien hardcodeó en marzo.
Preguntas frecuentes
¿Cuál es la diferencia entre un drivetrain roto y un modelo simplemente desactualizado? Un modelo desactualizado tiene supuestos que ya no reflejan la realidad del negocio, pero su cadena de referencias sigue intacta: si cambias los supuestos, las salidas se actualizan correctamente. Un drivetrain roto tiene interrupciones estructurales en la cadena de fórmulas, por lo que cambiar un supuesto no propaga el cambio a las salidas que debería afectar. Los dos problemas coexisten con frecuencia, pero se diagnostican y corrigen de forma diferente.
¿Puedo tener más de una pestaña de Assumptions? Técnicamente sí, pero introduce complejidad sin beneficio real. Si tu modelo tiene segmentos de negocio muy distintos, lo más limpio es tener subsecciones dentro de una sola pestaña de Assumptions, con encabezados claros por segmento, en lugar de múltiples pestañas de entrada. El problema de tener dos pestañas de Assumptions es que cualquier persona que audite el modelo tiene que buscar en dos lugares para entender de dónde viene un número.
¿Qué hago si heredé un modelo con el drivetrain roto?
Antes de tocar cualquier fórmula, activa la vista de fórmulas con Ctrl+~ y documenta cada pestaña en un archivo aparte. Luego reconstruye desde Assumptions hacia afuera: verifica que todas las entradas estén en Assumptions, que P&L referencie solo Assumptions, que Working Capital referencie P&L y Assumptions, y así sucesivamente. No intentes "reparar en caliente" un modelo heredado con muchos hardcodes dispersos: el riesgo de introducir nuevos errores al corregir los existentes es alto. Una reconstrucción estructurada desde cero, usando el modelo heredado como referencia de lógica de negocio, suele ser más rápida y segura.
¿El cálculo iterativo para la circular del Debt Schedule afecta el rendimiento del modelo?
En modelos de hasta 50,000 celdas, el impacto en velocidad de recálculo es imperceptible con 50 iteraciones y un umbral de 0.001. En modelos más grandes, con múltiples escenarios activos simultáneamente, puede haber una demora de 2 a 4 segundos por recálculo. Si eso se convierte en un problema, la solución es aislar la circular en una pestaña de Debt Schedule compacta y evitar que las funciones volátiles (NOW(), TODAY()) se conecten a esa sección de la cadena.
¿Cuándo conviene usar nombres de rango en lugar de referencias absolutas como Assumptions!$B$12?
Los nombres de rango (por ejemplo, WACC en lugar de Assumptions!$B$12) hacen las fórmulas más legibles y sobreviven mejor a los renombres de pestañas. El costo es que son más difíciles de rastrear visualmente: no puedes seguir la celda con Ctrl+[ de la misma forma que con una referencia directa. Para modelos que van a ser revisados por equipos de due diligence o bancas de inversión, las referencias absolutas explícitas son preferibles porque cualquier persona puede seguir el rastro sin conocer los nombres definidos en el archivo.