https://github.com/untemps/loan-schedule
Class to generate a schedule of monthly loan payments.
https://github.com/untemps/loan-schedule
Last synced: 3 months ago
JSON representation
Class to generate a schedule of monthly loan payments.
- Host: GitHub
- URL: https://github.com/untemps/loan-schedule
- Owner: untemps
- License: mit
- Created: 2021-04-05T15:18:36.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-04-21T20:47:59.000Z (about 4 years ago)
- Last Synced: 2025-02-20T04:45:54.215Z (4 months ago)
- Language: TypeScript
- Size: 332 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# @untemps/loan-schedule
Class to generate a schedule of monthly loan payments.
It has been built with a single purpose in mind so far, but features will be added in the next fews weeks.
Don't hesitate to contact the team if you think about a specific usage we may address.

## Installation
```bash
yarn add @untemps/loan-schedule
```## Usage
Import `LoanSchedule`:
```javascript
import { LoanSchedule } from '@untemps/loan-schedule'
```Create an instance of `LoanSchedule` passing three objects:
```javascript
// Settings object that describes the properties of the loan (see below "Loan Settings")
const loanSettings = {
amount: 79950, // Amount of the loan in any currency
term: 25, // Loan term in years
interestRate: 2, // Interest rate in percentage
insuranceRate: 0.5, // Insurance rate in percentage
}// List of amortizations monthly paid until the term of the loan (see below "Loan Amortizations")
const loanAmortizations = [
{
label: 'Rent', // Label of the amortization.
value: 600, // Amount of the maortization.
type: LoanScheduleAmortizationType.CREDIT, // Type of the amortization: "credit" or "debit"
},
{
label: 'Payment',
type: LoanScheduleAmortizationType.DEBIT,
compute: LoanScheduleCompute.PAYMENT, // Computation method of the amortization (optional). That means the amount has to be automatically calculated by the class. "payment" and "insurance" are available so far.
},
{
label: 'Property Tax',
value: 30,
rate: 5, // Yearly inflation rate of the amortization (optional).
type: LoanScheduleAmortizationType.DEBIT,
},
]// Configuration of the output (see below "Configuration")
const config = {
headers: {
year: {
label: 'Année',
},
balance: {
label: 'Solde',
},
},
}const schedule = new LoanSchedule(loanSettings, loanAmortizations, config);
```### Constructor parameters
| Parameter | Type | Description |
| --------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------|
| loanSettings | LoanScheduleSettings | Settings object that describes the properties of the loan (see below **"Loan Settings"**) |
| loanAmortizations | LoanScheduleAmortization[] | List of amortizations monthly paid until the term of the loan (see below **"Loan Amortizations"**) |
| config | LoanScheduleConfig | Configuration of the output (see below **"Configuration"**) |### Loan Settings
Settings object that describes the properties of the loan
#### LoanScheduleSettings type
| Property | Type | Description |
| --------------------- | --------------------------- | ---------------------------------------------------------------------------------------------------|
| amount | number | Amount of the loan in any currencyAmount of the loan in any currency |
| term | number | Loan term in years |
| interestRate | number | Interest rate in percentage |
| insuranceRate | number | Insurance rate in percentage |### Loan Amortizations
List of amortizations monthly paid until the term of the loan
#### LoanScheduleAmortization type
| Property | Type | Description |
| --------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| label | string | Label of the amortization |
| value | number | Monthly amount of the amortization |
| rate | number | Yearly inflation rate of the amortization (optional). |
| type | LoanScheduleAmortizationType | Type of the amortization: "credit" or "debit" |
| compute | LoanScheduleCompute | Computation method of the amortization (optional). That means the amount has to be automatically calculated by the class. "payment" and "insurance" are available so far. |### Configuration
The configuration object allows to change the output to reflect your specific needs.
#### LoanScheduleConfig type
| Property | Type | Description |
| --------------------- | ----------------------------- | --------------------------------------------------------|
| headers | | |
| --- payment | | |
| ------- label | string | Label of the payment amortization |
| --- insurance | | |
| ------- label | string | Label of the insurance amortization |## Development
A demo can be served for development purpose on `http://localhost:10001/` running:
```
yarn dev
```