Análisis de datos

Hojas de cálculo para OKRs: guía para FP&A

Marc Sean18 de abril de 20268 min de lectura

Esa distinción importa más de lo que parece. Si tu KR "margen bruto ≥ 38.5%" vive en una celda desconectada de la línea MB% de tu P&L, alguien tendrá que reconciliarlas a mano cada vez que actualices el modelo. Nadie lo hará de forma consistente. Para el tercer trimestre, el tracker muestra un número y el modelo muestra otro, y ningún miembro de la junta va a confiar en ninguno de los dos.

El problema opuesto también es real: la mitad de los OKRs de cualquier empresa no son financieros. "Cerrar 3 partnerships estratégicos", "lanzar el módulo de facturación electrónica", "subir el NPS a 45" - estos KRs no viven en tu modelo y merecen más que un dropdown con tres opciones. Este artículo cubre los dos casos con fórmulas listas para copiar.

Los equipos de finanzas llevan años construyendo estas hojas, en gran parte porque herramientas como Lattice o Gtmhub cobran entre $8 y $12 por usuario al mes y aun así exigen captura manual de los KRs financieros que más importan. Una configuración bien estructurada en Google Sheets maneja 20-30 KRs durante 8 trimestres sin costo adicional y con trazabilidad completa de fórmulas.

La arquitectura que realmente funciona

Construye exactamente 4 pestañas. No más al inicio.

PestañaRol
SupuestosFechas de período, ponderaciones, parámetros globales
Datos de EntradaStaging para KRs no financieros (pipeline, producto, personas)
Tracker OKRVista para dirección y junta - nunca fuente de verdad
Tus pestañas de modelo: P&L, Headcount, Balance GeneralFuentes de verdad para KRs financieros

La regla es simple: el Tracker OKR solo lee. Nunca escribe. Si un número puede venir del modelo, viene del modelo. Si no puede, viene de Datos de Entrada. Nada se escribe directamente en el tracker salvo las columnas de responsable, notas y estado de hito.

Columnas del Tracker OKR

Este es el esquema mínimo que sobrevive un ciclo de planeación real. Las plantillas decorativas que encuentras en línea - grillas con colores que lucen bien en una captura de pantalla - se rompen en cuanto agregas una columna o cambias el rango de un período.

Columnas: Objetivo | Resultado Clave | Tipo | Responsable | Peso | Meta | Real | Puntuación | Estado | Trimestre | Notas

La columna Tipo acepta: Financiero, Hito, Operativo o Personas. Esa distinción controla la lógica de puntuación y, más importante, le dice a cualquier lector nuevo dónde vive la fuente de ese número.

KRs financieros: extracción en tiempo real del modelo

Un KR como "Alcanzar $4,200,000 de ARR al cierre del Q3" debería resolverse con una fórmula, no con un valor escrito a mano:

=SUMIFS('P&L'!C:C, 'P&L'!A:A, ">=" & Supuestos!$B$3, 'P&L'!A:A, "<=" & Supuestos!$C$3)

Donde Supuestos!$B$3 y $C$3 son las fechas de inicio y fin del período activo. Cambiar el período en Supuestos actualiza automáticamente todos los KRs que referencian esas celdas.

Para KRs de margen o ratio:

='P&L'!$C$14 / 'P&L'!$C$8   - margen bruto como proporción de ingresos
=VLOOKUP(Tracker_OKR!A2, 'Headcount'!$A:$C, 3, 0)   - headcount por área

Runway y tasa de quema como OKRs merecen mención aparte porque requieren fórmulas cruzadas que ninguna herramienta de OKRs independiente puede replicar sin exportar datos a mano. Si tu objetivo es "Extender el runway a 18+ meses al cierre del año", el KR se resuelve así:

=('Balance General'!$D$42 - 'Balance General'!$D$41) / (-1 * AVERAGE('Flujo de Caja'!C:C))

Donde Balance General!$D$42 es el efectivo al cierre del período, $D$41 es el efectivo al inicio, y el promedio de la columna de flujo de caja es la quema mensual. La celda se actualiza sola cuando el modelo cambia. Eso es lo que significa tratar el tracker como pestaña de salida: no estás construyendo un segundo modelo, estás construyendo una vista encima del primero.

Cómo puntuar cada tipo de KR

Los KRs financieros y los KRs de hito se puntúan diferente, y confundirlos es donde la mayoría de los trackers se quiebran.

Tipo de KREjemploFórmula de puntuación
Financiero continuoARR ≥ $4.2M=MIN(1, Real/Meta)
Financiero con umbralMargen bruto ≥ 38.5%=IF(Real>=Meta, 1, Real/Meta)
Hito binarioLanzar módulo de facturación electrónica=IF(Estado="Listo", 1, 0)
Hito parcialCerrar 3 partnerships estratégicos=MIN(1, Conteo/3)
CompuestoCerrar Serie A (monto + fecha)Promedio ponderado de sub-KRs

La puntuación a nivel de objetivo es un promedio ponderado de sus KRs:

=SUMPRODUCT('Tracker OKR'!D2:D6, 'Tracker OKR'!E2:E6) / SUM('Tracker OKR'!D2:D6)

Donde la columna D es el peso del KR (0.4, 0.3, 0.3) y la columna E es la puntuación (0-1).

