Amortization_CFpub ( principal ; interest ; periods ; payment; term ; currency)
Rate this function: Average rating: 4.6 (28 votes)
Discuss this Custom Function
James Hea, James Hea
Produces the principal remaining at the end of a fixed rate amortization period.
|Amortization_CFpub (171000 ; 6.95 ; 300 ; 60; "BMD" )
Use this function to calculate the Principal at the end of a fixed payment period in a mortgage.
This is a tail-recursion function that accepts the following parameters:
principal - This value is the opening balance of the mortgage.
interest - This is the annual interest rate entered in full numbers i.e. 6.95 for 6.95%.
periods - The function is expecting this to be in months i.e. 12 for one year 360 for 30 years.
payment - Make sure to supply the payment using the same principal, interest and periods.
term - This value is supplied externally and should not exceed the total number of periods.
Notes: The interest is divided by 12 to derive the monthly interest rate and then by 100 to derive the actual percentage.
Author: James Hea, 2010
p = principal;
i = interest/12/100;
d = periods;
c = Case(
currency = "BMD"; 365/365;
currency = "USD" ; 365/360;
start = 1;
m = payment;
r = p - ((p - m) + p * i * c)
term > d ; "" ;
term > 1 ; Amortization_CFpub( p - r; i ; d ; m ; term - 1; currency) ;
) // end Case
; 2 ) // end Round
) // end let
Note: these functions are not guaranteed
or supported by BrianDunning.com. Please contact the individual
developer with any questions or problems.
This is my Custom Function and I want to
There are no comments yet. Be the first to post a comment about this Custom Function! Please try to keep it brief & to the point. Anyone can post:
Newest Custom Functions:
||ExcludeValues(MyList ; Out)
||(Wed, Mar 21, 7:23am)
||PreviousMonthEndDate ( myDate )
||(Wed, Mar 07, 3:35am)
||(Wed, Mar 07, 3:33am)
||FmTableFields ( tableName ; fieldsInclude ; fieldsExclude ; classExclude ; typeExclude ; prefixExclude )
||(Fri, Mar 02, 6:32am)
||sql.getTable ( fullyQualifiedFieldObject )
||(Thu, Feb 22, 8:36am)
||sql.getField ( fullyQualifiedFieldObject )
||(Thu, Feb 22, 8:34am)
||FilterOut ( ListA ; ListB )
||(Wed, Feb 21, 6:11pm)
||Char0 ( )
||(Sun, Feb 18, 2:35am)