← Todos os artigos

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.