dan@wyse.wyse.com (Dan Weaver x2554) (08/16/89)
Does anyone have a program that will show amortization schedules
for loans that use the Rule of 78's? Every time I talk to a finantial
institution about the Rule ot 78's they say something like "It's too
complicated for you to understand." I may not have a PHD is business
computation but I think I could understand it if someone took the
time to explain it.
Background:
The Rule of 78's is used to calculate interest payments for loans
that are payed off early. 78 is the sum of the first 12 digits.
The Rule states that in the first month 11/12 of the interest is
payed, the second month 10/12 and so on down to 1/12 for the last
payment.
I believe the Rule of 78's was designed to make it easier for a
bank to calculate the interest. Even with the many computers found
today, the Rule of 78's persists because it will charge the customer
more than if the interest was compounded monthly.
Request:
What I don't know is how this Rule is applied to multi-year loans.
Any sources that do this sort of thing would be appriciated. Also
any references on the Rule of 78's would be nice. One final thing
if this is the wrong news group for posting please give me some
other names.
Thanx,
Dan Weaver
Wyse Technology VOICE: (408) 473-2554
3471, N. First Street ARPA: dan@wyse.com
San Jose, CA 95134 UUCP: ...!{uunet}!wyse!danbazavan@hpcilzb.HP.COM (Valentin Bazavan) (08/21/89)
Here is an awk script which prints an amortization table by the "Rule of 78."
Valentin Bazavan
-----------------------------Cut here-----------------------------------------
# File name: r78.awk
# Contents: awk program to print a "Rule of 78" amortization table
# Author: Valentin Bazavan
# Usage:
# awk -f r78.awk [outfile]
#
# Note: requires the new AT&T awk or MKS awk
#
# When using the "rule of 78," the total interest (T) to be paid on a loan
# scheduled to be amortized in N payments is artificially divided in
# P = N / 2 * (N + 1) parts. (The number of parts for a 12-installment
# loan is P = 12 / 2 * (12 + 1) = 78--hence the name of the rule.)
# You pay N / P * T interest with the 1st payment, (N - 1) / P * T with
# the 2nd, (N - 2) / P * T with the 3rd, and so on.
BEGIN {
out = ARGV[1]
# Get input
printf "Number of Payments: "
getline N
printf "Total Interest: "
getline TotInt
printf "Monthly Payment: "
getline Pmt
# Coerce to numeric values
N = N + 0
TotInt = TotInt + 0.0
Pmt = Pmt + 0.0
if (N <= 0 || TotInt <= 0.0 || Pmt <= 0.0) {
printf "Incorrect input data!\n"
exit 1
}
# Print header
if (out) {
printf("\n Amortization Table - rule of 78s\n\n") > out
printf("%-9s %-26s %s\n",
"Pmt.#", "Monthly Payment", "To Date") >> out
printf("%-6s %-23s %s\n\n",
" ", "interest principal", "interest principal") >> out
}
else {
printf("\n Amortization Table - rule of 78s\n\n")
printf("%-9s %-26s %s\n",
"Pmt.#", "Monthly Payment", "To Date")
printf("%-6s %-23s %s\n\n",
" ", "interest principal", "interest principal")
}
r78part = N / 2 * (N + 1) # no. of R78 parts in N payments
onepart = 1.0 / r78part * TotInt # interest per R78 part
cumint = 0.0 # cumulated interest
cumpr = 0.0 # cumulated principal
# Print table
for (i = 0; i < N; i++) {
interest = onepart * (N - i)
principal = Pmt - interest
cumpr += principal
cumint += interest
if (out)
printf("%4d %10.2f %11.2f %11.2f %11.2f\n",
i + 1, interest, principal, cumint, cumpr) >> out
else
printf("%4d %10.2f %11.2f %11.2f %11.2f\n",
i + 1, interest, principal, cumint, cumpr)
}
if (out) printf "\n" >> out
else printf "\n"
exit 0
}