You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Student loan plans: close the disclosed modeling restrictions (FFEL proration, AGI year, tax dependents, mixed spousal rates) #10411
Follow-up to #9721 (merged) and #9724. Each item below is a disclosed modeling restriction where the code differs from the law. The examples for RAP come from the US + core hub's post-merge review of #9721.
FFEL debt in spousal proration (34 CFR 685.209(b)(5), (g)(3); and (g)(1)(i) for IBR and SAVE). The couple's balance should include FFEL loans; the code uses Direct Loans only. Example: joint AGI $60,000, with the borrower's Direct debt at $10,000 and the spouse's FFEL debt at $30,000. RAP is 5% × $60,000 / 12 = $250, prorated by 10/40 to $62.50. The code gives $250.
AGI year (20 U.S.C. 1087e(q)(4)(A): AGI "for the most recent taxable year"). The code uses current-year AGI. Example: a borrower moving from $20,000 to $60,000 owes 1% × $20,000 / 12 = $16.67 under the law and $250 in the code.
Tax-dependent borrowers. The code makes them ineligible, so they owe $0 under RAP, IBR and SAVE (income_driven_repayment_eligible). The law doesn't exclude a borrower because someone else claims them, and RAP's $10 minimum would apply. Giving them their own return is the open part.
Spouses with different interest rates (IBR, PAYE). The code prorates and then caps each spouse at their own standard payment. That equals capping the couple at their combined standard payment and then prorating only when both rates are equal. Example: $30,000 each at 0% and 12% gives standard payments of $250 and $430.41. A $600 income-based payment then gives $250 + $300 = $550 in the code, against $300 + $300 = $600 with cap-then-prorate.
Documentation.
Balances are CPI-uprated across years without a repayment roll-forward, so state when the opening balance applies.
"Owed" assumes enrollment in the plan and active repayment.
Items 1 and 4 are small changes. Item 2 needs prior-year AGI as an input or a lag. Item 3 needs a tax-unit decision.
Parent PLUS balances feed no payment (34 CFR 685.208(b)(1); 20 U.S.C. 1087e(d)(7)(A)(i)(II), (E)). federal_parent_plus_loan_balance isn't read by any formula, so a parent whose only federal debt is Parent PLUS owes $0 under every plan. The 10-year standard plan in 685.208(b)(1) covers Direct PLUS borrowers, Parent PLUS included. Example: $30,000 of Parent PLUS at 6% with no loan made on or after July 1, 2026 is 30,000 × 0.005 / (1 − 1.005^−120) = $333.06 a month under the 10-year plan; the code gives $0. Adding the balance to standard_repayment_payment would also raise the IBR and PAYE caps, which should stay on the income-driven-eligible balance, so this probably wants its own payment variable. The tiered plan's side (its tier should count Parent PLUS principal) is raised in the Add Pay As You Earn, Income-Contingent Repayment and tiered standard repayment payments, and the July 1, 2026 loan bar #10152 review.
Correction to item 4 (spouses with different interest rates), from the review of #10415.
The code before #10415 was right to cap each spouse at their own standard payment after proration. The law caps each borrower, not the couple:
20 U.S.C. 1098e(b)(6)(A): when the payment "for all loans made to the borrower under part B or D" exceeds the 10-year amount, "the maximum monthly payment required to be paid for all loans made to the borrower" is "the standard monthly repayment amount".
34 CFR 685.209(e)(2)(i) includes the spouse's eligible debt only "for the purposes of adjusting the borrower's monthly payment amount as described in paragraph (g)", the proration. It does not bring the spouse's loans into the (f)(2)(ii)/(f)(3)(ii) standard payment.
So in the example ($30,000 each at 0% and 12%, standard payments $250 and $430.41, a $600 income-based payment), each spouse's prorated $300 is capped at their own standard payment: $250 + $300 = $550, not $300 + $300. With an $800 income-based payment it is $250 + $400.
#10415 now keeps the per-borrower cap. It adds the borrower's own FFEL loans to that cap, since 1098e(b)(6)(A) covers loans under part B (FFEL) as well as part D. The Direct Loans carry the (g)(1)(ii) share of it.
The regulation applies the 10-year cap before the spousal proration, so the order in the comment above flips. Each spouse's cap stays on their own loans.
34 CFR 685.209(f)(2) and (f)(3) make the payment the lesser of the income-based amount and the 10-year amount. (g)(1)(i)(B) then multiplies that amount by the borrower's balance share, so the payment comes to min(rate × DI, S_i) × balance_share.
$30,000 each at
Income-based amount
Code
Regulation
0% and 12%
$600
$550
$340.21
0% and 12%
$800
$650
$340.21
6% and 6%
$600
$600
$333.06
6% and 6%
$800
$666.12
$333.06
Once the income-based amount exceeds both standard payments, a couple with equal balances and rates pays half their combined standard amount under the regulation, whatever their income. Single filers and couples with no spouse debt pay the same under either order.
income_based_repayment_payment and pay_as_you_earn_payment both prorate first at main.
Activity
MaxGhenis commentedon Oct 24, 2026
federal_parent_plus_loan_balanceisn't read by any formula, so a parent whose only federal debt is Parent PLUS owes $0 under every plan. The 10-year standard plan in 685.208(b)(1) covers Direct PLUS borrowers, Parent PLUS included. Example: $30,000 of Parent PLUS at 6% with no loan made on or after July 1, 2026 is 30,000 × 0.005 / (1 − 1.005^−120) = $333.06 a month under the 10-year plan; the code gives $0. Adding the balance tostandard_repayment_paymentwould also raise the IBR and PAYE caps, which should stay on the income-driven-eligible balance, so this probably wants its own payment variable. The tiered plan's side (its tier should count Parent PLUS principal) is raised in the Add Pay As You Earn, Income-Contingent Repayment and tiered standard repayment payments, and the July 1, 2026 loan bar #10152 review.Add the parent PLUS standard repayment payment
DTrim99 commentedon Oct 27, 2026
Correction to item 4 (spouses with different interest rates), from the review of #10415.
The code before #10415 was right to cap each spouse at their own standard payment after proration. The law caps each borrower, not the couple:
So in the example ($30,000 each at 0% and 12%, standard payments $250 and $430.41, a $600 income-based payment), each spouse's prorated $300 is capped at their own standard payment: $250 + $300 = $550, not $300 + $300. With an $800 income-based payment it is $250 + $400.
#10415 now keeps the per-borrower cap. It adds the borrower's own FFEL loans to that cap, since 1098e(b)(6)(A) covers loans under part B (FFEL) as well as part D. The Direct Loans carry the (g)(1)(ii) share of it.
🤖 Generated with Claude Code
https://claude.ai/code/session_01LqCGPgxDukji8Bhs57c5rH
MaxGhenis commentedon Oct 31, 2026
The regulation applies the 10-year cap before the spousal proration, so the order in the comment above flips. Each spouse's cap stays on their own loans.
34 CFR 685.209(f)(2) and (f)(3) make the payment the lesser of the income-based amount and the 10-year amount. (g)(1)(i)(B) then multiplies that amount by the borrower's balance share, so the payment comes to
min(rate × DI, S_i) × balance_share.Once the income-based amount exceeds both standard payments, a couple with equal balances and rates pays half their combined standard amount under the regulation, whatever their income. Single filers and couples with no spouse debt pay the same under either order.
income_based_repayment_paymentandpay_as_you_earn_paymentboth prorate first at main.