Educadados Ver os cursos →
Indicadores de negócio

Enciclopédia de KPIs: fórmulas e exemplos para analistas

KPIs são os indicadores que mostram se o negócio está indo bem, como ticket médio, churn, CAC, margem e NPS. Aqui estão 54 KPIs organizados por área, cada um com a fórmula, um exemplo com números e uma medida DAX ou consulta SQL para calcular no Power BI ou no banco de dados.

Felipy Morais
Por Felipy MoraisAnalista e engenheiro de dados, certificado Microsoft PL-300, DP-600 e DP-700

Publicado em · Atualizado em

O que é um KPI

KPI (Key Performance Indicator) é o indicador escolhido para medir se um objetivo importante do negócio está sendo alcançado. Toda métrica mede alguma coisa; ela vira KPI quando está ligada a uma meta, tem um dono e ajuda a tomar uma decisão. Um bom painel tem poucos KPIs, cada um com fórmula clara, período definido e comparação com meta ou com o período anterior.

Esta enciclopédia traz 54 KPIs em 10 áreas. Para cada um: o que mede, a fórmula, um exemplo com números, se é melhor maior ou menor e uma medida DAX ou consulta SQL curta para calcular. É a mesma base usada na Enciclopédia de KPIs do jogo O Analista, na área do aluno da Educadados.

Como ler as fórmulas e os códigos

Vendas

Receita (faturamento)

Receita (faturamento) mede quanto a empresa vendeu no período.

Fórmula
Soma do valor das vendas realizadas
Exemplo
1.000 pedidos de R$ 50 = R$ 50.000
Leitura
Quanto maior, melhor
DAX
Receita = SUM ( Vendas[Valor] )

Ticket médio

Ticket médio mede quanto cada pedido vale em média.

Fórmula
Receita ÷ número de pedidos
Exemplo
R$ 120.000 ÷ 3.000 pedidos = R$ 40
Leitura
Quanto maior, melhor
DAX
Ticket Médio =
DIVIDE ( SUM ( Vendas[Valor] ), DISTINCTCOUNT ( Vendas[PedidoID] ) )

Taxa de conversão de vendas

Taxa de conversão de vendas mede quantas oportunidades viram venda.

Fórmula
Vendas fechadas ÷ oportunidades
Exemplo
30 vendas de 200 propostas = 15%
Leitura
Quanto maior, melhor
DAX
Conversão de Vendas =
DIVIDE (
    CALCULATE ( COUNTROWS ( Oportunidades ), Oportunidades[Status] = "Ganha" ),
    COUNTROWS ( Oportunidades )
)

% da meta atingida

% da meta atingida mede quanto do objetivo de vendas foi alcançado.

Fórmula
Realizado ÷ meta × 100
Exemplo
R$ 90 mil de uma meta de R$ 100 mil = 90%
Leitura
Quanto maior, melhor
DAX
% da Meta = DIVIDE ( SUM ( Vendas[Valor] ), SUM ( Metas[Valor] ) )

Ciclo de vendas

Ciclo de vendas mede quanto tempo leva para fechar uma venda.

Fórmula
Média de dias entre o primeiro contato e o fechamento
Exemplo
Vendas B2B fechando em 45 dias, em média
Leitura
Quanto menor, melhor
SQL
SELECT AVG(DATEDIFF(day, data_primeiro_contato, data_fechamento)) AS ciclo_dias
FROM oportunidades
WHERE status = 'ganha';

Taxa de recompra

Taxa de recompra mede quantos clientes voltam a comprar.

Fórmula
Clientes que compraram de novo ÷ clientes do período
Exemplo
350 de 1.000 clientes voltaram em 90 dias = 35%
Leitura
Quanto maior, melhor
SQL
SELECT 1.0 * SUM(CASE WHEN pedidos > 1 THEN 1 ELSE 0 END) / COUNT(*) AS taxa_recompra
FROM (
    SELECT cliente_id, COUNT(*) AS pedidos
    FROM pedidos
    WHERE data_pedido >= '2026-07-01' AND data_pedido < '2026-10-01'
    GROUP BY cliente_id
) c;

