Home

NPFinancial.jl Documentation

Functions

NPFinancial.pvFunction.

Compute the present value given the future value fv, an interest rate rate and a fixed periodic payment pmt over a number of periods nper. The payment is expected to be paid at the beginning of each period (:begin) or :end of the period, as specified in the when argument.

source
NPFinancial.fvFunction.

Compute the future value given the present value pv, an interest rate rate that is compounded once per period, over nper number of periods. A fixed payment pmt may be specified in the when argument, which is paid either at the beginning of each period (:begin) or :end of the period.

Examples

julia> fv(0.05, 1, 0, -100)
105.0

julia> fv(0.05, 2, 0, -100)
110.25
source
NPFinancial.pmtFunction.

Compute the payment given the present value pv, an interest rate rate that is compounded once per period, over nper number of periods, such that at the end of the last period the value becomes fv. The payment is expected to be paid at the beginning of each period (:begin) or :end of the period, as specified in the when argument.

Examples

Let's say I have need to repay a mortage loan with amount 300000 (present value) with monthly interst rate of 4.25% over the next 30 years. What would be my monthly payment?

julia> pmt(0.0425/12, 30*12, 300000)
-1475.8196732384283
source
NPFinancial.nperFunction.

Compute how many periods the present value pv may accrue/repaid till the future value fv given a specific interest rate rate and a fixed payment pmt. The payment is expected to be paid at the beginning of each period (:begin) or :end of the period, as specified in the when argument.

source
NPFinancial.ipmtFunction.

Compute the interest component of the periodic payment. This useful for any loan that has a repayment schedule.

Examples

Let's say I have need to repay a mortage loan with amount 300000 (present value) with monthly interst rate of 4.25% over the next 30 years. What would be the interest component of my monthly payment? Initially, the interest component is a large part of the payment but towards the end, it would be a smaller portion as illustrated below for periods 1, 2, 3, 358, 359, and 360:

julia> pmt(0.0425/12, 30*12, 300000)
-1475.8196732384283

julia> ipmt.(0.0425/12, [1,2,3,358,359,360], 30*12, 300000)
6-element Array{Float64,1}:
 -1062.5    
 -1061.04   
 -1059.57   
   -15.5702 
   -10.3984 
    -5.20841
source
NPFinancial.ppmtFunction.

Compute the principal component of the periodic payment. This useful for any loan that has a repayment schedule.

Examples

julia> pmt(0.0425/12, 30*12, 300000)
-1475.8196732384283

julia> ppmt.(0.0425/12, [1,2,3,358,359,360], 30*12, 300000)
6-element Array{Float64,1}:
  -413.32 
  -414.784
  -416.253
 -1460.25 
 -1465.42 
 -1470.61 
source
NPFinancial.rateFunction.

Compute interest rate given present value pv, future value fv, and fixed periodic payment pmt over a number of periods nper.

This implementation uses Newton's iteration until the change is less than 1e-6. Newton's rule is

r_{n+1} = r_{n} - g(r_n)/g'(r_n)

where

  • g(r) is the formula

  • g'(r) is the derivative with respect to r.

Examples

julia> rate(1, 0, -100, 101)
0.010000000000000155
source
NPFinancial.npvMethod.

Compute the Net Present Value (NPV) of a cash flow series values given an internal rate of return rate.

The (fixed) time interval between cash flow "events" must be the same as that for which rate is given (i.e., if rate is per year, then precisely a year is understood to elapse between each cash flow event). By convention, investments or "deposits" are negative, income or "withdrawals" are positive; values must begin with the initial investment, thus values[1] will typically be negative.

Examples

julia> npv(0.281,[-100, 39, 59, 55, 20])
-0.00847859163845488    

Reference

  • L. J. Gitman, "Principles of Managerial Finance, Brief," 3rd ed., Addison-Wesley, 2003, pg. 346.

source
NPFinancial.irrMethod.

Calculate internal rate of return given an array of cash flow values (nearest one first)

Examples

julia> irr([-100, 101])
0.010000000000000009
source
NPFinancial.mirrMethod.

Compute the modified internal rate of return (MIRR) given a series of cash flows, a finance_rate (interest rate paid on the cash flows) and reinvest_rate (interest rate received on the cash flows upon reinvestment).

source

Index