Os KPIs financeiros essenciais no Power BI
KPIs financeiros Power BI: como modelar a DRE e calcular margem, EBITDA, fluxo de caixa, capital de giro, ciclo financeiro, liquidez e inadimplência em DAX.
O fechamento financeiro trava porque o dado mora no ERP e a análise mora no Excel
A dor mais comum na controladoria não é falta de número. É que o número certo chega tarde e não bate entre relatórios. O ERP fecha o razão, alguém exporta uma planilha, outra pessoa reclassifica contas na mão, e no fim a diretoria discute qual EBITDA está correto em vez de discutir o negócio. Montar os KPIs financeiros no Power BI resolve esse ciclo, mas só quando a Demonstração do Resultado do Exercício é modelada como uma estrutura contábil de verdade, e não como uma soma de colunas soltas.
Este artigo é direto ao ponto: como estruturar a DRE, quais indicadores realmente importam para a gestão financeira corporativa e como calcular cada um em DAX. A ideia é você sair daqui sabendo montar o cálculo e, principalmente, sabendo onde ele engana.
Os KPIs financeiros no Power BI começam por um plano de contas bem modelado
Antes de qualquer medida, o modelo. Indicador financeiro depende de uma coisa: classificar cada lançamento na linha certa da demonstração. Se o plano de contas vier bagunçado, nenhuma fórmula em DAX conserta. O padrão que recomendamos é o esquema estrela clássico, com uma tabela fato de lançamentos contábeis e dimensões ao redor.
A fato fLancamentos tem uma linha por lançamento do razão, com data, conta, centro de custo e valor. A dimensão dPlanoContas é o coração do modelo: cada conta carrega o grupo da DRE, a natureza (receita ou despesa), um sinal contábil e, principalmente, uma coluna de ordem de exibição. Some a isso uma dCalendario contínua e marcada como tabela de datas, obrigatória para as funções de time intelligence do DAX funcionarem, e uma dCentroCusto para abrir resultado por área.
Vale lembrar como o Power BI trata isso por baixo. O motor VertiPaq comprime cada coluna em memória, e a compressão é melhor quanto menor a cardinalidade. O número do documento fiscal ou um histórico contábil textual têm cardinalidade altíssima e incham o modelo sem entregar análise. Deixe esses campos de fora ou em uma tabela de detalhe separada. Se quiser aprofundar a parte de modelagem, escrevemos sobre isso em boas práticas de modelagem e DAX, e a fundação de dados que sustenta tudo isso é assunto de engenharia de dados.
Nos exemplos abaixo assumo uma fato fLancamentos, uma dPlanoContas com as colunas Grupo e Ordem, uma fato fSaldos para contas patrimoniais e uma dCalendario. Ajuste os nomes ao seu modelo.
A DRE é uma hierarquia de contas, não uma soma de colunas
O erro clássico é tratar a DRE como se cada linha fosse uma medida independente somando colunas diferentes. Ela é uma cascata: receita bruta menos deduções chega na receita líquida, que menos o custo dos produtos vendidos chega no lucro bruto, e assim por diante até o lucro líquido. Cada linha depende da anterior.
A estrutura contábil padrão que você precisa refletir no Grupo da dPlanoContas é esta:
| Linha da DRE | Natureza | O que entra |
|---|---|---|
| Receita Bruta | Positiva | Vendas de produtos e serviços |
| Deduções | Negativa | Impostos sobre venda, devoluções, cancelamentos |
| Receita Líquida | Subtotal | Receita Bruta menos Deduções |
| CPV ou CMV | Negativa | Custo dos produtos ou mercadorias vendidos |
| Lucro Bruto | Subtotal | Receita Líquida menos custo |
| Despesas Operacionais | Negativa | Comercial, administrativa, pessoal |
| EBIT | Subtotal | Lucro Bruto menos despesas operacionais |
| Resultado Financeiro | Positiva ou negativa | Receitas e despesas financeiras |
| Impostos sobre o lucro | Negativa | IRPJ e CSLL |
| Lucro Líquido | Resultado | O que sobra ao fim da cascata |
A técnica que funciona bem no Power BI é armazenar o valor já com o sinal correto na fato, ou aplicar o sinal via dPlanoContas, e construir uma medida base única. A partir dela, cada linha da demonstração é um CALCULATE filtrando o grupo:
Valor = SUM ( fLancamentos[Valor] )
Receita Líquida =
CALCULATE ( [Valor], dPlanoContas[Grupo] IN { "Receita Bruta", "Deduções" } )
Lucro Bruto =
CALCULATE (
[Valor],
dPlanoContas[Grupo] IN { "Receita Bruta", "Deduções", "CPV" }
)
Para exibir a DRE em uma matriz na ordem contábil, use a coluna Ordem como campo de linha e ordene por ela, não em ordem alfabética. Sem isso a receita aparece embaixo do imposto e o relatório perde credibilidade na primeira reunião.
Margem bruta e margem líquida medem coisas diferentes
Margem é a linha traduzida em percentual da receita, e é aqui que a gestão financeira começa a comparar meses, unidades e produtos. A margem bruta mostra a eficiência da operação em si, ou seja, quanto sobra depois do custo direto de produzir ou vender. A margem líquida mostra o que sobra de tudo, depois de despesas, resultado financeiro e impostos.
Margem Bruta % = DIVIDE ( [Lucro Bruto], [Receita Líquida] )
Margem Líquida % = DIVIDE ( [Lucro Líquido], [Receita Líquida] )
Use sempre DIVIDE e não o operador de barra. DIVIDE trata a divisão por zero de forma silenciosa, o que evita o erro visual em meses sem receita, comum em unidades novas ou sazonais. A margem bruta caindo com receita estável é sinal de custo subindo. A margem líquida caindo com margem bruta estável aponta para despesa ou resultado financeiro, e a DRE bem modelada mostra na hora em qual linha está o problema.
EBITDA aproxima a geração de caixa operacional
O EBITDA é o resultado antes de juros, impostos, depreciação e amortização. Não é lucro e não é caixa, mas é a melhor aproximação rápida de quanto a operação gera antes das decisões de financiamento e da contabilização de ativos que não saem do bolso no mês. É um conceito consolidado de mercado, exigido por bancos, investidores e por qualquer processo de valuation.
Partindo do EBIT, que já exclui o resultado financeiro e os impostos sobre o lucro, o cálculo é somar de volta a depreciação e a amortização:
EBITDA = [EBIT] + [Depreciação e Amortização]
Margem EBITDA % = DIVIDE ( [EBITDA], [Receita Líquida] )
Um ponto honesto: EBITDA esconde a necessidade de reinvestimento. Uma indústria pesada pode ter EBITDA bonito e mesmo assim consumir caixa em manutenção de máquinas. Por isso ele mora no dashboard ao lado do fluxo de caixa, nunca sozinho.
Para comparar com o ano anterior, a mesma medida ganha uma versão com time intelligence:
EBITDA AA =
CALCULATE ( [EBITDA], SAMEPERIODLASTYEAR ( dCalendario[Data] ) )
EBITDA Var % AA =
DIVIDE ( [EBITDA] - [EBITDA AA], [EBITDA AA] )
Fluxo de caixa e capital de giro contam a verdade sobre a operação
Aqui vai o alerta mais importante do artigo: a DRE segue o regime de competência, o fluxo de caixa segue o regime de caixa. São coisas diferentes. Uma empresa pode ter lucro na DRE e não ter dinheiro na conta, porque vendeu a prazo e pagou o fornecedor à vista. Não calcule fluxo de caixa a partir da DRE. Modele uma fato própria de movimentações financeiras, com data de liquidação, e classifique cada movimento em operacional, de investimento ou de financiamento.
O capital de giro é o que financia o dia a dia da operação, e sai do balanço patrimonial, não da DRE. Ele é a diferença entre o ativo circulante e o passivo circulante em uma data. Isso exige uma fato de saldos patrimoniais, fotografada por período. A medida de saldo precisa pegar o último valor de cada conta dentro do contexto, e não somar o mês inteiro:
Saldo =
CALCULATE (
SUM ( fSaldos[Valor] ),
LASTNONBLANK ( dCalendario[Data], SUM ( fSaldos[Valor] ) )
)
Capital de Giro =
CALCULATE ( [Saldo], dPlanoContas[Grupo] = "Ativo Circulante" )
- CALCULATE ( [Saldo], dPlanoContas[Grupo] = "Passivo Circulante" )
Capital de giro negativo não é sempre ruim: varejo com giro rápido e prazo de fornecedor longo opera bem assim. Capital de giro que piora mês a mês sem explicação de crescimento, isso sim é bandeira vermelha.
Ciclo financeiro mostra quantos dias o dinheiro fica preso
O ciclo financeiro, ou ciclo de caixa, responde a uma pergunta prática: quantos dias a empresa banca a operação com dinheiro próprio antes de receber. Ele nasce de três prazos médios, todos calculados em dias.
| Indicador | O que mede | Leitura da fórmula |
|---|---|---|
| PME | Prazo médio de estoque | Estoque dividido pelo custo, vezes os dias do período |
| PMR | Prazo médio de recebimento | Contas a receber dividido pela receita, vezes os dias |
| PMP | Prazo médio de pagamento | Contas a pagar dividido pelas compras, vezes os dias |
| Ciclo Operacional | Duração do giro | PME mais PMR |
| Ciclo Financeiro | Dias sem caixa | PME mais PMR menos PMP |
Em DAX, cada prazo é uma divisão ponderada pelos dias do período. Um exemplo para o prazo médio de recebimento:
Dias no Período = COUNTROWS ( dCalendario )
PMR =
DIVIDE (
CALCULATE ( [Saldo], dPlanoContas[Grupo] = "Contas a Receber" ),
[Receita Líquida]
) * [Dias no Período]
Ciclo Financeiro = [PME] + [PMR] - [PMP]
Quanto menor o ciclo financeiro, menos capital de giro a empresa precisa. Reduzir esse número, negociando prazo com fornecedor ou apertando a cobrança, costuma liberar mais caixa do que cortar custo. É o tipo de leitura que só aparece quando os indicadores estão no mesmo modelo, conversando entre si.
Liquidez e inadimplência medem a saúde de curto prazo
Os índices de liquidez dizem se a empresa consegue honrar o que vence no curto prazo. São três, do mais folgado ao mais conservador:
- Liquidez corrente: ativo circulante dividido pelo passivo circulante.
- Liquidez seca: mesmo cálculo, tirando o estoque do numerador, porque estoque pode não virar dinheiro tão rápido.
- Liquidez imediata: apenas o disponível em caixa e aplicações dividido pelo passivo circulante.
Liquidez Corrente =
DIVIDE (
CALCULATE ( [Saldo], dPlanoContas[Grupo] = "Ativo Circulante" ),
CALCULATE ( [Saldo], dPlanoContas[Grupo] = "Passivo Circulante" )
)
A inadimplência fecha o quadro. O indicador básico é a razão entre o valor vencido e não recebido e o total da carteira de recebíveis. Mas a leitura que a diretoria realmente usa é o aging, ou seja, a carteira vencida distribuída por faixas de atraso. Isso se resolve com uma coluna calculada de dias de atraso na fato de títulos e uma medida por faixa:
Inadimplência % =
DIVIDE (
CALCULATE ( [Valor a Receber], fTitulos[DiasAtraso] > 0 ),
[Valor a Receber]
)
Faixas de 1 a 30, 31 a 60, 61 a 90 e acima de 90 dias mostram se o problema é pontual ou estrutural. Recebível parado acima de 90 dias raramente entra, então ele conversa direto com a provisão e com o fluxo de caixa projetado. Todos esses indicadores costumam morar em um painel executivo único, servido pelo Power BI, com segurança por linha para que cada gestor veja apenas o resultado da sua área.
Onde a maioria dos projetos financeiros erra
Depois de muitos fechamentos entregues, os tropeços se repetem. Vale a lista curta:
- Calcular caixa a partir da DRE. Regimes diferentes, resultado errado.
- Somar saldos patrimoniais ao longo do mês em vez de pegar o último valor. Balanço é foto, não filme.
- Deixar a matriz da DRE em ordem alfabética. Perde credibilidade na hora.
- Reclassificar conta na mão a cada mês. Se o plano de contas está certo na origem, o Power BI classifica sozinho.
- Publicar EBITDA sem o fluxo de caixa ao lado. Um número bonito que esconde consumo de caixa engana a gestão.
A licença também entra na conta do projeto. O Power BI Pro e o Power BI Premium por Usuário são licenciados por usuário, e a escolha entre eles e uma capacidade dedicada muda quando o modelo financeiro cresce e passa a ser consumido pela diretoria inteira. Sobre a plataforma de dados por trás disso, o Microsoft Fabric, anunciado pela Microsoft em 2023, muda a arquitetura de armazenamento, e discutimos se vale a pena em nosso material sobre o Fabric.
Perguntas frequentes
Preciso importar a DRE já pronta do ERP ou monto do razão? Sempre que possível, monte a partir do razão. Importar a DRE fechada te dá um número que você não consegue abrir por centro de custo, produto ou período. Com os lançamentos e um plano de contas bem classificado, a demonstração vira uma consequência do modelo e você navega em qualquer nível de detalhe.
Como garanto que o EBITDA do Power BI bate com o da contabilidade?
O segredo é o plano de contas, não a fórmula. Se a depreciação, a amortização e o resultado financeiro estão nos grupos corretos da dPlanoContas, o EBITDA fecha. Quando não bate, quase sempre é uma conta classificada no grupo errado, e não um problema de DAX. Vale conciliar linha a linha da DRE contra o balancete no primeiro mês.
Dá para fazer fluxo de caixa projetado no Power BI? Dá, desde que você tenha os títulos a pagar e a receber com data de vencimento em uma fato própria. O realizado vem das movimentações liquidadas e o projetado vem dos vencimentos futuros. O que não funciona é derivar caixa da DRE, porque competência e caixa não são a mesma coisa.
Qual a diferença entre ciclo operacional e ciclo financeiro? O ciclo operacional é o tempo total do giro, do estoque até receber do cliente, ou seja, PME mais PMR. O ciclo financeiro desconta desse total o prazo que você tem para pagar o fornecedor, o PMP. Ele mostra por quantos dias a empresa financia a operação com dinheiro próprio, que é o número que pressiona o capital de giro.
Como trato empresas com vários CNPJs ou moedas na mesma DRE? Modele a entidade e a moeda como dimensões, com uma tabela de câmbio quando houver conversão. As medidas continuam as mesmas, mudando apenas o contexto de filtro. Consolidação e eliminação de operações entre empresas do grupo pedem regras específicas, e aí a modelagem contábil precisa ser desenhada com a controladoria antes de escrever DAX.
Vale usar segurança por linha nos relatórios financeiros? Vale e costuma ser obrigatório. Dado financeiro é sensível, e a Lei Geral de Proteção de Dados, a Lei nº 13.709/2018, reforça o cuidado quando há dados pessoais de clientes na carteira de recebíveis. A segurança por linha garante que cada gestor veja apenas seu centro de custo e que a diretoria veja o consolidado, sem duplicar relatórios.
Fechando
KPI financeiro no Power BI não é sobre decorar fórmula de EBITDA. É sobre modelar a DRE como a cascata contábil que ela é, separar competência de caixa e deixar cada indicador conversando com os outros no mesmo modelo. Feito isso, o fechamento deixa de ser um exercício de exportar planilha e vira uma leitura confiável que a diretoria usa para decidir. Se você quer tirar o financeiro do Excel manual e colocar em um modelo que fecha sozinho todo mês, fale com a gente.
Quer aplicar isso na sua empresa?
A Fynx implementa BI, Power BI e Power Platform de ponta a ponta. Conte seu cenário e devolvemos um diagnóstico direto ao ponto.
Falar com um especialista