Skip to content

Populate passive_partnership_s_corp_income: SCF non-active-business shape, Form 8960 level - #734

Draft
MaxGhenis wants to merge 12 commits into
mainfrom
passive-pass-through-722
Draft

Populate passive_partnership_s_corp_income: SCF non-active-business shape, Form 8960 level#734
MaxGhenis wants to merge 12 commits into
mainfrom
passive-pass-through-722

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Implements #722 — the data side of PolicyEngine/policyengine-us#9306 (merged), which added the §1411(c)(1)(A)(ii) passive pass-through leg to the NIIT base as a default-zero input.

  • Evidence resource qbi_passive_passthrough_v1.json (provisional): SCF 2022 non-actively-managed business section (X3401–X3452) shapes P(passive holding) and passive value shares by Schedule-E income band, five implicates pooled, thin-cell collapse n≥30. External anchor: Form 8960 TY2023 line 4a $1,185.6B + 4b −$1,076.4B → line 4c $109.257B (chronicle#180's irs_soi.form_8960.line_4c), with the rental/royalty-vs-pass-through decomposition held as an explicit bounded open question [0, $109.3B] — both bounds stored.
  • Assignment stage behind the version gate: seeded passive-share draw (new independent rng family; v1–v3 streams byte-identical, tested) conditioned on income band and the v3 latent entity form, emitting passive_partnership_s_corp_income = share × partnership_s_corp_income. One persisted log-odds shift calibrates the weighted aggregate to the documented provisional midpoint: achieved $55.021B vs $54.628B target (+0.72%), solve in the assumptions build, simulation pure.
  • Form 8960 diagnostics join the standing validation surface (diagnostics-only, per the Standing per-component repeal-revenue validation surface (#298) #535 containment pattern); rental handling deliberately unchanged with the passivity asymmetry documented as an open question.
  • Base: current origin/main (deliberately not stacked on the stale pre-rename QBI branches).

Verification: sol-built full suite 6,394 passed / 0 failed + restricted replay 12/12; supervisor verified the previously-env-broken multispine_pool_tool family passes with the policyengine extra synced (three local full-suite attempts were killed by machine churn — CI is the clean arbiter, hence draft until green). Dual adversarial review (this PR + chronicle#180) dispatching now; merge follows verdict + green checks.

Fixes #722

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Populate passive_partnership_s_corp_income (NIIT passive pass-through leg, pe-us#9306): SCF non-active-business shape, SOI/8960 level

1 participant