Repository navigation
Conversation
…nd S corporation plans Form 7206 allows the plan to be established under a Schedule F farm, a partnership with K-1 box 14 code A earnings, or an S corporation in which the person is a more-than-2% shareholder (162(l)(5), line 11), one form per plan. Add self_employed_health_insurance_plan_business (default: the business with the largest earned income) and s_corp_shareholder_medicare_wages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n plans Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… limit Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 11, 2026
Draft
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WIP. Stacked on #10109 (
fix-sehi-earned-income-limit); retargets tomainwhen #10109 merges.Problem
#10109's
self_employed_health_insurance_earned_income_limit(Form 7206 lines 4–13) treats the person's Schedule C business (total_self_employment_income) as the only business under which a health plan can be established. The law and Form 7206 allow more:On #10109, a farmer or partner whose only self-employment income is Schedule F profit or K-1 box 14 code A earnings gets a $0 deduction however large their premiums. Example (2024): farm profit $20,000 and premiums $25,000 give $0, where Form 7206 gives $18,587.05.
Change
self_employed_health_insurance_plan_business(Person enum:SCHEDULE_C,SCHEDULE_F,PARTNERSHIP,S_CORPORATION, defaultUNSPECIFIED). It names the business under which the plan is established. TheUNSPECIFIEDdefault follows thetax_unit_role_inputpattern.s_corp_shareholder_medicare_wages(Form 7206 line 11). These are box 5 Medicare wages from an S corporation in which the person is a more-than-2% shareholder. They are part ofemployment_income, not in addition to it, and are net of any section 911 exclusion (line 12), like the other income inputs.self_employed_health_insurance_earned_income_limitcomputes line 13 for each business:total_self_employment_income.farm_operations_income.partnership_self_employment_net_earnings.self_employed_pension_contribution_ald_personon Schedule C income, and Limit self-employed plan contributions to the Pub. 560 maximum deduction #10121 keeps Schedule C as the retirement plan's business.UNSPECIFIEDtakes the largest of the four.The default: why the largest business
PE has one premium input per person and no data on which business the plan sits under, so the default is a methodology choice:
health_insurance_premiumsis one amount, most naturally one policy. A Schedule C or F filer can hold the policy in their own name under either business. A filer able to choose would pick the business with the larger limit.The impact section reports both readings.
Unchanged: line 2 (long-term care, a separate follow-up), 162(l)(2)(B) subsidized-employer-plan months, the premium tax credit interaction, and the
is_self_employedgate onself_employed_health_insurance_premiums. The S corporation path, like every other path, needsis_self_employed; the input's documentation says so.Invariants
These hold for every input and are tested with Hypothesis in
tests/unit/test_self_employed_health_insurance_properties.py. Each drawn filer appears six times in one vectorized simulation over 2022, 2024 and 2026: with no named business, with higher premiums, and once naming each of the four businesses.The strategies draw losses in each business, S corporation wages, wages above the Social Security wage base, the $400 threshold, and large plan deductions. A local 300-example random sweep (1,779 filers, 6 copies each, 3 years) also passed. Hypothesis first failed on a float32 artifact: the model's $235,213.42 against the reference's $235,213.44, where the float32 spacing is $0.0156. The bound checks now carry a 1e-6 relative tolerance alongside the $0.01 absolute one.
Tests
self_employed_health_insurance_earned_income_limit.yaml, 17 cases): 9 new cases plus Case 8 rewritten. Expected values are hand-computed from Form 7206.self_employed_health_insurance_ald.yaml, 10 cases): 4 new cases. Farm only and partnership only end with AGI 0; S corporation wages; a named farm.SCHEDULE_C, which still gives 0. The same inputs without a name give the partnership's $18,940.28 (new Case 9).1bad2f16f6:47bba5e893, one file at a time:Impact
Pending: base (#10109 head), this PR, and the all-businesses-combined alternative on the default dataset for 2026 are queued under the shared heavy lock.
Review
Pending: independent review dispatched (
subfleet run --task review --tier hard).Follow-ups
is_self_employed) only to people with positive Schedule C profit (other_health_insurance.py, microcosm#451 item 2), built around the old Schedule C-only cap. The data-side widening is a separate chip.axiom: us/statute/26/162/l queued (TheAxiomFoundation/rulespec-us#1676; to be extended for the plan business)
🤖 Generated with Claude Code