Finance(PV, FV, Pmt, i, n, [mode=0])

PV
Present Value

FV
Future Value

Pmt
Payment amount per period

i
Interest rate (in %) per period

n
Number of periods

[mode=0]
mode=0 indicates an ordinary annuity (payments end of the month). This is the default mode and should not be given.
mode=1 indicates an annuity due (payments beginning of the month)

Description

This is a simple financial function to calculate loan or investments. In case of loan, Pmt is a positive value. In case of investments, Pmt is a negative value.

Fill in the known values in the indicated order and use any variable name for the unknown. In the examples below, the unknown is indicated with it's own name but you can use any variable name.

Based on the examples from Stan Brown, Oak Road Systems.

Examples


Assume you want to set apart $50 at the end of each month for your child starting the same month as the child was born. How much will be available if the child turns 19 years old. Assume an interest rate of 5% compounded monthly.

Finance(0, FV, -50, 5/12, 18*12)

You have a $18,000 car loan at 14.25% per year for a period of 36 months. Every month you pay $620. How big is the payoff amount after 24 months?

Finance(18000, FV, 620, 14.25/12, 24)

You are buying a $250,000 house, with 10% down, on a 30-year mortgage at a fixed rate of 7.8%. What is the monthly payment?

Finance(225000, 0, Pmt, 7.8/12, 30*12)

If you loan $3500 at 6% rate and and you pay back $100 per month. How many months do you have to pay?

Finance(3500, 0, 100, 6/12, n)

In the above example, you will make payments for 38 month. How much will you pay for the last month?

Finance(3500, FV, 100, 6/12, 38)

If you deposit $100 per month over 5 years at 6% interest, how much money will you have at the end?

Finance(0, FV, -100, 6/12, 60)

You have $15,000 in a 5% savings account, which is compounded monthly. How long can you withdraw $100 a month?

Finance(15000, 0, 100, 5/12, n)

You want to purchase a 20-year annuity that will pay $500 a month. If the guaranteed interest rate is 4%, how much will the annuity cost?

Finance(PV, 0, 500, 4/12, 20*12)

On the same day every year, you put $2000 into stocks. If the market rises 8% a year, how many years will it take you to accumulate $40,000?

Finance(0, 40000, -2000, 8, n)

If you deposit $300 at the beginning of each month over 6 years at 10% interest, how much money will be in the fund at the end?

Finance(0, FV, -300, 10/12, 72, 1)

The monthly rent on an apartment is $950 payable at the beginning of the month. If the current interest is 12% compounded monthly, what single payment 12 months in advance would be equal to a year's rent.

Finance(PV, 0, 950, 12/12, 12, 1)

To obtain an amount of $3,000 ten years from now, earning 10% annually, what amount would have to be invested on a yearly basis in an annuity due form?

Finance(0, -3000, Pmt, 10, 10, 1)

The time $1,500 is needed and you know in advance that you have 10 years to obtain it. What annual interest rate would a $100 annuity due have to earn for you to achieve this goal?

Finance(0, 1500, -100, i, 10, 1)

You are doing a one time investment of $2,500. What is accumulated value after 10 years at a fixed interest rate of 5%?

Finance(2500, FV, 0, 5, 10)

You need $19,500 within 5 years from now. How much do you need to deposit today at a fixed interest rate of 3.25%?

Finance(PV, 19500, 0, 3.25, 5)

What interest rate would be needed to receive $20,000 after 20 years when you deposit $8,000 now?

Finance(8000, 20000, 0, i, 20)

References

