Pular para o conteúdo

Por que a receita caiu

Aula 8 de 96 minConhecerAtualizada em 2026-10-04

Vídeo em produção

A gravação desta aula está no lote de produção. O objetivo, o exercício e a documentação já valem. Duração-alvo: 6 min.

Objetivo: Decompor variação por dimensão

Selo de estado: Preview (teto atual do produto) · Curso ACD-420 — Analista de IA: relatórios, alertas, anomalias e previsões · Aula 8 de 9 · Atualizado em 2026-10-04.

Objetivo#

Ao final desta aula você vai decompor variação por dimensão — e saber por que contribuição não é causa.

Vídeo#

Identificador no manifesto: acd-420-08-decomposicao-de-variacao · duração-alvo 6 min · tela do produto: /relatorios.

Roteiro de gravação (4 capítulos):

#Minutagem-alvoCapítuloTela do produto
10:00–1:00Abertura: título + selo Preview. O que a decomposição responde e por que ela é determinística./dashboards/[id]
21:00–3:00A conta que fecha: Σ contribuições == Δ total, com resíduo explícito; segmentos que entraram e que saíram.planilha de apoio
33:00–4:30Estado: motor provado por testes, sem botão na interface nesta versão; o que isso significa na prática./relatorios/[id]
44:30–6:00Limites: uma dimensão por vez, razões têm conta própria, contribuição ≠ causa. Encerramento com a checagem./dashboards/[id]

Conteúdo#

A pergunta que ela responde

Um KPI mostra "receita −12% vs. o período anterior". A pergunta seguinte é sempre a mesma: quem puxou isso para baixo? A decomposição de variação pega essa variação — o mesmo par de períodos que o Δ% do KPI usa — e a reparte por dimensão: quanto cada categoria, filial, canal ou produto contribuiu para o número subir ou cair.

E ela é determinística: aritmética no servidor, com soma compensada para não perder centavos em cifras grandes, divisão segura e desempate alfabético. Nenhum modelo de linguagem decide o que contribuiu. Quando a narrativa de relatório (Aula 2) usa essa evidência, o LLM recebe a conta pronta e só redige — ele não calcula.

A conta fecha, e o que não fecha aparece

A propriedade central é esta: a soma das contribuições fecha com a variação total. O que não fecha aparece como resíduo explícito — nunca é escondido, nunca é redistribuído em silêncio.

FilialPeríodo anteriorPeríodo atualContribuição% da variação
Uberlândia62.00048.000−14.00070%
Uberaba41.00036.000−5.00025%
Araguari (nova)—3.000+3.000−15%
Patos (encerrada)4.000—−4.00020%
Total107.00087.000−20.000100%

Repare em duas linhas: a filial nova (apareceu no período atual) e a encerrada (saiu). As duas entram na conta — ignorá-las quebraria o fechamento. E repare no sinal: um segmento que cresceu num total que caiu tem contribuição positiva e percentual negativo da variação. Isso confunde na primeira leitura e está certo.

A decomposição também opera sobre o snapshot já filtrado por RLS do painel: quem não vê uma filial no visual também não a vê na decomposição. Dimensões categóricas e métricas numéricas — texto nunca vira métrica.

Esta aula é de

conhecimento: ainda não há botão na interface O motor está implementado e provado por testes, mas a superfície do produto — o "explique a variação" dentro dos insights do painel e da narrativa do relatório — ainda está em construção nesta versão. Não há nada para ligar ou desligar. Quando a superfície chegar, ela seguirá a chave de desligamento e os papéis da capacidade que a exibir. É por isso que o exercício desta aula é de leitura e conta à mão, não de clique.

As recusas

  • Sem período anterior (primeiro snapshot): não há variação a decompor — e a capacidade não inventa uma base. É a mesma honestidade da narrativa sem comparativo (Aula 2).
  • Base zero: a variação percentual sai vazia e sinalizada, nunca Infinito nem NaN. A contribuição absoluta continua válida e útil.
  • Valores não numéricos na métrica contam zero nos dois períodos — a regra é simétrica, então o fechamento não quebra.

Limites

LimiteConsequência prática
Contribuição não é causa"Uberlândia respondeu por 70% da queda" é aritmética sobre o dado; não diz por que Uberlândia caiu
Uma dimensão por veznão cruza filial × categoria; você decompõe por uma, depois pela outra
Não detecta sazonalidadea conta não sabe que dezembro é diferente
Não compara com metao par é atual × anterior, não realizado × meta
Razões têm conta própriaticket médio, margem %, conversão: somar contribuições de uma razão como se fossem valores absolutos daria conta errada

