Buscar K
Aparência
Aparência
Esta página mostra como aplicar na prática os conceitos discutidos em Fatos: Ensinando seu Negócio. Cada exemplo tem um caso "bem feito" e um anti-exemplo do mesmo conceito pulverizado.
Uma única definição cobrindo cinco métricas relacionadas.
| Campo | Valor |
|---|---|
| Nome | Faturamento |
| Prompt | Faturamento comercial da empresa. Considera apenas vendas confirmadas. |
| Valor Principal | [Fato Vendas]."VALOR_LIQUIDO" (soma) |
| Valores Alternativos | Lucro, Margem (%), Ticket Médio, Quantidade Vendida, CMV |
| Coluna de Data | [Calendário]."DATA" (Data de Emissão) |
| Filtros Padrão | Status = "Confirmado" |
Por que este fato é bom:
Status = "Confirmado" é o tipo de regra que não pode ser esquecida. Sem ele, "faturamento" passaria a incluir vendas canceladas — distorcendo todas as respostas.Perguntas que este único fato cobre:
Note que agrupamento (por filial, por produto), período (mês, trimestre, ontem) e ranking (top 10) são decididos pela pergunta, não pelo fato. Um fato bem definido é genérico no que muda, específico no que não pode mudar.
O mesmo conceito de faturamento, dividido em seis fatos diferentes:
| Fato | Valor Principal | Coluna de Data | Filtros |
|---|---|---|---|
| Vendas | VALOR_LIQUIDO (soma) | Data de Emissão | Confirmado |
| Vendas Mensais | VALOR_LIQUIDO (soma) | Data de Emissão | Confirmado |
| Vendas por Filial | VALOR_LIQUIDO (soma) | Data de Emissão | Confirmado |
| Vendas por Produto | VALOR_LIQUIDO (soma) | Data de Emissão | Confirmado |
| Ticket Médio | VALOR_LIQUIDO / QTDE | Data de Emissão | Confirmado |
| Lucro | LUCRO_LIQUIDO (soma) | Data de Emissão | Confirmado |
1. Os quatro primeiros são literalmente o mesmo fato. "Vendas Mensais", "Vendas por Filial", "Vendas por Produto" são a mesma definição ("Vendas") com agrupamentos diferentes. Agrupamento é decidido pela pergunta, não pelo fato. Cadastrar versões pré-quebradas não ajuda o chat — confunde.
2. Ticket Médio e Lucro deveriam ser Valores Alternativos. Eles compartilham mesma tabela, mesma data, mesmos filtros. Não são conceitos diferentes — são medidas diferentes do mesmo conceito.
3. O catálogo cresce sem ganho real. Em vez de 1 fato cobrindo 7 perguntas, você tem 6 fatos cobrindo as mesmas 7 perguntas. O chat agora precisa filtrar entre seis opções que parecem todas válidas.
4. Inconsistência inevitável. Quando alguém pergunta "qual foi o faturamento do mês?", o chat pode usar "Vendas" ou "Vendas Mensais" — e cada um pode aplicar lógica ligeiramente diferente se você editar um sem editar o outro. Manter seis fatos sincronizados manualmente é fonte garantida de bugs.
Sintoma típico
"O chat às vezes responde uma coisa e às vezes responde outra para a mesma pergunta." Se isso acontece, vale conferir se você não tem múltiplos fatos cobrindo o mesmo conceito.
Um conceito onde os filtros padrão são tudo. Sem eles, o número que sai é completamente diferente.
| Campo | Valor |
|---|---|
| Nome | Inadimplência |
| Prompt | Valor de contas a receber em atraso há mais de 30 dias. Considera apenas títulos em aberto, não negociados. |
| Valor Principal | [Contas a Receber]."VALOR_TITULO" (soma) |
| Valores Alternativos | Quantidade de Títulos em Aberto, Dias Médios de Atraso |
| Coluna de Data | [Contas a Receber]."DATA_VENCIMENTO" |
| Filtros Padrão | Status = "Aberto" E Dias de Atraso > 30 E Tipo Negociação != "Renegociado" |
O que esse fato resolve:
A tabela de Contas a Receber tem títulos em vários status. Sem os filtros padrão, "inadimplência" seria interpretado como "tudo a receber" — número várias vezes maior que a inadimplência real.
A definição de "inadimplência" também varia entre empresas:
O fato congela essas decisões. Quando alguém da empresa pergunta "qual a inadimplência hoje?", o chat aplica a regra exata da sua empresa, sem precisar reaprender a cada conversa.
Os Valores Alternativos seguem o padrão de "compartilham contexto": quantidade de títulos e dias médios de atraso usam a mesma tabela, mesma data e mesmos filtros — então fazem parte do mesmo fato.
Esse é o anti-padrão mais difícil de detectar, porque na superfície parece organizado.
| Fato | Filtros Padrão |
|---|---|
| Receita Confirmada | Status = "Confirmado" |
| Receita Faturada | Status IN ("Confirmado", "Faturado") |
| Receita Líquida | Status = "Confirmado" E coluna usada: VALOR_LIQUIDO (descontando impostos) |
À primeira vista pode parecer que são três conceitos diferentes. Na prática:
"Se duas pessoas diferentes da empresa, ao ouvir esses três nomes, descrevem a mesma métrica, eu tenho um fato disfarçado de três. Se descrevem coisas genuinamente diferentes, eu tenho três fatos."
Na prática, na maioria das empresas:
Sempre que dois fatos têm nomes parecidos:
Nem todo desdobramento é dicionário gigante. Tem casos onde dois fatos genuinamente diferentes coexistem.
| Receita Comercial | Receita Financeira | |
|---|---|---|
| Tabela | Vendas | Movimentação Financeira |
| Valor Principal | VALOR_LIQUIDO (vendas) | VALOR_RECEITA (juros, multas, taxas) |
| Coluna de Data | Data de Emissão | Data de Movimentação |
| Filtros | Status = "Confirmado" | Tipo IN ("Juros", "Multa", "Taxa") |
Esses são dois conceitos genuinamente diferentes:
A presença de duas tabelas, duas datas e dois conjuntos de filtros distintos é o sinal claro de que são dois fatos: refletem o modelo real do negócio.
A pergunta que separa "vale separar" de "vale consolidar":
"Se eu consolidar esses dois conceitos num único fato com Valores Alternativos, eu perco alguma definição importante? Algum filtro fica errado para algum dos casos?"
Se a resposta é sim — são dois fatos. Se a resposta é não — é um fato com Valores Alternativos.
Use esta régua mental cada vez que você for criar um fato novo:
| Pergunte-se | Se sim... | Se não... |
|---|---|---|
| O nome é como as pessoas da empresa de fato falam? | Continue | Renomeie antes de cadastrar |
| Já existe um fato com mesma tabela, mesma data, mesmos filtros? | Adicione como Valor Alternativo do existente | Continue |
| A diferença para um fato existente é só "como agrupar" ou "qual período"? | Não cadastre — agrupamento e período são decididos pela pergunta | Continue |
| A diferença para um fato existente é uma nuance de uma frase? | Não cadastre — use o campo Prompt do existente | Continue |
| Tabelas, datas ou filtros genuinamente diferentes do que já existe? | Crie o fato novo | Reavalie — talvez não seja conceito separado |
Quando em dúvida: menos é mais. É fácil adicionar um fato novo depois. É muito mais difícil descobrir que o catálogo cresceu demais e ter que limpar duzentos fatos.