Análise de dados

okrシート × Google Sheets: OKRs integrados ao FCFF

ModelMonkey2 de maio de 20268 min de leitura

São três regras de design. Os dados fluem em uma única direção. O score de confiança é calculado como média ponderada. Quando o score cai, as premissas de capital de giro e Capex mudam automaticamente.

Arquitetura do okrシート: design de 3 abas

Divida o modelo em três abas.

Nome da abaPapelFluxo de dados
OKR_DataEntrada de KRs e cálculo de scoreEnvia apenas para Assumptions
AssumptionsComutadores de cenário e premissas financeiras (DSO, Capex)Envia para P&L, BS, CF
P&L / BS / CFDemonstrações financeirasRecebe apenas de Assumptions

A unidirecionalidade preserva a integridade do modelo. Se o P&L referenciar OKR_Data diretamente, a dependência entre abas fica caótica e a auditoria fica impraticável. A aba Assumptions centraliza toda premissa financeira, de modo que uma mudança de cenário se propague coerentemente pelas três demonstrações.

Campos FP&A mínimos em cada linha do okrシート

John Doerr define em Measure What Matters (Portfolio, 2018), capítulo 4: "Um Key Result deve permitir julgamento independente sobre sua realização em relação aos demais KRs". Essa independência, traduzida para planilha, exige no mínimo 7 colunas por linha.

ColunaNome do campoTipoExemplo
AKR_IDTexto2026Q3-VENDAS-01
BDescrição da metaTextoARR R$ 80 mi
CValor-alvoNúmero80.000
DPeso (0 a 1)Número0,35
EValor atualNúmero54.000
FTaxa de progressoFórmula=E2/C2
GScore de confiançaNúmero (entrada manual)0,72
HData da última atualizaçãoData17/05/2026

O score de confiança (coluna G) é diferente da taxa de progresso (coluna F). Mesmo que o ARR esteja em 67% da meta, se a qualidade do pipeline caiu, a confiança pode ficar abaixo de 50%. Essa estimativa subjetiva é o que aciona o comutador de cenário.

A média ponderada do score vai para Assumptions!B3:

// Assumptions!B3: Média ponderada da confiança de KR
=SUMPRODUCT(OKR_Data!G2:G20, OKR_Data!D2:D20)
 / SUMPRODUCT(OKR_Data!D2:D20)

Segundo a documentação oficial do Google Sheets, SUMPRODUCT multiplica arrays elemento por elemento e soma o resultado; células vazias são tratadas como zero. Mesmo com 5 milhões de linhas em ARRAYFORMULA, recalcula em menos de 50 ms.

Cascata até o EBITDA

Com base no score de Assumptions!B3, você bifurca cenários.

// Assumptions!B4: Flag de cenário
=IF(B3>=0,75,"OnTrack",IF(B3>=0,55,"Caution","Downside"))

// Assumptions!B5: Premissa de receita mensal (R$ mil)
=IFS(B4="OnTrack", 4200, B4="Caution", 3600, B4="Downside", 2900)

Em Q2 2026, a média ponderada do score de KR foi 75,7% — OnTrack. No início de Q3, KRs de roadmap de produto e sucesso do cliente atrasaram; o score caiu para 67,8%. O cenário comutou automaticamente para Caution.

CenárioReceita mensalEBITDA trimestral (22%)NOPAT (alíquota 30%)
OnTrack (≥75%)R$ 4.200 milR$ 2.772 milR$ 1.940 mil
Caution (55–75%)R$ 3.600 milR$ 2.376 milR$ 1.663 mil
Downside (<55%)R$ 2.900 milR$ 1.914 milR$ 1.340 mil
// P&L!C5: EBITDA trimestral
='P&L'!C3 * Assumptions!$B$8   // C3=receita trimestral, B8=margem EBITDA (0,22)

// P&L!C7: NOPAT
='P&L'!C5 * (1 - Assumptions!$B$9)   // B9=alíquota efetiva (0,30)

Do score de confiança ao waterfall de FCFF

Aqui você chega ao nível que investidor merece ver. Um comutador de cenário apenas no P&L não completa o FCFF. A mudança na confiança de KR move DSO (dias de vendas em aberto) e o timing de Capex, que impactam diretamente o fluxo de caixa.

Premissa de DSO e integração ao Balanço Patrimonial

Se o KR de produto atrasa, a homologação do cliente demora e o prazo de recebimento estica. No cenário Caution, você eleva o DSO médio de 45 dias para 52 dias.

// Assumptions!B6: DSO (dias)
=IFS(B4="OnTrack", 45, B4="Caution", 52, B4="Downside", 60)

