Repository navigation
Census STC: State income tax collections as baseline claims (#176) - #181
Open
PavelMakarchuk wants to merge 3 commits into
Open
PavelMakarchuk wants to merge 3 commits into
PavelMakarchuk wants to merge 3 commits into
Conversation
New mode-1 lane census-stc: Census STC item T40 (individual income taxes) for 44 jurisdictions, FY2023-FY2025 (132 claims), with CY2024 PE counterparts on us-6.2.1 attached to FY2023 and FY2025 (88 results). - Adapter QC: exact header and items; whole thousands or X; the US column equals the 50 States (DC excluded) on all 25 items; the six States without T40 are fixed. - Counterpart: each State's own <st>_income_tax, the State government's tax as Census counts it. The engine's state_income_tax is recorded beside it: it adds Maryland's county taxes and New York City's tax. - program = <st>_income_tax, so App v3 (which matches reached variables) links a State's reform only to that State's claims. - Relationship: FY2023 consumed_as_target (us-6.2.1 targets exactly these 44 jurisdictions); FY2024-25 held_out. us_source_relationship gains an optional period. - New metric tax_collections (cash, apart from tax_liability). - Drops: the national total; Tennessee (residual Hall tax, no variable). Finding: us-6.2.1 measures the Maryland and New York targets with state_income_tax, local taxes included (calibrated estimate = that sum within 0.12%; 2.15x and 1.21x the targets). Admin outturns are staged as claims by decision on #176, a departure from the 2026-08-02 boundary rule, recorded in the ingest and lane note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…me-tax # Conflicts: # app/public/data/populations.json # data/populations.json # tests/test_export_populations.py
…me-tax # Conflicts: # app/public/data/lanes.json # app/public/data/populations.json # data/lanes.json # data/populations.json
This branch was successfully 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.
Closes #176.
Summary
New mode-1 lane
census-stc: each State's individual income tax collections (Census STC item T40) as claims with PE counterparts, so that App v3 has a baseline check for every State income tax reform.sources/census-stc/reads the FY2023–FY2025 flat files (stdlib CSV). QC: the header and the 25 items are exact; every cell is whole thousands orX; for every item, the US column equals the sum of the 50 States (the nation excludes DC); the six jurisdictions without T40 are AK, FL, NV, SD, TX and WY.tax_collections(cash collections, kept apart fromtax_liability).pipeline/campaign_us/census_stc.pycomputes the weighted CY2024 total of each State's own<st>_income_tax, which is the State government's tax, as Census counts it. It recordsstate_income_taxsummed over the State's tax units beside it. That sum adds Maryland's county taxes and New York City's tax, and Idaho's own variable adds the $10 Permanent Building Fund tax. It also records the us-6.2.1 calibration target and estimate. 88 results attach to FY2023 (the in-sample fit) and FY2025 (the latest year), allconstructed.programand the result'spolicyengine_variablesare the State's own variable (vt_income_tax). App v3 matches a reform's reached variables (depth 6) against these, andstate_income_taxis reached by every State's reform. So the per-State name keeps a Vermont reform on Vermont's claims.relationships.us_source_relationship, now with an optionalperiod): FY2023 isconsumed_as_target, because us-6.2.1 targetscensus_stc.fy2023.individual_income_tax_collections.<st>.t40for exactly these 44 jurisdictions. FY2024 and FY2025 areheld_out.For @MaxGhenis: boundary rule
STC collections are administrative outturns. The 2026-08-02 boundary ruling (#6) routes those to Chronicle, never to claims. This PR stages them as claims on purpose, decided on #176, so that App v3 can show them. The populace registry's
<st>_adminandirs_soirows are already claims, so there is a precedent. The ingest docstring and the lane note record the departure. Please confirm, or say if you would rather have both (Chronicle facts plus claims).Finding (draft microcosm issue ready)
us-6.2.1 measures the Maryland and New York T40 targets with
state_income_tax, which includes Maryland's county taxes and New York City's tax. The calibrated estimate equals that sum within 0.12%: 2.15× the MD target and 1.21× the NY target. The State's own variables are 1.30× and 1.01× the targets. A Maryland/New York annotation states this on the claims.Test plan
2e09d27f…); no drift after the build and the suitepytest tests/: 1778 passed, 15 skipped.test_modal_uk_eventwas deselected locally because it needs Python 3.12. The export pins were updated: US rows 447 → 535, total 5631 → 5719tests/test_census_stc.py(7 tests): the extract equals the adapter output; the QC catches a broken national total; claims, drops and relationships are exact; FY2023 values equal the calibration targets; results attach by State variable onlyruff format --check;bun test src🤖 Generated with Claude Code