Skip to content

Student loan plans: close the disclosed modeling restrictions (FFEL proration, AGI year, tax dependents, mixed spousal rates) #10411

Open

Description

@MaxGhenis

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Activity

  1. MaxGhenis commented on Oct 24, 2026

    @MaxGhenis
    ContributorAuthor
    1. 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.
  2. DTrim99 commented on Oct 27, 2026

    @DTrim99
    Collaborator

    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.

    🤖 Generated with Claude Code

    https://claude.ai/code/session_01LqCGPgxDukji8Bhs57c5rH

  3. MaxGhenis commented on Oct 31, 2026

    @MaxGhenis
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions