Metodologia: como o SLOTH calcula rentabilidade (Modified Dietz)
18/06/2026 · SLOTH
Como investidores, sabemos que medir o retorno de um portfólio de investimentos não é uma tarefa trivial. Quando o cenário envolve apenas um aporte inicial e um resgate final, a matemática é elementar. No entanto, o mundo real é caótico: investidores realizam aportes mensais, sacam valores para emergências, recebem dividendos e pagam taxas.
Neste artigo transparente, vamos abrir a "caixa preta" do motor de processamento do SLOTH. Explicaremos detalhadamente o cálculo rentabilidade carteira utilizando o método Modified Dietz, por que o escolhemos para lidar com fluxos de caixa dinâmicos e como nossas pipelines de dados garantem essa precisão.
O Problema do Retorno Simples
A fórmula de retorno simples é a mais intuitiva: lucro dividido pelo capital investido. Contudo, ela colapsa completamente quando há movimentações durante o período de análise.
Se você começa o ano com R$ 10.000,00, a carteira não rende nada durante 11 meses, e no último dia do ano você aporta mais R$ 10.000,00, o seu saldo final é R$ 20.000,00. O retorno simples diria que você teve 100% de lucro (ganhou 10 mil sobre 10 mil), o que é uma falácia algorítmica. O dinheiro que entrou no final não teve tempo de render.
Para resolver essa distorção temporal em sistemas de alta volumetria, precisamos de um modelo que pondere quando o dinheiro entrou ou saiu da conta. É aqui que entra o Modified Dietz.
O Método Modified Dietz na Prática
O método Modified Dietz avalia a performance da carteira ponderando cada fluxo de caixa (aporte ou saque) pelo tempo exato em que esse capital permaneceu disponível para investimento dentro da janela de análise. No backend do SLOTH, utilizamos operações vetorizadas em Python para aplicar essa ponderação diariamente em milhares de séries temporais de ativos.
A equação matemática processada pelo nosso motor de cálculo é a seguinte:
Onde cada variável processada no nosso pipeline representa:
- \(V_0\) (Valor Inicial): O valor de mercado da carteira no início do período de avaliação.
- \(V_1\) (Valor Final): O valor de mercado da carteira no final do período de avaliação.
- \(F\) (Fluxo de Caixa Líquido): O somatório simples de todos os aportes e saques no período. Aportes são positivos, saques são negativos.
- \(F_i\) (Fluxo de Caixa Individual): Cada transação de entrada ou saída registrada no banco de dados.
- \(w_i\) (Peso Temporal): A proporção do período em que o fluxo de caixa \(F_i\) permaneceu na carteira. Calculado como a diferença entre o número total de dias do período (\(C\)) e o dia em que o fluxo ocorreu (\(D_i\)), dividida pelo total de dias. A fórmula do peso é: \(w_i = \frac{C - D_i}{C}\).
O denominador da fórmula (\(V_0 + \sum F_i \times w_i\)) gera o que chamamos na engenharia financeira de Capital Médio Investido. Essa é a genialidade do método: ele ajusta a base de cálculo para refletir a realidade do dinheiro que efetivamente esteve exposto ao mercado.
Comparativo de Metodologias
Para o cálculo rentabilidade carteira, existem outros padrões na indústria. Abaixo, detalhamos por que o SLOTH prioriza o Modified Dietz frente a outras alternativas computacionais.
| Método | Tratamento de Fluxos de Caixa | Complexidade Computacional | Casos de Uso |
|---|---|---|---|
| Simple Return | Ignora completamente o momento (timing) dos aportes e saques. | Muito baixa. Operação aritmética básica. | Apenas para ativos estáticos sem movimentação financeira. |
| Modified Dietz | Pondera cada fluxo pelo tempo exato de permanência no portfólio. | Média. Exige vetorização de datas e pesos temporais. | Excelente para investidores de varejo e dashboards interativos. Sensível ao timing do investidor. |
| Time-Weighted Return (TWR) | Isola o efeito dos fluxos de caixa, quebrando o cálculo em subperíodos a cada movimentação. | Alta. Exige o valuation (marcação a mercado) diário da carteira a cada transação. | Padrão global para avaliar Gestores de Fundos (que não controlam quando os cotistas aplicam ou resgatam). |
FAQ Técnico: Engenharia e Edge Cases
Como o SLOTH lida com o rastreamento FIFO (First In, First Out) nos cálculos de base?
Para efeitos do Modified Dietz, o cálculo de rentabilidade consolida o valor de mercado agregado (\(V_0\) e \(V_1\)). No entanto, para o cálculo do Lucro/Prejuízo contábil e de impostos (que alimentam outras métricas do dashboard), nosso banco de dados gerencia os lotes de compra usando estritamente a fila FIFO. Isso significa que vendas parciais reduzem as quantidades das posições mais antigas primeiro, reajustando o Preço Médio e o Valor de Mercado atual que entrará na fórmula agregada do portfólio.
Qual é o tratamento matemático de cupons e dividendos na fórmula?
Essa é uma das maiores fontes de bugs em pipelines financeiros. No SLOTH, a distribuição de cupons semestrais ou dividendos não é considerada um fluxo de caixa externo (\(F_i\)) se o dinheiro permanecer na conta da corretora (ou seja, se for reinvestido ou mantido no saldo livre da própria carteira analisada). Ele apenas transita de "Valor do Ativo" para "Caixa", mantendo o \(V_1\) inalterado. O evento só é classificado como um saque (Fluxo de Caixa Negativo) na equação do Modified Dietz se o investidor efetivamente retirar o dinheiro do ambiente monitorado pelo dashboard para pagar despesas externas.