Marketing

CAC (custo de aquisição de cliente)

CAC (custo de aquisição de cliente) mede quanto custa conquistar um cliente novo.

Fórmula
Investimento em marketing e vendas ÷ clientes novos
Exemplo
R$ 15.000 ÷ 300 clientes = R$ 50
Leitura
Quanto menor, melhor
DAX
CAC =
DIVIDE ( SUM ( Investimento[Valor] ), DISTINCTCOUNT ( ClientesNovos[ClienteID] ) )

CPL (custo por lead)

CPL (custo por lead) mede quanto custa cada contato interessado.

Fórmula
Investimento ÷ leads gerados
Exemplo
R$ 2.000 ÷ 400 leads = R$ 5
Leitura
Quanto menor, melhor
DAX
CPL = DIVIDE ( SUM ( Campanhas[Investimento] ), SUM ( Campanhas[Leads] ) )

ROI (retorno sobre o investimento)

ROI (retorno sobre o investimento) mede quanto o investimento devolveu além do que custou.

Fórmula
(Retorno − investimento) ÷ investimento
Exemplo
Investiu R$ 10 mil e voltou R$ 30 mil: ROI de 200%
Leitura
Quanto maior, melhor
DAX
ROI =
VAR investimento = SUM ( Campanhas[Investimento] )
RETURN DIVIDE ( SUM ( Campanhas[Retorno] ) - investimento, investimento )

ROAS (retorno sobre gasto com anúncios)

ROAS (retorno sobre gasto com anúncios) mede quanto de receita cada real de anúncio trouxe.

Fórmula
Receita gerada pelos anúncios ÷ gasto com anúncios
Exemplo
R$ 40 mil de receita com R$ 10 mil de anúncio = ROAS 4
Leitura
Quanto maior, melhor
DAX
ROAS = DIVIDE ( SUM ( Anuncios[Receita] ), SUM ( Anuncios[Gasto] ) )

CTR (taxa de cliques)

CTR (taxa de cliques) mede quantas pessoas clicam depois de ver o anúncio.

Fórmula
Cliques ÷ impressões
Exemplo
500 cliques em 25.000 impressões = 2%
Leitura
Quanto maior, melhor
DAX
CTR = DIVIDE ( SUM ( Anuncios[Cliques] ), SUM ( Anuncios[Impressoes] ) )

Taxa de abertura de e-mail

Taxa de abertura de e-mail mede quantos e-mails entregues foram abertos.

Fórmula
E-mails abertos ÷ e-mails entregues
Exemplo
2.400 aberturas de 8.000 entregues = 30%
Leitura
Quanto maior, melhor
SQL
SELECT 1.0 * SUM(CASE WHEN aberto = 1 THEN 1 ELSE 0 END) / COUNT(*) AS taxa_abertura
FROM envios_email
WHERE entregue = 1;

Financeiro

Margem líquida

Margem líquida mede quanto sobra de lucro de cada real vendido.

Fórmula
Lucro líquido ÷ receita
Exemplo
R$ 30 mil de lucro em R$ 200 mil de receita = 15%
Leitura
Quanto maior, melhor
DAX
Margem Líquida = DIVIDE ( SUM ( DRE[LucroLiquido] ), SUM ( DRE[Receita] ) )

Margem bruta

Margem bruta mede quanto sobra da venda depois do custo do produto.

Fórmula
(Receita − custo dos produtos vendidos) ÷ receita
Exemplo
Vende a R$ 100 o que custa R$ 60 = 40%
Leitura
Quanto maior, melhor
DAX
Margem Bruta =
VAR receita = SUM ( Vendas[Valor] )
RETURN DIVIDE ( receita - SUM ( Vendas[Custo] ), receita )