KRs no financieros: más que un dropdown

Un KR de hito no es solo un campo de texto con tres estados. Para que un tracker sea útil en revisiones de junta, cada KR de hito necesita: el estado actual (No iniciado / En progreso / Bloqueado / Listo), una fecha de compromiso, quién es responsable y qué hay que hacer para desbloquearlo si está atascado.

La columna Estado usa validación de datos con lista desplegable. Una columna auxiliar oculta convierte el estado a número para la fórmula de puntuación:

=SWITCH(H2, "Listo", 1, "En progreso", 0.5, "Bloqueado", 0.1, "No iniciado", 0)

Para KRs de hito parciales - "cerrar 3 partnerships estratégicos", "completar 5 demos con clientes enterprise" - agrega una columna Conteo Real donde alguien ingresa el número manualmente (o lo extrae de Datos de Entrada), y la puntuación se calcula sola:

=MIN(1, Conteo_Real / Meta_Conteo)

Este enfoque hace que la reunión de revisión sea más eficiente: el equipo discute los KRs bloqueados, no los que ya están en verde.

KRs operativos: conectar pipeline y métricas de producto sin programar

Para KRs que dependen de datos en otras hojas de Google - un pipeline de ventas, un dashboard de NPS, un reporte de bugs - IMPORTRANGE combinado con QUERY elimina la necesidad de exportar CSVs o escribir código.

Extraer un valor de resumen desde una hoja de pipeline de ventas:

=QUERY(
  IMPORTRANGE("https://docs.google.com/spreadsheets/d/ID_DE_LA_HOJA", "Pipeline!A:E"),
  "SELECT SUM(Col5) WHERE Col3='Enterprise' AND Col4='Q3 2026'",
  0
)

Esto extrae la suma de la columna de valor (Col5) filtrando por segmento y período. El Tracker OKR muestra el número en tiempo real sin que nadie tenga que pegar nada.

Contar hitos completados desde una hoja de producto:

=QUERY(
  IMPORTRANGE("https://docs.google.com/spreadsheets/d/ID_DE_LA_HOJA", "Roadmap!A:C"),
  "SELECT COUNT(Col1) WHERE Col3='Lanzado' AND Col2='Q3 2026'",
  0
)

Esta fórmula cuenta las funcionalidades lanzadas en el trimestre. Si tu equipo de producto lleva su roadmap en Google Sheets, ese número viaja directo al tracker sin intervención manual.

La capa de staging en Datos de Entrada: Para datos que cambian frecuentemente - NPS mensual, tasa de aceptación de ofertas, conteo de bugs críticos - pega o extrae los valores en la pestaña Datos de Entrada, no directamente en el tracker. El tracker lee desde Datos de Entrada con una referencia de celda o VLOOKUP. Esto preserva el rastro de auditoría: si un número cambia, sabes exactamente de dónde vino y cuándo se actualizó.

=VLOOKUP(Tracker_OKR!B12, 'Datos de Entrada'!$A:$C, 3, 0)

Nota práctica sobre IMPORTRANGE: el rendimiento se degrada con rangos grandes. Extraer 10,000 filas de una hoja de pipeline es razonable. Si tu fuente tiene más de 50,000 filas, filtra en la consulta QUERY antes de importar, o trabaja con una hoja de resumen como intermediaria.

El patrón de snapshot para revisiones trimestrales

La mayoría de los equipos pierden 2 o 3 horas cada trimestre actualizando manualmente su tracker de OKRs porque los datos viven en otro lugar. Con la arquitectura descrita aquí, esa fricción desaparece - pero igual necesitas preservar el historial cuando el período cambia.

Al cierre de cada trimestre: copia el rango completo del Tracker OKR, crea una hoja nueva llamada Q3 2026 Snapshot y pega solo valores (Ctrl+Shift+V). Eso congela el historial sin romper las fórmulas en vivo.

Tu Tracker OKR siempre muestra el trimestre activo. Las comparaciones históricas se extraen del snapshot:

=IFERROR(VLOOKUP(A2, 'Q3 2026 Snapshot'!$A:$G, 6, 0), "N/A")

Este patrón - pestaña en vivo más snapshots trimestrales nombrados - mantiene el modelo limpio durante años sin necesitar una base de datos ni un sistema externo.

Qué queda fuera de este diseño

Esta arquitectura maneja bien 20-30 KRs durante 8 trimestres con un modelo financiero limpio como base. No está diseñada para:

  • Más de 50 KRs activos simultáneos. En ese punto, la navegación por pestañas se vuelve costosa y conviene un sistema dedicado.
  • Equipos distribuidos donde múltiples personas actualizan el tracker al mismo tiempo. Google Sheets maneja edición concurrente, pero las fórmulas que leen desde Datos de Entrada pueden generar conflictos si dos personas modifican la misma celda fuente al mismo tiempo.
  • KRs que dependen de datos en tiempo real de sistemas externos (CRM, ERP, herramientas de BI) que no tienen integración nativa con Google Sheets. Para esos casos, la opción más directa es una herramienta que conecte esas fuentes automáticamente.

ModelMonkey puede extraer los datos de KR desde tu modelo financiero existente hacia un tracker estructurado sin configuración manual - Elige un plan de ModelMonkey.