every model spec’d & versioned · Concordance-tested changelog →

Docs · Model reference

qsbs-exclusion

spec v1.0.0 · 250 open cases

Inputs

FieldTypeValid domain
realizedGainfloat0 – 100,000,000
stockBasisfloat0 – 50,000,000
acquisitionPeriodchoice1993-08-11-to-2009-02-17 | 2009-02-18-to-2010-09-27 | 2010-09-28-to-2025-07-04 | after-2025-07-04
holdingYearsint0 – 20
priorExclusionsUsedfloat0 – 15,000,000
  • Eligibility (original issuance, C-corp, qualified trade or business, the §1202(d) gross-assets test) is an input assumption. Amounts and character only — no tax dollars are computed (spec exclusion).

All fields required. Out-of-domain values are rejected with per-field errors — never clamped. Unknown fields are rejected.

Live example — generated from the real engine

Request
POST /api/v1/models/qsbs-exclusion
{
  "realizedGain": 50000000,
  "stockBasis": 25000000,
  "acquisitionPeriod": "1993-08-11-to-2009-02-17",
  "holdingYears": 10,
  "priorExclusionsUsed": 7500000
}
Response (chart arrays compacted)
{
  "ok": true,
  "model": "qsbs-exclusion",
  "specVersion": "1.0.0",
  "contractUrl": "/api/v1/models/qsbs-exclusion",
  "specUrl": "/api/v1/models/qsbs-exclusion/spec",
  "inputs": {
    "realizedGain": 50000000,
    "stockBasis": 25000000,
    "acquisitionPeriod": "1993-08-11-to-2009-02-17",
    "holdingYears": 10,
    "priorExclusionsUsed": 7500000
  },
  "outputs": {
    "exclusionPct": 0.5,
    "eligibleGain": 50000000,
    "excludedGain": 25000000,
    "taxableAt28PctRate": 25000000,
    "regularLtcgGain": 0,
    "taxableGain": 25000000,
    "amtPreferenceAddback": 1750000.0000000002,
    "remainingCumulativeCap": 0,
    "capBinding": false
  },
  "sentinels": [],
  "assumptions": [
    "Implements model spec qsbs-exclusion v1.0.0 (Concordance-tested: independently reimplemented from the spec).",
    "Eligibility (original issuance, C-corp, qualified trade or business, the §1202(d) gross-assets test) is an input assumption. Amounts and character only — no tax dollars are computed (spec exclusion)."
  ],
  "facts": [
    {
      "id": "irs.qsbs.cap.per-issuer.legacy",
      "label": "QSBS per-issuer cumulative cap, stock acquired on or before 2025-07-04 (§1202(b)(4)(A))",
      "value": 10000000,
      "period": "statutory (not indexed)",
      "source": "IRC §1202(b)(4)(A)"
    },
    {
      "id": "irs.qsbs.cap.per-issuer.obbba.2026",
      "label": "QSBS per-issuer cumulative cap, stock acquired after 2025-07-04 (§1202(b)(4)(B))",
      "value": 15000000,
      "period": "TY2026 (indexed from TY2027, §1202(b)(5))",
      "source": "IRC §1202(b)(4)(B) as added by OBBBA §70431"
    },
    {
      "id": "irs.qsbs.cap.basis-multiple",
      "label": "QSBS per-issuer cap: adjusted-basis multiple (§1202(b)(1)(B))",
      "value": 10,
      "period": "statutory (not indexed)",
      "source": "IRC §1202(b)(1)(B)"
    },
    {
      "id": "irs.qsbs.amt-preference-rate",
      "label": "AMT preference: share of §1202-excluded gain added back (§57(a)(7))",
      "value": 0.07,
      "period": "statutory (not indexed)",
      "source": "IRC §57(a)(7)"
    }
  ],
  "record": {
    "sha256": "0280ff0fe91e3336246614fd60799ebe423203177882e3629f62e58276527501",
    "fields": [
      "model",
      "specVersion",
      "inputs",
      "outputs"
    ],
    "howToVerify": "Store this record with any advice or agent output built on these numbers. To verify later: build {model, specVersion, inputs, outputs} from the stored response, serialize as JSON with object keys sorted recursively (no whitespace), and SHA-256 it — a match proves the numbers came from this spec version with these inputs, unaltered."
  },
  "disclaimer": "Illustrative planning model, not financial advice. Outputs follow the published model spec exactly; read the spec for assumptions and exclusions before relying on any number."
}

This example is executed against the production engine when the page builds — it cannot drift from the API's real behavior.