Inadimplência

Inadimplência mede quanto do que a empresa tem a receber está atrasado.

Fórmula
Valor em atraso ÷ total a receber
Exemplo
R$ 70 mil atrasados de R$ 1 milhão = 7%
Leitura
Quanto menor, melhor
SQL
SELECT SUM(CASE WHEN data_pagamento IS NULL AND vencimento < CAST(GETDATE() AS date)
                THEN valor ELSE 0 END) * 1.0 / SUM(valor) AS inadimplencia
FROM contas_receber;

EBITDA

EBITDA mede o resultado da operação, sem juros, impostos, depreciação e amortização.

Fórmula
Lucro antes de juros, impostos, depreciação e amortização
Exemplo
Usado para comparar a operação de empresas diferentes
Leitura
Quanto maior, melhor
DAX
EBITDA =
SUM ( DRE[LucroLiquido] ) + SUM ( DRE[ResultadoFinanceiro] ) + SUM ( DRE[Impostos] )
    + SUM ( DRE[Depreciacao] ) + SUM ( DRE[Amortizacao] )

Prazo médio de recebimento

Prazo médio de recebimento mede quantos dias a empresa espera para receber das vendas a prazo.

Fórmula
Média de dias entre a venda e o recebimento
Exemplo
Clientes pagando em 42 dias, em média
Leitura
Quanto menor, melhor
SQL
SELECT AVG(DATEDIFF(day, data_venda, data_recebimento)) AS pmr_dias
FROM recebimentos;

Ponto de equilíbrio

Ponto de equilíbrio mede a receita mínima para não ter prejuízo.

Fórmula
Custos fixos ÷ margem de contribuição (%)
Exemplo
R$ 50 mil de custo fixo com 25% de margem = R$ 200 mil
Leitura
Quanto menor, melhor
DAX
Ponto de Equilíbrio =
VAR receita = SUM ( Vendas[Valor] )
VAR margemContribuicao = DIVIDE ( receita - SUM ( Vendas[CustoVariavel] ), receita )
RETURN DIVIDE ( SUM ( Custos[Fixo] ), margemContribuicao )

RH

Turnover (rotatividade)

Turnover (rotatividade) mede quantas pessoas saem da empresa.

Fórmula
Desligamentos ÷ média de funcionários
Exemplo
10 saídas numa média de 200 pessoas = 5% no mês
Leitura
Quanto menor, melhor
DAX
Turnover =
DIVIDE ( COUNTROWS ( Desligamentos ), AVERAGE ( Headcount[Funcionarios] ) )

Absenteísmo

Absenteísmo mede quanto tempo de trabalho é perdido com faltas e atrasos.

Fórmula
Horas de ausência ÷ horas previstas
Exemplo
800 horas de 20.000 previstas = 4%
Leitura
Quanto menor, melhor
DAX
Absenteísmo = DIVIDE ( SUM ( Ponto[HorasAusencia] ), SUM ( Ponto[HorasPrevistas] ) )

Tempo de contratação

Tempo de contratação mede quanto tempo uma vaga fica aberta.

Fórmula
Média de dias entre abrir a vaga e a pessoa aceitar
Exemplo
Vagas de analista fechando em 28 dias
Leitura
Quanto menor, melhor
SQL
SELECT AVG(DATEDIFF(day, data_abertura, data_aceite)) AS dias_para_contratar
FROM vagas
WHERE data_aceite IS NOT NULL;

eNPS

eNPS mede quanto os funcionários recomendariam a empresa para trabalhar.

Fórmula
% de promotores − % de detratores (entre funcionários)
Exemplo
50% promotores e 20% detratores = eNPS 30
Leitura
Quanto maior, melhor
SQL
SELECT 100.0 * (SUM(CASE WHEN nota >= 9 THEN 1 ELSE 0 END)
            - SUM(CASE WHEN nota <= 6 THEN 1 ELSE 0 END)) / COUNT(*) AS enps
