Skip to content

Inspired by https://www.vertex42.com/Calculators/credit-card-payment-calculator.html this module creates a credit card payment schedule. This is useful when trying to understand the total cost with paying off a credit card while making minimum payments.

License

Notifications You must be signed in to change notification settings

alexkates/credit-card-payment-calculator

Repository files navigation

Credit Card Payment Calculator

NPM Version Build Status Downloads Stats

Inspired by Vertex 42 Credit Card Payment Calculator this module creates a credit card payment schedule. This is useful when trying to understand the total cost with paying off a credit card while making minimum payments.

Installation

npm i credit-card-payment-calculator

Usage

CommonJS

const { createPaymentSchedule } = require('credit-card-payment-calculator');

const schedule = createPaymentSchedule({
    balance: 10000,
    interestRate: .219,
    includePayments: true,
    minPaymentForLowBalance: 25,
    minPaymentPercentOfBalance: .01,
});

console.log(schedule);

ESM

import { createPaymentSchedule } from 'credit-card-payment-calculator';

const schedule = createPaymentSchedule({
    balance: 10000,
    interestRate: .219,
    includePayments: true,
    minPaymentForLowBalance: 25,
    minPaymentPercentOfBalance: .01,
});

console.log(schedule);

Request Object

export type CreatePaymentScheduleRequest = {
  /**
   * The current credit card balance.
   * e.g., 10000
   */
  balance: number;

  /**
   * Set to true to include all payments.
   * Defaults to false.
   */
  includePayments?: boolean;

  /**
   * The annualized interest rate.
   * e.g., .129
   */
  interestRate: number;

  /**
   * The percent of balance that makes up the principal portion.
   * of the payment
   * e.g., .01
   */
  minPaymentPercentOfBalance: number;

  /**
   * When the balance drops below this number, use this as the payment.
   * e.g., 25
   */
  minPaymentForLowBalance: number;
};

Response Object

export type PaymentSchedule = {
  /**
   * The total payment due for the first payment in the schedule.
   * e.g., 282.50
   */
  firstPaymentAmount: number;

  /**
   * Total number of payments until the balance is paid off in full.
   * e.g., 299
   */
  monthsToPayOff: number;

  /**
   * The acutal payments that make up the complete schedule.
   */
  payments?: Payment[];

  /**
   * Total interest to be paid over the lifetime of the schedule.
   * e.g., 17185.56
   */
  totalInterestPaid: number;

  /**
   * Total principal to be paid over the lifetime of the schedule.
   * e.g., 10000.00
   */
  totalPrincipalPaid: number;

  /**
   * Total amount (interest and principal) to be paid over the lifetime of the schdule.
   * e.g., 27185.56
   */
  totalRepaymentAmount: number;
};

Develop

npm i
npm test # or npm run test:watch

Contributing

  1. Fork https://github.com/alexkates/credit-card-payment-calculator
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Bump the SemVer (npm version major|minor|patch)
  5. Push to the branch (git push origin feature/fooBar)
  6. Create a new Pull Request

Meta

Alex Kates – @thealexkates

Distributed under the MIT license. See this license file for more information.

About

Inspired by https://www.vertex42.com/Calculators/credit-card-payment-calculator.html this module creates a credit card payment schedule. This is useful when trying to understand the total cost with paying off a credit card while making minimum payments.

Topics

Resources

License

Stars

Watchers

Forks