home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
f
/
fpd311.zip
/
FINPART3.TXT
< prev
next >
Wrap
Text File
|
1993-03-03
|
68KB
|
1,453 lines
Your Financial Partner
Version 3.11CPP
March 10, 1993
(c) 1986 - 1993, Marc R. Feldesman
& Flying Pig Software
All Rights Reserved
"Your Financial Partner" grew out of frustration with the
complexity and expense of many of today's financial management
programs. There is nothing in "Your Financial Partner" that an
enterprising user, armed with a solid knowledge of spreadsheet
macro programming, couldn't do in spreadsheets like Lotus 1-2-3,
Quattro Pro, or Excel. However, "Your Financial Partner"
computes answers to common financial questions in an easy to use
format. My idea was to produce a simple, menu-driven, self-
documenting, "Shareware" program that would address most of the
financial questions that ordinary people pose.
Version 3.0CPP represented the first major revision of "Your
Financial Partner" since 1989. The program was completely
rewritten in C++ and sports a new user interface that makes
better use of color and windows; it also supports a mouse. New
financial calculations include a substantially expanded set of
loan functions with a handy loan calculator that also doubles as
an annuity calculator, improved loan refinancing and loan
acceleration analysis, enhanced future value functions, and a new
set of bond calculations. Version 3.1 added a function to
calculate the annualized yield on investments. This restored
the Internal Rate of Return function, present in version 2.29,
but dropped from Version 3.0CPP. The new IRR function, tailored
specifically for security yields, allows annualized yield
calculations to be computed on time periods as short as 1 day,
and handles up to 24 positive and negative cash flows. Version
3.11 is a maintenance release that adds dates to the loan
amortization schedules. All Version 3.* releases continue to be
largely self-documenting; the manual that follows is intended to
supplement the program and provide information about possible
financial circumstances where specific functions might be useful.
Shareware: __________
"Your Financial Partner" is distributed as "Shareware".
"Shareware" is a class of software that is made accessible
through various media (local and national bulletin boards,
friends, commercial vendors) on a "try before you buy" basis. It
is not free software nor is it public domain. What distinguishes
"Shareware" from "Freeware" is that we "Shareware" authors expect
1
to be compensated for our work, unlike "Freeware" authors who
make their programs available with no expectation of
compensation. "Shareware" authors are neither altruists nor
fools. We believe that the myriad of available software packages
(public domain, freeware, shareware, and commercial) make it
nearly impossible to determine in advance whether a particular
package meets your needs. With "Shareware" you have the
opportunity to "try before you buy." A fully functional version
of "Your Financial Partner" is thus made available for your
evaluation for a reasonable length of time (30 days). If, at the
end of this 30-day trial period, you find that it meets your
needs, you are expected to register the program by mailing in the
registration form along with the proper registration fee ($29.95)
to the address listed in the back of this manual. If "Your
Financial Partner" does not meet your needs, you are expected to
erase the program from your disks and discontinue using it.
Whether you register the program or not you are free to share
this program with others provided that the entire program and its
documentation in its original compressed form are made available.
Hardware Requirements: ______________________
The program requires an IBM-compatible computer (PC, XT, AT,
386, or 486) with MS DOS 3.3 or higher, a minimum of 384K of RAM,
and a floppy disk drive. A printer is optional; however, if you
want hard-copy of any of the program's output, you will need a
printer. The program makes no special demands on the printer.
Any 80-column text printer will do.
For those who use Windows as their primary operating system,
"Your Financial Partner" will run as a DOS program under Windows
3.1. It runs successfully both in the foreground and in the
background. It has not been tested with Windows 3.0; however
since it makes no Windows calls, there is no reason why it
shouldn't run under any version of Windows (or OS/2).
Program Installation and Operation: ___________________________________
The program is distributed as a self-extracting archive file
created using the public domain program LHA. The archive is
called FINPART3.EXE. While version 3.11CPP will run (just barely
fit on) from a 360K floppy diskette, both the compressed file and
the decompressed executable program cannot fit on a single 360K
floppy diskette. Therefore, to extract the executable version of
"Your Financial Partner" (FINPART.EXE) you need to copy
FINPART3.EXE to a diskette with a formatted capacity greater than
360K (i.e. 720K, 1.2MB, or 1.44MB) or to a hard disk (preferably
in its own subdirectory) and type FINPART3 [enter]. This will
cause the extraction routine to unpack Financial Partner's
executable program (FINPART.EXE) and its documentation. Once you
2
have unpacked the program, it is ready to run. To print the
documentation, type "copy finpart3.txt lpt1:" from your DOS
prompt. [If you have your printer connected to a second printer
port, substitute lpt2: for lpt1: above].
To use "Your Financial Partner," you must either be in the
disk directory where the program resides, or you must have the
Financial Partner directory in your directory path. Once this is
done, you simply type FINPART [enter] from the command line and
the opening credits will appear.
If you wish to use "Your Financial Partner" with a printer,
the program assumes a printer is attached to LPT1: (printer port
#1). If you have a printer attached to LPT2:, you must run the
program as follows:
FINPART /2 [enter].
This tells the program to look for a printer attached to LPT2:
rather than LPT1:.
For your information, "Your Financial Partner" Version
3.11CPP opens no files and does not write anything to a diskette.
If you find a version that causes your disk drive light to come
on after the program is loaded, you have a bogus copy and you
should take suitable precautions.
General Information: ____________________
"Your Financial Partner" performs 6 major categories of
financial calculations, plus several useful financial utility
functions. The main menu displays the general categories. To
move from choice to choice on the menus, use the up and down
arrow keys, the mouse, or the highlighted letter on the menu
item. When you are positioned at your choice press the enter key
or click the left mouse button. This will transfer control to
the submenu that actually contains the associated financial
analyses. If at any point in the process you wish to return to
the main menu, the ESC key is your path back.
Every function requires user input. In writing the program
I made every effort to protect you from yourself: you cannot
enter an implausible or illegal value. There are two levels of
error trapping. First, all user-entered input must be numeric.
Therefore the moment you enter a non-numeric character (except
'.' or '-') the computer will beep and erase your entire entry.
Second, each input field is validated to ensure that it falls
within the preprogrammed limits. Thus, for example, you cannot
enter an interest rate larger than 99.99%, or a loan amount
greater than $99999999.99. Two factors governed these limits (a)
3
limitations of numeric representation and (b) implausibility of
certain combinations (e.g. 200 year annuity with 3000 payment
periods per year). The program will not permit you to go to the
next cell until you provide an acceptable entry in the current
cell. (Note: the program uses bank years [360 days] for
calculations involving "daily" compounding. This was a small,
but relatively insignificant, compromise, needed to keep life
simpler for me).
Additional information appears at the bottom of the screen
with every item that requires user input. This help line is
provided to clarify the entry prompt, and, where relevant, to
detail the range of acceptable values.
Several of the routines require you to choose whether
deposits, withdrawals, or payments occur at the beginning or end
of the period. Most annuities and loans are paid at the end of
the period; in most savings plans deposits are made at the
beginning of the period. "Your Financial Partner" allows you to
make this determination for yourself everywhere except loans.
All routines follow a common path. When you have finished
entering data and are satisfied with your entries, the results
will appear after you press CTRL-ENTER (the calculation key).
Before the computer performs the calculations, you are given the
option to print the results to the screen or to the printer. Once
you choose where you want the output to go, the results will
appear nearly instantaneously on the screen, or momentarily at
the printer.
Once the output has reached its destination, you will be
given the option to repeat the procedure using different values,
or to return to the main menu.
Main Menu: __________
Aside from the "Quit" function, the main menu displays 7
functional choices. These are:
1. Future Value of Investment
2. Minimum Savings For Future Value
3. Withdrawal From an Investment
4. Present Value of Future Payments
5. Loan Calculations
6. Bond and Security Calculations
7. Utilities
(1) Future Value of Investment.
4
This function has a submenu with 5 different Future Value
calculations. These include:
1. Future Value Based on Periodic Deposit
2. Future Value Based on Lump Sum Deposit
3. Lump Sum Deposit Followed By Periodic Deposit
4. Periods For PV to Reach FV at Given Interest Rate
5. Interest Rate for PV to Grow to FV in N Periods
These functions address the following questions: If I
invest a certain amount of money (periodically, as a lump sum, or
both) into an account paying a fixed interest rate compounded at
regular intervals, how much money will I accumulate after some
interval of time. Alternately, it answers the questions of how
long it will take for a sum of money to reach a new value given a
particular interest rate, or what interest rate would be required
to achieve a certain rate of return over a given interval of
time.
(2) Minimum Savings for Future Value.
This function has 2 items on its submenu. They are:
1. Regular Deposits Needed For Future Value
2. Single Deposit Needed For Future Value
This function is devoted to addressing the following
problem. Suppose you have a 6 year old child who you want to
send to college at age 18. You haven't started a savings program
yet, but you figure that four years of college will cost about
$40,000 twelve years from now. Your question is: How much per
month (or any other period) will I have to put away on a regular
basis (or all at once now) to accumulate $40,000 by the time my
child is ready for college? By the way, at 6% interest, you
would need to put aside $190.34 monthly for 12 years to
accumulate $40,000 by the time your child is 18; alternatively at
the same interest rate you would need to deposit $19505.05 today
to have accumulated $40,000 by the time your child turns 18.
(3) Withdrawal from an Investment
There are three items on the submenu for this function.
These are:
1. Regular Deposits-Regular Withdrawals at Future Date
2. Lump Sum Deposits. Regular Withdrawals N Years Later
3. Regular Deposits Needed For Desired Regular
Withdrawal
Consider the following problem. Suppose you are planning to
5
retire 20 years from now. On January 1, 1993 you get a pay raise
(or a bonus on December 31, 1992) that you are able to invest.
Your question is: if I invest this money on a regular (or lump
sum) basis from now until I retire, how much will I be able to
withdraw on a regular basis when I retire before I run out of
money. (If you simply want to know how much you'll have after 20
years you can use the Future Value of An Investment function
1.2).
The first two functions require two input screens each. The
first screen is needed to calculate how much money will
accumulate before you can start to withdraw it. The second is
needed to determine both the period over which withdrawals will
take place, and the frequency of withdrawals.
The third function approaches the problem in a slightly
different way. Here our interest is in determining the best way
to obtain a specific amount to withdraw over some period of time.
This is not useful for perpetuities (i.e. Social Security or a
typical pension plan where withdrawals take place over an
indefinite period of time).
If you are interested in determining how many periods it
takes to exhaust a particular amount given withdrawals of a fixed
amount at a fixed interest rate, use the loan calculator (see
function 5.1 below). A loan is a negative annuity in which the
bank loans you money at a specific interest rate for a fixed
period of time, to be paid back (amortized) by fixed amounts
periodically. Withdrawing money as an annuity is the same
problem as a loan, but in reverse. In this case you are loaning
the bank money (your nest egg), which they will pay back to you
at a specific interest rate for a fixed period of time.
(4) Present Value of Future Payments
There are two functions in this submenu. They are:
1. Lump Sum Future Payment, Present Value
2. Fixed Series Future Payments, Present Value
Suppose you win the Oregon Lottery. You might be given the
choice of receiving $200,000 per year for 20 years, or a check
now for $2,000,000. Which is the better deal? Most of us won't
ever face this choice; however we might face the following
choice: When you retire, your pension plan may give you the
option of taking your retirement income as a lump sum, as an
annuity for a fixed length of time, or as a perpetuity. This
pair of functions enables you to determine the best strategy to
the pension problem. It computes the Present Value of an
Investment that pays a specified amount in the future, either as
6
a lump sum or as an annuity. More specifically, it provides the
present value of a lump sum to be paid at a definite time in the
future, or the present value of a series of payments beginning
now and continuing to a definite time in the future. (It does
not deal with perpetuities).
By the way, at today's paltry interest rates (say 2.75%) the
present value of $200,000 per year for 20 years is more than $3
million. In other words, the lottery would have to pay you a
lump sum in excess of $3 million before the lump sum would be a
good deal. If you thought you could get at least 10% on your
investment, the $2 million lump sum settlement would be a better
deal since the present value of the $200,000 per year for 20
years at 10% is only $1.7 million.
(5) Loan Calculations
There are 7 items on the Loan Calculation submenu. These
are:
1. Loan Calculator
2. Payments for Different Interest Rates - Comparison
3. Loan Amount for Given Periodic Payment
4. Amortization Schedule
5. Current Loan Balance
6. Accelerated Amortization - Payoff Loan Early
7. Refinance a Loan
This section is, by far, the most extensive part of "Your
Financial Partner." Most people at some time in life secure a
loan of one type or another. These 7 loan functions enable the
user to address almost any loan question imaginable.
Six pieces of information are needed to render a loan fully.
These are: (a) Loan Amount; (b) Nominal Interest Rate; (c)
Payment Frequency; (d) Duration of Loan; (e) Payment Amount (f)
Interest Compounding Frequency. Of these 6, items (a), (b),
(d), and (e) are free to vary somewhat, while items (c) and (f)
are important but typically constrained by external factors. The
Loan Calculator (Function 5.1) enables the user to enter any
three of the four freely varying items (a, b, d, e), and the
program will automatically calculate the fourth item. The
Payment Frequency (item c) cannot be omitted, while the interest
compounding frequency (item f) is, for simplicity, assumed to be
the same as the payment frequency. Thus, you can enter the Loan
Amount, the Nominal Interest Rate, and desired Payment Amount,
and "Your Financial Partner" will calculate the number of
payments required to fully amortize the loan. Similarly, you can
enter the Loan Amount, the Loan Duration, and the desired Payment
7
Amount and "Your Financial Partner" will calculate the interest
rate needed to fully amortize the loan under those conditions.
The Loan Calculator will compute the missing value in each of the
four instances where one of the four key variables is left out.
If no information is left out, or if more than one variable is
left out, you will encounter an error message.
As noted above, the Loan Calculator is not limited to use
with loans. If you understand the relationship between a loan
and an ordinary annuity (a loan is simply a negative ordinary
annuity), the loan calculator can also be used as an annuity
calculator. Consider, for example, that you have $130,000 in an
IRA when you retire. The IRA is paying a nominal 6% annum
interest. You have retired and want to begin withdrawing $1000
per month. How long will the money last at this rate? To use
the Loan Calculator for this question make the $130,000 the Loan
Amount, $1000 per month the payment amount, and 6% the interest
rate. The missing quantity (Loan Duration) is the value you're
looking for. This will be calculated when you press the
calculate key. By the way, the money would last for 17.541 years
(210 full months at $1000 per month, and a final payout of $459).
The Loan Calculator also can be used to determine the true
APR on a loan in which "points" (prepaid interest) are paid to
secure the loan. Typically mortgages are the only loans with
points. To use the loan calculator in this way, you will need to
run it twice. An example illustrates this. Suppose you want to
borrow $100,000 for 30 years at 8.0%. The bank will loan the
money to you, but you must pay a combined loan fee and discount
of 2 "points" to secure the loan. Since each "point" represents
1% of the loan, a 2 "point" fee and discount amounts to $2000
paid at closing. While the mortgage is secured at a nominal 8%
per annum, what is the true "Annual Percentage Rate" when the
points are figured? Run the loan calculator first to determine
what the monthly payment will be on a $100,000 loan for 30 years
at 8.0%. The computed amount is $733.76 per month. Run the loan
calculator a second time, letting $98,000 ($100,000 - $2,000 in
points) represent the loan amount. Leave the interest rate
blank, but instead fill in the monthly payment amount as $733.76
(you will still be paying back $100,000 in principal even though
you have effectively only borrowed $98,000 from the bank). The
calculated interest rate is 8.214%. This is the "true" Annual
Percentage rate of your 8% loan. [Under Federal Truth-in-Lending
Law, banks are required to tell you what the true APR is. Often
other amounts figure into the APR. For example, I am in the
process of refinancing my house right now. My bank includes
points, tax service fee, interim interest charges, and mortgage
insurance as part of the "prepaid" charges that are used in
calculating the APR. My refinanced loan, which is locked in at
8
an annual rate of 7.75%, actually has an 8.207% APR after these
prepaid items are added.
Often you are concerned with determining the effect of
interest rate fluctuations on payment amounts. Function 5.2
provides you with a comparison of payments for a given loan
amount over a range of +-1% (in 0.25% intervals).
How many times have you wondered how much house you could
afford if you could only manage a 30-year mortgage with $750 per
month in principal and interest payments? What happens to the
affordability of a home if interest rates change? Function 5.3
provides you with a comparison of Loan Amounts for a fixed
periodic payment at interest rates over a range of +-1% (in 0.25%
intervals).
Function 5.4, the Amortization Schedule, provides a full
payment schedule for any loan. It reports the amount of every
payment apportioning the proper amounts to principal reduction
and to interest, and provides a running loan balance after each
payment is made. [You should beware that the outstanding
balances calculated after any specific payment may differ from
the actual outstanding balance reported by your bank. "Your
Financial Partner" assumes that you make your payments at exactly
equal intervals. Your bank computes interest charges daily and
calculates your balance based on the exact number of days that
elapse between each periodic payment.]
The Loan Amortization schedule allows you use 9 different
payment intervals. The program calculates the dates associated
with each payments based upon the loan starting date you provide.
In most instances the program will honor your starting date.
There are two circumstances where the program will override your
choice. The first involves Semi-Monthly payment schedules
(exactly 2 payments per month, 24 payments per year). Regardless
of the date you select, the program only allows Semi-Monthly
payments to take place on the 1st and the 15th of the month.
Thus, if you select a starting date between the 2nd and 15th of
the month, the first payment will be forced to the 15th of the
month. If you select a starting date between the 16th and the
end of the month, the starting date will be moved to the first of
the following month. The second instance involves Semi-Monthly,
Monthly, Bi-Monthly, Quarterly, Semi-Annual, and Annual payment
schedules. If you try to schedule your first payment on the 29th,
30th or 31st of the month, the program will force the payment to
the 1st of the following month, and payment intervals will be
calculated from that point.
Function 5.5 calculates the outstanding balance on a loan
after any given periodic payment has been made. There is nothing
9
in Function 5.5 that can't be obtained from the full amortization
schedule (Function 5.4); however users may simply wish a quick
loan balance without going through the trouble of a full
amortization schedule.
Suppose you have a home loan at 8.5% interest that has 20
years before it is fully amortized (paid off). You are due to
retire in 12 years and you would like to pay the loan off by the
time you retire. What is the best way to do this? How much
money will you save over the long run by doing so? Aside from
writing a check today for the balance due, there are really only
three regular ways to accelerate the payoff of the loan. The
first is to increase your monthly payments by some fixed amount
and apply the extra amount to principal reduction. The second
way is to take a single lump sum of cash and directly reduce the
principal. The third is to make an extra payment every year.
There are also combinations of these, as well the strategy of
submitting variable amounts as extra payments. "Your Financial
Partner" handles only the regular ways of doing this. [I am also
aware of the strategy of dividing a monthly payment into two
equal fractions and sending that fraction to the bank every two
weeks. This results in 26 biweekly payments. I surveyed 18
banks and mortgage companies in the Portland area. None would
permit a mortgagor to submit fractional payments as this strategy
requires. Therefore, I did not include this option in "Your
Financial Partner". However, you should understand that the
biweekly option is basically the same as submitting 13 monthly
payments annually, with the entire extra payment applied to
principal reduction. This latter strategy is offered as an __
option in "Your Financial Partner." All of the banks I contacted
were more than willing to accept an extra payment submitted this
way.]
Function 5.6 is offered for the user to consider the
different approaches to accelerating the payoff of a loan. The
procedure used in "Your Financial Partner" for dealing with the
first two acceleration techniques is straightforward and requires
no explanation. I had to impose some constraints to simplify the
calculations for the third option. "Your Financial Partner"
assumes that you want the first extra payment applied
immediately, and then subsequent extra payments would be applied
after a full year has elapsed between each extra payment. Thus
on a loan with monthly payments the first extra monthly payment
would be applied with the next payment due, and subsequent extra
payments would be added every 12th payment thereafter. For a
weekly loan the interval would be 52 weeks, etc.
This function reports the total amount paid under normal
amortization and under accelerated amortization, as well as
providing both the dollar savings and reduction in loan term
10
resulting from acceleration.
Loan function 5.7 enables you to explore the nether world of
loan refinancing. With today's volatile interest rates,
virtually all of us have considered refinancing loans initially
obtained at rates significantly higher than those presently
available. The goal in refinancing usually is to lower the
monthly payment, to lower the total amount of interest paid over
the life a loan, or both. There are times when refinancing is
not economically prudent (this is particularly true when loan
fees and points are high and the differential between the
refinancing interest rate and the original interest rate is
relatively small, or when you don't plan to stay in your home
long enough to recapture the refinancing costs). Function 5.7
takes all of the relevant variables into consideration: current
interest rate, current loan term, existing balance, current
monthly payment, proposed interest rate, proposed loan term, new
monthly payment, and new loan fees and points. These variables
are combined to produce a comparison of what the net periodic
savings will be under the new loan terms, what the gross savings
will be over the life of the loan taking into consideration the
effect of new loan fees and points if applicable, and will
calculate the length of time needed to pay back the loan fees and
points given the reduced monthly payments. Typically it is this
combination of information that allows you to make a more
informed decision about refinancing. You should remember that
"Your Financial Partner" does not take into account the fees and
points you might have paid to secure the original loan. These
fees should be subtracted from the GROSS savings to get a NET
savings under refinancing.
(6) Bond and Security Calculations:
Relatively few of us will ever purchase corporate or
municipal bonds. Mutual funds have become a very popular
investment for the average investor, particularly given the
anemic returns on the safer, and risk-free investments like
savings accounts, CD's, and Money Market funds. A large number
of low- to medium-risk mutual funds invest part of their
resources in municipal and/or corporate bonds. Therefore,
understanding the way in which bond prices and bond values are
affected by market factors may provide some insight into the
price ebb and flow of mutual funds that invest in them. These
are the intents of Functions 6.1 - 6.3.
Similarly, the poor returns on the safer investments have
driven many average investors into the stock market or into
mutual funds in an effort to capture larger returns. The
fundamental problem that these investment tools present for the
average investor is how to compare the yields on these risky
11
securities with returns offered on risk-free investments such as
savings accounts, CD's and Money Market Funds. To compare the
yields, we first have to be able to compute the annualized return
(or yield) on these securities. This is complicated because
stocks, bonds, and mutual funds change value on a daily basis
either by capital appreciation, by payment of dividends and
capital gains, or by some combination of all these factors.
Function 6.4 addresses this matter.
The functions grouped under Bond and Security Calculations
include:
1. Bond Valuation
2. Bond Yield to Call
3. Bond Yield to Maturity
4. Annualized Yield on Security
Bonds are issued at a face value (called the par value) with
a coupon interest rate (the annual rate of interest paid on the
bond), and a term of issue (the length of time until the bond
matures and is redeemed by the issuer). Bonds can be purchased
when they are issued, but also at any time after issue and before
maturity. The value of the bond changes over time in response to
two factors: market interest rates and time remaining until
maturity. If you buy a bond at issue, you will buy it for its
face value. Each year you will receive an interest check
computed as the bond's face value times the coupon interest rate.
Thus a $1000 bond, issued for 30 years, paying a coupon interest
rate of 10% annually will yield $100 per year for 30 years. At
the end of 30 years (the bond maturity date) the bond issuer will
redeem the bond for $1000. If market interest rates do not
fluctuate during the 30 years, the bond will have yielded a 10%
return. If market interest rates do fluctuate, the bond's value __
will change over time. If market interest rates go down, the
bond's value will increase and it is sold as a premium bond. The ____________
reason is simple. New bonds issued at that time will carry a
lower coupon interest rate which yields a lower annual interest
payment and a lower overall yield at maturity. Naturally
investors would be willing to pay more for a bond if they could
get a higher interest rate and a higher annual interest payment;
thus, your bond's value is set to be that where its yield at
maturity equals that of the currently available (lower yielding)
bond. This means that the bond will have to be purchased for
more than its face value. On the other hand, if market interest
rates are higher than the bond rates, people will try to sell off
the bonds and move money into higher yielding investments. This
will, in turn, cause the bond to be sold at a discount, with the ________
price being set to that where its yield at maturity also equals
that of the currently available (higher yielding) bonds.
12
Function 6.1 computes the current value of a bond at any
time between issue date and maturity. It does so by taking into
account the difference in coupon interest rates and current
interest rates. If you experiment with function 6.1 you will see
that there really is an inverse relationship between market
interest rates, coupon interest rates, and bond value.
If, after a bond is issued, market interest rates drop
substantially, the bond issuer may want to redeem the bond early
and reissue new bonds to take advantage of the lower market
interest rates. They can do so only if the bond has call ____
provisions. A call provision is a condition specified in the __________ _______________
bond that allows its issuer to redeem the bond early for any
reason provided certain temporal conditions hold (e.g. more than
5 years has elapsed since the bond was issued). Typically bonds
are called only if market interest rates have fallen
significantly. Bonds that are called generally yield a lower
overall return on investment than bonds held to maturity.
Issuers usually establish a formula to determine how to set the
price of a bond at call. For example, some bonds have call
provisions that set the call price as: bond par value x (100% +
current market interest rate)N where N is the number of years N
that have elapsed since the bond was issued. In any case, the
call price is uniquely determined for every bond and can be
easily calculated. Function 6.2 will enable you to determine the
yield of a bond that has been called after N years, given current
market interest rates and a known call price.
If you buy a bond at its original issue (at its par or face
value) and hold it to maturity, the yield on the bond is the same
as its coupon interest rate. On the other hand, bonds purchased
after their initial issuance are rarely purchased at par value.
Thus, if these bonds are held to maturity they will yield more or
less than the coupon interest rate. Bonds purchased for less
than par value (discount bonds) and held to maturity yield more
than the coupon interest rate. This makes sense because the bond
will return not only the fixed interest payment every year but
will also pay the bond's par value at maturity. Thus, the
addition of a capital gain (the profit from redeeming the bond
for more than its purchase price) to the annual coupon interest
produces a yield to maturity higher than the coupon rate. By
contrast, the opposite condition obtains when bonds are purchased
for more than par value (premium bonds) and held to maturity.
Here there is a capital loss at maturity when the bond is
redeemed for a lower price than that for which it was purchased.
This loss reduces the yield to maturity below the coupon interest
rate. Function 6.3 calculates bond yield to maturity by
factoring in purchase price versus the bond's par value and
length of time to maturity.
13
Finally, Function 6.4 addresses the problem raised in the
introduction. Suppose you invest $1000 in a mutual fund on
January 15, 1993. The mutual fund shares are priced at $10 each
so on January 15, 1993 you own 100 shares. On the 15th of each
subsequent month you invest an additional $25 to purchase more
shares (at their then-current value). On December 31, 1993 the
mutual fund declares a $0.60 per share dividend and a $0.30 per
share capital gains payment. As of December 15, 1993 you own (as
a result of the initial investment and the 11 subsequent $25
investments) 124.664 shares so that the dividend plus capital
gains payout on December 31, 1993 is worth $112.20, which is then
reinvested in additional shares each costing $10.95. This leaves
you with a portfolio consisting of 134.911 shares now worth
$10.95 each. As of January 1, 1994, the portfolio is valued at
$1477.27. What is your annual rate of return on this investment?
For the average investor, this is a difficult question
complicated by the fluctuating price of the fund, the payment of
dividends and capital gains and their subsequent reinvestment,
and the varying holding periods of individual shares in the
mutual fund. Fortunately, "Your Financial Partner" makes this
calculation relatively straightforward.
To understand how this works, it is necessary to understand
that money you pay out to purchase shares of a security is a
negative cash flow to you; money you receive from dividends and
capital gains are positive cash flows to you. However,
reinvested dividends and capital gains are neither positive nor reinvested __________
negative cash flows for figuring yields (they are, however,
exceedingly important in determining your cash basis for tax _____
purposes); the reinvestments are figured in the final valuation
of the fund [in other words, at the end of the year the
reinvested dividends and capital gains are reflected in the
portfolio valuation of $1477.27 and do not, therefore, have to be
considered as individual cash flows. They can, of course, be
treated as individual cash flows; however, they would need to be
entered twice: first as a positive cash flow to you, and then as
a negative cash flow (you used the money to purchase additional
shares). But since both of these events occur simultaneously in
an automatic reinvestment program, the net effect is simply to
increase the value of the portfolio by the dollar amount
reinvested and nothing is gained by figuring the individual cash
flows. If this is unclear to you, the same logic applies to
savings account. You can figure out your annual rate of return
on a savings account without having to enter the interest
payments received as a positive cash flow to you, followed by a
negative cash flow reflecting its "reinvestment" in the savings
account. All of the interest reinvestment is reflected in the
value of the savings account at any moment in time.]
14
Let's now consider this example. Function 6.4 asks for the
following information in the following order (underlined
information represents information you type in):
Initial Value: $1000 ( This was our initial investment. It Initial Value _____
could also be the value on January 1, 199x)
Date: 01/15/93 (This was the date of our initial investment) Date ________
Final Value: $1477.27 (The value of the portfolio at the close Final Value ________
of business on December 31, 1993. Note that there is no
provision in "Your Financial Partner" for calculating the
valuation of a portfolio. This information still must come from
an external source, most typically a statement from the firm
holding or issuing the security.)
Date: 01/01/94 (This date corresponds with the value at the Date ________
close of business on 12/31/93).
Guess at a rate of return: 10% (Just pick any number. This is Guess at a rate of return ___
needed to get the calculations started since I use an iterative
routine to solve for the annualized yield.).
The above 5 entries are required. The next 24 pairs of entries
are optional; however every non-zero cash flow must be
accompanied by a date that falls between the initial and final
dates given above. The cash flows do not have to be entered in
chronological order.
CF#1: -25.00 (Cash Flow #1. Negative because it represents an CF#1 _____
additional investment)
Date: 02/15/93 (Date of $25 investment. The number of shares Date: ________
purchased is irrelevant here)
CF#2: -25.00 (Cash Flow #2) CF#2: ______
Date: 03/15/93 (Date of next $25 investment) Date: _________
.
. (Cash Flows 3-10 filled in here)
.
CF#11: -25.00 (Cash Flow #11) CF#11: ______
Date: 12/15/93 (Date of last $25 investment) Date: ________
Once this information is entered and checked, we are ready to
calculate the annualized yield on our mutual fund. Pressing
CTRL-ENTER performs the calculation. The resulting annualized
yield, as you can see if you do this example, is 18.710%, a
significant yield by any criterion.
15
Function 6.4 also can be used to calculate the yield on an
entire portfolio, provided that the total number of cash flows in
the portfolio do not exceed 24. Another example will illustrate
this.
Suppose that you invest $1000 in fund #1 on August 13, 1992.
You follow this with an investment of $1000 in a second fund on
August 17, 1992, $1000 in a third fund on November 11, 1992,
$1000 in a fourth fund on December 10, 1992, and $3000 in a fifth
fund on December 11, 1992. Suppose in addition that Fund #1 pays
$66.02 in capital gains on December 31, 1992, Fund #2 distributes
$26.11 in dividends on December 31, 1992, and Fund #5 distributes
$23.10 in dividends and capital gains on December 31, 1992. The
other funds distribute no earnings. All dividends and capital
gains are reinvested in shares in their respective mutual funds.
On January 1, 1993, after all reinvestments are figured, the
portfolio is valued at $7335.10. What is the annualized yield on
this portfolio? (Note that although you can calculate the yields
on all of the individual securities or mutual funds, the
portfolio yield is not the simple average of the yields of the
individual elements making up the portfolio. Since there is
different holding period for each security, and each security may
represent a different fraction of the total value of the
portfolio, the proper way to compute portfolio yield is to
account for all of the cash flows into and out of the portfolio
in the same way you would for its individual elements).
There are two ways to approach this question. Both will
yield the same answer. The best approach is to treat the
portfolio as having a $0.00 value on January 1, 1992 (which it
did). Then on January 1, 1993 the portfolio has a value of
$7335.10. During the year the portfolio had five negative cash
flows (investments) over five different dates. These were: -
1000, 08/13/92; -1000, 08/17/92; -1000, 11/10/92; -1000,
12/10/92; -3000, 12/11/92.
Entering these values produces a portfolio yield of 32.702%
The alternative is to treat the portfolio as having an
initial $1000 value as of 08/13/92 (which it did) and a final
value of $7335.10 on 01/01/93. Then we factor in four negative
cash flows over four different dates. These were: -1000,
08/17/92; -1000, 11/10/92; -1000, 12/10/92; and -3000, 12/11/92.
Entering these values also produces a portfolio yield of
32.702%
The former approach is best in circumstances where the
portfolio has a $0.00 initial value at some point in the year;
16
the latter approach is best in cases of a continuing portfolio.
We could, for example, use the second approach to determine the
yield of the portfolio in the second year. To do so, we would
consider the value of $7335.10 as the portfolio value at the
beginning of the period, and then assess the yield from that _________
point considering all of the relevant cash flows.
Function 6.4 can handle both positive and negative yields.
Remember that while positive returns can, in principle, assume
any positive value, negative yields can never be less than 100%
since you can never lose more than the total amount you have
invested at any given point in time.
Note also that there are some combinations of cash flows
that do not provide a single solution for the yield. This
typically occurs when there are many positive and negative cash
flows for a security or portfolio. If you get an error message
telling you that you have an indeterminate solution, or that the
solution did not converge in 50 iterations, try reorganizing the
way you enter the data. Sometimes it helps to simply enter all
the positive cash flows first, followed by all the negative cash
flows (or the reverse). The problem typically arises when there
are many sign changes over the range of cash flows.
(7) Utilities
Three different financial utilities are offered in "Your
Financial Partner." They are:
1. Effective Interest Rate
2. Taxable Interest Rate
3. Days Between Dates
Suppose you want to put money into a savings account at a
local bank. There are three banks nearby that each pay 5% annual
interest. Bank 1 compounds the interest quarterly, Bank 2
compounds monthly, and Bank 3 compounds daily. If all other
services offered are equal, into which bank should you put your
money to maximize your yield?
Function 7.1 calculates the effective interest rate and
provides you with the answer. Bank 1, paying a nominal interest
rate of 5% per annum compounded quarterly, is actually paying an
effective interest rate of 5.09%; Bank 2, which pays 5%
compounded monthly, is actually paying an effective rate of
5.12%; and Bank 3, which compounds daily, provides an effective
yield of 5.13%. Thus, Bank 3 should get your money. In general,
the more often interest is compounded the higher the effective
interest rate.
17
The financial section of today's newspaper is littered with
advertisements offering a variety of investments. Suppose you
have $1000 to invest. You want something relatively safe, yet
something that provides a higher return than an ordinary passbook
savings account. You are given two possible investments that
meet your objectives to provide a safe, modest rate of return.
The first of these invests in short-term corporate bonds and has
consistently returned about 7.5%. The second of these invests in
a variety of tax-free municipal bonds and has consistently
returned about 6%. Other things being equal, which of the two
investments should you choose?
The key element in investing is recognizing that some
investments generate gains that are completely free of taxes,
while others yield profits that are subject to ordinary income
tax. To compare any two investments fairly, we need to level the
playing field. Function 7.2 provides the necessary levelling.
Whenever we make money from our investments, our earnings
are subject to income tax unless the earnings are tax-free. Most
investors will find themselves in either the 28% or 31% federal
marginal tax bracket. In addition, many states also tax profits
from investments. Suppose our hypothetical investor above was
paying federal tax at the 31% marginal rate, and state tax at a
9% marginal rate. This means that the earnings are reduced by
31% because of federal tax, and 9% because of state tax. Thus,
our taxable yield of 7.5% is reduced to 5.175% because of federal
tax and to 4.5% when we add in state tax. This means that the
two investments are hardly equivalent. Once taxes are factored
in, the tax-free investment pays 1.5% more than the taxable
investment.
Function 7.2 turns this problem around by levelling the
playing field in the opposite direction. It approaches the
problem by asking what the taxable equivalent of a tax-free yield
is. In the problem described above, the value of our 6% tax-free
yield is increased by the combined federal and state tax
obligation. We would have to have a taxable yield greater than
8.695% to offset the effects of federal tax; the return would
have to equal or exceed 10% to offset the combined effects of a
31% federal tax and 9% state tax.
Function 7.3 simply answers the question of how many days
have elapsed between two dates. This routine takes into
consideration leap years.
Programming Considerations: ___________________________
"Your Financial Partner" was written in Borland C++ 3.1.
The menus and data entry screens were adapted from the Object
18
Professional C++ Library from Turbo Power Software. To ensure
accuracy, all financial calculations were performed in BCD
(financial) arithmetic and follow banker's rules of rounding.
Even so, there will be differences between results obtained using
Financial Partner, spreadsheets, and other financial analysis
programs. Where comparable routines exist, "Your Financial
Partner" has been thoroughly tested with examples from major
financial analysis textbooks and its results accurate, to within
limits of roundoff error, with those obtained with Quattro Pro
4.0, Excel 3.0, HP 10B and 12 calculators, and the published
textbook answers.
I sincerely hope that "Your Financial Partner" is useful to
you. I spent a great deal of time trying to write a program that
I could use. While I've tested all of the functions with a wide
variety of data from financial analysis text and am convinced
that all egregious bugs have been exterminated, I've been
programming for long enough to know that bugs cannot ever be
completely eradicated. If you run into any problem, encounter
any results that do not look right or that you know are
incorrect, please drop me a note and explain the circumstances.
I do not want a "buggy" program circulating.
Legal Matters: ______________
My legal advisors tell me that I cannot warrant this
program, expressly or by implication. So there is no warranty
attached to "Your Financial Partner." You'll just have to take
my word that it does do financial calculations, and as far as I
can figure it mostly gives correct answers. This generally means
that I am not responsible if this program ruins your life. On
the other hand, if it makes you a millionaire, I'd like to know
about it.
Money and Other Matters: ________________________
As indicated at the beginning of this manual, "Your
Financial Partner" is distributed as "Shareware." If, after
using it for 30 days, you find it valuable, please register the
program by filling out the form below and send it to me along
with a check for $29.95 to complete the registration process.
Registered users will receive the latest version of "Your
Financial Partner," free upgrades for 6 months following
registration, will be able to receive upgrades thereafter at a
nominal fee, and are eligible for telephone support.
Customer Service: _________________
Users needing help with "Your Financial Partner", users
19
wishing to report a bug, users wishing to lavish me with praise,
or users wanting to carp may contact me in writing at the address
below (see Registration Form), or electronically via CompuServe
(71212,2327), Internet (h1mf@odin.cc.pdx.edu), or BITNET
(H1MF@PSUORVM.BITNET). If you have an urgent problem, you may
phone me at 503-725-3910 (this is in the Pacific Time Zone);
however, this is my office phone number and I may or may not be
able to talk with you when you call. If you get my voice mail
instead of me, please leave me a detailed message indicating ________
precisely what you need. Also indicate whether you are a
registered user. I cannot afford to provide telephone support to
unregistered users (I will respond to any and all electronic mail
or US Mail messages whether you are registered or not). Include
in your phone message a time of day where I will be able to get a
hold of you by phone. I will try to respond as soon as possible.
Acknowledgements: _________________
Thanks are due to my wife, Susan Wolf, and our children,
Sarah and Elisabeth, for their support and for enduring the many
months that writing this program consumed. Thanks also to Tech
Mate for their helpful advice on using Object Pro C++. My
gratitude goes out to all the beta testers, and to users of
previous versions of "Your Financial Partner" for suggestions and
encouragement, not to mention for drawing noxious bugs to my
attention.
Things In The Planning Stages: ______________________________
Future versions of "Your Financial Partner" are already in
the planning stages. Proposed additions include (1) a simple,
pop-up four-function calculator that will allow users to paste
results into data fields; (2) loan qualification function; and
(3) inflation-adjustment option in various routines. A number of
users have requested that I provide some way to reanalyze
slightly different combinations of data without having to reenter
the full suite of data. I am exploring the feasibility of doing
this in some of the routines with more extensive data entry
requirements. The limiting factor is the size of the program.
As it is, the program is becoming rather large, and I don't want
the program to be so laden with bloated code that it ceases to be
useable. Nevertheless, I welcome user suggestions.
Useful Financial References: ____________________________
The following proved invaluable to me in developing "Your
Financial Partner." I recommend them to anyone wishing to do
20
further research.
Gordon Alexander and William Sharpe, 1990, Investments, 4th
Edition. Englewood Cliffs: Prentice-Hall.
Eugene F. Brigham, 1992, Fundamentals of Financial Management,
6th Edition. San Diego: Dryden Press (Harcourt, Brace,
Jovanovich).
Petr Zima and Robert L. Brown, 1984, Contemporary Mathematics of
Finance (Schaum's Outline Series). New York: McGraw Hill.
21
Registration Form: __________________
Your Financial Partner
Version 3.11CPP
Date_____________
Name__________________________________________________________
Address_______________________________________________________
City________________________________ State_________Zip________
Phone______________________
Where/how obtained_____________________________________________
Please return this form with a check for $29.95 to:
Dr. Marc R. Feldesman
Flying Pig Software
4210 SW Comus St
Portland, Oregon 97219-9504
22