O último merece um exemplo. Ticket médio é MEDIDA('Receita') dividida por MEDIDA('Pedidos') — uma razão. Se você decompusesse o ticket médio somando contribuições por filial como se cada uma fosse um valor absoluto, a soma não fecharia com a variação do ticket total, porque o denominador também mudou. Para razões existe uma decomposição própria, que separa o efeito do numerador do efeito do denominador. Na prática: não aplique a conta de SOMA(valor) a uma métrica que é divisão.

Exemplo Aurora

A receita da Aurora caiu R$ 20 mil (de R$ 107 mil para R$ 87 mil) entre duas semanas. A tabela acima é a decomposição por filial: Uberlândia responde por 70% da queda, Uberaba por 25%, a filial encerrada de Patos por 20%, e a nova de Araguari suaviza a queda em R$ 3 mil. Soma: exatamente −R$ 20 mil, sem resíduo.

O que maria pode dizer na reunião: "70% da queda está em Uberlândia". O que ela não pode dizer: "a queda foi causada por Uberlândia" — ou pior, "foi causada pela troca de gerente em Uberlândia". A decomposição aponta onde olhar; o porquê exige investigação, e nenhuma capacidade deste curso entrega causa.

Decompondo a mesma variação por categoria, ela descobre que 60% dela está em "Hidráulica" — e a interseção entre Uberlândia e Hidráulica é a próxima pergunta, que a capacidade não responde (uma dimensão por vez).

Erros comuns

ErroPor que é erro
Ler contribuição como causaé aritmética sobre o dado, não explicação
Esperar um botão "explique a variação" nesta versãoo motor existe; a superfície está em construção
Ignorar o resíduo informadoele é a parte que a conta não explica — e existe para ser vista
Esquecer segmentos novos e encerradossem eles o fechamento quebra
Aplicar a conta de valor absoluto a uma razãoticket médio e margem % exigem a decomposição de razão
Cruzar duas dimensões na mesma decomposiçãoé uma dimensão por vez
Esperar decomposição no primeiro snapshotsem período anterior não há variação a decompor

Estado e gates

Preview no teto do produto; o motor é GA-candidato na matriz de capacidades, com o fechamento matemático provado (Σ contribuições == Δ total dentro de uma tolerância explícita, testado em estilo property-based com entradas aleatórias e semente fixa, mais segmentos novos e que saíram, base zero e determinismo byte a byte). A exposição na interface está pendente. Custo zero: não consome orçamento de IA, não há egress. Se a evidência for depois narrada por uma capacidade com LLM, valem as regras de egress daquela capacidade.

Faça você mesmo#

Esta aula é de conhecimento: não há superfície para operar nesta versão, então o exercício é de leitura e conta à mão — nenhum passo consome orçamento de IA.

  1. No workspace de treino Aurora Varejo, abra um painel com um KPI que mostre Δ% vs. o período anterior e anote a variação total em valor absoluto.
  2. Exporte (ou copie) a tabela do visual que quebra essa mesma métrica por filial, com os dois períodos.
  3. Calcule a contribuição de cada filial: atual − anterior, incluindo as que apareceram e as que saíram entre os períodos.
  4. Some as contribuições e compare com a variação total do passo 1 — se não fechar, o que falta é o resíduo; identifique-o.
  5. Ordene por contribuição e escreva a frase correta ("X responde por N% da variação") e a frase errada ao lado ("a variação foi causada por X"), para fixar a diferença.
  6. Repita os passos 2 a 4 por categoria e observe que a resposta muda sem que nenhuma das duas esteja errada.
  7. Pegue uma métrica que seja razão (ticket médio = MEDIDA('Receita') ÷ MEDIDA('Pedidos')), tente a mesma conta e mostre que a soma não fecha — explique por quê.
  8. Confirme na interface que, nesta versão, não existe um botão de "explique a variação" para clicar.

Você terminou quando sua soma de contribuições por filial fechar com a variação total do KPI (ou você souber apontar o resíduo) e você conseguir explicar, com a sua própria tabela, por que contribuição não é causa.

Checagem rápida#

Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.

Documentação relacionada#

Capacidades ensinadas#

C13.3 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".

Carregando seu progresso…