Ir para o conteúdo

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