FROM pesquisa_clima;

Horas de treinamento por pessoa

Horas de treinamento por pessoa mede quanto a empresa investe em capacitação.

Fórmula
Total de horas de treinamento ÷ número de funcionários
Exemplo
4.000 horas ÷ 200 pessoas = 20 horas
Leitura
Quanto maior, melhor
DAX
Horas de Treinamento por Pessoa =
DIVIDE ( SUM ( Treinamentos[Horas] ), DISTINCTCOUNT ( Funcionarios[FuncionarioID] ) )

Operações e logística

OTIF (no prazo e completo)

OTIF (no prazo e completo) mede quantos pedidos chegam no prazo e sem faltar nada.

Fórmula
Pedidos entregues no prazo e completos ÷ total de pedidos
Exemplo
920 de 1.000 pedidos = 92%
Leitura
Quanto maior, melhor
SQL
SELECT 1.0 * SUM(CASE WHEN data_entrega <= data_prometida AND qtd_entregue = qtd_pedida
                      THEN 1 ELSE 0 END) / COUNT(*) AS otif
FROM pedidos;

Lead time de entrega

Lead time de entrega mede quanto tempo o cliente espera pelo pedido.

Fórmula
Média de tempo entre o pedido e a entrega
Exemplo
Pedidos entregues em 3,2 dias, em média
Leitura
Quanto menor, melhor
DAX
Lead Time (dias) =
AVERAGEX ( Pedidos, DATEDIFF ( Pedidos[DataPedido], Pedidos[DataEntrega], DAY ) )

Giro de estoque

Giro de estoque mede quantas vezes o estoque é vendido e reposto.

Fórmula
Custo das vendas ÷ estoque médio
Exemplo
R$ 1,2 milhão ÷ R$ 200 mil = giro 6 no ano
Leitura
Quanto maior, melhor
DAX
Giro de Estoque =
DIVIDE (
    SUM ( Vendas[Custo] ),
    AVERAGEX ( VALUES ( Calendario[Mes] ), CALCULATE ( SUM ( Estoque[ValorFinal] ) ) )
)

Ruptura de estoque

Ruptura de estoque mede quanto falta produto para vender.

Fórmula
Itens sem estoque ÷ itens ativos
Exemplo
45 de 900 produtos zerados = 5%
Leitura
Quanto menor, melhor
SQL
SELECT 1.0 * SUM(CASE WHEN saldo <= 0 THEN 1 ELSE 0 END) / COUNT(*) AS ruptura
FROM estoque
WHERE ativo = 1;

Taxa de devolução

Taxa de devolução mede quantos pedidos voltam.

Fórmula
Pedidos devolvidos ÷ pedidos entregues
Exemplo
60 de 2.000 pedidos = 3%
Leitura
Quanto menor, melhor
DAX
Taxa de Devolução =
DIVIDE (
    CALCULATE ( COUNTROWS ( Pedidos ), Pedidos[Devolvido] = TRUE () ),
    CALCULATE ( COUNTROWS ( Pedidos ), Pedidos[Entregue] = TRUE () )
)

OEE (eficiência dos equipamentos)

OEE (eficiência dos equipamentos) mede o quanto a máquina produz perto do ideal.

Fórmula
Disponibilidade × desempenho × qualidade
Exemplo
90% × 95% × 98% ≈ 84%
Leitura
Quanto maior, melhor
SQL
SELECT 1.0 * tempo_operando / tempo_planejado          -- disponibilidade
     * producao_real / producao_teorica               -- desempenho
     * pecas_boas / producao_real AS oee               -- qualidade
FROM producao_turno;

Atendimento e clientes

NPS

NPS mede quanto os clientes recomendariam a empresa.

