The true calculation is:
iA/[1 - (1+i)^-N]*N-A
Where
- N = term (number of payments, multiplied e.g. by 12 in the case of a monthly payment)
- i = interest rate per term (divided by 12 for monthly payment)
- A = starting principal
Unfortunately with the Nth root in there, small changes in the inputs can cause large swings in the output (especially when a 30 year mortgage has an N of 360). I haven't been able yet to figure out a simple way to work around that.
Perhaps we can work from the Rule of 72 to get a rough estimate (which as I commented above, works out to pretty much what you've already figured). If this were an investment, you'd divide 72 by the interest rate times 100 to get the number of years until it doubled, with compound interest. Then, we can take that number, and divide the term of the loan in years by it, to make a guess at how many times it would double in the given time period. Then, multiply it by the starting balance.
That would give:
(Y/72/(i*100))*A
Simplify the fractions and you get
Y * I * A * 100/72
If you calculate this out, you'll quickly see that it significantly overestimates the interest (about double). This makes sense, since you pay the principle down over time, lowering your interest. The calculation above would (roughly) hold if you never paid any payments and just let the balance grow (ignoring penalties and forclosure/reposession :) However, I did the calculation in a spreadsheet against a grid of values, varying both term and interest rate, and found that it tracked pretty well against the true value as calculated above. You can correct for that using an additional constant. Varying term from 1 to 30 years and rate from 4% to 15%, I found that the constant varied from 37 to 52, with an average of about 41 (also, the higher value was for things like 12% interest for 30 years). 41/72 = 0.57, which is fairly close to the 0.5 you use in your own estimating formula, but IMHO you could make it more accurate by using a constant of 0.6.