---
title: "Solo 401(k) vs SEP-IRA contribution sizing (self-employed)"
method: POST
path: "/v1/retirement/self-employed"
tags: ["Retirement"]
---

# Solo 401(k) vs SEP-IRA contribution sizing (self-employed)

`POST /v1/retirement/self-employed`

## Request

- Base URL: `https://api.numeratica.com`
- URL: `https://api.numeratica.com/v1/retirement/self-employed`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Sizes the maximum retirement contribution for a self-employed person (sole proprietor / single-member LLC) under both a SEP-IRA and a solo 401(k) from Schedule C net profit. It applies the self-employment-tax adjustment (net profit − ½ SE tax = plan compensation) and the self-employed "reduced rate" (a 25% employer plan is 20% of plan compensation), adds the solo 401(k) employee elective deferral plus the age catch-up, and caps everything at the §415(c) annual-additions limit. Returns both plan totals and which lets you save more. Deterministic; not tax advice.

## Request body

- SelfEmployedRequest
  - `tax_year` integer: Omit for 2026.
  - `age` integer, required: Drives the 401(k) catch-up.
  - `net_profit` number, required: Schedule C net profit (before the retirement contribution).
  - `existing_w2_deferrals` number: Elective deferrals already made this year to another employer's 401(k)/403(b) (per-person §402(g) limit).

## Response `200`

The contribution sizing

- SelfEmployedResponse
  - `result_id` string
  - `engine_version` string
  - `inputs` SelfEmployedRequest
    - `tax_year` integer: Omit for 2026.
    - `age` integer, required: Drives the 401(k) catch-up.
    - `net_profit` number, required: Schedule C net profit (before the retirement contribution).
    - `existing_w2_deferrals` number: Elective deferrals already made this year to another employer's 401(k)/403(b) (per-person §402(g) limit).
  - `result` object
    - `net_earnings_from_se` number: 92.35% of net profit.
    - `self_employment_tax` number
    - `se_tax_deduction` number: ½ SE tax.
    - `plan_compensation` number: Net profit − ½ SE tax (the base for contributions).
    - `wage_base_used` number: OASDI wage base for the year.
    - `annual_additions_limit` number: §415(c).
    - `sep_contribution` number: 20% of plan compensation, capped at §415(c).
    - `solo_401k_employee_deferral` number: Elective + catch-up.
    - `solo_401k_employer_contribution` number: 20% profit-sharing, squeezed under §415(c).
    - `solo_401k_total` number
    - `higher_plan` 'solo_401k' | 'sep' | 'equal'
  - `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)
