[net.taxes] Whats the formula?

ler@ihuxb.UUCP (Litzhoff) (03/10/86)

I am refinancing my home. I need to calculate the a new 
amoritization listing in order to figure interest paid.
Does anyone know the interest and principal calculations?
It  would be greatly appreciated.

			thank you,
			leroy litzhoff

stevev@tekchips.UUCP (Steve Vegdahl) (03/14/86)

> I am refinancing my home. I need to calculate the a new 
> amoritization listing in order to figure interest paid.
> Does anyone know the interest and principal calculations?
> It  would be greatly appreciated.

Unfortunately, many banks (mine, at least) round to the nearest penny each
month, so there is no simple, exact formula.  If rounding were no
consideration, then the percentage of the entire balance that would be
paid off after making K monthly payments is:

	(1+I)^K - 1
	-----------
	(1+I)^N - 1

where I is the *monthly* interest rate (e.g., annual interest rate divided
by 12) and N is term of the mortgage in *months*.  This formula should get
you pretty close.  For my mortgage, rounding causes the last payment to be
$0.37 less than the other payments.

Here is a simple-minded (and possibly even correct!) C program that takes
rounding into consideration, and computes the table after prompting the
user for the appropriate info. (Remember to load it with the math library.)

		Steve Vegdahl
		Computer Research Lab.
		Tektronix, Inc.
		Beaverton, Oregon

---------------- begin program ----------------

#include <stdio.h>
#include <math.h>

main ()
{


    double loan, rate, payment, interest, principal;
    int years, i;

    printf("loan amount: "); scanf("%f", &loan);
    printf("interest rate (%%): "); scanf("%f", &rate);
    rate = rate/1200.0;
    printf("payment: "); scanf("%f", &payment);
    printf("years: "); scanf("%d", &years);

    printf("\n\nloan amount: %8.2f\n", loan);
    printf("interest rate: %8.2f\n", rate*1200);
    printf("payment: %8.2f\n\n", payment);

    interest = 0;
    principal = 0;
    printf(" month   interest pmt.  principal pmt.    balance\n");
    for (i=0; i <= (years*12); i++)
    {
	printf("%4d:     %8.2f        %8.2f       %8.2f\n",
		i, interest, principal, loan);
	interest = floor((rate * loan * 100) + 0.5) / 100;
	principal = floor(((payment - interest) * 100) + 0.5) / 100;
	loan = floor(((loan - principal) * 100) + 0.5) / 100;
    }


}