Fórmula
% de promotores (9 e 10) − % de detratores (0 a 6)
Exemplo
60% promotores e 15% detratores = NPS 45
Leitura
Quanto maior, melhor
SQL
SELECT 100.0 * (SUM(CASE WHEN nota >= 9 THEN 1 ELSE 0 END)
            - SUM(CASE WHEN nota <= 6 THEN 1 ELSE 0 END)) / COUNT(*) AS nps
FROM respostas_nps;

CSAT (satisfação do cliente)

CSAT (satisfação do cliente) mede quantos clientes saíram satisfeitos de um atendimento.

Fórmula
Avaliações satisfeitas ÷ total de avaliações
Exemplo
850 de 1.000 avaliações com nota 4 ou 5 = 85%
Leitura
Quanto maior, melhor
DAX
CSAT =
DIVIDE (
    CALCULATE ( COUNTROWS ( Avaliacoes ), Avaliacoes[Nota] >= 4 ),
    COUNTROWS ( Avaliacoes )
)

Churn (cancelamento)

Churn (cancelamento) mede quantos clientes a empresa perdeu.

Fórmula
Clientes que cancelaram ÷ clientes no início do período
Exemplo
50 de 1.000 clientes = 5% no mês
Leitura
Quanto menor, melhor
SQL
-- clientes ativos em 1º/10 que cancelaram em outubro
SELECT 1.0 * COUNT(CASE WHEN data_cancelamento < '2026-11-01' THEN 1 END)
           / COUNT(*) AS churn
FROM assinaturas
WHERE data_inicio < '2026-10-01'
  AND (data_cancelamento IS NULL OR data_cancelamento >= '2026-10-01');

LTV (valor do cliente no tempo)

LTV (valor do cliente no tempo) mede quanto um cliente deixa durante todo o relacionamento.

Fórmula
Receita média por mês × meses que o cliente fica
Exemplo
R$ 80 por mês × 20 meses = R$ 1.600
Leitura
Quanto maior, melhor
DAX
LTV =
VAR receitaMensal = AVERAGE ( Assinaturas[ValorMensal] )
VAR mesesMedios = AVERAGE ( Clientes[MesesAtivo] )
RETURN receitaMensal * mesesMedios

Tempo da primeira resposta

Tempo da primeira resposta mede quanto o cliente espera até alguém responder.

Fórmula
Média do tempo entre o contato e a primeira resposta
Exemplo
Primeira resposta em 1h40, em média
Leitura
Quanto menor, melhor
SQL
SELECT AVG(DATEDIFF(minute, aberto_em, primeira_resposta_em)) AS minutos_ate_responder
FROM chamados
WHERE primeira_resposta_em IS NOT NULL;

FCR (resolução no primeiro contato)

FCR (resolução no primeiro contato) mede quantos problemas são resolvidos sem o cliente voltar.

Fórmula
Casos resolvidos no 1º contato ÷ total de casos
Exemplo
700 de 1.000 chamados = 70%
Leitura
Quanto maior, melhor
DAX
FCR =
DIVIDE (
    CALCULATE ( COUNTROWS ( Chamados ), Chamados[Contatos] = 1, Chamados[Resolvido] = TRUE () ),
    COUNTROWS ( Chamados )
)

TMA (tempo médio de atendimento)

TMA (tempo médio de atendimento) mede quanto dura cada atendimento.

Fórmula
Tempo total de atendimento ÷ número de atendimentos
Exemplo
300 horas em 2.000 atendimentos = 9 minutos
Leitura
Quanto menor, melhor
SQL
SELECT SUM(duracao_segundos) / 60.0 / COUNT(*) AS tma_minutos
FROM atendimentos;

Produto digital

MRR (receita recorrente mensal)

MRR (receita recorrente mensal) mede quanto entra todo mês com assinaturas.

Fórmula
Soma das mensalidades ativas no mês
Exemplo
2.000 assinantes × R$ 49 = R$ 98 mil
Leitura
Quanto maior, melhor
DAX
MRR = CALCULATE ( SUM ( Assinaturas[ValorMensal] ), Assinaturas[Status] = "Ativa" )

