Present Value (PV)

Compute the present value. 
 syse.pv(rate, nper, pmt, fv=0, when='end')
Compute the present value.
 Given:
a future value, fv
an interest rate compounded once per period, of which there are
nper total
a (fixed) payment, pmt, paid either
at the beginning (when = {‘begin’, 1}) or the end (when = {‘end’, 0}) of each period
 Returns:
the value now
 Parameters:
rate (array_like) – Rate of interest (per period)
nper (array_like) – Number of compounding periods
pmt (array_like) – Payment
fv (array_like, optional) – Future value
when ({{'begin', 1}, {'end', 0}}, {string, int}, optional) – When payments are due (‘begin’ (1) or ‘end’ (0))
 Returns:
Present value of a series of payments or investments.
 Return type:
ndarray, float
Note
 The present value is computed by solving the equation::
fv + pv*(1 + rate)**nper + pmt*(1 + rate*when)/rate*((1 + rate)**nper  1) = 0
 or, when
rate = 0
:: fv + pv + pmt * nper = 0
for pv, which is then returned.
Examples:
A German bond that pays annual coupons of 4.5%, has a par value of €1,000, and a YTM of 3.9%. Assuming there are 19 years until maturity, what is the current price of this bond?
import numpy as np import syse as syse face_value=1000 coupon_value=4.5 num_coupons=19 ytm=3.9 current_price = syse.pv(0.039, 19, 45, 1000) print(f"Current price = €{abs(current_price):,.2f}") Output = Current price = €1,079.48
Gruber Corp. pays a constant $9 dividend on its stock. The company will maintain this dividend for the next 12 years and will then cease paying dividends forever (you should assume the company disappears with no extra payouts). If the required return on this stock is 10%, what is the current share price?
import numpy as np import syse as syse rate = 0.10 nper = 12 pmt = 9 share_price = syse.pv(0.10, 12, 9) print(f"Share Price = ${abs(share_price):.2f}") Output = Share Price = $61.32