Section 1202 — Qualified Small Business Stock — is the single highest-leverage federal tax provision in the founder and early-employee toolkit. Hold qualifying stock for five years, and up to $10 million (or 10x basis, whichever is greater) of gain on the sale is excluded from federal tax. For a founder selling $20M of stock with $0 basis, the exclusion saves roughly $2.4M of federal capital-gains tax — assuming the eligibility chain holds. The eligibility chain is exactly where most wealth-tech platforms get this wrong.
The provision has been on the books since 1993, but its modern relevance dates to 2010 when the exclusion became 100% (it was 50% before that, with AMT preference treatment that reduced its effective value). Since then it has become a default planning consideration for early-stage equity holders. And since then it has been mishandled by tax-aware planning engines, direct-indexing platforms, and rebalancing tools that don't model the underlying eligibility data.
This article is a working note for the engineering teams building those products on what the data model needs to look like, why the typical "is_qsbs: true" boolean fails, and what bug classes ship without a richer model.
What §1202 actually requires
The exclusion has three concurrent eligibility tests, each of which can fail independently:
-
The corporation is a qualified small business at the time the stock is issued. This means the issuer is a domestic C corporation with aggregate gross assets of $50 million or less (the "gross asset test") at all times before and immediately after issuance, and conducts an active trade or business that is not a "specified service trade or business" excluded under §1202(e)(3) (financial services, health, law, engineering, brokerage, etc.).
-
The stock was acquired at original issue for cash, services, or other property. Stock acquired in secondary transactions doesn't qualify, with limited carve-outs for tax-free exchanges and gifts.
-
The taxpayer has held the stock for more than five years before disposition. The holding period tacks in certain transactions (gift, inheritance, contribution to a partnership) and resets in others.
Each of these conditions must be evaluable at any point in time, by any algorithm that wants to make a tax-aware decision involving the position. A boolean is_qsbs: true collapses all three into one, which means the algorithm has no way to know which condition might fail or whether the failure is fixable.
The data model that actually works
A working QSBS data model breaks the eligibility chain into structurally independent fields. Each can be tested by the consuming algorithm without re-deriving the conclusion.
interface QSBSAttestation {
// Original-issue test
acquired_at_original_issue: boolean;
acquisition_method: 'cash' | 'services' | 'property' | 'gift_carryover' | 'inheritance_carryover' | 'other';
acquisition_date: ISODate; // Holding-period start
// Issuer-side gross-asset test
issuer_corp_id: string;
issuer_was_qualified_at_issuance: boolean;
issuer_aggregate_gross_assets_at_issuance: number; // Must be ≤ $50M
issuer_corporate_form: 'C-corp' | 'other'; // S-corps don't qualify
issuer_business_classification: BusinessCode; // For SSTB carve-out check
issuer_active_trade_or_business: boolean;
// Holding-period status as of any point in time
holding_period_start: ISODate;
holding_period_tacked_from?: ISODate; // For gift / inheritance carry-overs
// Per-taxpayer cap awareness
basis_at_acquisition: number; // For 10x basis test
cumulative_excluded_gains_from_this_issuer: number; // For $10M aggregate-cap tracking
// Disposition planning
earliest_eligible_disposition_date: ISODate; // start + 5y
has_disqualifying_event_since_acquisition: boolean; // E.g., issuer redemption
}
Several of these fields aren't bookkeeping decoration. The acquisition_method field determines whether a tacking provision applies: stock received by gift or inheritance tacks the donor's holding period, but stock acquired via a tax-free exchange may or may not. The issuer_aggregate_gross_assets_at_issuance must be captured at issuance time because by the time the holder is contemplating a sale, the issuer's gross assets may be in the billions — the test is at the moment of original issuance, not at the moment of disposition.
The cumulative_excluded_gains_from_this_issuer field tracks the per-taxpayer per-issuer cap. See small business exit section 1045 rollover for the deferral mechanics. The exclusion is the greater of $10 million or 10x basis, but the $10 million is per-taxpayer per-issuer and accumulates across multiple sales. A founder selling $5M of QSBS in 2024 and $7M in 2026 has used $5M of cap in 2024 and only has $5M of cap remaining in 2026 — the second sale's gain is partially taxable.
The gross-asset test at issuance — the time-machine field
The hardest field to populate retroactively is the issuer's aggregate gross assets at the moment of stock issuance. By the time the holder is exiting, the issuer may have raised $400M in venture capital and crossed $50M in gross assets multiple times.
The §1202 test is at issuance, not at disposition. Stock issued when the company had $20M in gross assets remains QSBS-eligible even if the company subsequently grew to $5B. See ISO bargain element tax modeling for related grant-date timing rules. But stock issued after the company crossed $50M is not QSBS-eligible regardless of how the company subsequently performs.
For early employees and founders, the issuance date often predates careful tracking of gross assets. The data the platform needs may live in old 409A valuations, CFO spreadsheets, or audit reports. Surfacing this field in the data model — and demanding it at onboarding rather than at disposition — is the difference between a platform that confidently advises QSBS exits and one that can't.
The active-trade-or-business test and the SSTB carve-out
Section 1202(e) excludes corporations whose principal activity is financial services, healthcare, law, engineering, architecture, accounting, performing arts, consulting, brokerage, or "any trade or business where the principal asset of such trade or business is the reputation or skill of one or more of its employees." This is the same Specified Service Trade or Business (SSTB) carve-out that limits the §199A QBI deduction, with subtle definitional differences.
The platform must capture the issuer's business classification with sufficient granularity to evaluate the SSTB question. NAICS codes are necessary but insufficient — many fintech companies straddle the boundary between "software" (which qualifies) and "financial services" (which doesn't). The classification needs to reflect how the corporation's revenue actually flows: a SaaS company selling tax-software to consumers is generally a software company; a roboadvisor is generally a financial-services company even if its product looks like software.
Recent IRS guidance (PLR 202119001 and others) has narrowed the SSTB carve-out for some borderline cases. The data model should be capable of carrying the issuer's qualified status as a versioned attestation that can be updated when guidance shifts.
The holding-period interaction with rebalancing
The data model is necessary but insufficient. Algorithms that consume the data must respect it.
A tax-aware rebalancer that looks at a household with QSBS-eligible positions has three planning horizons to consider: the QSBS five-year clock, the lot-level long-term-capital-gain holding period (one year), and the short-term-to-long-term transition for non-QSBS lots. These three clocks aren't aligned and the rebalancer's behavior should differ across each regime.
Before the one-year LTCG threshold: ordinary-rate gains. Most rebalancers correctly defer realization here unless tax-loss-harvesting is the goal.
Between one year and five years: long-term-capital-gain rates apply, but QSBS-specific exclusion has not vested. Rebalancing here forfeits the QSBS exclusion. The rebalancer should treat QSBS positions in this window as effectively "do not sell unless rebalancing thesis strongly outweighs the foregone exclusion."
After five years: full QSBS exclusion available. Rebalancer should treat the position normally for sales decisions but with cap-tracking — sales that exceed the $10M or 10x-basis cap have ordinary LTCG treatment on the excess.
After §1045 rollover window: an alternative pattern, where a §1045-eligible holder sells QSBS and rolls proceeds into new QSBS within 60 days, deferring the gain entirely. Some platforms surface this as a planning option; most don't.
What a working test corpus contains
For the engineering teams building these features, the test corpus needs to exercise every QSBS scenario:
- A holder one month before the five-year clock vests (TLH-tempting)
- A holder six months after vesting with a strong sell rationale (cap-allocation question)
- A holder mid-window with a disqualifying-event flag (issuer redemption)
- A holder who has used $5M of the $10M cap and is contemplating another disposition
- A holder with a §1045 rollover candidate (60-day window)
- A holder whose QSBS shares were acquired through gift carry-over from an original-issuance holder
- An issuer that crossed $50M in gross assets between two issuance dates, with the holder having shares from both periods
Each of these scenarios produces a structurally different right answer. A test corpus that exercises only "is_qsbs: true vs. false" can't validate the algorithm's behavior across these regimes. The corpus must structurally represent the holding-period clock, the cap-tracking, and the issuer attestation.
The advice surface this enables
Once the data model and the algorithms respect each other, the planning engine can surface advice that's actually correct. "Hold this position 4 more months before harvesting losses — at month 60 you become eligible for $X of federal exclusion that exceeds today's harvest value." "You've used $5M of your $10M cap with this issuer; the next sale will be partially taxable." "Your §1045 rollover window closes on date X."
Without the model, none of these advice paths are tractable. The platform falls back to "consult your tax advisor" — which is true but unhelpful and signals to the holder that the platform itself doesn't understand their situation.
The data model is the prerequisite for being a competent tax-aware platform for founders and early-stage equity holders. It's not optional, and it's not a sales feature — it's the table-stakes correctness for serving this population.
Key takeaways
- QSBS has three independent eligibility tests — original issuance, issuer qualification at issuance, and holding period — each of which can fail independently. A single boolean collapses all three and produces algorithm bugs at the failure boundaries.
- The issuer's aggregate gross assets at issuance is the time-machine field — it must be captured at acquisition, not at disposition. Companies cross $50M long before holders sell.
- Tax-aware rebalancers must treat QSBS positions in the one-to-five-year window as effectively non-rebalanceable unless the thesis materially outweighs the foregone federal exclusion.
- The per-taxpayer per-issuer cap ($10M or 10x basis) accumulates across multiple sales — cumulative-excluded-gains tracking is required, not optional.
- A test corpus that exercises only is-qsbs-true-or-false can't validate algorithm behavior across the regime transitions where the planning value lives.
The QSBS data model is one of the highest-ROI investments a wealth-tech platform serving founder / early-employee populations can make. The math justifies it on a single client. The algorithm correctness justifies it across the population. The advice surface it enables is what differentiates a credible founder-tier product from one that defaults to "consult your tax advisor" on the highest-leverage planning question those clients will ever face.