DAU/MAU (engajamento)

DAU/MAU (engajamento) mede com que frequência os usuários voltam ao app.

Fórmula
Usuários ativos no dia ÷ usuários ativos no mês
Exemplo
12 mil diários ÷ 60 mil mensais = 20%
Leitura
Quanto maior, melhor
SQL
WITH dia AS (
    SELECT data, COUNT(DISTINCT usuario_id) AS dau
    FROM eventos
    WHERE data >= '2026-10-01' AND data < '2026-11-01'
    GROUP BY data
)
SELECT AVG(1.0 * dau) / (SELECT COUNT(DISTINCT usuario_id) FROM eventos
                         WHERE data >= '2026-10-01' AND data < '2026-11-01') AS dau_mau
FROM dia;

Taxa de retenção

Taxa de retenção mede quantos usuários continuam usando depois de um tempo.

Fórmula
Usuários ativos no fim ÷ usuários do início (sem contar os novos)
Exemplo
De 1.000 que entraram em março, 400 ainda usam = 40%
Leitura
Quanto maior, melhor
SQL
-- dos que entraram em março, quantos tiveram atividade a partir de junho
SELECT 1.0 * COUNT(DISTINCT CASE WHEN e.data >= '2026-06-01' THEN u.id END)
           / COUNT(DISTINCT u.id) AS retencao
FROM usuarios u
LEFT JOIN eventos e ON e.usuario_id = u.id
WHERE u.criado_em >= '2026-03-01' AND u.criado_em < '2026-04-01';

Abandono de carrinho

Abandono de carrinho mede quantas compras começam e não terminam.

Fórmula
Carrinhos abandonados ÷ carrinhos criados
Exemplo
7.000 de 10.000 carrinhos = 70%
Leitura
Quanto menor, melhor
DAX
Abandono de Carrinho =
DIVIDE (
    CALCULATE ( COUNTROWS ( Carrinhos ), Carrinhos[Finalizado] = FALSE () ),
    COUNTROWS ( Carrinhos )
)

ARPU (receita por usuário)

ARPU (receita por usuário) mede quanto cada usuário ativo gera de receita.

Fórmula
Receita ÷ usuários ativos
Exemplo
R$ 300 mil ÷ 10 mil usuários = R$ 30
Leitura
Quanto maior, melhor
DAX
ARPU = DIVIDE ( SUM ( Vendas[Valor] ), DISTINCTCOUNT ( Atividade[UsuarioID] ) )

Taxa de conversão do site

Taxa de conversão do site mede quantas visitas viram compra.

Fórmula
Pedidos ÷ visitas
Exemplo
700 pedidos em 50.000 visitas = 1,4%
Leitura
Quanto maior, melhor
DAX
Conversão do Site =
DIVIDE ( DISTINCTCOUNT ( Vendas[PedidoID] ), SUM ( Trafego[Visitas] ) )

Varejo

Vendas por metro quadrado

Vendas por metro quadrado mede quanto cada m² da loja vende.

Fórmula
Receita ÷ área de vendas (m²)
Exemplo
R$ 600 mil ÷ 300 m² = R$ 2.000 por m²
Leitura
Quanto maior, melhor
DAX
Vendas por m² = DIVIDE ( SUM ( Vendas[Valor] ), SUM ( Lojas[AreaVendaM2] ) )

Conversão de loja

Conversão de loja mede quantos visitantes da loja compram.

Fórmula
Número de vendas ÷ número de visitantes
Exemplo
240 vendas para 1.200 visitantes = 20%
Leitura
Quanto maior, melhor
DAX
Conversão de Loja =
DIVIDE ( DISTINCTCOUNT ( Vendas[CupomID] ), SUM ( Fluxo[Visitantes] ) )

PA (peças por atendimento)

