Todos os projetos

Painel de endividamento com API e cálculo de CET no Power Query

Integração direta com a API do CalcBank para trazer contratos, parcelas e saldos ao Power BI, com o custo efetivo total calculado em M pelo método de Newton-Raphson.

Contexto
Tesouraria e área financeira
Meu papel
Especialista de BI
Período
2026
Ferramentas
Power BI, Power Query (M), API REST, DAX, Modelagem dimensional

Como a solução funciona

  1. API do CalcBank contratos, parcelas e pagamentos
  2. Power Query chamadas HTTP e tratamento
  3. Cálculo do CET TIR por Newton-Raphson em M
  4. Painel dívida, vencimentos e custo real

O problema

Os dados de endividamento ficavam no CalcBank, fora do BI. Para acompanhar saldo devedor, vencimentos e o custo de cada contrato junto com os demais indicadores financeiros, era preciso trazer tudo para o Power BI, inclusive o custo efetivo total (CET), que não vem pronto e precisa ser calculado.

O que eu fiz

  • Integração direta. O Power Query chama a API do CalcBank (HTTP POST) para contratos, vencimentos, pagamentos, saldo devedor e aplicações.
  • Esquema estrela. Contratos como fato principal, ligados às parcelas, aos pagamentos e ao calendário.
  • CET calculado no próprio M. A TIR de cada contrato sai do fluxo de parcelas pelo método de Newton-Raphson e depois é anualizada.
POWERQUERY
// Esboço da TIR por Newton-Raphson (taxa por período do fluxo)
let
    Vpl = (taxa as number, fluxos as list) as number =>
        List.Sum(List.Transform(List.Positions(fluxos),
            each fluxos{_} / Number.Power(1 + taxa, _))),
    DerivadaVpl = (taxa as number, fluxos as list) as number =>
        List.Sum(List.Transform(List.Positions(fluxos),
            each -_ * fluxos{_} / Number.Power(1 + taxa, _ + 1))),
    Tir = (fluxos as list) as number =>
        List.Last(List.Generate(
            () => [taxa = 0.01, passo = 0],
            each [passo] < 50,
            each [taxa = [taxa] - Vpl([taxa], fluxos) / DerivadaVpl([taxa], fluxos), passo = [passo] + 1],
            each [taxa]
        ))
in
    Tir

Com a taxa mensal em mãos, o CET anual é (1 + taxa)^12 - 1.

Resultado

  • Dívida, cronograma de vencimentos e custo efetivo de cada contrato no mesmo painel.
  • Contratos com estruturas diferentes ficam comparáveis pelo CET.

Próximo passo

Hoje a taxa de referência (CDI) entra como parâmetro fixo; a evolução natural é buscá-la automaticamente de uma fonte oficial.