Modelagem financeiraIntermediário7 min de leitura

Como Criar um Modelo de OKR no Google Sheets

Modelo de OKR no Google Sheets com pontuação ponderada, rollups automáticos e vínculo financeiro. Passo a passo para times de finanças.

Crie um modelo de OKR com múltiplas abas no Google Sheets que calcula pontuações ponderadas para cada resultado-chave, consolida essas pontuações em notas por objetivo e conecta diretamente à sua aba de premissas financeiras, de modo que quando a meta de R$ 18,5 milhões de ARR muda, a pontuação do OKR é atualizada automaticamente. Este não é um checklist de semáforos. É um modelo estruturado: uma aba Config para definições de período e pesos, uma aba KR_Detail onde o progresso é registrado, uma aba Rollup que agrega por responsável e por objetivo, e uma aba Dashboard para o board pack. Sete etapas para chegar lá.

O que você vai precisar

  • Uma conta Google Sheets com acesso de edição à planilha
  • Familiaridade com referências entre abas e intervalos nomeados
  • Um modelo de três demonstrações ou aba de premissas em funcionamento (opcional, mas recomendado para a Etapa 6)
  • Dados de OKR de pelo menos um trimestre para alimentar o modelo
  • Noções básicas de Apps Script (a Etapa 2 usa uma função curta, copiável e colável)

Guia passo a passo

1

Defina a Arquitetura de Abas do Modelo de OKR

Antes de tocar em qualquer célula, defina a arquitetura de abas. Um modelo de OKR bem estruturado separa entradas de cálculos e de saídas, o mesmo princípio que torna um modelo financeiro auditável.

  • Config** - definições de período, pesos, limites e lista de responsáveis
  • KR_Detail** - uma linha por resultado-chave, com todos os dados de progresso
  • Rollup** - pontuações por objetivo via SUMPRODUCT e resumos por responsável
  • Dashboard** - visão pronta para o board, alimentada inteiramente por Rollup e Config
  • Fin_Link** - ponte opcional com a aba de Premissas do seu modelo financeiro

Pro Tip

Nomeie suas abas sem espaços. "KR_Detail" importa melhor do que "KR Detail" quando você está escrevendo SUMIFS entre abas às 23h antes de montar um board pack.
2

Configure a Aba Config

Config é o painel de controle central. Toda premissa que pode mudar, como período, limite de pontuação e esquema de pesos, fica aqui e em nenhum outro lugar.

Configure os seguintes intervalos nomeados em Config (Fórmulas > Intervalos nomeados):

  • cfg_period → rótulo do período de OKR atual, por exemplo, "T3 2026" (célula B2)
  • cfg_ontrack_threshold → pontuação ponderada mínima para exibir verde, por exemplo, 0,70 (célula B4)
  • cfg_owners → lista validada de nomes de responsáveis para dropdowns em KR_Detail (B8:B20)
  • cfg_weight_sum_check → fórmula de validação: =SUMIF(KR_Detail!E:E,"*",KR_Detail!F:F) para detectar pesos que não somam 1,0 por objetivo

Pro Tip

Configure esta função como um gatilho onOpen se você importar dados reais de uma fonte conectada (HubSpot, Salesforce). O timestamp informa aos revisores quando os dados foram atualizados pela última vez.
3

Configure a Aba KR_Detail (O Motor do Modelo de OKR)

É aqui que o modelo vive. KR_Detail tem uma linha por resultado-chave, com colunas para o objetivo ao qual pertence, o responsável, a meta, o realizado, o peso dentro do objetivo e a pontuação calculada.

Configure as colunas A a H:

ColunaCabeçalhoObservações
AObjective_IDCódigo curto, ex.: "OBJ-1"
BKR_IDex.: "KR-1.2"
COwnerDropdown alimentado por cfg_owners
DKR_DescriptionTexto livre
ETargetNumérico ou %
FActualNumérico ou % - única coluna de entrada
GWeightDeve somar 1,0 por Objective_ID
HKR_ScoreFórmula: =IFERROR(MIN(F2/E2,1)*G2, 0)

O limite MIN(...,1) é intencional. Um NRR de 112% contra uma meta de 100% recebe crédito de peso completo, mas não infla a pontuação do objetivo-pai acima de 1,0. Se o seu time quiser premiar desempenho acima da meta, altere o limite para 1,2 e documente isso em Config.

  • Bloqueie a coluna H (Formatar > Proteger intervalo) para que ninguém sobrescreva a fórmula com um número fixo
  • Adicione formatação condicional à coluna F: vermelho se F < E*cfg_ontrack_threshold, verde se F >= E
  • Use validação de dados na coluna C restrita a cfg_owners, o que evita erros de digitação que quebram os SUMIFS da aba Rollup

Pro Tip

Adicione uma coluna "Confiança" (I) com dropdown de 1 a 3. Ela não afeta a pontuação, mas oferece ao board um sinal prospectivo que nenhuma fórmula consegue capturar.
4

Configure a Fórmula de Pontuação Ponderada