http://oakroadsystems.com/math/loan.htm
Using MathStudio
The Basics
1. Introduction
2. Trigonometric Functions
3. Special Values
4. Lists
5. Matrices
6. Algebra
7. Calculus
8. Fourier Analysis
9. Units
10. Base Conversions
11. Regression Analysis
12. Natural Language
13. Constants
14. Dynamic Variables
Operators
1. Basic Operators
2. Double Power Operator
3. Comparison Operators
4. Logical Operators
5. Compound Assignment Operators
6. Type Comparison Operators
7. Size Operator
8. Range Operator
9. Transformation Operator
10. Index Operator
11. Union Operator
12. Intersection Operator
13. Difference Operator
14. Double Modulo Operator
15. Matrix Operator
16. Matrix Size Operator
17. Angle Operator
18. Choose Operator
19. String Concatenation Operator
20. Conditional Operator
21. Append Operator
22. Element Operator
Graphing
1. 2D Graphing
2. Plot Styles
3. Min, Max and Zero Values
4. 3D Graphing
5. Multiple Plots
6. Color Names
7. Time Graphing
Scripting Language
Variables
1. Creating Variables
2. Unicode Characters
3. Variable Functions
4. Strings
5. Wildcards
Scripts
1. Creating Scripts
2. Semicolons
3. Comments
4. Variable Controls
5. Conditional Statements
6. For-In Loops
7. While Loops
8. Timing
9. Objects
10. Working with JSON
Functions
A
abs(z)
AiryAi(z)
AiryBi(z)
AlternatingSeries(n, [terms])
Angle(A, B)
Animate(variable, start, end, [step], [value], [fps])
Apart(f(x), x)
Append(expression1, expression2)
Arg(z)
B
BarPlot(list1, frequency1, ...)
Bernoulli(n, [z])
BesselI(v, z)
BesselJ(v, z)
BesselK(v, z)
BesselY(v, z)
Beta(m, n)
Binomial(n, r)
BinomialCDF(n, p, x)
BinomialPDF(n, p, x)
BodePlot(function, variable, minimum, maximum, mode)
BoxPlot(x, [frequency1], [x2], [frequency2], ...)
Button(name, [list], [value])
C
Call(function, parameter1, parameter2, ...)
Caps(string, index, [mode])
Catalan(n)
Ceil(z)
cFrac(n, [terms])
Char(x)
ChebyshevT(n, z)
ChebyshevU(n, z)
CheckBox(variable, [value])
Chi(z)
ChiSquareCDF(lower, upper, df)
ChiSquarePDF(x, df)
Cholesky(A)
Choose(test1, value1, test2, value2, ...)
Ci(z)
Clear(variable, ...)
clip(x, [min], [max])
Coefficient(f(x), x, degree)
coFactor(matrix, i, j)
Command(setting)
Conj(z)
ContourPlot(expression, ...)
Convergents(n, [mode=0], [terms])
Cross(A, B)
CubicFit([x], y)
CubicFitModel([x], y)
CubicFitPlot([x], y)
Curl(vector, [varlist], [mode])
CylindricalPlot3D(expression, ...)
D
D(f(x), x, [n])
Date(letter)
Dawson(z)
Degree(expression)
DEGtoDMS(angle, [digits])
Delete(expression, position, [length])
Denominator(expression)
Det(A)
Diff(f(x), x)
DiGamma(z)
DiLog(z)
Dirichlet_Eta(z)
Dirichlet_Lambda(z)
Divergence([varlist], vector, [mode])
Divisors(n)
DivisorSigma(n)
Dot(A, B)
DSolve(equation, dependent(independent), values, mode=1)
Duf(function, [varlist], [point], [direction])
dynamic(name, value)
E
Ei(z)
Eigenvalues(A)
Eigenvectors(A)
Else If(condition)
Erf(z)
Erfc(z)
Error(string)
Euler(n, [z])
Eulerian(n, k)
Eval(function, variable, value)
Exp(z)
Expand(expression)
ExpConvert(expression)
ExpFit([x], y)
ExpFitModel([x], y)
ExpFitPlot([x], y)
ExponentialFit([x], y)
ExponentialFitModel([x], y)
ExponentialFitPlot([x], y)
Extract(expression, position, [length])
F
Factor(expression)
Factorial(n)
Fcdf(lower, upperbound, numerator, denominator)
fDiff(f(x,y,z,..), (x,y,z,...))
Fibonacci(n, [z])
Finance(PV, FV, Pmt, i, n, [mode=0])
FindFit(function, variable, [x], y)
FindFitModel(function, variable, [x], y)
FindFitPlot(function, variable, [x], y)
Flatten(matrix)
Floor(z)
FourierCos(f(x), x, w)
FourierExpSeries(f(x), x, n)
FourierSeries(f(x), x, [n], [mode])
FourierSin(f(x), x, w)
FourierTrigSeries(f(x), x, n)
fPart(z)
Fpdf(x, d1, d2)
FractalPlot(expression, ...)
FresnelCos(z)
FresnelSin(z)
FullRectSineWave(x, [T])
Function(function, parameter1, parameter2, ...)
G
Gamma(z)
GCD(n1, n2)
GegenbauerC(n, a, z)
GeoCDF(p, x)
GeoPDF(p, x)
Gradient(function, [varlist], [mode])
Gudermannian(z)
H
HalfRectSineWave(x, [T])
HankelH1(v, z)
HankelH2(v, z)
Harmonic(z)
Heaviside(x)
HermiteH(n, z)
Hessian(function, [varlist], [mode])
HRStoHMS(hours, [digits])
http(url, [filter])
Hypergeom_2F1(a, b, c, z, [mode])
I
Identity(n)
iDiff(f(x,y,z,..), dependant_variables, independant_variables)
If(condition)
iLaplace(F(s), s)
Im(z)
ImagePlot(data)
ImaginaryPart(expression)
ImplicitPlot(expression, ...)
Include(filename)
Insert(expression, item, position)
Integrate(f(x), x, [a], [b])
Inverse(A)
InverseNormal(p, [mu], [sigma])
invGudermannian(z)
iPart(z)
IsList(expression)
IsMatrix(expression)
IsNumber(expression)
IsPoly(expression, variable)
IsPrime(n)
J
Jacobian(function, [varlist], [point])
json(data, [filter])
JuliaPlot(expression, ...)
K
KelvinBei(v, z)
KelvinBer(v, z)
KelvinKei(v, z)
KelvinKer(v, z)
L
LaguerreL(n, z)
LambertW(z)
Laplace(f(t), t)
Laplacian(function, [varlist], [mode])
LCM(n1, n2)
Left(expression)
LegendreP(n, z)
LegendreQ(n, z)
Length(expression)
Li(x)
Limit(function, variable, point, [direction])
LinearFit([x], y)
LinearFitModel([x], y)
LinearFitPlot([x], y)
List(length)
ListMap(list, name, [value])
ListPlot(x, [y], [x2], [y2])
ListPlot3D(x, y, z, [x2], [y2], [z2], ...)
Ln(z)
LnFit([x], y)
LnFitModel([x], y)
LnFitPlot([x], y)
LnGamma(z)
local(name, value)
Log([n], z)
LogisticFit([x], y)
LogisticFitModel([x], y)
LogisticFitPlot([x], y)
Lucas(n, [z])
M
Matrix(rows, [columns])
MatrixLU(matrix, [mode])
MatrixMap(matrix, name, [value])
MatrixQR(A)
MatrixSVD(A)
Max(number, ...)
Mean(list)
MedianFit([x], y)
MedianFitModel([x], y)
MedianFitPlot([x], y)
Message(string)
Min(list)
Mod(m, n)
Multinomial(nList)
MultiPlot(plot1, plot2, ...)
MultiPlot3D(expression, ...)
N
nCr(n, r)
NIntegrate(f(x), x, a, b)
Norm(z)
NormalCDF(lower, upper, [mu], [sigma])
NormalPDF(x, mu, sigma)
nPr(n, r)
nPrimes(n)
nRoot(z, n, [mode])
P
ParametricPlot(expression, ...)
ParametricPlot3D(expression, ...)
Part(expression, n)
pDiff(f(x,y,z,..), dependent_variables, dependent_equations, independent_variables)
Pi_Digits(n)
Plot(expression, ...)
Plot3D(expression, ...)
Pochhammer(n, k)
PoissonCDF(mu, x)
PoissonPDF(mu, x)
PolarPlot(expression, ...)
PolyDivide(f(z), g(z))
PolyFit(pList, var)
PolyGamma(n, z)
PolyGCD(polynomial1, polynomial2)
PolyLCM(polynomial1, polynomial2, [mode=1])
PolyLog(n, z)
PowerExpand(expression)
PowerFit([x], y)
PowerFitModel([x], y)
PowerFitPlot([x], y)
Prime(n)
Primorial(n)
Product(f(n), n, start, end)
Psi(z)
Q
QuadraticFit([x], y)
QuadraticFitModel([x], y)
QuadraticFitPlot([x], y)
QuarticFit([x], y)
QuarticFitModel([x], y)
QuarticFitPlot([x], y)
Quotient(f(x), g(x))
R
Random(min, max, [size1], [size2])
Re(z)
RealPart(expression)
Remainder(f(x), g(x))
Replace(expression, old, new)
Reshape(matrix)
Return(expression)
Reverse(list)
Right(expression)
RK4(function, t, y, a, b, y0, N=10)
RK45(function, t, y, a, b, y0, Tol=10E-5, hmax=0.25, hmin=10E-6, N=20)
Round(number, digits)
RowReduce(A)
S
SawToothWave(x, [T])
Sequence(f(x), x, start, end, [step], [start term], [number of terms])
Series(f(z), z, n)
Shi(z)
Si(z)
Sign(z)
SimplifyFunction(expression)
SimplifyPoly(f(x)/g(x), [variable])
sin(z)
SinFit([x], y)
SinFitModel([x], y)
SinFitPlot([x], y)
Size(list)
Slider(variable, start, end, [step], [initial value])
Solve(f(x), x, [guess])
SolveSystem(equations, [variables], [guesses])
Sort(list)
SphericalPlot3D(expression, ...)
Sqrt(z)
SquareWave(x, [T])
StaircaseWave(x, [T])
StandardDeviation(list)
String(expression1, expression2, ...)
StudentTCDF(x, df)
StudentTPDF(x, df)
Sum(f(n), n, start, end)
SurfaceNormal(function, [varlist], [point])
T
Together(expression)
Trace(variable)
Transpose(A)
TriangleWave(x, [T])
TrigConvert(expression)
TrigExpand(expression)
TrigReduce(expression)
V
Variables(expression)
Variance(list)
VectorPlot(list, ...)
VectorPlot3D(list, ...)
W
While(condition)
Z
Zeta(z, [a])