UNPKG

finmath-engine

Version:

Motor de cálculos financeiros de alta precisão para o mercado brasileiro

78 lines 2.18 kB
/** * CET (Custo Efetivo Total) - Versão Básica * Sprint 4 - H15 (Parte 3) * * Escopo MVP: CET com tarifas t0 apenas (sem IOF/seguros) * Referência: Guia CET — Source of Truth v1.0 */ import { Decimal } from "decimal.js"; import { IRRResult } from "../irr/brent"; /** * Entrada para cálculo de CET básico */ export interface CETBasicInput { /** Valor presente (crédito liberado) */ pv: Decimal; /** Cronograma de parcelas (PMT) */ schedule: Decimal[]; /** Tarifas cobradas no tempo 0 */ feesT0?: Decimal[]; /** Base anual para conversão (padrão: 12 meses) */ baseAnnual?: number; } /** * Resultado do cálculo de CET */ export interface CETResult { /** IRR mensal encontrado */ irrMonthly: Decimal; /** CET anual equivalente */ cetAnnual: Decimal; /** Fluxo de caixa usado no cálculo */ cashflows: Decimal[]; /** Breakdown dos componentes */ breakdown: { /** Valor presente */ pv: Decimal; /** Total de tarifas t0 */ totalFeesT0: Decimal; /** Entrada líquida do cliente (t=0) */ netInflow: Decimal; }; /** Resultado detalhado do solver IRR */ irrResult: IRRResult; } /** * Calcula CET básico usando solver de Brent * * Fórmula (Guia CET - SoT §4): * 1. CF[0] = +PV - tarifas_t0 * 2. CF[k] = -PMT[k] (k=1..n) * 3. IRR_m = solveIRR(CF, tolerance=1e-8) * 4. CET_aa = (1 + IRR_m)^base - 1 * * @param input - Parâmetros do cálculo * @returns Resultado com IRR mensal e CET anual * * @example * ```typescript * const result = calculateCETBasic({ * pv: new Decimal('10000'), * schedule: [ * new Decimal('946.56'), // PMT_1 * new Decimal('946.56'), // PMT_2 * // ... 12 parcelas * ], * feesT0: [new Decimal('85')], // Tarifa de cadastro * baseAnnual: 12 * }); * * console.log(result.cetAnnual.toNumber()); // 0.3367 (33.67% a.a.) * ``` */ export declare function calculateCETBasic(input: CETBasicInput): CETResult; /** * Helper: converte CET para porcentagem formatada */ export declare function formatCET(cet: Decimal, decimals?: number): string; //# sourceMappingURL=basic.d.ts.map