Com KR_Detail estruturado, a fórmula de pontuação na coluna H é direta. A pontuação no nível do objetivo é onde fica interessante: ela exige um SUMPRODUCT em um intervalo filtrado.

Em Rollup!C2 (assumindo que A2 contém o Objective_ID), a fórmula de pontuação por objetivo é:

=SUMPRODUCT(
  (KR_Detail!$A$2:$A$200=A2)*      // filtrar para este objetivo
  KR_Detail!$H$2:$H$200            // somar as pontuações ponderadas dos KRs
)

Essa fórmula retorna um número entre 0 e 1. Uma pontuação de 0,46 significa que o objetivo está em 46% da meta, abaixo do limite de 0,70 definido em Config e, portanto, aparece em vermelho no Dashboard.

Para uma pontuação consolidada da empresa, pondere os próprios objetivos. Adicione uma coluna Obj_Weight em Rollup e calcule:

=SUMPRODUCT(Rollup!$B$2:$B$10, Rollup!$C$2:$C$10)

Onde a coluna B é o peso do objetivo e a coluna C é a pontuação acima. Com 4 objetivos ponderados em 30/30/20/20, uma pontuação média de 0,8 nos dois objetivos de 30% e de 0,5 nos de 20% resulta em uma pontuação da empresa de (0,8*0,3 + 0,8*0,3 + 0,5*0,2 + 0,5*0,2) = 0,68, um ponto abaixo do limite de acompanhamento.

    Pro Tip

    Faça uma verificação da soma dos pesos em Config. Se SUMIF(Rollup!B:B,"*",Rollup!B:B) não retornar 1,0, a pontuação da empresa não terá validade. Marque isso com uma célula que fique vermelha em caso de divergência.
    5

    Configure os Rollups por Responsável e por Período

    A aba Rollup faz duas coisas: agrega por objetivo (Etapa 4) e segmenta por responsável para as conversas de desempenho.

    Resumo por responsável em Rollup (colunas E a G):

    // Pontuação média ponderada de todos os KRs de um determinado responsável
    =IFERROR(
      AVERAGEIF(KR_Detail!$C$2:$C$200, E2, KR_Detail!$H$2:$H$200),
      0
    )
    

    Para comparação entre períodos, adicione uma segunda aba chamada KR_Detail_Prior com a mesma estrutura. A fórmula de variação em Rollup:

    =SUMPRODUCT(
      (KR_Detail!$A$2:$A$200=A2)*KR_Detail!$H$2:$H$200
    ) -
    SUMPRODUCT(
      (KR_Detail_Prior!$A$2:$A$200=A2)*KR_Detail_Prior!$H$2:$H$200
    )
    

    Uma variação positiva significa que o objetivo melhorou em relação ao trimestre anterior. Isso alimenta diretamente a narrativa do board sem nenhum cálculo manual.

    • Proteja a aba Rollup inteira contra edição (apenas fórmulas, sem entradas)
    • Adicione uma linha no final para a pontuação composta da empresa
    • Ordene os objetivos por pontuação crescente para que os problemas apareçam imediatamente
    6

    Vincule o Modelo de OKR às Premissas Financeiras

    Esta é a etapa que a maioria dos modelos de OKR pula, e é por isso que as revisões de OKR e as revisões financeiras acontecem em reuniões separadas. Conecte os dois.

    Se o seu modelo financeiro tem uma aba de Premissas com metas de ARR, margens brutas e headcount, referencie-as diretamente em KR_Detail em vez de usar valores fixos:

    // KR_Detail E2: meta de ARR para o resultado-chave "Crescer ARR para R$ 18,5M"
    ='Premissas'!$B$12
    
    // KR_Detail F2: ARR realizado da aba de realizados
    =SUMIFS('DRE'!$C:$C,'DRE'!$B:$B,">="&Premissas!$B$3,'DRE'!$A:$A,"ARR")
    

    Agora, quando o CFO ajusta a meta de ARR de R$ 18,5M para R$ 21M em Premissas, a pontuação do OKR para esse KR é recalculada automaticamente. A meta de margem bruta de 72% com 70,1% realizado que estava verde no trimestre passado pode aparecer em amarelo neste trimestre se a meta subiu.

    Metas que valem a pena vincular diretamente às premissas do modelo financeiro:

    • Metas de ARR / NRR (do orçamento de receita)
    • Metas de margem bruta (do DRE)
    • Metas de headcount (do plano de workforce)
    • Limites de queima de caixa ou EBITDA (do modelo de fluxo de caixa)

    Pro Tip

    Use IFERROR em todas as referências entre abas. Se alguém renomear a aba de Premissas, você quer que "Erro de #REF - verifique o nome da aba Premissas" apareça imediatamente, e não que um zero seja retornado silenciosamente e corrompa as pontuações de OKR.
    7

    Crie a Aba Dashboard de OKR

    A aba Dashboard é a saída em modo somente leitura. Cada célula vem de Rollup ou Config. Ninguém digita aqui.

    Estruture-a em três zonas:

    Zona 1 - Cabeçalho (linhas 1 a 3): rótulo do período com =Config!B2, pontuação da empresa do composto de Rollup e um indicador RAG usando =IF(Rollup!composite>=cfg_ontrack_threshold,"NO PRAZO","EM RISCO").

    Zona 2 - Tabela de resumo por objetivo (linhas 5 a 15): uma linha por objetivo, puxando de Rollup:

    =IFERROR(
      VLOOKUP(A6, Rollup!$A:$C, 3, FALSE),
      "-"
    )
    

    Zona 3 - Mapa de calor por responsável (linhas 17 a 30): nomes dos responsáveis nas colunas, objetivos nas linhas, valores de células do recorte por responsável em Rollup. Coloração via formatação condicional: >=0,70 verde, 0,50 a 0,69 amarelo, <0,50 vermelho.

    Para o board pack trimestral, esta é a única aba que é compartilhada. Bloqueie-a, oculte a barra de fórmulas para os membros do board usando intervalos protegidos e nomeie o arquivo [NomeEmpresa]_OKR_[Trimestre]_BOARD.xlsx antes de exportar para PDF.

      Pro Tip

      Adicione uma célula "Última Atualização" referenciando Config!B3 (o timestamp do Apps Script da Etapa 2). Os membros do board sempre perguntam quando os dados foram atualizados. Agora você não precisa responder na hora.

      Conclusão

      Agora você tem um modelo de OKR com 5 abas onde as pontuações dos KRs são calculadas a partir dos dados realizados, consolidadas em notas ponderadas por objetivo e vinculadas às metas financeiras da sua aba de premissas. Quando o T3 encerrar e os dados realizados chegarem, você atualiza a coluna F em KR_Detail e todos os números a jusante se atualizam automaticamente: Rollup, Dashboard e o board pack.

      O ponto fraco na maioria dos modelos de OKR não é a fórmula de pontuação, mas o ciclo manual de atualização dos dados. Quando os dados realizados estão no HubSpot, no Salesforce ou em um data warehouse e alguém precisa copiá-los e colá-los em KR_Detail todo mês, o modelo fica desatualizado. O ModelMonkey pode puxar esses dados diretamente para o KR_Detail a partir das fontes conectadas, de modo que a atualização vira um prompt e não um ritual. Escolha um plano do ModelMonkey, ele funciona tanto no Google Sheets quanto no Excel.

      Perguntas frequentes

      Como devo ponderar os resultados-chave dentro de um objetivo?

      Pondere por importância estratégica, não em partes iguais. Se um objetivo tem 3 KRs e um deles é um marco binário (lançado/não lançado) enquanto os outros são métricas contínuas, o KR binário provavelmente merece um peso menor, digamos 0,20, pois não consegue capturar progresso parcial. Um ponto de partida comum: 0,40 / 0,40 / 0,20 para um objetivo com 3 KRs, ajustado conforme os resultados que o negócio realmente precisa no período.

      Qual é o limite correto de pontuação para considerar um objetivo "no prazo"?

      O Google e a literatura sobre OKR referenciam 0,7 como o limite padrão para "no prazo", partindo da ideia de que atingir consistentemente 1,0 significa que as metas foram definidas com pouca ambição. Na prática, a maioria dos times de FP&A trabalha entre 0,65 e 0,75, dependendo da cultura de definição de metas. Defina o valor uma única vez em Config (`cfg_ontrack_threshold`) e aplique-o de forma consistente. Alterar o limite durante o trimestre para melhorar os números é o equivalente em planilha de ajustar a definição de EBITDA depois dos fatos.

      Como lidar com KRs qualitativos que não podem ser medidos com um número?

      Atribua uma escala de 1 a 5 e normalize para 0 a 1 na fórmula: `=(F2-1)/4`. Uma nota 3 de 5 resulta em 0,50; uma nota 5 resulta em 1,0. Documente o critério de avaliação em um comentário na célula KR_Description para que a pontuação não seja subjetiva de trimestre para trimestre. KRs qualitativos raramente devem ultrapassar 20% a 30% do peso total de um objetivo.

      Este modelo de OKR suporta objetivos aninhados (OKRs dentro de OKRs)?

      Sim, com uma camada adicional na aba Rollup. Adicione uma coluna "Parent_Objective_ID" e então execute um SUMPRODUCT de segundo nível que trate as pontuações dos objetivos filhos como entradas da mesma forma que as pontuações dos KRs alimentam as pontuações dos objetivos. Na prática, aninhar mais de dois níveis (empresa > time) gera sobrecarga de manutenção que supera o ganho em precisão. A maioria dos times se beneficia mais de manter o modelo plano e usar o recorte por responsável em Rollup para ver o desempenho por time.

      Como evitar que as fórmulas quebrem quando alguém adiciona novos KRs durante o trimestre?

      Use intervalos abertos em todos os SUMPRODUCT e SUMIFS, como `$A$2:$A$200` em vez de `$A$2:$A$15`. Adicionar uma linha em KR_Detail não exigirá atualizar cada fórmula downstream. Configure uma regra de validação de dados em KR_Detail que bloqueie linhas em branco nas colunas A a G, para que uma linha parcialmente preenchida não contribua silenciosamente com zero para os cálculos de Rollup.