financial-calc-br
Version:
Calculadora financeira brasileira com suporte a financiamentos, investimentos e cartão de crédito
227 lines (159 loc) • 6.81 kB
Markdown
# Financial Calc BR 🇧🇷
[](https://badge.fury.io/js/financial-calc-br)
[](https://opensource.org/licenses/MIT)
Uma calculadora financeira completa para o mercado brasileiro, incluindo cálculos de financiamentos (SAC e Price), investimentos (CDB, Tesouro Selic, Poupança) e cartão de crédito rotativo.
## 📦 Instalação
### NPM
```bash
npm install financial-calc-br
```
### Yarn
```bash
yarn add financial-calc-br
```
## 🚀 Uso Básico
### Calculadora de Financiamentos
```typescript
import { FinancingCalc } from "financial-calc-br";
const calc = new FinancingCalc();
// Calcular financiamento SAC
const sac = calc.financingSAC(300000, 10.5, 30);
console.log(sac.formatted.primeiraParcela); // "R$ 3.125,00"
// Calcular financiamento Price
const price = calc.financingPrice(300000, 10.5, 30);
console.log(price.formatted.prestacaoFixa); // "R$ 2.738,95"
// Comparar os dois sistemas
const comparacao = calc.compareFinancing(300000, 10.5, 30);
console.log(comparacao.comparacao.recomendacao);
```
### Calculadora de Investimentos
```typescript
import { InvestmentCalc } from "financial-calc-br";
const calc = new InvestmentCalc();
// Calcular rendimento da poupança
const poupanca = calc.investmentPoupanca(10000, 12);
console.log(poupanca.formatted.rendimento); // "R$ 617,00"
// Calcular CDB
const cdb = calc.investmentCDB(10000, 12, 110); // 110% do CDI
console.log(cdb.formatted.rendimentoLiquido); // "R$ 876,32"
// Comparar investimentos
const comparacao = calc.compareInvestments(10000, 12);
console.log(comparacao.melhorOpcao.nome); // "CDB 120% CDI"
```
### Calculadora de Cartão de Crédito
```typescript
import { CreditCardCalc } from "financial-calc-br";
const calc = new CreditCardCalc();
// Calcular rotativo do cartão
const rotativo = calc.calcRotativo(1000, 300, 15); // Fatura R$ 1000, pagou R$ 300, taxa 15%
console.log(rotativo.formatted.custoTotal); // "R$ 107,66"
console.log(rotativo.alerta); // "Custo alto"
```
## 📊 Funcionalidades
### 🏠 Financiamentos
- **Sistema SAC**: Parcelas decrescentes, menor custo total
- **Sistema Price**: Parcelas fixas, facilita planejamento
- **Comparação**: Análise automática dos dois sistemas
- **Simulação de entrada**: Calcule diferentes cenários de entrada
### 💰 Investimentos
- **Poupança**: Cálculo com regras atuais (isento de IR)
- **Tesouro Selic**: Com tributação regressiva
- **CDB**: Diversos percentuais do CDI
- **Aportes mensais**: Simulação de investimentos recorrentes
- **Taxas atualizadas**: Busca automática de taxas Selic e CDI
### 💳 Cartão de Crédito
- **Rotativo**: Cálculo de juros e IOF
- **Alertas**: Identifica custos altos automaticamente
- **Próxima fatura**: Projeção do valor da próxima fatura
## 🛠️ API Completa
### FinancingCalc
```typescript
// Financiamento SAC
financingSAC(valor: number, taxaAnual: number, anos: number): ResultadoSAC
// Financiamento Price
financingPrice(valor: number, taxaAnual: number, anos: number): ResultadoPRICE
// Comparar sistemas
compareFinancing(valor: number, taxaAnual: number, anos: number): ResultadoComparacao
// Simular entrada
simulateDownPayment(valorImovel: number, entrada: number, taxaAnual: number, anos: number): SimulacaoEntrada
```
### InvestmentCalc
```typescript
// Poupança
investmentPoupanca(valor: number, meses: number): ResultadoPoupanca
// Tesouro Selic
investmentTesouroSelic(valor: number, meses: number): ResultadoTesouroSelic
// CDB
investmentCDB(valor: number, meses: number, percentualCDI: number): ResultadoCDB
// Comparar investimentos
compareInvestments(valor: number, meses: number, opcoes?: number[]): ResultadoComparacaoInvestment
// Aportes mensais
simulateMonthlyContributions(valorInicial: number, aporteMensal: number, meses: number, taxaAnual: number, temIR?: boolean): SimulacaoAportes
```
### CreditCardCalc
```typescript
// Rotativo do cartão
calcRotativo(valorFatura: number, valorPago: number, taxaMensal?: number): creditCard | creditCardPaga
```
### RatesManager
```typescript
// Buscar taxas atualizadas
updateAll(): Promise<Rates>
// Obter taxas individuais
getSelic(): number
getCDI(): number
getPoupanca(): number
getDolar(): number
getIPCA(): number
// Obter todas as taxas
getAllRates(): AllRates
```
## 🔧 Utilitários
```typescript
import { formatMoney, parseMoney, convertRate, calcIRRate } from "financial-calc-br";
// Formatação
formatMoney(1234.56); // "R$ 1.234,56"
parseMoney("R$ 1.234,56"); // 1234.56
// Conversão de taxas
convertRate(12, "anual", "mensal"); // 0.9489
convertRate(1, "mensal", "anual"); // 12.6825
// Cálculo de IR
calcIRRate(90); // 22.5 (90 dias = 22.5%)
calcIRRate(400); // 17.5 (400 dias = 17.5%)
```
## 📈 Exemplos Práticos
### Comparando Financiamento de R$ 500.000
```typescript
const calc = new FinancingCalc();
const resultado = calc.compareFinancing(500000, 11.5, 30);
console.log(`SAC - Primeira parcela: ${resultado.sac.primeira}`);
console.log(`Price - Parcela fixa: ${resultado.price.parcelaFixa}`);
console.log(`Economia escolhendo SAC: ${resultado.comparacao.formatted.economia}`);
console.log(`Recomendação: ${resultado.comparacao.recomendacao.sistema}`);
```
### Simulando Investimento com Aportes
```typescript
const calc = new InvestmentCalc();
const simulacao = calc.simulateMonthlyContributions(10000, 1000, 24, 12);
console.log(`Total aportado: ${simulacao.formatted.totalAportado}`);
console.log(`Rendimento líquido: ${simulacao.formatted.rendimentoLiquido}`);
console.log(`Montante final: ${simulacao.formatted.montanteLiquido}`);
```
## 🇧🇷 Específico para o Brasil
- **Taxas reais**: Integração com APIs do Banco Central
- **Tributação brasileira**: IR progressivo e regressivo
- **Regras da poupança**: Aplicação automática das regras atuais
- **Formatação**: Valores em Real (R$) e períodos em português
- **IOF**: Cálculo automático para cartão de crédito
## 📝 Licença
MIT © [Raul Cabral](https://github.com/raulcabralc)
## 🤝 Contribuindo
Contribuições são bem-vindas! Veja [CONTRIBUTING.md](CONTRIBUTING.md) para detalhes.
## 🐛 Bugs e Sugestões
Encontrou um bug ou tem uma sugestão? Abra uma [issue](https://github.com/raulcabralc/financial-calc-br/issues).
## 📊 Roadmap
- [ ] Calculadora de aposentadoria
- [ ] Simulador de empréstimos
- [ ] Calculadora de impostos
- [ ] Integração com mais APIs financeiras
- [ ] Dashboard web interativo