O que é inadimplência e por que ela afeta o caixa
Inadimplência é a diferença entre o que a empresa deveria receber (vendas a prazo, boletos, duplicatas, parcelas, faturas) e o que efetivamente entrou no caixa dentro do prazo combinado. Em pequenos negócios, o impacto costuma ser imediato porque o capital de giro é limitado: um volume pequeno de atrasos pode impedir compras de estoque, pagamento de fornecedores e folha.
Para analisar inadimplência no Power BI, é importante separar três ideias que muitas vezes se misturam:

- Contas a receber (CAR): valores já faturados/vendidos e ainda não recebidos.
- Atraso (overdue): parcela/fatura com vencimento no passado e sem pagamento até a data de referência.
- Aging (envelhecimento): distribuição do saldo em aberto por faixas de dias desde o vencimento (ex.: 0–7, 8–15, 16–30, 31–60, 61–90, 90+). O aging mostra não só “quanto está atrasado”, mas “há quanto tempo”.
O objetivo do capítulo é construir uma leitura operacional: identificar atrasos, medir aging, estimar risco de caixa e criar visuais que ajudem a priorizar cobrança e prever entradas com mais realismo.
Conceitos essenciais para medir atrasos e aging
Data de vencimento, data de pagamento e data de referência
Para qualquer indicador de inadimplência, você precisa de três datas:
- Vencimento: quando deveria pagar.
- Pagamento: quando pagou (pode estar em branco se não pagou).
- Data de referência: “hoje” do relatório. Em Power BI, normalmente é a data selecionada no filtro (por exemplo, o último dia do mês) ou a maior data disponível no calendário.
O atraso é calculado comparando vencimento com pagamento (se pago) ou com a data de referência (se em aberto). Isso permite responder perguntas como: “No fechamento do mês, quanto estava vencido?” e “Quantos dias, em média, os clientes atrasaram?”.
Continue em nosso aplicativo
Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.
ou continue lendo abaixo...Baixar o aplicativo
Saldo em aberto vs. valor original
Em contas a receber parceladas ou com pagamentos parciais, o valor original da parcela pode não ser igual ao saldo em aberto. Para aging e risco de caixa, o que importa é o saldo ainda não recebido na data de referência. Se você não tem pagamentos parciais, pode usar o valor da parcela como saldo em aberto quando não pago.
Inadimplência “de estoque” e “de fluxo”
- Estoque (snapshot): quanto está em aberto e vencido em uma data específica (ex.: hoje, fim do mês). É o que o aging mostra.
- Fluxo: quanto venceu no período e não foi pago no prazo (ex.: do mês). Ajuda a entender se o problema está piorando ou melhorando.
Um dashboard completo costuma ter os dois: um painel de snapshot (aging) e um painel de fluxo (vencimentos do mês, pagos em dia, pagos em atraso, não pagos).

