---
title: "Federal student-loan repayment comparison (standard + RAP + IBR + PSLF)"
method: POST
path: "/v1/education/student-loan"
tags: ["Education"]
---

# Federal student-loan repayment comparison (standard + RAP + IBR + PSLF)

`POST /v1/education/student-loan`

## Request

- Base URL: `https://api.numeratica.com`
- URL: `https://api.numeratica.com/v1/education/student-loan`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Compares federal repayment options under current law (P.L. 119-21 / OBBBA): the standard 10-year amortization, the new Repayment Assistance Plan (RAP, available July 1 2026), and Income-Based Repayment (IBR), with an optional PSLF outcome. RAP is a flat % of AGI by bracket (1%–10%, less $50/mo per dependent, $10 floor) that waives unpaid interest and matches principal up to $50/mo; IBR is 10%/15% of discretionary income (AGI − 150% of the HHS poverty guideline) capped at the standard payment, forgiven at 20/25 years. Projections hold income constant. Deterministic; not financial advice (verify plan rules with your servicer).

## Request body

- StudentLoanRequest
  - `loan_balance` number, required: Current federal loan balance.
  - `interest_rate` number, required: Annual interest rate (e.g. 0.065).
  - `agi` number, required: Borrower's adjusted gross income.
  - `family_size` integer, required: Household size (IBR discretionary income).
  - `dependents` integer: Number of dependents (RAP −$50/mo each).
  - `state` string: "AK"/"HI" or empty for the 48 contiguous (poverty-guideline region).
  - `guideline_year` integer: Poverty-guideline year (default 2026).
  - `loan_before_2014` boolean: Pre-2014 loans use 15% / 25-year IBR; 2014+ use 10% / 20-year.
  - `standard_term_months` integer: Standard-plan term (default 120).
  - `pursuing_pslf` boolean: Add the 120-payment PSLF outcome.

## Response `200`

The repayment comparison

- StudentLoanResponse
  - `result_id` string
  - `engine_version` string
  - `inputs` StudentLoanRequest
    - `loan_balance` number, required: Current federal loan balance.
    - `interest_rate` number, required: Annual interest rate (e.g. 0.065).
    - `agi` number, required: Borrower's adjusted gross income.
    - `family_size` integer, required: Household size (IBR discretionary income).
    - `dependents` integer: Number of dependents (RAP −$50/mo each).
    - `state` string: "AK"/"HI" or empty for the 48 contiguous (poverty-guideline region).
    - `guideline_year` integer: Poverty-guideline year (default 2026).
    - `loan_before_2014` boolean: Pre-2014 loans use 15% / 25-year IBR; 2014+ use 10% / 20-year.
    - `standard_term_months` integer: Standard-plan term (default 120).
    - `pursuing_pslf` boolean: Add the 120-payment PSLF outcome.
  - `result` object
    - `standard` object
      - `monthly_payment` number
      - `total_paid` number
      - `total_interest` number
      - `months` integer
    - `rap` StudentLoanProjection: An income-driven plan's outcome, holding AGI constant.
      - `initial_monthly_payment` number
      - `months_to_payoff` integer: 0 if forgiven before payoff.
      - `total_paid` number: Borrower payments until payoff or forgiveness.
      - `forgiven_balance` number: Balance forgiven at the term (0 if paid off).
      - `forgiven` boolean
      - `forgiveness_months` integer: The plan's forgiveness term.
    - `ibr` StudentLoanProjection: An income-driven plan's outcome, holding AGI constant.
      - `initial_monthly_payment` number
      - `months_to_payoff` integer: 0 if forgiven before payoff.
      - `total_paid` number: Borrower payments until payoff or forgiveness.
      - `forgiven_balance` number: Balance forgiven at the term (0 if paid off).
      - `forgiven` boolean
      - `forgiveness_months` integer: The plan's forgiveness term.
    - `ibr_rate` number: 0.10 or 0.15.
    - `ibr_discretionary_income` number
    - `poverty_guideline` number: Annual, for the family size + region.
    - `pslf` object: Present only when pursuing_pslf is set.
      - `months` integer: 120.
      - `rap_total_paid` number
      - `rap_forgiven` number
      - `ibr_total_paid` number
      - `ibr_forgiven` number
    - `lowest_initial_payment` 'standard' | 'rap' | 'ibr'
  - `disclaimer` string

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key.
- `405`: Method not allowed
- `429`: The key's per-minute request budget is exceeded. Retry after the delay in the Retry-After header.
- `503`: A dependency (e.g. the key store) is temporarily unavailable, or the request exceeded its compute deadline. Retryable.

---

[API](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api.md) · [All operations](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api/llms.txt) · [OpenAPI document](https://skmtc.dev/numeratica/apis/numeratica-financial-planning-calculations-api/revisions/075bcfbd1ebf?raw)
