npm-installment-plan

installment-plan

Installment and disbursement plan calculator for JavaScript/Node.js.

This package provides 3 main functions:

Install

npm install installment-plan

Runtime Notes

Quick Start

import {
  CalculateInstallmentPlan,
  CalculateInstallmentPlan_DE,
  CalculateDisbursementPlan,
} from "installment-plan";

API

1) CalculateInstallmentPlan

CalculateInstallmentPlan(
  DISBURSEMENTDATE,
  PAYMENTFIRSTDATE,
  PAYMENTDUEDAY,
  Principal,
  PaymentAmount,
  TopupAmt = 0,
  TopupStart = 1,
  countInstallment = 0,
)

Parameters:

Returns:

Date constraints:

Example:

import { CalculateInstallmentPlan } from "installment-plan";

const DISBURSEMENTDATE = new Date(2023, 9, 25);
const PAYMENTFIRSTDATE = new Date(2023, 10, 24);
const PAYMENTDUEDAY = 24;
const Principal = 500000;

const PaymentAmount = [
  { from: 1, to: 12, installment: 2300, IntRate: 0.0239 },
  { from: 13, to: 24, installment: 2300, IntRate: 0.0414 },
  { from: 25, to: 36, installment: 2300, IntRate: 0.0414 },
  { from: 37, to: 120, installment: 2300, IntRate: 0.0594 },
];

const plan = CalculateInstallmentPlan(
  DISBURSEMENTDATE,
  PAYMENTFIRSTDATE,
  PAYMENTDUEDAY,
  Principal,
  PaymentAmount,
);

console.log(plan[0]);

2) CalculateInstallmentPlan_DE

CalculateInstallmentPlan_DE(Principal, PaymentAmount)

Parameters:

Behavior:

Returns:

Example:

import { CalculateInstallmentPlan_DE } from "installment-plan";

const plan = CalculateInstallmentPlan_DE(100000, [
  { from: 1, to: 12, installment: 9000, IntRate: 0.08 },
]);

console.log(plan.length);

3) CalculateDisbursementPlan

CalculateDisbursementPlan(DISB, PA, PAYMENTFIRSTDATE, PAYMENTDUEDAY)

Parameters:

Behavior:

Returns:

Example:

import { CalculateDisbursementPlan } from "installment-plan";

const PAYMENTFIRSTDATE = new Date(2025, 4, 6);
const PAYMENTDUEDAY = 6;

const PA = [
  { from: 1, to: 3, installment: 11040, IntRate: 0.0888 },
  { from: 3, to: 60, installment: 11040, IntRate: 0.1199 },
];

const DISB = [
  { date: new Date(2025, 3, 25), amount: 230000 },
  { date: new Date(2025, 3, 25), amount: 160000 },
  { date: new Date(2025, 3, 28), amount: 100000 },
  { date: new Date(2025, 3, 28), amount: 10000 },
];

const plan = CalculateDisbursementPlan(
  DISB,
  PA,
  PAYMENTFIRSTDATE,
  PAYMENTDUEDAY,
);

console.log(plan[0]);

Output Fields

Each row in the resulting schedule contains:

Development

Install dependencies:

npm install

Run tests:

npm test

Run coverage:

npm run cv

License

MIT