quickstart.sh
# 1. Install the three foundational packages
$ npm install @finengine/core @finengine/math @finengine/ui

# 2. Run a deterministic 36-month amortization
$ node -e "import('@finengine/math').then(m => console.log(m.amortize({principal:500000,annualRate:13.5,months:36})))"

→ Monthly EMI: BDT 16,968 · Total Payable: BDT 610,835 · Total Interest: BDT 110,835
// 100% client-side. No backend. Deterministic IEEE-754 rounding.
Interactive Engine · Live in Browser

Deterministic Loan Amortization

Compute exact Equal Monthly Installments (EMI), principal allocation, and interest cost in real time with zero server latency.

Monthly EMI BDT 16,968 Fixed monthly payment
Total Interest BDT 110,835 18.1% of principal
Total Payable BDT 610,835 Over 36 monthly installments
Principal: BDT 500,000 (82%)
Interest: BDT 110,835 (18%)
Modular Architecture

Three Dedicated Packages. Zero External Dependencies.

FinEngine decouples mathematical precision from UI rendering, giving fintech builders auditable primitives for browsers, Node.js, and edge runtimes.

@finengine/math

Deterministic Loan & Amortization Math

Equal Monthly Installments (EMI), reducing balance, flat interest, and compound schedules computed with pure mathematical determinism.

import { amortize } from '@finengine/math';

const plan = amortize({ principal: 500000, annualRate: 13.5, months: 36 });
// plan.monthlyPayment → 16968 (Exact integer rounding)
// plan.schedule[0]    → { principal: 11343, interest: 5625, balance: 488657 }
Precision Guarantee

Eliminates IEEE-754 Float Drift

Standard JavaScript float math accumulates rounding errors that break ledger balance during iterative calculations.

Standard JS 0.1 + 0.2 === 0.30000000000000004 Drift
FinEngine exactSum(0.1, 0.2) === 0.300000 Exact
@finengine/core · BDT

BDT Currency & Notation Primitives

Built-in South Asian numbering (Lakh / Crore), BDT symbol conventions, and regulatory loan-fee deductions for microfinance and retail banking.

5,00,000 (Lakh) ⇄ 500,000 (ISO)
@finengine/ui

Enterprise-Ready Banking UI Primitives

Production-ready repayment tables, borrower burden ratio meters, and schedule summary components for modern dashboards.

In-Browser Sandbox · Zero Server Latency

Interactive Precision Playground

Live TypeScript scratchpad running directly in your browser. Edit formulas, change loan variables, and audit mathematical precision against standard IEEE-754 drift in real time.

float-drift.ts
0.03 ms · Client-Side Run
INPUT / SCRATCHPAD (EDITABLE) Edit values freely · Auto-runs on type
UTF-8 TypeScript / JavaScript 0 Backend Requests
OUTPUT & AUDIT CONSOLE Deterministic Sandbox
Zero Rounding Error Guarantee Client-side Private