APR Calculator

Convert a quoted interest rate plus upfront fees into the effective APR — the honest, comparable cost of borrowing. Enter the loan, the note rate, the term, and the fees; the calculator solves the rate that reflects what you actually received.

Effective APR

Example: $200,000 at 6% with $4,000 in fees over 30 years → 6.19% APR.

Enter the loan, rate, term, and fees to see the APR.

Companion guide: Fee-adjusted APR explained walks through the engine function behind this calculator step by step on a fictional loan, with tables of what moves the gap between the note rate and the APR. This page covers the calculator itself — its inputs, two offers on one scale, the result lines, and where the arithmetic stops. Every explainer on the site is listed under Guides.

Rate versus APR, concretely

In the worked example — a fictional $200,000 loan at a 6% note rate over 30 years with $4,000 of upfront fees — the payment is computed on the full $200,000: $1,199.10 a month, the standard amortized-loan (PMT) figure with monthly compounding. But the fees mean you effectively received only $196,000. The rate that reconciles 360 payments of $1,199.10 with that smaller amount is 6.19%: the fees added 0.19 percentage points to the cost of borrowing. Every number on this page was computed by the same tested engine when the page was built, on illustrative inputs chosen for the arithmetic, not quotes.

The example's loan, rate and term are the reference loan the methodology page validates the engine against. Recomputed here, the payment is $1,199.10 and the month-by-month schedule records $231,676 of interest and $431,676 of payments in total, matching the methodology page's figures. Note what the fees did not change: the payment and the interest total are identical with or without them. The fees enter the arithmetic in exactly one place — they shrink the amount the payments are measured against. The check is direct: feed $196,000 at 6.19% over 30 years back into the ordinary payment function and it returns $1,199.10, the same payment to the cent. With the fees field at $0 the net amount is the full $200,000 and the search settles on the note rate itself: 6%.

What the engine does with your four inputs

The form hands your four inputs to one engine function, which validates them, runs the steps below in order, and returns a typed result or an explicit, human-readable error. The interface formats what comes back; its fifth result line restates the returned APR as its distance above the rate you typed — the difference between two figures already on screen, described under "How to read the result" below.

  1. Validation. The loan amount must be greater than zero, and the fees cannot be negative and must be less than the loan. The rate and term are checked by the payment function it calls next, like every other amortized loan on the site, and the term then becomes a whole number of monthly payments — years × 12, rounded to the nearest month: 360 here.
  2. The payment at the note rate. The ordinary payment function runs on the full loan: $200,000 at 6% over 360 months gives $1,199.10. The fees do not touch this step; the Loan Calculator shows the same payment for the same loan, rate and term.
  3. The net amount received. Loan minus fees: $200,000 − $4,000 = $196,000. The fees are not added to the payments or the interest total, and not spread over the term as a line of their own.
  4. The search. The engine does not rearrange the payment formula for the rate; it searches by bisection on the monthly rate: the present value of the payments is strictly decreasing in the rate, so each trial rate is either too low or too high and the interval halves until it closes — the function header notes that convergence is guaranteed for this reason. The final monthly rate, multiplied by twelve and expressed as a percentage, is the APR.
  5. The result. Three fields come back — the payment, the solved APR and the fee total echoed as entered: $1,199.10, 6.19% and $4,000 for the example. The companion guide derives each step on its own fictional loan.

Two fictional offers on one scale

A quoted rate and a fee total describe a loan in two numbers; the APR puts them on one scale. Consider two invented offers on the same $200,000 over 30 years: Offer A at a 6.25% note rate with $1,500 of upfront fees, Offer B at 6% with $8,000. Because its note rate is lower, Offer B's payment is lower — $1,199.10 against $1,231.43, $32.33 a month less, an ordering the build re-checks against the engine — and its fees are $6,500 higher.

Two fictional offers on $200,000 over 30 years (illustrative inputs)
Offer Note rate Upfront fees Net received Monthly payment APR Above note rate
Offer A 6.25% $1,500 $198,500 $1,231.43 6.32% 0.07 pts
Offer B 6% $8,000 $192,000 $1,199.10 6.39% 0.39 pts

Run through the engine, Offer A has the lower APR. The direction is set by how the fee difference, spread across 360 payments, weighs against the rate difference — the arithmetic, not the headline rate, settles it. The schedules behind the two payments record $243,316 of interest for Offer A and $231,676 for Offer B; the fees sit outside both totals and inside both APRs. The engine compares; which trade-off suits a particular household is not a question the arithmetic answers.

The same fee over a shorter term

The term is the other input that moves the gap. Keep the example's $200,000, 6% and $4,000 of fees but set the term to 15 years. The payment rises to $1,687.71 and the APR comes out at 6.32% — 0.32 percentage points above the note rate, against 0.19 over 30 years. The fee is 2% of the loan in both cases; what changed is the number of payments it is spread across, 180 instead of 360. A fixed amount divided among fewer payments weighs more on each, so a larger annual rate is needed to reconcile them.

Fees in dollars, points as a percentage

The fees field takes one dollar total — the label reads "Upfront fees & points (total)" — and the engine does not distinguish between kinds of charge. The engine prices points as a percentage of the loan, so they are converted first: one discount point costs 1% of the loan amount — the engine's own convention (its points function prices a point at 1% of the loan, as the methodology page states, and the build re-checks that identity), a definition rather than a market quote. The Mortgage Discount Points guide covers what points are. On the $200,000 example loan, 1.5 points is $3,000, as the points function prices it; entered alone, the APR is 6.14%. Add $1,000 of other upfront charges and the total is $4,000 — the worked example's fee total — and the APR is 6.19% again, because the engine sees only the sum. What points buy in return is the Mortgage Points Calculator's arithmetic, not this one's.

How to read the result

