As fórmulas e o algoritmo por trás do simulador
Este artigo documenta, em detalhe, exatamente como o motor de cálculo deste simulador funciona — as mesmas fórmulas e o mesmo algoritmo que rodam no seu navegador em src/core/math/. Nenhuma lógica financeira deste site vive na interface: tudo abaixo é código puro, testável e auditável.
1. Granularidade: passos mensais
A simulação avança em passos mensais, do initialAge (padrão: 18 anos) até o targetAge (padrão: 65 anos). O número total de meses simulados é:
N = round((targetAge - initialAge) × 12)
Todas as taxas de entrada (reajuste salarial, inflação de gastos, rentabilidade, juros de dívida) são anuais e reais — já descontadas da inflação oficial (IPCA) — para que R$ 1.000.000 daqui a 40 anos represente exatamente R$ 1.000.000 de poder de compra de hoje.
2. Conversão de taxa anual em taxa mensal
Toda taxa anual efetiva i_a é convertida em taxa mensal equivalente i_m por juros compostos:
i_m = (1 + i_a) ^ (1/12) - 1
Por exemplo, uma rentabilidade real de 6% ao ano não vira simplesmente "0,5% ao mês" (6% ÷ 12) — ela vira 0,5% ao mês, porque os juros capitalizam mês a mês. Essa é a função annualToMonthlyRate em src/core/math/rates.ts, usada tanto para a rentabilidade dos investimentos quanto para os juros de dívida.
3. Tributação do trabalho (INSS + IRPF)
3.1. INSS — contribuição progressiva
O INSS é calculado "por dentro": cada faixa de salário é tributada apenas pela alíquota daquela faixa, não pela alíquota mais alta aplicada ao total. Tabela vigente no simulador:
- De R$ 0,00 até R$ 1.621,00: 7,5%
- De R$ 1.621,00 até R$ 2.902,84: 9%
- De R$ 2.902,84 até R$ 4.354,27: 12%
- De R$ 4.354,27 até R$ 8.475,55: 14%
A contribuição total é limitada ao teto de R$ 988,09/mês, mesmo para salários muito acima da última faixa.
3.2. IRPF — tabela progressiva com dedução
Sobre a base de cálculo (salário bruto menos INSS), aplica-se a tabela progressiva do IRPF, no formato "alíquota efetiva com dedução simplificada":
IRPF_tabela = max(0, base × alíquota_da_faixa − dedução_da_faixa)
- De R$ 0,00 até R$ 2.428,80: alíquota 0%, dedução de R$ 0,00
- De R$ 2.428,80 até R$ 2.826,65: alíquota 7,5%, dedução de R$ 182,16
- De R$ 2.826,65 até R$ 3.751,05: alíquota 15%, dedução de R$ 394,16
- De R$ 3.751,05 até R$ 4.664,68: alíquota 22,5%, dedução de R$ 675,49
- De R$ 4.664,68 até ∞: alíquota 27,5%, dedução de R$ 908,73
3.3. Reforma do IR de 2026: isenção e faixa de transição
A partir de 2026, o simulador aplica a reforma do Imposto de Renda por cima da tabela acima:
- Isenção total até R$ 5.000,00/mês:
IRPF = 0. - Faixa de transição entre R$ 5.000,00 e R$ 7.000,00: o imposto da tabela cheia é reduzido proporcionalmente à posição da renda dentro da faixa, sem "degraus":
progresso = (base − R$ 5.000,00) ÷ (R$ 7.000,00 − R$ 5.000,00)
IRPF = IRPF_tabela × progresso
- Acima de R$ 7.000,00/mês: equivale exatamente à tabela cheia, sem nenhum desconto adicional.
O salário líquido final é: salário_líquido = salário_bruto − INSS − IRPF.
4. Tributação do capital
O rendimento de capital é tributado a uma alíquota única e simplificada de 15% sobre ganhos positivos:
rendimento_líquido = rendimento_bruto × (1 − 15%)
Importante: essa alíquota só se aplica quando o rendimento é positivo. Quando o patrimônio está negativo e gera juros de dívida (uma despesa, não um ganho), o valor negativo é mantido integralmente — dívida não recebe "desconto fiscal".
5. A dinâmica mensal completa
Para cada mês t de 1 até N, o motor (runSimulation em src/core/math/engine.ts) executa, nesta ordem:
Passo 1 — Reajuste anual. A cada 12 meses completos, salário e custo de vida são reajustados pelas taxas reais informadas:
salário_t = salário_{t-1} × (1 + reajuste_salarial_anual)
gastos_t = gastos_{t-1} × (1 + crescimento_gastos_anual)
Passo 2 — Salário líquido do mês, usando as regras da seção 3.
Passo 3 — Rendimento do capital do mês, calculado sobre o patrimônio do mês anterior (P_{t-1}):
rendimento_bruto = P_{t-1} ≥ 0 ? P_{t-1} × taxa_mensal_investimento
: P_{t-1} × taxa_mensal_dívida
(a taxa de dívida padrão é 25% ao ano real, configurável pelo usuário). O valor líquido usa a regra da seção 4.
Passo 4 — Fluxo de caixa e novo patrimônio:
fluxo_de_caixa_t = salário_líquido_t − gastos_t
P_t = P_{t-1} + rendimento_líquido_t + fluxo_de_caixa_t
Essa recorrência é a única fórmula que efetivamente "move" o patrimônio mês a mês — tudo o que vem antes serve apenas para calcular suas duas parcelas (fluxo de caixa do trabalho e rendimento do capital).
6. Indicadores finais (KPIs)
Ao final da timeline, o motor calcula:
- Patrimônio final:
P_N, o último valor da recorrência acima. - Origem do patrimônio: a soma de todo o fluxo de caixa do trabalho (
ΣF_t) vs. a soma do patrimônio inicial com todos os rendimentos de capital acumulados (patrimônio_inicial + ΣR_t) — esta segunda soma é tratada como "capital", já que não exigiu esforço de trabalho durante a simulação. - Independência financeira: o primeiro mês em que a renda passiva líquida do mês supera o custo de vida daquele mês (
R_t ≥ gastos_t), convertido de volta para idade. Se isso nunca acontece dentro da simulação, o valor énull. - Consumo sustentável mensal:
P_N × taxa_mensal_investimento— gastar exatamente o rendimento real mensal mantém o patrimônio principal intacto para sempre. É uma variação mais precisa da popular "regra dos 4% ao ano", usando a própria rentabilidade configurada na simulação em vez de uma taxa genérica fixa.
7. Por que isso importa
Cada fórmula acima existe em um único lugar no código-fonte (src/core/math/), coberta por testes automatizados que verificam casos extremos — taxa de juros zero, patrimônio inicial negativo, salário zero, valores na casa dos bilhões. Isso significa que todo número que você vê na tela pode ser rastreado de volta a uma fórmula explícita e verificável, sem caixas-pretas. Se você encontrar algo que pareça incorreto, o código é aberto — veja o repositório no GitHub e confira (ou questione) você mesmo.