AmortizationCalculation

Constants Summary

TypeNameSummary

The numeric constant used to identify an unlimited number of repeated events..

The numeric constant used to identify an annual period..

The numeric constant used to identify a bi-annual period (twice every year)..

The numeric constant used to identify a bi-monthly period (twice every month)..

The numeric constant used to identify a daily period..

The numeric constant used to identify a four-monthly period (once every four months)..

The numeric constant used to identify a four-weekly period (once every four weeks)..

The numeric constant used to identify a monthly period..

The numeric constant used to identify that there is no period..

The numeric constant used to identify a quarterly period (once every three months)..

The numeric constant used to identify a two-monthly period (once every two months)..

The numeric constant used to identify a two-weekly period (once every two weeks)..

The numeric constant used to identify a weekly period..

The numeric constant used to identify that the same start day should be used as the day of the month of the starting date of the event..

Methods Summary

TypeNameSummary

Adds a compound period change..

Adds a loan..

Adds a loan..

Adds a loan..

Adds a loan..

Adds a payment..

Adds a payment..

Adds a payment..

Adds a payment..

Sets a new interest rate..

Calculates the amortization schedule..

Gets the amortization schedule as a JSDataSet..

Returns the error that remains when solving for the unknown..

Returns all the amortization events - such as rate changes, loan events, payment events, compounding period changes..

Gets the rest balance after the amortization schedule..

Returns the solveForUnknown value..

Returns true if the period is valid, or false if the period is not valid..

Rounds a number up to the nearest cents..

Returns true if successful or false if the call failed..

void

Sorts the amortization events ascending by date..

Constants Details

NUMBER_UNLIMITED

The numeric constant used to identify an unlimited number of repeated events.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_ANNUALY

The numeric constant used to identify an annual period.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_BI_ANNUALLY

The numeric constant used to identify a bi-annual period (twice every year).

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_BI_MONTHLY

The numeric constant used to identify a bi-monthly period (twice every month). TODO: this period is not supported yet.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_DAILY

The numeric constant used to identify a daily period.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_FOUR_MONTHLY

The numeric constant used to identify a four-monthly period (once every four months).

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_FOUR_WEEKLY

The numeric constant used to identify a four-weekly period (once every four weeks).

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_MONTHLY

The numeric constant used to identify a monthly period.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_NONE

The numeric constant used to identify that there is no period.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_QUARTERLY

The numeric constant used to identify a quarterly period (once every three months).

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_TWO_MONTHLY

The numeric constant used to identify a two-monthly period (once every two months).

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_TWO_WEEKLY

The numeric constant used to identify a two-weekly period (once every two weeks).

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

PERIOD_WEEKLY

The numeric constant used to identify a weekly period.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

STARTDAY_NORMAL

The numeric constant used to identify that the same start day should be used as the day of the month of the starting date of the event.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
c.addPayment(500, new Date(2005, 1, 28), null, 
			plugins.amortization.AmortizationCalculation.PERIOD_DAILY, 5, 
			plugins.amortization.AmortizationCalculation.STARTDAY_NORMAL);

var c2 = plugins.amortization.newCalculation();
c2.addPayment(300, new Date(2006, 11, 24), new Date(2006, 12, 24),
			plugins.amortization.AmortizationCalculation.PERIOD_BI_MONTHLY, 
			plugins.amortization.AmortizationCalculation.NUMBER_UNLIMITED, 30);

Methods Details

addCompoundPeriodChange(newPeriod, date)

Adds a compound period change.

Parameters Number newPeriod ; Date date ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addLoan(amount, date)

Adds a loan.

Parameters Number amount ; Date date ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addLoan(amount, firstDate, lastDate, period)

Adds a loan.

Parameters Number amount ; Date firstDate ; Date lastDate ; Number period ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addLoan(amount, firstDate, lastDate, period, number)

Adds a loan.

Parameters Number amount ; Date firstDate ; Date lastDate ; Number period ; Number number ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addLoan(amount, firstDate, lastDate, period, number, startday)

Adds a loan.

Parameters Number amount ; Date firstDate ; Date lastDate ; Number period ; Number number ; Number startday ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addPayment(amount, date)

Adds a payment.

Parameters Number amount ; Date date ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addPayment(amount, firstDate, lastDate, period)

Adds a payment.

Parameters Number amount ; Date firstDate ; Date lastDate ; Number period ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addPayment(amount, firstDate, lastDate, period, number)

Adds a payment.

Parameters Number amount ; Date firstDate ; Date lastDate ; Number period ; Number number ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addPayment(amount, firstDate, lastDate, period, number, startday)

Adds a payment.

Parameters Number amount ; Date firstDate ; Date lastDate ; Number period ; Number number ; Number startday ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

addRateChange(newRate, date)

Sets a new interest rate.

Parameters Number newRate ; Date date ;

Returns Boolean

Sample

var c = plugins.amortization.newCalculation();
c.addRateChange(r, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
c.addPayment(500, new Date(2005, 1, 28), null, 12, 5, 31);

calculateAmortizationSchedule()

Calculates the amortization schedule.

Returns Boolean

Sample

plugins.amortization.calculateAmortizationSchedule();

getAmortizationSchedule()

Gets the amortization schedule as a JSDataSet.

Returns JSDataSet

Sample

plugins.amortization.getAmortizationSchedule();

getError()

Returns the error that remains when solving for the unknown. Please note that the error should be less or equal to 1E-8 - otherwise, the solveForUnknown value is incorrect.

Returns Number

Sample

var c = plugins.amortization.newCalculation();
// sets the rate to -1 for unknown.
c.addRateChange(-1, new Date(2005, 0, 1));
c.addCompoundPeriodChange(12, new Date(2005, 0, 1));
c.addLoan(2000, new Date(2005, 0, 1));
var lastDate = null;
var period = 12;
var number_count = 5;
var startday = 31;
c.addPayment(500, new Date(2005, 1, 28), lastDate, period,number_count, startday);
// solves for the interest rate.
c.solveForUnknown();
// gets the interest rate and the error in the calculation.
// which should be small (otherwise the calculation did
// not converge for some reason.
var r = c.getUnknown();
var e = c.getError();

getEvents()

Returns all the amortization events - such as rate changes, loan events, payment events, compounding period changes.

Returns JSDataSet

Sample

plugins.amortization.getEvents();

getRestBalance()

Gets the rest balance after the amortization schedule.

Returns Number

Sample

var rb = plugins.amortization.getRestBalance();

getUnknown()

Returns the solveForUnknown value.

Returns Number

Sample

plugins.amortization.getUnknown();

isValidPeriod(period)

Returns true if the period is valid, or false if the period is not valid.

Parameters Number period ;

Returns Boolean

Sample

var v_period = plugins.amortization.isValidPeriod(12);

roundMoney(amount)

Rounds a number up to the nearest cents.

Parameters Number amount ;

Returns Number

Sample

//rounds the number up to 34.35
var rm = plugins.amortization.roundMoney(34.349384);

solveForUnknown()

Returns true if successful or false if the call failed.

Returns Boolean

Sample

plugins.amortization.solveForUnknown();

sortEvents()

Sorts the amortization events ascending by date.

Returns void

Sample

plugins.amortization.sortEvents();

Last updated