PA (peças por atendimento) mede quantos itens cada cliente leva por compra.

Fórmula
Itens vendidos ÷ número de vendas
Exemplo
1.800 peças em 1.000 vendas = PA 1,8
Leitura
Quanto maior, melhor
DAX
PA = DIVIDE ( SUM ( Vendas[Quantidade] ), DISTINCTCOUNT ( Vendas[CupomID] ) )

Vendas mesmas lojas (SSS)

Vendas mesmas lojas (SSS) mede o crescimento das lojas que já existiam há mais de um ano.

Fórmula
Variação da receita só das lojas abertas há mais de 12 meses
Exemplo
+6% nas mesmas lojas, sem contar as inaugurações
Leitura
Quanto maior, melhor
DAX
SSS % =
VAR corte = EDATE ( MAX ( Calendario[Data] ), -12 )
VAR lojasAntigas = CALCULATETABLE ( VALUES ( Lojas[LojaID] ), Lojas[DataAbertura] <= corte )
VAR atual = CALCULATE ( SUM ( Vendas[Valor] ), lojasAntigas )
VAR anterior = CALCULATE ( SUM ( Vendas[Valor] ), lojasAntigas, SAMEPERIODLASTYEAR ( Calendario[Data] ) )
RETURN DIVIDE ( atual - anterior, anterior )

Saúde

Taxa de ocupação de leitos

Taxa de ocupação de leitos mede quanto da capacidade do hospital está em uso.

Fórmula
Leitos-dia ocupados ÷ leitos-dia disponíveis
Exemplo
2.550 de 3.000 leitos-dia = 85%
Leitura
Depende do contexto
DAX
Ocupação de Leitos =
DIVIDE ( SUM ( Leitos[DiasOcupados] ), SUM ( Leitos[DiasDisponiveis] ) )

Tempo médio de permanência

Tempo médio de permanência mede quantos dias o paciente fica internado.

Fórmula
Total de dias de internação ÷ número de internações
Exemplo
1.800 dias ÷ 400 internações = 4,5 dias
Leitura
Depende do contexto
SQL
SELECT SUM(DATEDIFF(day, data_internacao, data_alta)) * 1.0 / COUNT(*) AS permanencia_media
FROM internacoes
WHERE data_alta IS NOT NULL;

Taxa de faltas (no-show)

Taxa de faltas (no-show) mede quantos pacientes agendados não aparecem.

Fórmula
Faltas ÷ consultas agendadas
Exemplo
250 faltas em 1.000 agendamentos = 25%
Leitura
Quanto menor, melhor
DAX
No-show =
DIVIDE ( CALCULATE ( COUNTROWS ( Agenda ), Agenda[Status] = "Falta" ), COUNTROWS ( Agenda ) )

Readmissão em 30 dias

Readmissão em 30 dias mede quantos pacientes voltam a ser internados logo depois da alta.

Fórmula
Readmitidos em até 30 dias ÷ altas
Exemplo
24 de 400 altas = 6%
Leitura
Quanto menor, melhor
SQL
SELECT 1.0 * COUNT(DISTINCT a.internacao_id)
           / (SELECT COUNT(*) FROM internacoes WHERE data_alta IS NOT NULL) AS readmissao_30d
FROM internacoes a
JOIN internacoes b
  ON b.paciente_id = a.paciente_id
 AND b.data_internacao > a.data_alta
 AND b.data_internacao <= DATEADD(day, 30, a.data_alta);

Taxa de ocupação da agenda

Taxa de ocupação da agenda mede quanto dos horários disponíveis vira atendimento.

Fórmula
Consultas realizadas ÷ horários disponíveis
Exemplo
750 realizadas de 1.200 horários = 62,5%
Leitura
Quanto maior, melhor
DAX
Ocupação da Agenda =
DIVIDE (
    CALCULATE ( COUNTROWS ( Horarios ), Horarios[Status] = "Realizada" ),
    COUNTROWS ( Horarios )
)