// BS!C15: Saldo de Contas a Receber
='P&L'!C3 / 90 * Assumptions!$B$6
// P&L!C3 = receita trimestral (Caution: R$ 10.800 mil)
// → AR: R$ 10.800 / 90 × 52 = R$ 6.240 mil

// BS!C16: ΔAR (variação)
=C15 - B15
// B15 = saldo de AR fim de Q2 (OnTrack: R$ 12.600/90×45 = R$ 6.300 mil)
// → ΔAR = R$ 6.240 - R$ 6.300 = ▲R$ 60 mil (WC melhora discretamente)

Ligação do timing de Capex

Não faz sentido executar 100% do Capex de crescimento enquanto o KR de roadmap atrasa. No cenário Caution, você adia 50% do Capex de infraestrutura de engenharia. No Downside, congela tudo.

// Assumptions!B7: Capex trimestral (R$ mil)
=IFS(B4="OnTrack", 4500, B4="Caution", 2250, B4="Downside", 0)

Waterfall de FCFF (aba CF)

// CF!C3: NOPAT (do P&L)
='P&L'!C7

// CF!C5: D&A (fixo, R$ 900 mil/trimestre)
=Assumptions!$B$10

// CF!C7: Variação de capital de giro (ΔAR com sinal invertido)
=-'BS'!C16

// CF!C9: Capex
=-Assumptions!$B$7

// CF!C11: FCFF
=C3 + C5 + C7 + C9

Lado a lado, os três cenários revelam uma estrutura que passa despercebida.

Waterfall de FCFF (Q3 2026, R$ mil)OnTrackCautionDownside
NOPATR$ 1.940R$ 1.663R$ 1.340
D&AR$ 900R$ 900R$ 900
ΔWC (ΔAR invertido)R$ 0+R$ 60+R$ 4.400
Capex▲R$ 4.500▲R$ 2.250R$ 0
FCFF▲R$ 1.660+R$ 373+R$ 6.640

O FCFF do cenário Downside é maior que o do OnTrack porque o Capex foi congelado. Quando você explica isso em QBR para investidores, não cola dizer "no Downside o caixa está robusto". Você precisa dizer: "congelamos investimento de crescimento, sacrificando potencial futuro". É aí que ligar okrシート com FCFF tem valor real.

Da transição OnTrack para Caution, o delta de FCFF é +R$ 2.033 mil. O detalhamento fica assim:

Bridge de FCFF (OnTrack → Caution, R$ mil)Valor
① NOPAT menor (receita ▲R$ 1.800 mil × 22% × 70%)▲R$ 277
② ΔWC melhora (AR ▲R$ 60 mil, libera capital)+R$ 60
③ Capex adiado (R$ 4.500 → R$ 2.250)+R$ 2.250
Delta de FCFF+R$ 2.033

Adicione essa tabela ao sumário de diretoria mensal e pronto: "confiança de KR caiu; Capex foi adiado; impacto no FCFF: +R$ 2.033 mil" vira explicação que transcende o número puro. KR é tema de OKR, mas a auditoria financeira acompanha até o balanço e o fluxo de caixa.

Alerta de obsolescência para manter o okrシート atualizado

Se o score de confiança dos KRs não for atualizado por 14 dias, o cenário em Assumptions continua rodando com premissas antigas. Em maio de 2026, muitos times largam a previsão trimestral sem notar que esqueceram de revisar o okrシート.

// Assumptions!D3: Dias sem atualização
=TODAY() - MAX(OKR_Data!H2:H20)   // coluna H = data da última atualização

// Assumptions!E3: Mensagem de alerta
=IF(D3>14,
   "⚠ Score de KR sem atualizar há " & D3 & " dias — valide o modelo",
   "✓ Atualizado")

Coloque no topo da aba Assumptions e aplique formatação condicional em vermelho. Você abre o arquivo e identifica na hora se há dados velhos. Com SUMIFS é possível separar KRs por responsável e disparar alertas granulares.

// Verificação de obsolescência por responsável
=SUMPRODUCT((TODAY()-OKR_Data!H2:H20>14)*(OKR_Data!I2:I20="Maria"))
// coluna I = nome do responsável; se >0, há KRs desatualizados

Automatizando o loop de atualização

O design acima com SUMPRODUCT e arquitetura de 3 abas funciona puro em Google Sheets. Mas manter 8 ou mais KRs atualizados toda semana é overhead operacional que não dá para ignorar. Ferramentas que se integram ao Sheets permitem receber entrada de score de confiança via Slack ou Google Form, gravar automaticamente em OKR_Data e disparar o recálculo em cascata: Assumptions → P&L → BS → CF tudo de uma vez. O alerta de 14 dias para de disparar, e a angústia pré-QBR ("os números batem?") diminui drasticamente.

Escolha um plano do ModelMonkey — funciona em Google Sheets e Excel.


Perguntas frequentes