Script:
~addons/finance/finexec/basicfinance/lease.ijs
Contributor: William Szuch
Updated: 2022 6 25
Depend: ~addons/finance/finexec/ipm/mwrr.ijs
~addons/finance/finexec/basicfinance/compound.ijs
Definitions: loaded to locale base
Status: dev
Script source:
lease.ijs
Definitions for lease calculation problems
with
a constant effective interest rate over the lease term.
No rounding in calculations unles specified in the definition.
A yearly nominal interest rate payable monthly
is used in the calculation.
Lease payments are monthly in arrears with a ballooon
payment at the end of the lease with the final monthly payment.
For example a 36 month lease will have:
36 monthly payments 1 … 36 and
balloon payment at the end of month 36
Lease arrangements can have an Up Front Fee.
Definitions
f (dyad)
Form: explicit
Depend: an
Definition to calculate the difference between loan amount
and the present value of lease monthly payments.
Used in leaseR with bisection to
Solve f(x) = 0
Syntax
(L;B;T;P)f(E)
L = loan amount
B = balloon payment - residual amount
T = term of lease in months(interger)
P = monthly lease payment
E = monthly effective interest rate
Example
(30000;10000;36;616.56)f(0.0358%12)
leasePmt (monad)
Form: explicit
Depend: an
Calculate the monthly lease repayments for a lease.
Lease payments are assumed to be paid in arrears with a final
residual
balloon payment at the end of the term.
synrax: ~~~ leasePmt(L;B;R;T) L = loan amount B = balloon payment -
residual amount R = yearly nominal interest rate payable monthly T =
term of lease in months(interger) ~~~
Example
leasePmt(20000;10000;0.075;36)
373.562
leasePmt(30000;10000;0.0358;36)
616.584
leasePmtShd (monad)
Form: explicit
Depend: leasePmt
loanBal
Calculate the monthly lease repayment schedule.
Interest and monthly payment paid at end of the month.
Syntax
([Opt])leasePmtShd(L;B;R;T)
[Opt] = optional result display:
default numeric table with columns:
Opt = 1 boxed table with header
'Month';'Bal Start';'Eff Rate';'Int';'Pmt';'Bal End'
L = loan amount
B = balloon payment - residual amount
R = yearly nominal interest rate payable monthly
T = term of lease in months(interger)
Example
leasePmtShd(20000;10000;0.075;36)
(1)leasePmtShd(30000;10000;0.0358;36)
leaseR (monad)
Form: explicit
Depend: f
bisection
Calculate the yearly nominal interest rate payable monthly
for a lease.
Using the Bisection Method.
The result is a two item list:
(1) monthly effective inteerest rate
(2) value of f(x) using the approximation ie: error
Syntax
(L;B;T;P)leaseR(A;B:[Tol])
L = loan amount
B = balloon payment - residual amount
T = term of lease in months(interger)
P = monthly lease payment
A,B = lower and upper values of initial range
[TOL] = default tolerence for solution 0.01
Example
(20000;10000;36;373.56)leaseR(0;0.1;0.001)
0.00624986 0.000287248
(30000;10000;36;616.56)leaseR(0;0.05;0.001)
0.00298219 _0.000491984