home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD2.img
/
d4xx
/
d492
/
loancalc
/
lc.doc
< prev
next >
Wrap
Text File
|
1991-06-06
|
13KB
|
329 lines
LoanCalc V1.4
=============
Although there are many mortgage calculation programs available, all that
I have seen are designed around 'fixed' mortgages, ie. mortgages that have
a fixed payment due on a fixed date. As well as providing a printed
Amortization Table for Fixed Mortgages with Monthly, Semi-Monthly, Bi-Weekly
and Weekly payment schedules, (including a provision for making Lump Sum
Payments), LoanCalc (LC) is designed to track 'Open' mortgages that allow
any size payment to be made at any time.
If you are looking for a program that will quickly give you payments or
amortization periods of loans with fixed monthly payments, without the
printed Amortization Table, I can heartily recommend MortCalc, written by
Michel Laliberte, available on Fish 385. It will be easier to use for this
purpose. The advantage of LC is the flexability to calculate repayment
schedules for almost any timetable, the Lump Sum Payment option, the Open
Mortgage option, and the ability to give you a printed Amortization Table.
I apologize for the size of this program. Being a 'weekend' programer,
my programing style could not be described as elegant. The program is
written in BASIC, compiled with the HiSoft BASIC Professional compiler.
To anyone out there who still programs with the AmigaBASIC interpreter -
I admire your dedication. The frustration of it all was just too much for me.
Look into HiSoft BASIC Professional, and put the joy back into programing.
This version of LC supports both mouse and keyboard for most of its
functions, the major exception of course being specific data which must
be input (ie. payments, dates, etc), and it uses the ARP requester for the
input of filenames. At any time, if the 'Esc' key is hit, then LC
will escape from the data entry mode and return to the Main Menu.
LC generally multitasks very well. While waiting for input, the program is
'sleeping', and therefore does not use up CPU time needlessly. However,
you may occasionally get a "Device unavailable in module SOUND" error, which
will abort the program. This is a problem with the HiSoft compiler - their
SOUND command does not multitask well at all. I have tried to discuss this
problem with the folks at MichTron, but they will not return phone calls,
(I think it must be a company policy). At any rate, if you encounter this,
closing other tasks will generally solve the problem.
If LC is launched from Workbench, icons will be created for all '.data' files
created, in case you would like to edit the file. These icons have no
default tool, however, since I don't know which editor you would be using to
edit the file. You can supply your own using the Workbench 'Info' Menu item.
If launched from the CLI, no icons are created.
While running, LC will request a directory and filename under which the
program data will be kept. The default directory is RAM:, but you may
specify any other. Two files will then be generated in that directory.
One, 'Filename.data', will store all information regarding payments made,
dates, interest paid, total interest, etc. The other, 'Filename.datavar',
will store all the variables required by LC, which will vary from one session
to the next. Copy these files to a disk for a permanent record.
While entering data (especially data for Open Mortgages), there are lots of
tiresome 'Are you sure?' type prompts. Although nobody likes them when
the data is correct, they are useful in case of finger-trouble.
-2-
LC opens on the Main Menu, where there are 8 selections:
1. Start a New Mortgage/Loan File
2. Enter a Payment to an Existing Open-type File
3. Re-Calculate the Current Fixed-type Loan
4. View a Data File
5. Send a File to the Printer
6. Information
7. About
8. Quit
Just Click on the appropriate item, or press the appropriate number
on either number pad.
Selection 1 should be made if you have not already opened a file under
the proposed filename, for example 'FirstMortgage', and there is no
'FirstMortgage.data' and 'FirstMortgage.datavar' files in the specified
directory. A file will then be built from scratch.
The Open-type file will be built one entry at a time, using the data entered.
This option is good for Open Mortgages, Line of Credit type loans,
or any loan that does not have a Fixed repayment schedule.
This file cannot 'think ahead', because it cannot predict when your payments
will be made, or exactly how large or how small they will be.
Once a data entry (payment) has been made, you have the option of making
another (Press any key), totaling the file (Left Alternate-Shift-T),
or returning to the Menu (Escape). Left Alternate-Shift-T merely prints
a footnote to the file, stating your Total Payments so far and by how much
the Principal was reduced, and then returns you to the Menu. It is intended
to be used after the last payment is made, but may be used beforehand.
The Fixed-type file will take all the parameters pertinent to your loan,
and then display some summary information about your loan; ie. the Unit
Payment (Installment), the Total Interest to be paid, the Actual (Effective)
Interest Rate, and the Amortization Period. You may then Return to the Main
Menu, Re-enter data, or request the Amortization Table. In the last case you
will be prompted for the number of months you want the Table shown.
The Amortization Table for that loan will be shown for any period
from one month, up to the Amortization Period of the loan.
If you are allowed to make lump sum payments to your Fixed loan, then run
the Amortization Table for a number of months such that the last payment
displayed is the date on which the lump sum payment is to be made,
then use the 'L' option to show your Lump Sum Payment.
The Principal reduction will be made on that date. Since all payments must
be made in chronological order, once the Amortization Table has been
displayed for a month beyond one in which you want to make a
lump sum payment, you would have to go back to Selection 3,
and re-select the number of months to display.
Selection 2 should be made to enter more payments to an Open Mortgage/Loan
file which has already been opened with Selection 1. Although there is a
provision to make lump payments on a Fixed-type loan, that is not done using
this Menu item. Note that if you are updating a file, the 'Filename.datavar'
file must be situated in the same directory as the 'Filename.data' file.
-3-
Selection 3 is for Fixed-type loans only. If you have already entered the
Mortgage/Loan parameters (Principal, Interest Rate, Commencement Date,
Interest Compound Period and Filename), the LC will use these numbers,
ask for confirmation, and request the Amortization Period/Monthly Payment.
Any changes to these parameters may be made at this time.
In this way, the same numbers can be quickly 'fiddled' to show various
combinations of these variables. This feature cannot be used for Open-type
loans for the reason mentioned above - Open loan payments cannot be predicted.
Selection 4 will ask for the filename of the '.data' file you want to View.
Select the path and 'Filename.data' from the requester.
(The program will not accept any filename which does not end in '.data').
You may then see the file almost exactly as it will look when printed
using Selection 5 - (The printed version will be page formated).
The data you will be looking at is the same data that was put on the screen;
IF IT WASN'T ON THE SCREEN, IT WON'T BE IN THE DATA FILE. So if you want to
see (or print) the whole Amortization Table in the data file, press <Return>
when when prompted 'Amortization Table for how many months', so that
the whole Table will be calculated and displayed.
A text reader such as the enclosed View program would be ideal for looking at
these files, as you may have noticed if you have examined the sample files
enclosed with this program. However, I wanted the program to be completely
stand-alone, and so opted to include the primitive forward-only viewer.
Selection 5 will ask for the filename of the file you want printed.
Select the filename as in the previous selection. The requested
'Filename.data' file will then be sent to the PRT: device.
Selection 6 just recaps a bit of the information in this file, in case
nobody reads it.
Selection 7 tells you who to blame if something goes wrong.
Selection 8 Exits the program, after confirmation.
I have included woth this program 4 sample '.data' files to give you an idea
of what your print-out will look like. The 4 files represent the same
$100,000 mortgage, with an Interest Rate of 12.75%, amortized over 5 years,
and includes one lump sum payment made on the second anniversary of the loan.
One shows the Amortization Table if you had chosen to repay the mortgage
with Monthly payments, another with Semi-Monthly payments, and the others
with Bi-Weekly and Weekly payments.
-4-
The INTEREST COMPOUND PERIOD
----------------------------
Although LC will accept an I.C.P. of almost any frequency, the standard
frequencies appear to be as follows, and should be used unless you know
that your situation is different:
Canadian Mortgages are compounded Semi-Annually.
American Mortgages and both Canadian and American bank loans are compounded
Monthly. Very few bank employees seem to know this - during my enquiries I
got a lot of different answers, but the hard figures always came down to
'Monthly Compounded Interest". This information is also shown in the program.
The PRINT-OUT
-------------
The 'Payment' date shown for each payment will depend on the type of
Mortgage/Loan you select, as follows:
Open Mortgages:
will naturally show the payment on whatever date you enter.
Fixed Mortgages:
If you choose to make Monthly Payments, then the payments will be shown
as due on the day of the month that the loan was taken out. So if you
want payments due on the 1st of the month, show the loan as starting
on the 1st day of the previous month.
Semi-Monthly Payments are always shown as due on the 1st and 15th day
of the month.
Bi-Weekly Payments are shown as first due 14 days after the starting date
of the loan, and due every 14 days thereafter.
Weekly Payments are shown as first due 7 days after the starting date
of the loan, and due every 7 days thereafter.
REQUIREMENTS
------------
Workbench 1.3 is required because of the math libraries.
The arp.library is required because of the ARP requester.
-5-
LIMITATIONS
-----------
Some limitations of LC are:
All Open Loan data entries MUST be in chronological order.
(I just plain didn't know how to avoid this).
Also with Open Loans, a data entry must be made every 6 months or so.
This as necessary to keep the year-ends straight, so that LC knows which
are leap-years. (The formula is slightly different in leap-years).
There is a bug that seems to crop up every now and again.
As LC is writing some information to a .data or .datavar file,
a FILE ALREADY OPEN error will sometimes pop up. As all of my OPEN
commands are immediately preceded by a CLOSE command on the same line,
I am confused as to why this would happen. (A lot of YOU probably know,
but I don't). At any rate, I built a RESET command into the
Error Handler, which seems to work well enough to allow the file to be
rebuilt from Menu Item 3, rather than have to start from scratch at
Menu Item 1.
ACCURACY
--------
To the best of my knowledge, this program is now as accurate as any other
similar programs available. Monthly payment figures seem to agree with
those found in commercial Amortization Tables.
FILES INCLUDED WITH THIS PROGRAM
--------------------------------
LC LC.info
LC.doc LC.doc.info
Changes Changes.info
Monthly.data Monthly.data.info
Semi-Monthly.data Semi-Monthly.data.info
Bi-Weekly.data Bi-Weekly.data.info
Weekly.data Weekly.data.info
View - the PD text reader by Bryan Ford (available on Fred Fish disk #163).
arp.library V39.1 - in case there is still someone out there who is not
utilizing this marvelous software. Just put it into
your LIBS: directory, and leave it there.
Hope someone finds this useful.
Any comments, problems or bug reports are welcome. Please send to:
Robert Bromley
4080 Longo Circle
Malton, Ontario
CANADA L4T 4C7