The Museum of HP Calculators

# HP-48{S|SX}: Time Value of Money EQ

Copyright (C) 2002 Glen Kilpatrick

Distributed under GNU General Public License

This program is supplied without representation or warranty of any kind. The author and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.

## Description

Hewlett Packard's implementation of the Time Value of Money relies upon the following principles:

• The sign convention is that money received is positive, and money paid out is negative. Thus when you borrow money, that's positive, and your payments are negative. The same problem from the borrower's point of view would have the loan be a negative outlay, and the payments received positive.
• The time interval between the Present Value and the Future Value must be divided into one or more periods of equal size.
• Periodic payments must be of equal size, the same sign, and all occur at either the beginning or the end of the payment period.
• If payments are not all equal to each other, then one has a cash flow problem, and this program won't help (but an HP Financial calculator might).
• If some payments occur at the beginning of the payment period, and some at the end, or alternately, the time intervals are of unequal size, these problems aren't described by any implementation I know of, and you might require even more than an HP calculator....

I've adapted the HP-22S's built-in TVM equation, but with some consideration for the HP-10B's added variable P/YR. Note that as the source equation describes only the situation where payments are made at the END of each period, that I've chosen to keep this as is. If you want a BEGIN/END switch, there's always the HP-15C TVM program I've offered to the MoHPC elsewhere....

What the HP-10B's P/YR streamlines is that pesky part about dividing I by the number of payments you're making in a year, and multiplying N by same (and that BEGIN/END part doesn't hurt :) as a SHIFTed function (which I haven't implemented, as the most basic use of the 10B is the unshifted N number of periods, but you could use years instead by replacing N by N*PYR). I've also renamed variables to more match what the 10B and HP-48G know (to the extent possible, note all-purpose character "\->" :), and offer a simple, suggested startup program.

## Notes

The 48 is my absolute favorite programming machine, RPL my absolute favorite programming language. I feel about it the way that I read some do about the 41 series. Oh, a color, backlit LCD would be mighty fine to have, but the basic box contains more goodies than I'll ever use, and not a few baddies as well (my limited enthusiasm for the LS-ENTER EQUATION editor won't ring any bells). However, many of my "programs" are merely automation "one-shot's", not of general interest.

Note that this will probably work on an HP-49G, but I don't know yet, not having decided on the upgrade yet. I've heard lots of arguments re why HP didn't include bidirectional infra-red, and they don't wash with me. This is a feature I find incredibly useful on the HP-48 series (and I gathered from web postings I read once that I wasn't the only one), would have preferred they put it in anyway, have a "country disable" function for the European market, or even do as was done in the HP-39G &-40G (so we'd have an HP-50G sold only in Europe). But they didn't ask me....

Note also that it should work perfectly on an HP-48G series, but as there's already a forms-based TVM built-in (and it probably already has a BEGIN/END switch and AMORTization functionality :), it's a waste of space.

Finally, note that I prefer to group commonly used equations together in a list, then use NXEQ to cycle through them. It's a nice feature, but mostly not relevant to use of TVM, so I won't spent (further) space describing it here.

## Example

An example derived from the HP-10B's Owner's Manual (Edition 6, Part Number 00010-90037, November 1994), "5: Time Value of Money Calculations", page 53 (modified as to format, and to show key sequences on the HP-48):

```Example: A Car Loan.  You are financing a new car with a three year
loan at 10.5% annual nominal interest, compounded monthly.  The price
of the car is \$7,250.  Your down payment is \$1,500.

Part 1.  What are your monthly payments at 10.5% interest?  (Assume
your payments start one month after the purchase or at the end of the
first period.)

Set to End mode       ---> not necessary here, this won't do BEGIN mode

\->EQ                 ---> starts SOLVR (may use NXEQ to cycle to TVM)
12 PYR                ---> stores 12 payments per year
3 \RS PYR * N\->YR    ---> stores 3 years as 36 periods
10.5 I\->YR           ---> stores 10.5% per year nominal interest
7250 ENTER 1500 - PV  ---> stores loan amount (present value)
0 FV                  ---> stores future value (no balloon payment)
{LS} PMT              ---> computes monthly payment of "PMT: -186.89"

Part 2.  At a price of \$7,250.00, what interest rate is necesary to lower
your payment by \$10.00, to -176.89?

{RS} PMT              ---> recalls monthly payment to the stack
10 + PMT              ---> decreases it by \$10 to -176.89, then stores
{LS} I\->YR           ---> computes annual nominal "I\->YR: 6.75"

Part 3.  If interest is 10.5%, what is the maximum you can spend on the
car to lower your payment to \$175,00?

10.5 I\->YR           ---> (re)stores 10.5% per year nominal interest
175 +/- PMT           ---> stores preferred monthly payment
{LS} PV               ---> computes maximum loan amount PV: 5384.21
1500 +                ---> adds down payment for maximum purchase price,
6,884.21
```

Remember (as indicated on page 58 of the HP-10B manual), if you compute a PMT, 2 FIX will correctly display it. However, if you then compute other "What If's", you should correct this PMT to two digits to avoid rounding errors (note this was NOT done in Part 2 above, but when the 2 RND operation is applied, in this case you still compute I\->YR: 6.75). Equivalent HP-48 key sequences for this (one SOLVR, one not) might be:

```\RS PMT 2 RND PMT
'PMT' RCL 2 RND 'PMT' STO
```

## Program Listing

```'(PMT*100*PYR/I\->YR-
FV)*(1+I\->YR/PYR/100
)^-N-PMT*100*PYR/
I\->YR=PV'
STEQ
\<< 30.01 MENU \>> '\->EQ' STO
'EQ' RCL BYTES                         ---> # 57940d & 147
```

And after you've executed this once, you'll probably want to rearrange variables (possibly for REVIEW, an HP-48S function that was eliminated in the G series), at a minimum move \->EQ to the initial directory menu:

```{ \->EQ } ORDER
```

## Resources Used

Named variables { N I\->YR PV PMT FV PYR }, the SOLVR's (equation storage) variable EQ, and optional display format (I recommend 2 FIX).