APR with fees by hand: the Regulation Z actuarial equation, checked against two Federal Reserve loans
The Appendix J actuarial equation reproduces the Fed's published APRs to the hundredth of a point. On a $5,000 loan with a $500 fee, the add-the-fee shortcut understates APR by 4.16 points.
A $5,000 loan at 12% interest, repaid in 36 monthly payments of $166.07, with a $500 fee paid at closing, has an annual percentage rate of 19.49%. A common shortcut adds the fee to the rate and divides by the term: 12% + (500 ÷ 5,000) ÷ 3 = 15.33%. That understates the true figure by 4.16 percentage points. Regulation Z allows a lender's disclosed APR to be off by 1/8 of a point on a regular loan [4], so the shortcut's error is 33 times the legal tolerance. This guide shows how to get 19.49% with a calculator that has ln and exp keys. Before using the method on the fee loan, it checks the method against two loans whose APRs the Federal Reserve published.
One honest note before the steps. I did not run this guide in the Lab. Every figure below is hand arithmetic, carried to six or seven significant figures. The text blocks hold my worked values, not program output. I first wanted to use the CFPB's sample Closing Disclosure (a $162,000 mortgage at 3.875%). I could not get readable figures out of its PDF, and its monthly mortgage insurance would make a hand check impractical. So the test loans come from the Fed's Regulation Z background text, and I built the fee loan from the first of them.
What you will have at the end
- The Appendix J equation for a single-advance loan with level monthly payments, written so you can evaluate it on a calculator.
- Two published APRs reproduced exactly: 12.00% and 13.26%.
- The APR of a loan with a prepaid fee, worked to 19.49%, plus the exact error of two shortcuts.
Prerequisites and tested with
- A calculator with natural log and exponential keys, or a spreadsheet you use only for
LNandEXP. - Tested with: hand arithmetic, 2026-10-02. No software run. The spreadsheet cross-check in the verification section is untested, and I mark it that way.
- Expected time: 30 to 45 minutes. Most of that is evaluating one equation four or five times.
The steps
1. Find the amount financed, not the loan amount
Regulation Z defines the amount financed as the principal, plus any other amounts financed that are not finance charges, minus any prepaid finance charge [3]. A fee the borrower pays at closing to get the credit, such as an origination charge, is a prepaid finance charge. For the fee loan:
Note amount (principal) 5,000.00
Prepaid finance charge (fee) -500.00
Amount financed 4,500.00
Total of payments 36 x 166.07 5,978.52
Finance charge 5,978.52 - 4,500.00 = 1,478.52
This one subtraction carries the whole fee effect. The payments are still sized on $5,000 at 12%. The APR measures them against the $4,500 the borrower actually receives.
2. Write the equation for this case
Appendix J's general equation sets the amount financed equal to each payment discounted back to the advance date at the unit-period rate . The APR is then times the number of unit-periods in a year: "The annual percentage rate shall be the nominal annual percentage rate determined by multiplying the unit-period rate by the number of unit-periods in a year" [1]. The unit-period is the period that occurs most often in the transaction, up to one year [1]. Here that is one month. I assume the first payment falls one full month after the advance, so there is no odd first period. For level payments the sum collapses to:
On a calculator, compute as exp(-n * ln(1+i)). Call the fraction , the annuity factor.
3. Check the method on the Fed's first loan (12.00%)
The Fed's Regulation Z background text gives this loan: amount financed $5,000, 36 monthly payments of $166.07, APR 12 percent [2]. Try :
ln(1.01) = 0.00995033
x 36 = 0.3582120
exp(-0.3582120) = 0.6989245
a(0.01) = (1 - 0.6989245) / 0.01 = 30.10755
PV = 166.07 x 30.10755 = 4,999.96
The present value comes out 4 cents short of $5,000, because the payment was rounded to the cent. One Newton correction (step 5 explains it) gives , an APR of 11.9995%. That rounds to 12.00%, which matches.
4. Check the method on the Fed's second loan (13.26%)
The same source gives a second loan with the same $978.52 finance charge: amount financed $4,500, 35 payments of $152.18 and a final payment of $152.22, APR 13.26 percent [2]. Treat it as 36 payments of $152.18 plus an extra 4 cents at month 36. Try :
ln(1.01105) = 0.0109894
x 36 = 0.3956184
exp(-0.3956184) = 0.6732636
a(0.01105) = 29.56890
PV = 152.18 x 29.56890 + 0.04 x 0.6732636
= 4,499.795 + 0.027 = 4,499.82 (target 4,500.00)
The correction is , so and the APR is 13.257%. That rounds to 13.26%, which matches. Note that 13.257% is only 0.002 points above the rounding boundary of 13.255%. Appendix J's instruction to "carry all available decimals throughout the calculation" [1] matters for exactly this reason. If you round to four places here, you can land on the wrong side of that boundary.
The pair also shows why a finance charge alone cannot rank two loans. Both cost $978.52, yet their APRs differ by 1.26 points [2].
5. Solve the fee loan
Target: . Evaluate at a few guesses:
i ln(1+i) exp(-36 ln) a(i) PV = 166.07 a(i)
0.01000 0.00995033 0.6989245 30.10755 4,999.96
0.01600 0.01587335 0.5647114 27.20554 4,518.02
0.01640 0.01626697 0.5567656 27.02649 4,488.29
The answer lies between 1.60% and 1.64%. For a Newton step from 1.60%, use the slope of the annuity factor:
n v^(n+1) = 36 x 0.5647114 / 1.016 = 20.00945
a'(0.016) = (20.00945 - 27.20554) / 0.016 = -449.76
step = (27.09701 - 27.20554) / -449.76 = +0.0002413
new i = 0.0162413
Newton from the left lands slightly short, and straight-line interpolation between the two guesses lands slightly long (0.0162424), because is convex. Evaluate at a point between them:
i = 0.016242
ln(1.016242) = 0.01611151
x 36 = 0.5800143
exp(-0.5800143) = 0.5598904
a(0.016242) = 0.4401096 / 0.016242 = 27.09701
PV = 166.07 x 27.09701 = 4,500.00
So to the precision this hand method supports, and the APR is 12 × 1.6242% = 19.4904%, disclosed as 19.49%.
6. Measure the shortcuts against it
Method Result Error vs 19.49%
Rate + fee/principal/years: 12 + 10/3 15.33% -4.16 points
Finance charge/amount financed/years:
1,478.52 / 4,500 / 3 10.95% -8.54 points
Effective annual rate: 1.016242^12 - 1 21.33% +1.84 points
The first shortcut fails because it spreads the $500 over the original $5,000 for all three years. The borrower owes $5,000 only at the start, and the balance falls toward zero, so the average outstanding balance is roughly half of that. Measured against that smaller balance, the fee is a much larger annual cost. The second shortcut makes the same mistake for the whole finance charge and also ignores compounding. The third is not a shortcut. It is a correct number, but it is the wrong definition: Regulation Z's APR is nominal, the unit-period rate times 12 [1], and not compounded.
Why this works
The actuarial method asks one question: at what monthly rate do the scheduled payments repay exactly the money the borrower received? A fee paid at closing reduces the money received and leaves the payments unchanged. The rate that balances the equation has to rise. Because a fee is front-loaded and the balance shrinks, the same fee costs more per year on a short loan than on a long one. No formula that divides by the term can capture that, because the term is not what changes the cost. The shape of the balance is. Appendix J's tolerance language is the practical standard: compute until the APR "when rounded to 2 decimals, is correct" [1].
How to verify it worked
- Your APR reproduces 12.00% and 13.26% on the two Fed loans in steps 3 and 4. If it does not, the error is in your evaluation of , not in the fee loan.
- Put your back into the equation. On the fee loan, must equal 4,500.00 to the cent.
- Untested cross-check (I have not run it): in a spreadsheet,
=RATE(36,166.07,-4500)*12should agree with 19.49% if my hand arithmetic is right. RATE's arguments areRATE(nper, pmt, pv, [fv], [type], [guess])[5]. The payment and the present value carry opposite signs because they flow in opposite directions.
When it fails
PV lands on the loan amount, not the amount financed. If you solve with $5,000 instead of $4,500, you get 12.00% back, the note rate. The fee disappears. This is the most common way a hand check "confirms" a wrong disclosure.
#NUM! from a spreadsheet RATE. Microsoft documents that RATE iterates, and if its results do not converge within 20 iterations it returns the #NUM! error value [5]. The guess defaults to 10 percent, and the documentation advises trying other guesses because RATE usually converges for a guess between 0 and 1 [5]. Two causes are likely. First, the payment and the present value have the same sign, so no rate can balance them. Second, a missing guess on an extreme loan. For a monthly loan, pass the monthly guess (for example 0.015), not the annual one.
An answer about 12 times too small. You reported itself (1.62%) as the APR. Multiply by the number of unit-periods per year [1].
An answer about 1.8 points too high. You computed . That is the effective rate, not the Regulation Z APR.
Off in the second decimal. You rounded an intermediate value. In step 4 the true APR sits 0.002 points from a rounding boundary. Keep seven significant figures in until the end.
The loan has an odd first period, several advances, or uneven payments. The equation in step 2 does not cover these. Appendix J's general equation adds fractional unit-periods for them [1], and Regulation Z then treats the transaction as irregular with a 1/4 point tolerance [4]. I have not worked such a case by hand here, and I would not trust a hand result for one without a program to check it.
The open question I care about is the mortgage case. Monthly mortgage insurance that drops off partway through the term makes the payment stream irregular, and that is exactly where a borrower can least check the printed APR. If a scripted run of the CFPB's $162,000 sample disclosure fails to reproduce its printed APR within the 1/8 point tolerance, I will report that, along with which input I misread.
Sources
- Appendix J to Part 1026: Annual Percentage Rate Computations for Closed-End Credit Transactions (CFPB)consumerfinance.gov
APR as unit-period rate times unit-periods per year; unit-period rule; carry all decimals until APR is correct to 2 decimals.
- Regulation Z Truth in Lending: Introduction, Background and Summary (Federal Reserve)federalreserve.gov
The two published examples: $5,000, 36 x $166.07, 12%; $4,500, 35 x $152.18 + $152.22, 13.26%; both with $978.52 finance charge.
- § 1026.18 Content of disclosures (CFPB)consumerfinance.gov
Amount financed equals principal plus other financed amounts minus any prepaid finance charge.
- § 1026.22 Determination of annual percentage rate (CFPB)consumerfinance.gov
APR tolerance of 1/8 point for regular transactions and 1/4 point for irregular ones.
- RATE function (Microsoft Support)support.microsoft.com
RATE syntax, 10 percent default guess, #NUM! when no convergence after 20 iterations.