Estrutura mínima de dados para inadimplência (sem repetir modelagem)
Sem entrar em modelagem geral, para este capítulo considere que você tem uma tabela de títulos/parcelas a receber com colunas como:
- IdTitulo (ou IdParcela)
- IdCliente
- DataEmissao (opcional, mas útil)
- DataVencimento
- DataPagamento (em branco se não pago)
- ValorParcela
- ValorPago (0 se não pago; se não existir, pode ser derivado)
- Status (Pago/Em aberto/Cancelado) se houver
Se houver pagamentos parciais em uma tabela separada, você precisará somar pagamentos por parcela para obter o saldo. Caso não exista, trabalhe com a lógica “pago ou não pago” por parcela.
Passo a passo prático: criando medidas para atraso e aging em DAX
A seguir, um conjunto de medidas típicas para montar o painel. Ajuste nomes de tabelas/colunas conforme seu modelo. Suponha a tabela Recebiveis e um calendário Calendario.
1) Definir a data de referência do relatório
Uma prática comum é usar a maior data selecionada no calendário como “data de corte”.
Data Referencia = MAX ( Calendario[Data] )Essa medida muda conforme filtros (mês, período, etc.). Ela será usada para calcular “em aberto até a data de referência”.
2) Identificar se um título está em aberto na data de referência
Um título está em aberto na data de referência se não tiver data de pagamento ou se tiver sido pago depois da data de referência (por exemplo, analisando fechamento do mês).
Em Aberto (Flag) = VAR ref = [Data Referencia] RETURN IF ( ISBLANK ( MIN ( Recebiveis[DataPagamento] ) ) || MIN ( Recebiveis[DataPagamento] ) > ref, 1, 0 )Observação: esta medida funciona bem quando o contexto do visual está no nível do título/parcela. Para agregações, você normalmente cria medidas de valor usando essa lógica dentro de um SUMX.
3) Saldo em aberto na data de referência
Se não há pagamentos parciais, o saldo em aberto é o valor da parcela quando estiver em aberto.
Saldo em Aberto = VAR ref = [Data Referencia] RETURN SUMX ( Recebiveis, VAR pago = Recebiveis[DataPagamento] VAR aberto = ISBLANK ( pago ) || pago > ref RETURN IF ( aberto, Recebiveis[ValorParcela], 0 ) )Se você tem ValorPago e quer considerar parcial, use:
Saldo em Aberto (Parcial) = VAR ref = [Data Referencia] RETURN SUMX ( Recebiveis, VAR pago = Recebiveis[DataPagamento] VAR aberto = ISBLANK ( pago ) || pago > ref VAR saldo = Recebiveis[ValorParcela] - Recebiveis[ValorPago] RETURN IF ( aberto, MAX ( saldo, 0 ), 0 ) )4) Valor vencido (overdue) na data de referência
Vencido é o que está em aberto e com vencimento anterior à data de referência.
Vencido = VAR ref = [Data Referencia] RETURN SUMX ( Recebiveis, VAR pago = Recebiveis[DataPagamento] VAR aberto = ISBLANK ( pago ) || pago > ref VAR vencido = Recebiveis[DataVencimento] < ref RETURN IF ( aberto && vencido, Recebiveis[ValorParcela], 0 ) )5) A vencer (não vencido) na data de referência
A Vencer = [Saldo em Aberto] - [Vencido]6) Dias em atraso por título (para análises e faixas)
Para títulos em aberto, dias em atraso é a diferença entre data de referência e vencimento (se vencido). Para títulos pagos, pode ser a diferença entre pagamento e vencimento. Aqui, foque no snapshot (em aberto).
Dias em Atraso (Em Aberto) = VAR ref = [Data Referencia] RETURN AVERAGEX ( Recebiveis, VAR pago = Recebiveis[DataPagamento] VAR aberto = ISBLANK ( pago ) || pago > ref VAR dias = DATEDIFF ( Recebiveis[DataVencimento], ref, DAY ) RETURN IF ( aberto && dias > 0, dias, BLANK() ) )Para usar dias em atraso por linha (título) em um visual de tabela, você pode criar uma coluna calculada (quando fizer sentido) ou manter como medida e exibir no contexto do título.
7) Criar faixas de aging
O aging normalmente é melhor com uma tabela de faixas (desconectada) para controlar intervalos e permitir manutenção fácil. Exemplo de tabela manual (Enter Data) com colunas: Faixa, MinDias, MaxDias, Ordem.
- 0–7: Min=0, Max=7
- 8–15: Min=8, Max=15
- 16–30: Min=16, Max=30
- 31–60: Min=31, Max=60
- 61–90: Min=61, Max=90
- 90+: Min=91, Max=99999
Medida para calcular o valor vencido dentro da faixa selecionada:
Vencido por Faixa Aging = VAR ref = [Data Referencia] VAR minD = MIN ( Aging[MinDias] ) VAR maxD = MIN ( Aging[MaxDias] ) RETURN SUMX ( Recebiveis, VAR pago = Recebiveis[DataPagamento] VAR aberto = ISBLANK ( pago ) || pago > ref VAR dias = DATEDIFF ( Recebiveis[DataVencimento], ref, DAY ) VAR dentro = dias >= minD && dias <= maxD RETURN IF ( aberto && dias > 0 && dentro, Recebiveis[ValorParcela], 0 ) )Com isso, você monta um gráfico de barras com Aging[Faixa] no eixo e a medida Vencido por Faixa Aging como valor, ordenando por Aging[Ordem].
8) Percentual vencido e taxa de inadimplência do snapshot
Um indicador simples para gestão diária é “quanto do saldo em aberto está vencido”.
% Vencido (Snapshot) = DIVIDE ( [Vencido], [Saldo em Aberto] )Você também pode calcular “vencido sobre faturado a prazo do período”, mas isso depende de como você registra vendas e condições de pagamento. Para não misturar conceitos, use o snapshot como base para risco de caixa.
Passo a passo prático: painel de recebimentos e atraso (fluxo)
Além do snapshot, é útil medir o comportamento de pagamento no período: o que venceu, o que foi pago em dia, o que foi pago com atraso e o que ainda não foi pago.
1) Títulos que venceram no período selecionado
Considere o filtro de datas no calendário afetando o período (por exemplo, mês atual). Se o relacionamento principal do calendário não estiver em DataVencimento, você pode usar uma medida com filtro explícito. Exemplo: somar valores cujo vencimento está dentro do período selecionado.
Venceu no Periodo = VAR ini = MIN ( Calendario[Data] ) VAR fim = MAX ( Calendario[Data] ) RETURN CALCULATE ( SUM ( Recebiveis[ValorParcela] ), FILTER ( ALL ( Recebiveis ), Recebiveis[DataVencimento] >= ini && Recebiveis[DataVencimento] <= fim ) )2) Pago em dia (vencimento no período e pagamento até o vencimento)
Pago em Dia (Periodo) = VAR ini = MIN ( Calendario[Data] ) VAR fim = MAX ( Calendario[Data] ) RETURN SUMX ( FILTER ( ALL ( Recebiveis ), Recebiveis[DataVencimento] >= ini && Recebiveis[DataVencimento] <= fim ), VAR pag = Recebiveis[DataPagamento] RETURN IF ( NOT ISBLANK ( pag ) && pag <= Recebiveis[DataVencimento], Recebiveis[ValorParcela], 0 ) )3) Pago em atraso (vencimento no período e pagamento após o vencimento)
Pago em Atraso (Periodo) = VAR ini = MIN ( Calendario[Data] ) VAR fim = MAX ( Calendario[Data] ) RETURN SUMX ( FILTER ( ALL ( Recebiveis ), Recebiveis[DataVencimento] >= ini && Recebiveis[DataVencimento] <= fim ), VAR pag = Recebiveis[DataPagamento] RETURN IF ( NOT ISBLANK ( pag ) && pag > Recebiveis[DataVencimento], Recebiveis[ValorParcela], 0 ) )4) Não pago (vencimento no período e sem pagamento até a data de referência)
Essa medida conecta fluxo com snapshot: do que venceu no período, quanto ainda está em aberto na data de referência.
Nao Pago (Periodo) = VAR ini = MIN ( Calendario[Data] ) VAR fim = MAX ( Calendario[Data] ) VAR ref = [Data Referencia] RETURN SUMX ( FILTER ( ALL ( Recebiveis ), Recebiveis[DataVencimento] >= ini && Recebiveis[DataVencimento] <= fim ), VAR pag = Recebiveis[DataPagamento] VAR aberto = ISBLANK ( pag ) || pag > ref RETURN IF ( aberto, Recebiveis[ValorParcela], 0 ) )Com essas três medidas (pago em dia, pago em atraso, não pago), você cria um gráfico de colunas empilhadas ou um cartão com percentuais. Exemplo de percentual de pontualidade:
% Pago em Dia (Periodo) = DIVIDE ( [Pago em Dia (Periodo)], [Venceu no Periodo] )Risco de caixa: como transformar aging em sinal de alerta
O aging por si só é descritivo. Para gestão, você quer um indicador que ajude a responder: “Quanto do meu contas a receber é pouco provável de entrar no curto prazo?”. Uma forma prática é aplicar pesos de risco por faixa de atraso, gerando um “saldo ponderado por risco”.