The result box shows five lines. Four are formatted from the engine's result and your inputs without further arithmetic; the fifth, "What the APR tells you", restates the returned APR as its distance above the rate you typed, in percentage points — the difference between two figures already on screen, 0.19 for the example:

  • The large "% APR" figure is the solved rate, shown to at most two decimals. It is never below the note rate: equal when the fees are zero, higher as the fees rise or the term shortens.
  • Note (quoted) rate is the rate you typed, echoed back beside the APR.
  • Monthly payment is the ordinary amortized payment on the full loan at the note rate — $1,199.10 for the example. The fees field does not change it.
  • Upfront fees is your fee total, echoed in whole dollars.
  • What the APR tells you is the APR minus the note rate in percentage points — 0.19 for the example — stated as the amount the fees add to the cost of borrowing.

Internally every calculation keeps the full precision of IEEE-754 double-precision arithmetic, and nothing is rounded between steps; money is shown to the cent — or to whole dollars for large totals such as lifetime interest — and percentages to a small number of decimals. Your lender's figure may differ by a few cents depending on their rounding and day-count conventions — the difference is presentational, not an error.

Where the calculator stops

The limits are the engine's. It takes one number for fees and does not decide which charges belong in it. The fees are treated as paid upfront, subtracted from the amount received: a charge rolled into the balance belongs in the loan amount field, where it changes the payment, not in the fees field. The discounting uses every scheduled payment to the end of the term; a loan paid off earlier is a different calculation this function does not perform. The payment it starts from is the fixed-rate, fully amortizing payment, and the methodology page's limit applies in full: the calculators do not model adjustable-rate mortgages, interest-only periods, balloon payments, or negative amortization — the Fixed vs. Adjustable Rate guide describes the structure this engine does not price. And a correct calculation can still be the wrong calculation for your situation — choosing the right loan for a real-world decision is judgment we cannot automate.

Common misreadings

"A fee of 2% of the loan adds 2 percentage points to the APR." It does not. The $4,000 in the example is 2% of the loan and adds 0.19 points over 30 years, or 0.32 over 15. The fee is restated as a rate across every scheduled payment; over the 180 and 360 payments here its annual weight is a fraction of its share of the loan, and the fewer the payments, the closer to — or beyond — that share it climbs.

"The lower note rate has the lower APR." The note rate is one of two inputs that set the APR; the fee total is the other. In the two offers above the lower note rate belongs to Offer B and the lower APR to Offer A. The table is the check, not the headline rate.

Frequently asked questions

What exactly is APR, as this calculator computes it?

An annual rate that counts the upfront fees as well as the interest. The engine computes the payment on the full loan at the note rate, treats the amount you received as the loan minus the fees, and solves for the annual rate — compounded monthly — that discounts those payments back to that smaller amount: 6.19% against a 6% note rate in the worked example.

How do I compare two offers that quote different fee sets?

Enter the same kinds of charges on both sides. The engine counts whatever total is in the fees field and has no list of its own, so two APRs are comparable only when both fee totals were assembled the same way — as they were for the two fictional offers on this page, which come out at 6.32% and 6.39%.

Does a lower APR always mean a lower total cost?

Not necessarily. The APR is the rate that discounts the scheduled payments to the net amount received; the total paid over the term is the payments plus the fees, and the two orderings can differ. On this page Offer A has the lower APR, 6.32% against 6.39%, while its interest plus fees, $244,816, exceeds Offer B's $239,676. Both offers are on the same $200,000 loan amount, so interest plus fees orders the same way as payments plus fees; the build re-checks that ordering against the engine. The discounting uses every scheduled payment to the last month — 360 of them in the worked example — so a loan paid off or replaced earlier is a further calculation this function does not perform, and because the fee is a fixed amount it weighs more across fewer payments, as the 15-year example shows. The engine compares; the horizon is yours to supply.

How do I enter discount points?

As dollars, inside the fees total. One discount point costs 1% of the loan amount — the engine's points function's convention, a definition rather than a market quote — so 1.5 points on the $200,000 example loan is $3,000, as that function prices it. Other upfront charges go in the same field: $3,000 of points plus $1,000 of fees is the worked example's $4,000, and the engine returns the same 6.19% however the total was assembled.

Does the term have to be a whole number of years?

No. The engine rounds years × 12 to the nearest whole month and computes the payment and the APR on that count of payments. A fictional $20,000 loan at 7.25% over 2.5 years with $500 of fees becomes 30 payments of $730.91, and its APR is 9.29%.

What happens if the fees are as large as the loan?

The engine refuses the input before any arithmetic runs and returns its own message instead of a number: "Fees must be less than the loan amount." The loan amount must also be greater than zero — "The loan amount must be greater than 0." — the fees cannot be negative, and the rate and term are validated by the same rules as every other amortized-loan payment on the site.

What does the "What the APR tells you" line mean?

It is the APR minus the note rate, in percentage points — 0.19 for the worked example: a difference between two rates on the same loan, not a rate of its own and not a dollar amount. The fees are echoed on the "Upfront fees" line, and the lifetime interest the schedule records — $231,676 for the example loan — does not change with the fees.

Can I use this for an auto loan, a personal loan or another fixed-rate loan?

The function does not know what kind of loan it is given. It applies the standard amortized-loan (PMT) formula with monthly compounding — the convention behind US mortgages and most consumer loans — to the amount, rate and term you enter. The methodology page's limit applies: the calculators model fixed-rate, fully amortizing loans and do not model adjustable-rate mortgages, interest-only periods, balloon payments, or negative amortization.

Not financial advice: a general educational estimate. Regulatory APR definitions specify exactly which fees count and can differ from a simple all-fees calculation — the lender's formal disclosure governs. Values are processed locally in your browser and never transmitted. See the methodology page.