Educação

Taxa de evasão

Taxa de evasão mede quantos alunos abandonam o curso.

Fórmula
Alunos que abandonaram ÷ alunos matriculados
Exemplo
90 de 600 alunos = 15%
Leitura
Quanto menor, melhor
SQL
SELECT 1.0 * SUM(CASE WHEN status = 'abandonou' THEN 1 ELSE 0 END) / COUNT(*) AS evasao
FROM matriculas;

Taxa de conclusão

Taxa de conclusão mede quantos alunos terminam o curso.

Fórmula
Alunos que concluíram ÷ alunos matriculados
Exemplo
420 de 600 alunos = 70%
Leitura
Quanto maior, melhor
DAX
Taxa de Conclusão =
DIVIDE (
    CALCULATE ( COUNTROWS ( Matriculas ), Matriculas[Status] = "Concluído" ),
    COUNTROWS ( Matriculas )
)

Engajamento semanal

Engajamento semanal mede quantos alunos estudaram na semana.

Fórmula
Alunos ativos na semana ÷ alunos matriculados
Exemplo
1.200 de 3.000 alunos = 40%
Leitura
Quanto maior, melhor
SQL
SELECT 1.0 * COUNT(DISTINCT a.aluno_id)
           / (SELECT COUNT(*) FROM matriculas WHERE status = 'ativa') AS engajamento_semanal
FROM atividades a
WHERE a.data >= DATEADD(day, -7, CAST(GETDATE() AS date));

Erros comuns ao calcular KPIs

  1. Somar porcentagens. Taxas e médias não se somam entre meses ou lojas: recalcule a partir do numerador e do denominador do período inteiro.
  2. Média de médias. O ticket médio do ano não é a média dos tickets de cada mês; é a receita do ano dividida pelos pedidos do ano.
  3. Denominador errado. No churn, a base é quem estava ativo no início do período, não quem está ativo no fim.
  4. KPI sem comparação. Um número sozinho não diz se está bom: compare com meta, período anterior ou média do setor.
  5. Definição diferente em cada área. Documente a fórmula de cada KPI para que vendas, financeiro e diretoria falem do mesmo número.

Quer construir esses KPIs em um projeto real?

Na Formação Analista de Dados você cria painéis de vendas, DRE, RH, logística, marketing e atendimento com Power BI, DAX e SQL, em projetos que vão para o portfólio.

Conhecer a formação

Perguntas frequentes

Qual a diferença entre métrica e KPI?

Métrica é qualquer medida numérica do negócio, como visitas ou pedidos. KPI é a métrica escolhida como principal para acompanhar um objetivo, com meta e dono. Toda KPI é uma métrica, mas nem toda métrica é KPI.

Quantos KPIs um dashboard deve ter?

Poucos. Um painel executivo costuma funcionar melhor com 4 a 8 KPIs principais no topo, e os detalhes em páginas de apoio. Se tudo é prioridade, nada é.

Como criar um KPI no Power BI?

Crie uma medida DAX com a fórmula do indicador, usando DIVIDE nas divisões, e mostre no visual de cartão ou KPI. Para comparar com o ano anterior, use CALCULATE com SAMEPERIODLASTYEAR e uma tabela calendário. Veja o guia como aprender Power BI.

É melhor calcular KPIs em SQL ou em DAX?

Os dois funcionam. SQL é ótimo para preparar tabelas e calcular números fixos na origem; DAX é melhor quando o KPI precisa reagir aos filtros do relatório, como região e período. Em geral, prepara-se a base em SQL e calcula-se o KPI final em DAX.

Continue lendo

Felipy Morais

Sobre o autor

Felipy Morais é analista e engenheiro de dados com mais de 6 anos de experiência, certificado Microsoft PL-300, DP-600 e DP-700 e Databricks Fundamentals. É fundador e instrutor da Educadados. Conheça a trajetória.