Federal Loan Interest Rate Calculator

ANALife Services AuthorityNational Calculator Authority›Federal Loan Interest Rate Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Federal Loan Interest Rate Calculator

Calculate your monthly payment, total interest paid, and effective cost for federal student loans based on official U.S. Department of Education interest rates and your loan details.

Loan Type

Direct Subsidized / Unsubsidized (Undergrad) — 3.73% Direct Unsubsidized (Graduate/Professional) — 5.28% Direct PLUS (Grad PLUS / Parent PLUS) — 6.28% Custom / Other Rate

Custom Annual Interest Rate (%)

Loan Principal Amount ($)

Repayment Term (Years)

10 Years (Standard) 12 Years 15 Years (Extended) 20 Years (Income-Driven / Extended) 25 Years (Income-Driven) 30 Years (Extended)

Disbursement / Start Date

Grace Period (Months)

0 Months (PLUS Loans — repayment begins immediately) 6 Months (Standard — Subsidized / Unsubsidized) 9 Months (Perkins Loans)

Is this a Subsidized Loan?

No — Interest accrues during grace period & deferment Yes — Government pays interest during grace period & in-school deferment

Calculate

### Results

Annual Interest Rate Monthly Interest Rate Loan Principal Accrued Interest During Grace Period Capitalized Balance at Repayment Start Monthly Payment Total Amount Paid Total Interest Paid Interest as % of Principal First Payment Date Payoff Date

#### Amortization Schedule (First 12 Months)

# Payment Principal Interest Balance

