Who this is for
- Graduate and professional students building a multi-year aid budget
- Financial aid staff testing whether a calculator matches school COA worksheets
- Borrowers comparing federal room to private loan options
Who should not use this
- Borrowers who only need monthly payment estimates (use repayment plans instead)
- Students who will not use federal Direct Loans at all
The Grad Funding Gap calculator answers one narrow question well: after official July 1, 2026 federal caps, how much of your remaining need might still fit in Direct Unsubsidized loans, and how much is left as a private gap? It does not pick a lender. It does not invent tuition from a rank list. It applies dated rule files from content/rules/ that trace back to Federal Student Aid and CRI pages verified on November 12, 2026.
This article documents the math so you can disagree intelligently with the output.
Inputs you provide
The island asks for:
- Cost of attendance (COA) for the period you are modeling (typically one academic year in dollars).
- Degree level:
graduateorprofessional, which selects different annual and aggregate bands from the loan limits file. - Academic years remaining in the program (used to scale annual caps across multiple years in one run).
- Other aid (scholarships, stipends, assistantships, gifts) subtracted from COA.
- Optional: Grad PLUS limited exception toggle (defaults off).
- Optional for professional students: amount already borrowed as a graduate student, which reduces the professional aggregate cap formula.
You are responsible for COA and other aid accuracy. We do not scrape schools. If your financial aid office gives a different COA than a website ranking table, trust the office.
Step 1: Calculate need
need = max(0, costOfAttendance - otherAid)
If scholarships cover full COA, need is zero and the tool reports no private gap.
Step 2: Load caps from rule files
The calculator calls getLoanLimits() and refuses to run if the file is not marked verified. For borrowers not on an interim exception, Federal Student Aid lists:
| Level | Annual unsubsidized cap | Aggregate cap |
|---|---|---|
| Graduate | 20,500 dollars | 100,000 dollars for graduate study |
| Professional | 50,000 dollars | 200,000 dollars minus graduate borrowing already taken |
See New federal loan limits in 2026 for exceptions and Parent PLUS caps (Parent PLUS is outside this calculator’s core gap math).
Step 3: Compute aggregate headroom
For professional borrowers:
aggregateCap = 200,000 - amountAlreadyBorrowedAsGraduate
For graduate borrowers:
aggregateCap = 100,000 (graduate study aggregate from rule file)
Then:
aggregateRoom = max(0, aggregateCap)
The calculator does not subtract undergraduate loans automatically from the graduate aggregate. Federal Student Aid does not state in one sentence that undergraduate debt is excluded from the 100,000 dollar graduate total. Your financial aid office may apply policy differently.
Step 4: Scale annual caps across remaining years
annualRoom = annualCap * academicYearsRemaining
Example: graduate student with 2 years left gets at most 20,500 × 2 = 41,000 dollars of annual cap room before aggregate limits bind.
Step 5: Federal unsubsidized room
federalUnsubsidizedRoom = min(need, annualRoom, aggregateRoom)
All three ceilings matter. A student with enormous need but only 5,000 dollars of aggregate headroom will see federal room of 5,000 dollars, not full need.
Dollar amounts are rounded with the same money rounding helper used in repayment calculators so UI and tests stay consistent.
Step 6: Private funding gap
privateLoanGap = max(0, need - federalUnsubsidizedRoom)
If privateLoanGap > 0, the tool sets suggestPrivateLoan to true. That flag means math says federal caps are not enough, not “you should borrow privately.” Private loans forfeit federal protections.
Step 7: Grad PLUS limited exception toggle
By default the calculator assumes no new Grad PLUS, matching CRI’s July 1, 2026 end date for most borrowers.
If you enable the exception toggle:
- The tool adds notes that you self-certified the three CRI tests (enrolled by June 30, 2026, prior Direct Loan for the program, continuous enrollment at same school).
- It still shows Direct Unsubsidized room under standard caps. It does not add unlimited Grad PLUS dollars to federal room because PLUS limits are not encoded as an automatic lift in Phase 1.
- It reminds you to confirm with your financial aid office.
Read the three tests on CRI’s understanding student loans page before you flip the toggle.
Notes the UI attaches
Every run pushes plain-language notes, including:
- Default no Grad PLUS reminder.
- Exception path wording when the toggle is on.
- A message when federal room covers all need (no private suggestion).
Notes come from rule summaries, not from a lender marketing sheet.
What the calculator does not do
To stay honest with RULES_CHECK:
- No private APR quotes or approval odds.
- No school COA database (you type COA).
- No interim exception auto-detection for students still on 138,500 dollar pathways.
- No health profession superscripts beyond pointing you to financial aid.
- No Grad PLUS dollar injection when the exception toggle is on (confirmation only).
Those gaps are intentional until dated official data files exist.
How to sanity-check an output
- Compare
annualCapandaggregateCapon screen to Federal Student Aid loan limits. - Hand-calculate
needfrom your award letter. - Check whether aggregateRoom is binding (common late in a long professional program).
- If the gap is positive, read repayment implications on repayment plans before shopping private loans.
Relationship to repayment tools
Funding gap and monthly payment are different decisions. After you project debt, model payments under RAP or Tiered Standard using the repayment calculator. High debt with PSLF hopes should stay federal. See PSLF in 2026.
Testing and transparency
Vitest unit tests cover representative cap combinations in grad-funding-gap.test.ts. When a test fails after a rule edit, builders must update either the JSON rule file or the narrative here. That keeps the on-screen numbers and the written methodology aligned.
If you spot a mismatch, compare your hand math to the test file expectations before you file feedback. Often the aggregate room binds earlier than intuition suggests.
Methodology and updates
Rule files include last_verified dates. When Federal Student Aid changes caps or Grad PLUS policy, editors update JSON and RULES_CHECK.md, then Vitest re-runs. Components do not hardcode 20500 or 100000.
Our methodology page describes the wider audit practice.
Worked example with real caps only
Suppose a second-year graduate student has:
- COA: 72,000 dollars
- Other aid: 30,000 dollars
- Need: 42,000 dollars
- 2 years remaining
- Aggregate headroom still 58,000 dollars (never borrowed toward the 100,000 dollar graduate cap)
Annual cap room: 20,500 × 2 = 41,000 dollars. Federal room: min(42,000, 41,000, 58,000) = 41,000 dollars. Private gap: 1,000 dollars. The tool would flag a small private gap, not a full private-only year.
Change the same student to professional with 50,000 dollars annual cap and the same need: annual room becomes 100,000 dollars over two years, aggregate binding at 58,000 dollars, federal room 42,000 dollars, private gap 0 dollars. Degree level changes outcomes without changing COA.
Privacy
The calculator runs client-side in the Preact island. It does not send your COA to a server for storage. See the privacy note on the calculator page for details.
Bottom line
The Grad Funding Gap calculator is a cap-aware min() problem: need, annual scaled caps, and aggregate headroom. Grad PLUS stays off unless you affirm the limited exception. Positive private gap means plan the gap, not rush to refinance federal loans. Open the Grad Funding Gap tool with your award letter numbers and read 2026 loan limits when a number surprises you.
Sources
- Subsidized and Unsubsidized Loans (Federal Student Aid) (as of 2026-11-12)
- Understanding Student Loans (CRI Student Aid) (as of 2026-11-12)