Skip to content

Map otherprop input to miscellaneous_income#931

Merged
PavelMakarchuk merged 1 commit into
mainfrom
map-otherprop-to-rental-income
May 27, 2026
Merged

Map otherprop input to miscellaneous_income#931
PavelMakarchuk merged 1 commit into
mainfrom
map-otherprop-to-rental-income

Conversation

@PavelMakarchuk

Copy link
Copy Markdown
Collaborator

Summary

  • Wire otherprop (TAXSIM-35 input Validate results against taxsim #15, "Other Property") to PE-US miscellaneous_income in variable_mappings.yaml
  • Previously unmapped — PE-taxsim silently dropped the value before Microsim, while TAXSIM-35 binary includes it in AGI

Why this matters

On the 3K eCPS 2025 sample, 92% of records with otherprop ≠ 0 mismatched federally. The eCPS converter packs rental_income into otherprop for TAXSIM-format output; without an inbound mapping, that income vanishes when the comparator runs the round-trip through PE-taxsim.

Why miscellaneous_income (not rental_income)

The natural symmetric mapping is rental_income, but PE-US auto-applies QBID to rental_income (20% deduction = $16,850 on a $100K case), where TAXSIM-35 only triggers QBID via the explicit pbusinc input. miscellaneous_income adds to AGI through irs_gross_income without auto-qualifying for QBI.

Smoke test

otherprop=$100K, single age 40 → PE matches TAXSIM-35 exactly ($13,449 fiitax, $100K v10, $84,250 v18).

3K eCPS 2025 realistic subset (|AGI|<$500K, no S-Corp)

Metric Pre-fix Post-fix
Federal exact 86.5% 89.8%
Federal within $100 ~88% 93.1%
Federal within $1K ~96% 97.9%
State within $100 ~91% 93.3%
State within $1K ~95% 98.3%

Test plan

  • 117/117 existing tests pass
  • Smoke test reproduces exact TAXSIM-35 match
  • 3K eCPS sample re-run confirms improvement

PE-taxsim's variable_mappings.yaml previously left `otherprop`
(TAXSIM-35 input "15. Other Property") unmapped, so any value in
that column was silently dropped before the PE-US Microsim ran.
TAXSIM-35 includes otherprop in AGI, producing a systematic
PE-vs-TAXSIM federal mismatch on records with non-zero otherprop
(92% of such records mismatched in the 3K eCPS sample).

Routing it through `miscellaneous_income` adds it to federal AGI
via `irs_gross_income` without auto-qualifying for QBID (which
would happen if we used `rental_income` directly — the natural
target for the eCPS-to-TAXSIM round-trip, but inflates QBID
inappropriately for non-rental misc property income).

Smoke test: otherprop=$100K, single age 40 → PE matches TAXSIM-35
exactly ($13,449 fiitax, $100K AGI, $84,250 TI).

3K eCPS sample (|AGI|<$500K, no S-Corp realistic subset):
- Federal exact match: 86.5% → 89.8%
- Federal within $100:   88% → 93.1%
- Federal within $1K:    96% → 97.9%
- State within $100:     91% → 93.3%
- State within $1K:      95% → 98.3%

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented May 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
policyengine-taxsim Ready Ready Preview, Comment May 27, 2026 3:18pm

Request Review

@PavelMakarchuk PavelMakarchuk merged commit 354752e into main May 27, 2026
12 checks passed
@PavelMakarchuk PavelMakarchuk deleted the map-otherprop-to-rental-income branch May 27, 2026 15:36
PavelMakarchuk added a commit that referenced this pull request Jun 4, 2026
TAXSIM input field 15 (otherprop) represents Schedule E passive
property income — rents, royalties, trusts. Per IRC § 1411(c)(1)(A)(i)
this belongs in the NIIT base. The prior mapping to
miscellaneous_income (PR #931) flowed correctly into AGI but missed
NIIT entirely, driving roughly $3.5M of federal mismatch
concentrated in the >$1M income bucket.

Switch the mapping to rental_income (the PE-US Schedule E concept,
which explicitly includes royalties and is already in
gov.irs.investment.income.sources). Avoid the QBID over-application
that motivated #931 by setting rental_income_would_be_qualified to
False whenever otherprop is present in the chunk; § 199A(c)(3)(A)
requires the activity to rise to a § 162 trade or business, which
TAXSIM input never signals.

eCPS n=2000 2025 (non-S-corp):
  Federal $$ off:    $4,218,673 → $432,768  (−89.7%)
  Federal $15 match:      92.0% → 93.6%
  Federal 1%-AGI match:   98.6% → 99.9%
  >$1M bucket $$ off: $3,809,042 → $329,279

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

1 participant