Dicionário de Métricas
Cliente: Mastelaro | Responsável: Sonar
Este dicionário cobre as 53 medidas DAX do modelo semântico do relatório "Indicadores Financeiros & Análise de Cardápio", todas definidas na tabela técnica Medidas. Estão agrupadas por finalidade de negócio; a fórmula DAX completa de cada grupo está disponível nos blocos "Ver fórmulas DAX" ao final de cada seção, para uso do time técnico.
1. Faturamento e Vendas
| Medida |
Descrição |
faturamento |
Receita bruta total de vendas registradas (SUM(f_Vendas[Total (R$)])). |
Média Faturamento |
Faturamento médio diário, ignorando o filtro de data aplicado. |
Qtd Vendas |
Quantidade total vendida, formatada sem casas decimais desnecessárias. |
qtd_vendida |
Quantidade total de unidades registradas em saídas (volume físico). |
% Faturamento no Grupo |
Percentual que um item representa dentro do faturamento do seu grupo/descrição. |
Eixo Y Dinamico Faturamento Semanal |
Limite superior dinâmico (20% acima do maior valor) do eixo Y do gráfico de faturamento por dia da semana. |
Eixo Y Dinamico Média Faturamento |
Limite superior dinâmico (40% acima do maior valor) do eixo Y do gráfico de média de faturamento. |
Ver fórmulas DAX — Faturamento e Vendas
faturamento = SUM(f_Vendas[Total (R$)])
Média Faturamento = AVERAGEX(ALL('f_Vendas'[Data]), [Faturamento])
Qtd Vendas =
VAR _qtd = SUM(f_Vendas[quantidade])
RETURN
IF(
ISBLANK(_qtd), BLANK(),
IF(MOD(_qtd,1)<>0, FORMAT(_qtd,"#,##0.##"), FORMAT(_qtd,"#,##0"))
)
qtd_vendida = SUM(f_Saidas[UNIDADE])
% Faturamento no Grupo =
DIVIDE(
[faturamento],
CALCULATE([faturamento], ALLSELECTED(f_Vendas[Grupo], f_Vendas[Descrição]))
)
Eixo Y Dinamico Faturamento Semanal =
VAR vMaior_Valor = MAXX(ALL('d_Calendário'[DiaDaSemanaNumero]), [faturamento])
RETURN vMaior_Valor * 1.2
Eixo Y Dinamico Média Faturamento =
VAR vMaior_Valor = MAXX(ALL('d_Calendário'[DiaDaSemanaNumero]), [Média Faturamento])
RETURN vMaior_Valor * 1.4
2. DRE — Custos, Despesas e Resultado
| Medida |
Descrição |
vSaidas |
Valor de cada linha da DRE, adaptando o cálculo conforme a categoria (receita, CMV, custos, resultado final). Oculta linhas de grupos marcados como alerta (começam com "⚠️"). Usada na aba DRE. |
percent |
Percentual de cada linha da DRE em relação à receita, com ajuste de sinal na linha de resultado final. Baseada em vSaidas. |
CustoV |
Total de custos variáveis (categorias não marcadas como custo fixo). |
CustoF |
Total de custos fixos (categorias marcadas como custo fixo). |
CustoFporDias |
Custo fixo médio por dia com movimento de vendas, no período filtrado. |
CMO |
Total de saídas do grupo "CMO" (custo de mão de obra/operacional). |
CMOvcCustoPri |
Percentual que o CMO representa do custo primário total. |
CMOvsFAT |
Percentual do faturamento consumido pelo CMO. |
CustoPrimario |
Soma dos custos essenciais diretos da operação: CMO + CMV real. |
FATvsCMVO |
Percentual do faturamento consumido pelo custo primário total (CMO + CMV). |
FixovsFAt |
Percentual do faturamento consumido por custos fixos. |
Percentual Dinamico |
Percentual da linha selecionada da DRE ou, sem filtro de categoria, o percentual do "Resultado Operacional" por padrão. Usada na Análise Vertical da aba DRE. |
Ver fórmulas DAX — DRE, Custos e Resultado
vSaidas =
-- Lógica por SWITCH em d_Categorias[indice]:
-- 0 = receita, 2 = CMV + variação de estoque, 9 = ajuste operacional,
-- 13 = resultado final, demais = saída negativa
-- Retorna BLANK() se o Grupo atual começar com "⚠️" (oculta linhas de alerta/não identificado)
percent =
VAR _analiV = DIVIDE([vSaidas], -CALCULATE([vSaidas], d_Categorias[indice] = 0))
RETURN IF(SELECTEDVALUE(d_Categorias[Indice]) = 13 && [vSaidas] <> 0, (_analiV) * -1, -_analiV)
CustoV = CALCULATE(SUM(f_Saidas[P TOTAL]), d_Categorias[Custo fixo] = "Não")
CustoF = CALCULATE(SUM(f_Saidas[P TOTAL]), d_Categorias[Custo fixo] = "Sim")
CustoFporDias = [CustoF] / DISTINCTCOUNT(f_Vendas[Data]) -- dias distintos com venda no período
CMO = CALCULATE(SUM(f_Saidas[P TOTAL]), d_Categorias[GRUPO] = "CMO")
CMOvcCustoPri = DIVIDE([CMO], [CustoPrimario])
CMOvsFAT = DIVIDE([CMO], [faturamento])
CustoPrimario = [CMO] + [CMVreal]
FATvsCMVO = DIVIDE([CustoPrimario], [faturamento])
FixovsFAt = DIVIDE([CustoF], [faturamento])
Percentual Dinamico =
VAR _temFiltroCategoria = ISCROSSFILTERED(d_Categorias)
RETURN
IF(
_temFiltroCategoria,
[percent],
CALCULATE([percent], d_Categorias[Grupo] = "RESULTADO OPERACIONAL")
)
3. CMV e Controle de Estoque
| Medida |
Descrição |
CMV_atual |
Valor total do CMV (estoque) no período/contexto atual. |
CMV_prox |
Valor do CMV do mês seguinte ao período em contexto. |
CMV_Contagem |
Variação de estoque (CMV) entre o mês atual e o mês seguinte. Comportamento depende do contexto do visual — ver nota abaixo. |
CMV_Variacao |
Diferença de valor de CMV entre o mês seguinte e o mês atual. |
CMVreal |
CMV real: soma das saídas classificadas como CMV mais o ajuste de variação de estoque. Indicador chave de rentabilidade. |
CMVvsCustoPri |
Percentual que o CMV real representa do custo primário. |
CMVvsFAT |
Percentual do faturamento consumido pelo CMV real. |
Média CMV |
Média do percentual de CMV do cardápio, ativando o relacionamento (normalmente inativo) por unidade/cliente. |
Ver fórmulas DAX — CMV e Estoque
CMV_atual =
VAR valor = SUM(f_CMV[Valor total])
RETURN valor
CMV_prox = CALCULATE([CMV_atual], DATEADD('d_Calendário'[Data], +1, MONTH))
CMV_Contagem =
-- Comportamento depende do contexto do visual (ISINSCOPE('d_Calendário'[MesNumero])):
-- • Nível de MÊS (ex.: matriz agrupada por mês): diferença direta entre
-- SUM(f_CMV[Valor Total]) do mês atual e o mesmo valor deslocado +1 mês
-- via DATEADD; retorna BLANK se um dos dois for BLANK.
-- • Nível de TOTAL/multi-mês (ex.: um card sem quebra por mês): soma a
-- diferença mês a mês (SUMX + SUMMARIZE) dentro do período filtrado,
-- tratando um mês sem "próximo mês" como 0 em vez de propagar BLANK.
-- As duas formas coincidem matematicamente quando não há mês em branco
-- no meio do período (a soma telescopa) — só divergem quando falta a
-- contagem de algum mês (tipicamente o mês mais recente).
CMV_Variacao =
VAR variacao = [CMV_prox] - [CMV_atual]
RETURN IF(OR(ISBLANK([CMV_atual]), ISBLANK([CMV_prox])), BLANK(), variacao)
CMVreal = CALCULATE(SUM(f_Saidas[P TOTAL]), d_Categorias[indice] IN {2}) + [CMV_Contagem]
CMVvsCustoPri = DIVIDE([CMVreal], [CustoPrimario])
CMVvsFAT = DIVIDE([CMVreal], [faturamento])
Média CMV =
CALCULATE(
AVERAGE('d_Cardápio'[CMV]),
USERELATIONSHIP('d_Cardápio'[Nome da Origem], d_Cliente[Nome da Origem])
)
4. Cardápio e Engenharia de Cardápio
| Medida |
Descrição |
Total Venda |
Receita bruta total calculada a partir do cardápio (quantidade × preço de venda). |
Total Custo |
Custo total dos pratos vendidos (quantidade × preço de custo). |
Total Venda Sugerido |
Receita estimada se todos os pratos fossem vendidos ao preço sugerido. |
Preço Sugerido |
Soma do preço sugerido de todos os itens analisados. |
Margem de lucro sugerido |
Margem de lucro total projetada caso os preços sugeridos fossem praticados. |
Margem de Lucro Sugerida |
Margem bruta sugerida por item (preço sugerido − custo). |
CMV Calculado |
CMV real: percentual do custo sobre a venda total. Indicador chave de eficiência. |
CMV Calculado Sugerido |
CMV teórico caso os produtos fossem vendidos pelo preço sugerido. |
CMV Ajustado |
CMV ponderado proporcionalmente pelo custo unitário de cada insumo da ficha técnica. |
%vendas |
Meta teórica de participação de vendas por prato (70% distribuído igualmente entre os pratos do cardápio). |
MediaMargemPorPrato |
Média de %vendas entre os pratos da mesma seção do cardápio do prato selecionado. |
MediaPercentualVendasReferenci022a |
Média de referência do percentual de vendas por seção do cardápio — linha de corte no gráfico de quadrante. |
TotalPratosVendidosPorSecao |
Total de pratos vendidos agregado por seção do cardápio. |
NúmeroTotalDePratosVendidos |
Total de pratos vendidos no contexto atual. |
QuadrantColor |
Define o quadrante do prato na Matriz de Kasavanas, comparando margem e popularidade com as médias da seção. |
Media da Margem |
Margem de lucro média por prato. |
Ver fórmulas DAX — Cardápio e Engenharia de Cardápio
Total Venda = SUMX('d_Cardápio', 'd_Cardápio'[Número de Pratos vendidos] * 'd_Cardápio'[Preço de venda])
Total Custo = SUMX('d_Cardápio', 'd_Cardápio'[Número de Pratos vendidos] * 'd_Cardápio'[Preço de custo])
Total Venda Sugerido = SUMX('d_Cardápio', 'd_Cardápio'[Número de Pratos vendidos] * 'd_Cardápio'[Preço sugerido])
Preço Sugerido = SUM('f_AnalisesVendas'[Preço sugerido])
Margem de lucro sugerido = [Total Venda Sugerido] - [Total Custo]
Margem de Lucro Sugerida =
IF([Preço Sugerido] = BLANK(), 0, [Preço Sugerido] - SUM('f_AnalisesVendas'[Preço de custo]))
CMV Calculado = DIVIDE([Total Custo], [Total Venda])
CMV Calculado Sugerido = DIVIDE([Total Custo], [Total Venda Sugerido], 0)
CMV Ajustado =
VAR PrecoCustoTotal = SUM('d_Cardápio'[Preço de custo])
VAR CMVTotal = SUM('d_Cardápio'[CMV])
RETURN
SUMX(
'f_Faturamento',
DIVIDE('f_Faturamento'[Custo Un. (R$)] * RELATED('d_Cardápio'[CMV]), PrecoCustoTotal)
)
%vendas = 1 / (DISTINCTCOUNT('d_Cardápio'[Nomes dos pratos])) * 0.7
MediaMargemPorPrato =
VAR SecaoAtual = SELECTEDVALUE('d_Cardápio'[Nomes dos pratos])
RETURN AVERAGEX(FILTER('d_Cardápio', 'd_Cardápio'[seção do cardapio] = SecaoAtual), [%vendas])
MediaPercentualVendasReferenci022a =
VAR SecaoAtual = SELECTEDVALUE('d_Cardápio'[seção do cardapio])
RETURN
LOOKUPVALUE(
TabelaMediasPercentualVendas[MediaPercentualVendasPorSecao],
TabelaMediasPercentualVendas[seção do cardapio], SecaoAtual
) / 100
TotalPratosVendidosPorSecao =
CALCULATE(
SUM('d_Cardápio'[Número de Pratos vendidos]),
ALLEXCEPT('d_Cardápio', 'd_Cardápio'[seção do cardapio], 'd_Cardápio'[Nome da Origem])
)
NúmeroTotalDePratosVendidos = SUM('d_Cardápio'[Número de Pratos vendidos])
QuadrantColor =
SWITCH(TRUE(),
CurrentX < AvgMargem && CurrentY < Percentual, 1, -- Cachorro
CurrentX > AvgMargem && CurrentY < Percentual, 2, -- Quebra-Cabeça
CurrentX < AvgMargem && CurrentY > Percentual, 3, -- Burro de Carga
CurrentX > AvgMargem && CurrentY > Percentual, 4 -- Estrela
)
Media da Margem = AVERAGE('d_Cardápio'[Margem de lucro])
A coluna calculada d_Cardápio[PercentualVendasPorPrato] (DIVIDE([NúmeroTotalDePratosVendidos], [TotalPratosVendidosPorSecao], 0)) também alimenta o quadrante, embora não seja uma medida.
5. Indicadores Financeiros Gerais
| Medida |
Descrição |
! Break-Even Point |
Ponto de equilíbrio — receita mínima necessária para cobrir custos fixos e variáveis. |
Ver fórmula DAX — Ponto de Equilíbrio
! Break-Even Point =
VAR CustoVariavel = [CustoV]
VAR CustoFixo = [CustoF]
VAR Faturamento = [faturamento]
RETURN CustoFixo / (1-(CustoVariavel/Faturamento))
6. Qualidade de Dados e Alertas
| Medida |
Descrição |
Status Dados |
Cartão HTML com a quantidade de pratos com erro de leitura no cardápio (TemErro = 1) e a lista de chaves com erro, ou mensagem de "Dados validados". |
Icone Alerta |
Ícone (⚠️/✔️) indicando se há subgrupos não identificados ou duplicados no plano de contas. |
Cor Botao Alerta |
Cor (vermelho/verde) do botão de alerta conforme existam subgrupos não identificados. |
Tooltip Alerta |
Texto de tooltip explicando quantos problemas de cadastro de subgrupo existem. |
HTML Alerta Invalidos |
Painel HTML detalhado com as tabelas de subgrupos não identificados e duplicados, incluindo a planilha de origem de cada ocorrência. |
CentroFiltrado |
Contagem de centros de custo associados às unidades atualmente filtradas. |
Ver fórmulas DAX — Qualidade de Dados e Alertas
Status Dados =
-- Monta um bloco HTML exibindo a quantidade de pratos com erro
-- (d_Cardápio[TemErro] = 1) e a lista de chaves com erro,
-- ou uma mensagem de "Dados validados"
Icone Alerta =
IF(_orfaos + _duplicados > 0, "⚠️", "✔️")
-- conta categorias "NÃO IDENTIFICADO ⚠️" e "⚠️ SUBGRUPO DUPLICADO"
Cor Botao Alerta =
IF(CALCULATE(COUNTROWS(d_Categorias), d_Categorias[Grupo] = "NÃO IDENTIFICADO ⚠️") > 0, "#FF4444", "#44AA44")
Tooltip Alerta =
-- Monta texto condicional combinando contagem de órfãos e duplicados
-- (ex.: "⚠️ N subgrupo(s) não identificado(s)...")
HTML Alerta Invalidos =
-- Monta um painel HTML completo (tabelas de subgrupos não identificados
-- e duplicados, com nome da planilha de origem)
CentroFiltrado =
CALCULATE(
COUNTROWS(d_CentroDeCusto),
TREATAS(VALUES(d_Cliente[Nome da Origem]), d_CentroDeCusto[Nome da Origem])
)
7. Medidas Auxiliares de Resultado/Estoque
| Medida |
Descrição |
CMV_Contagem_Legado |
Variação de estoque (CMV) entre o mês atual e o mês seguinte, calculada como diferença direta em qualquer contexto de visual. |
vSaidas_Legado |
Valor de cada linha da DRE, adaptando o cálculo conforme a categoria (receita, CMV, custos, resultado final), a partir de CMV_Contagem_Legado. |
percent_Legado |
Percentual de cada linha da DRE em relação à receita, calculado a partir de vSaidas_Legado. |
Ver fórmulas DAX — Medidas Auxiliares
CMV_Contagem_Legado =
-- Diferença entre SUM(f_CMV[Valor Total]) do mês atual e o mesmo valor
-- deslocado +1 mês via DATEADD; retorna BLANK se um dos dois for BLANK
vSaidas_Legado =
-- Mesma lógica de vSaidas (ver seção 2), usando [CMV_Contagem_Legado]
percent_Legado =
-- Mesma lógica de percent (ver seção 2), baseada em [vSaidas_Legado]
Referências