(function() {

// Set default disbursement date to today var today = new Date(); var yyyy = today.getFullYear(); var mm = String(today.getMonth() + 1).padStart(2, '0'); var dd = String(today.getDate()).padStart(2, '0'); document.getElementById('fed-disbursement').value = yyyy + '-' + mm + '-' + dd;

window.fedUpdateRate = function() { var sel = document.getElementById('fed-loan-type').value; var customField = document.getElementById('fed-custom-rate-field'); customField.style.display = (sel === 'custom') ? 'block' : 'none'; };

function fedShowError(msg) { var el = document.getElementById('fed-error'); el.textContent = msg; el.style.display = 'block'; document.getElementById('fed-result').style.display = 'none'; }

function fedClearError() { document.getElementById('fed-error').style.display = 'none'; }

function fedFmt(n) { return '$' + n.toLocaleString('en-US', {minimumFractionDigits: 2, maximumFractionDigits: 2}); }

function fedFmtPct(n) { return n.toFixed(4) + '%'; }

function fedAddMonths(date, months) { var d = new Date(date); d.setMonth(d.getMonth() + months); return d; }

function fedFmtDate(d) { return d.toLocaleDateString('en-US', {year:'numeric', month:'short', day:'numeric'}); }

window.fedCalc = function() { fedClearError();

// --- Read inputs --- var loanTypeSel = document.getElementById('fed-loan-type').value; var annualRate; if (loanTypeSel === 'custom') { annualRate = parseFloat(document.getElementById('fed-custom-rate').value); if (isNaN(annualRate) || annualRate 30) { fedShowError('Please enter a valid custom annual interest rate between 0.01% and 30%.'); return; } } else { annualRate = parseFloat(loanTypeSel); }

var principal = parseFloat(document.getElementById('fed-principal').value); if (isNaN(principal) || principal 10000000) { fedShowError('Principal amount seems unusually large. Please verify your entry.'); return; }

var termYears = parseInt(document.getElementById('fed-term').value); var gracePeriodMonths = parseInt(document.getElementById('fed-grace').value); var isSubsidized = document.getElementById('fed-subsidized').value === 'yes'; var disbursementVal = document.getElementById('fed-disbursement').value;

var disbursementDate = disbursementVal ? new Date(disbursementVal + 'T00:00:00') : new Date();

// --- Core Calculations ---

// Monthly interest rate: r = annualRate / 100 / 12 var r = annualRate / 100 / 12;

// Daily interest rate (for grace period accrual): r_daily = annualRate / 100 / 365 var rDaily = annualRate / 100 / 365;

// Grace period interest accrual (simple interest, unsubsidized only) // Interest = P * r_daily * days // Approximate: days = gracePeriodMonths * 30.4375 var graceDays = gracePeriodMonths * 30.4375; var graceInterest = 0; if (!isSubsidized && gracePeriodMonths > 0) { // Simple interest during grace period: I = P * (annualRate/100) * (graceDays/365) graceInterest = principal * (annualRate / 100) * (graceDays / 365); }

// Capitalized balance: for unsubsidized, unpaid grace interest capitalizes // For subsidized, government pays grace interest → no capitalization var capitalizedBalance = principal + graceInterest;

// Number of monthly payments var n = termYears * 12;

// Monthly payment formula (standard amortization): // M = P_cap * [r(1+r)^n] / [(1+r)^n - 1] // Special case: if r = 0, M = P_cap / n var monthlyPayment; if (r === 0) { monthlyPayment = capitalizedBalance / n; } else { var onePlusR_n = Math.pow(1 + r, n); monthlyPayment = capitalizedBalance * (r * onePlusR_n) / (onePlusR_n - 1); }

var totalPaid = monthlyPayment * n; var totalInterest = totalPaid - capitalizedBalance; var interestPct = (totalInterest / principal) * 100;

// Dates var repaymentStartDate = fedAddMonths(disbursementDate, gracePeriodMonths); var firstPaymentDate = fedAddMonths(repaymentStartDate, 1); var payoffDate = fedAddMonths(firstPaymentDate, n - 1);

// --- Amortization Schedule (first 12 months) --- var amortRows = ''; var balance = capitalizedBalance; var displayMonths = Math.min(12, n); for (var i = 1; i ' + '' + i + '' + '' + fedFmt(monthlyPayment) + '' + '' + fedFmt(principalPortion) + '' + '' + fedFmt(interestPortion) + '' + '' + fedFmt(balance) + '' + ''; }

// --- Populate outputs --- document.getElementById('fed-out-rate').textContent = annualRate.toFixed(2) + '%'; document.getElementById('fed-out-monthly-rate').textContent = fedFmtPct(r * 100); document.getElementById('fed-out-principal').textContent = fedFmt(principal); document.getElementById('fed-out-grace-interest').textContent = fedFmt(graceInterest) + (isSubsidized ? ' (waived — subsidized)' : ''); document.getElementById('fed-out-capitalized').textContent = fedFmt(capitalizedBalance); document.getElementById('fed-out-payment').textContent = fedFmt(monthlyPayment); document.getElementById('fed-out-total').textContent = fedFmt(totalPaid); document.getElementById('fed-out-interest').textContent = fedFmt(totalInterest); document.getElementById('fed-out-interest-pct').textContent = interestPct.toFixed(2) + '% of original principal'; document.getElementById('fed-out-first-payment').textContent = fedFmtDate(firstPaymentDate); document.getElementById('fed-out-payoff').textContent = fedFmtDate(payoffDate);

document.getElementById('fed-amort-body').innerHTML = amortRows; var noteEl = document.getElementById('fed-amort-note'); if (n > 12) { noteEl.textContent = 'Showing first 12 of ' + n + ' payments. Remaining ' + (n - 12) + ' payments follow the same amortization pattern.'; } else { noteEl.textContent = 'Showing all ' + n + ' payments.'; }

document.getElementById('fed-result').style.display = 'block'; };

})();

#### Formulas Used

Monthly Interest Rate: r = Annual Rate / 100 / 12

Grace Period Interest Accrual (Unsubsidized Loans Only — Simple Interest): Grace Interest = P × (Annual Rate / 100) × (Grace Days / 365) where Grace Days ≈ Grace Months × 30.4375

Capitalized Balance (Unsubsidized): P_cap = Principal + Grace Interest For subsidized loans: P_cap = Principal (government covers grace interest)

Monthly Payment (Standard Amortization Formula): M = P_cap × [r × (1 + r)ⁿ] / [(1 + r)ⁿ − 1] where n = total number of monthly payments (years × 12)

Total Amount Paid: Total = M × n

Total Interest Paid: Total Interest = Total − P_cap

Amortization (each month i): Interest Portion = Balance × r Principal Portion = M − Interest Portion New Balance = Balance − Principal Portion

#### Assumptions & References

More Calculators

References


The law belongs to the people. Georgia v. Public.Resource.Org, 590 U.S. (2020)