FinFunction 2.011 for RPN

Important: Significant changes were made to the user interface for version 2.0. Please read the What's New section.

Download FinFunctions (includes this html file)
Table of Contents

Introduction
    Registration Fee
    Legal Stuff
    What's New (revision history)
Documentation
    Loading
    Commands
        Conventions
        Interest (I)
        Payment Amount (pm)
       Present Value (pv)
        Future Value (fv)
        Number of periods / years (n)
        Payments per year (p/y)
Modes
        Amortization (amrt)
        Clear (clr)
        View
        NPV
        IRR

        Examples
 


  INTRODUCTION

FinFunction is an add-on module to RPN 2.2 (or later version). RPN is a great Reverse Polish Notation calculator for your Pilot. If you don't have it yet, you can find it at http://kale.ee.cornell.edu/pilot/rpnMain.html. If you use it, remember to register.

FinFunctions are a set of financial functions for RPN 2.2 (works better with version 2.3) similar to those available on HP calculators or your favorite spreadsheet.  Functions available are IRR, NPV, and lease / loan / Bond analysis, including amortization .

Registration 

Fee:  If you find FinFunctions useful, please donate $5 to your favorite charity organization.  If you don't have a favorite, feel free to use mine:

Gads Hill Center
1919 West Cullerton
Chicago, Il 60609
USA

Gads Hill Center is a family resource center serving children and their families in an underprivileged neighborhood in Chicago. Your donation is tax deductible, at least in the U.S.. Isn't this better than making me rich?

If you have any comments, suggestions or bug reports, email
fincalc@mdcp.com

Legal stuff:  These macros/functions are provided on an as-is basis. I never claimed to be a programmer (financial guy) and I take no responsibilities for errors or grossly inefficient programming.  The user assumes all risk for the use of these programs.  These macros/functions  may be freely distributed as long as they unmodified and distributed with this readme file. (C) 1997.

What's New

Version 2.011

Changed FV so solving for FV stored the result under the fv variable

Fixed bug in "N" function

Version 2.0

Lots of changes to this version of FinFunctions. Please read through this, because the user interface has changed, and if you enter variables as in version 1.1, the answers will be wrong

Version 1.1


DOCUMENTATION

Loading FinFunctions:  Run the install tool. Select FinFunctions2, and select install. RPN 2.2 or later must be installed.

There two additional menus will be added to RPN: FinFunctions 2.0 A and FinFunctions 2.0 B.

FinFunctions 2.0 A contains all the lease / loan / bond tools.

FinFunctions 2.0 B contains the IRR and NPV functions

Please note that variables are not shared between the two menus.


COMMANDS

Convention: Lower case functions set variables, Capitalized functions solve for that variable - e.g., "i" sets the annual interest rate, while "I" uses the other five variables to solve for the interest rate.

i% - Sets the annual SIMPLE (before compounding) interest rate. To enter 10%, enter "10" and press i%. Entering 0.10 sets the interest rate to 0.1%

I% - Solves for the annual SIMPLE interest rate. Requires the other values to be set (n, pm, p/y, pv, fv). Note that pv is treated by default as a cash inflow, and pm and fv are treated as cash outflows. In order to reverse the way they are treated, change the sign. See the examples for more clarity.

pm - sets the periodic payment (period set in p/y; e.g. $10 payment 12 times per year)

PM - Solve for the periodic payment given an annual interest rate (i), present value (pv), residual/future value (fv), and number of payments per year (p/y).


pv - sets present value (opening balance). A positive pv represents a cash inflow (e.g., a loan proceed)

PV - solves for present value given  an annual interest rate (i), residual/future value (fv), payment (p) and number of payments per year (p/y).


fv - sets future/residual value. A positive value is a cash outflow (e.g., bullet payment)

FV - solves for  future/residual value given a present value (pv), annual interest rate (i), payment (p) and number of payments per year (p/y).

n - Sets the number of periods or years (see mode) over which the calculation occurs. 

N - Solves for the number of periods.

p/y - sets number of payments per year; 

amrt - Calculates principal repayment, interest expense, and remaining balance (requires pv, fv, i, pmt, p/y, n). Important Note: This function will not work correctly in the begin mode. This will be a future revision.

Mode-

view - Displays values for pmt, pv, fv, p/y or i. When you press view, FinFunction will ask you to choose which variable to display.

Clear - Clears all variables (sets p/y to 1). Note - this does not change the modes.


Menu B

i% -- Sets the interest rate for the NPV function. Note: The i% variable on menu B is separate from that on menu A, and the two will not carry over.

n- Sets the number of items from the stack that NPV or IRR will use. If n=0, NPV and IRR will use all items on the stack.

NPV - This command calculates the net present value for the top n values on the stack, or if n is set to 0, for all values on the stack.  

Enter the periodic cash flows into the stack chronological order - that is, type the cash flow for year one, press enter, then the cash flow the second year, press enter, and so on...  Note that the NPV function assumes that the first CF occurs at end of the first year.  (If a CF occurs at year 0, calculate the NPV and add year 0 CF)  

Set the periodic interest rate, "i" and set "n" to the number of periods (number of cash flows).  

Press "NPV" to calculate NPV.

Because of stack size restrictions, a maximum of 38 flows can be entered.

IRR - Calculates the internal rate of return for the top n values on the stack, or if n =0, calculates the IRR for the entire stack. 

Enter the cash flows in chronological order (cash flows must be evenly spaced across time).  Set "n" to the number of periods, or zero to use the whole stack.  Because of stack size restrictions, a maximum of 38 flows can be entered.




Examples 

A quick example: You want to borrow $100 for twenty years at a 10% interest rate, paying monthly. To figure out the payment, follow these steps:

 100      pv   (This enters the present value, or principal, as $100)
 10    i     (Sets the ANNUAL interest rate to 10%)
 12        p/y  (Twelve payments per year, or monthly payments)

if the mode is set to periods(default)

 240      n    (Sets the number of periods to 240 - 12*20)
or if the mode is set to years

20 n (Sets the number of years to 20)

 0          fv   (Sets the residual value, or bullet payment to zero)

PM       (Solves for the monthly payment)

Example 2:

Your aunt promises that if you help her clean her house, she will give you $100 a year for seven years, starting this December 31. At the end of seven years, she will die and leave you her estate which will be valued at $1000. If your discount rate is 10%, how much is taking out the trash worth?

Make sure that mode is set to end

10 i (sets the discount rate to 10%)
100 pmt (sets the payment to 100)
1 p/y (one payment per year)
7 n (seven periods - in this case, years)
1000 fv (sets the future value to 1000)

PV (Solves for the present value)

Example 2b:

Actually, your Aunt will give you your first payment today. After seven payments, she will still drop dead.

Set the mode to begin, and follow the example above.

Example 3:

You take out a 20 year loan of $100,000. You have monthly payments of 965, and no bullet payment. What interest rate do you pay

Make sure that mode is set to end.
965 pm (sets the payment to 965; because it is positive, the payment is an outflow)
0 fv (sets the future value to 0)
100000pv (Sets the pv to $100,000; because the pv is positive, it is an inflow)

if the mode is set to periods:
240 n (sets the number of periods to 240; 12 * 20)

if the mode is set to years:
20 n (sets the number of years to 20)

12 p/y (Sets the number of payments per year to 12)
I% (Solves for the yearly interest rate)

Any suggestions or bug reports should be sent to email fincalc@mdcp.com