1) Definir pesos por faixa (tabela de risco)
Crie uma tabela (Enter Data) com colunas: Faixa, MinDias, MaxDias, PesoRisco, Ordem. Exemplo didático (ajuste à sua realidade):
- 0–7: Peso 0,10
- 8–15: Peso 0,20
- 16–30: Peso 0,35
- 31–60: Peso 0,55
- 61–90: Peso 0,75
- 90+: Peso 0,90
Interpretação: quanto maior o atraso, maior a probabilidade de não entrar no curto prazo (ou de exigir esforço de cobrança/negociação).
2) Calcular “vencido ponderado por risco”
Vencido Ponderado (Risco) = VAR ref = [Data Referencia] VAR minD = MIN ( Risco[MinDias] ) VAR maxD = MIN ( Risco[MaxDias] ) VAR peso = MIN ( Risco[PesoRisco] ) RETURN SUMX ( Recebiveis, VAR pago = Recebiveis[DataPagamento] VAR aberto = ISBLANK ( pago ) || pago > ref VAR dias = DATEDIFF ( Recebiveis[DataVencimento], ref, DAY ) VAR dentro = dias >= minD && dias <= maxD RETURN IF ( aberto && dias > 0 && dentro, Recebiveis[ValorParcela] * peso, 0 ) )Com isso, você pode criar um cartão “Risco estimado no vencido” somando todas as faixas (colocando a medida em um visual sem o eixo de faixa, ou criando uma medida total com SUMX sobre a tabela de risco).
Risco Total (Vencido) = SUMX ( Risco, [Vencido Ponderado (Risco)] )3) Estimar recebimento provável no curto prazo
Uma leitura simples: do saldo vencido, quanto é “provável” (1 - peso). Isso não é previsão estatística, mas um sinal para gestão de caixa.
Vencido Provavel Receber = VAR ref = [Data Referencia] RETURN SUMX ( Risco, VAR peso = MIN ( Risco[PesoRisco] ) RETURN [Vencido por Faixa Aging] * ( 1 - peso ) )Se você usar tabelas separadas para Aging e Risco, alinhe-as (mesmas faixas) ou use apenas uma tabela com Min/Max e Peso.
Visuais recomendados para um dashboard de inadimplência
1) Cartões (visão rápida)
- Saldo em aberto
- Vencido
- % vencido
- Risco total (vencido ponderado)
- Dias médios em atraso (em aberto)
Esses cartões devem responder em segundos: “quanto tenho para receber, quanto está atrasado e quão grave é”.
2) Gráfico de barras: aging do vencido
Eixo: faixas (0–7, 8–15, ...). Valor: Vencido por Faixa Aging. Use cores progressivas (mais escuro para mais atraso) para reforçar leitura.
3) Tabela de clientes para priorização de cobrança
Monte uma tabela com Cliente, Vencido, Maior atraso (máximo de dias), Quantidade de títulos vencidos, e um indicador de concentração (quanto o cliente representa do vencido total). Exemplos de medidas úteis:
Qtd Titulos Vencidos = VAR ref = [Data Referencia] RETURN COUNTROWS ( FILTER ( Recebiveis, ( ISBLANK ( Recebiveis[DataPagamento] ) || Recebiveis[DataPagamento] > ref ) && Recebiveis[DataVencimento] < ref ) )Maior Atraso (Dias) = VAR ref = [Data Referencia] RETURN MAXX ( FILTER ( Recebiveis, ( ISBLANK ( Recebiveis[DataPagamento] ) || Recebiveis[DataPagamento] > ref ) ), DATEDIFF ( Recebiveis[DataVencimento], ref, DAY ) )% do Vencido = DIVIDE ( [Vencido], CALCULATE ( [Vencido], ALL ( Recebiveis ) ) )Com essa tabela, você cria uma regra operacional: cobrar primeiro quem tem maior vencido e maior atraso, ou quem concentra grande parte do risco.
4) Linha do tempo: evolução do vencido
Para acompanhar tendência, crie um gráfico de linha com data no eixo e a medida Vencido como valor. Se o vencido cresce mês a mês, o problema pode estar em concessão de crédito, cobrança tardia ou perfil de cliente.
Boas práticas de interpretação (para evitar decisões erradas)
Separar atraso “recente” de atraso “crônico”
Um vencido alto concentrado em 0–7 dias pode ser apenas efeito de fim de semana, feriado, rotina de pagamento do cliente ou atraso operacional de conciliação. Já concentração em 31–60 e 90+ tende a indicar risco real e necessidade de ação (negociação, suspensão de crédito, protesto, etc., conforme política do negócio).
Evitar comparar períodos sem considerar carteira
Se a empresa aumentou vendas a prazo, é natural que o saldo em aberto cresça. Por isso, acompanhe simultaneamente:
- Saldo em aberto (tamanho da carteira)
- % vencido (qualidade da carteira)
- Aging (distribuição do vencido)
Tratar renegociações e reemissões
Quando um título é renegociado, pode surgir um novo vencimento e o antigo ser baixado/cancelado. Se isso não estiver bem registrado, o dashboard pode inflar vencidos. Na prática, defina uma regra de dados: títulos renegociados devem ter status “cancelado/substituído” e não entrar no aging, ou devem ser vinculados a um novo título para rastreabilidade.
Exemplo prático de leitura gerencial (como usar o dashboard no dia a dia)
Imagine que, na data de referência (hoje), o dashboard mostra:
- Saldo em aberto: R$ 120.000
- Vencido: R$ 38.000
- % vencido: 31,7%
- Aging: R$ 10.000 (0–7), R$ 8.000 (8–15), R$ 6.000 (16–30), R$ 9.000 (31–60), R$ 5.000 (61–90), R$ 0 (90+)
Interpretação operacional:
- Há um bloco relevante em 31–60 (R$ 9.000): priorize cobrança ativa e negociação rápida, porque esse grupo tende a virar 61–90 se não agir.
- Como não há 90+, o problema pode ser recente (ou a empresa costuma dar baixa/renegociar antes). Verifique se renegociações estão registradas corretamente.
- Se o % vencido subiu em relação ao mês anterior, investigue se houve mudança no perfil de clientes, aumento de vendas a prazo sem análise, ou falhas no processo de cobrança.
Checklist de implementação no Power BI (sem depender de recursos avançados)
- Garantir que DataVencimento e DataPagamento estejam no tipo data e sem valores inválidos.
- Criar a medida Data Referencia baseada no calendário para permitir análises por fechamento.
- Criar medidas de Saldo em Aberto, Vencido, A Vencer e % Vencido.
- Criar tabela desconectada de faixas de aging e a medida Vencido por Faixa.
- Criar tabela de pesos de risco (ou incorporar peso na tabela de aging) e calcular Risco Total.
- Montar visuais: cartões, barras de aging, tabela de clientes e linha de evolução do vencido.
- Validar com amostras: escolha 5 títulos e confira manualmente se o dashboard classifica corretamente (em aberto, vencido, faixa, dias).