Test the government function bridge, and reject it (#578) - #714
Draft
WesIngwersen wants to merge 1 commit into
Draft
Test the government function bridge, and reject it (#578)#714WesIngwersen wants to merge 1 commit into
WesIngwersen wants to merge 1 commit into
Conversation
WesIngwersen
force-pushed
the
step3_gov_function_bridge
branch
from
August 26, 2026 18:30
abec989 to
05fc457
Compare
The plan sequenced S5's government leg behind a go/no-go on whether Census `govslocalfin`'s function x object split bridges to a commodity mix. It has been run and the answer is no. The model that premise implies has an exact ceiling: with within-function mixes held fixed, commodity-mix movement is bounded by the function-mix movement itself, since each within-function mix sums to 1 over commodities. So the question is answerable without building the bridge. - the function mix moves 0.0464 over five years, against a 0.201 commodity drift in the same columns; - government functions overlap by 36% (mean pairwise dissimilarity 0.639 on BEA's own government columns), so the realistic ceiling is 0.030; - realising the bound on BEA's three general state-and-local columns -- a real function split with observed weights and observed within-function mixes -- buys +2.4%. 97.6% of the drift is *within* function. A finer function list does not help: BEA's 3-function split moves 0.0453 where govslocalfin's 33 functions move 0.0464. Two independent defects would also have sunk it. `Current Operations` by function is published only for 2022-2024, so there is no 2017 anchor at the seed year -- the 137->232 row jump the source note flagged is exactly this. And the only continuous function series, `Total Expenditure`, is a 0.062 proxy for it, larger than the 0.0385 of movement it would carry. `govslocalfin` is also state-and-local only, and federal holds 43.1% of the block's misplaced dollars including S00500, the worst column in the table. This closes govslocalfin as the route to the `G*` mix. It does not close #578: the columns still drift 230-258 $B and the drift is within-function. Corrects two claims in annual_survey_expense_sources.md that are now known wrong -- that the `G*` columns need a total rather than a mix, and that Current Operations by function runs for every year in the span. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
WesIngwersen
force-pushed
the
step3_gov_function_bridge
branch
from
August 26, 2026 18:31
05fc457 to
5fcde96
Compare
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.
Stacked on #713.
The plan sequenced S5's government leg behind a go/no-go: does Census
govslocalfin's function × object split bridge to a commodity mix for theG*columns? It has been run. ❌ No.The bound that decides it
The bridge means one model — stable within-function input mixes, moving function
weights:
s_c(t) = Σ_f w_f(t)·m_{c|f}. Holdmfixed andbecause each
m_{c|f}sums to 1 over commodities. The function-mix movement isan exact ceiling on the commodity-mix movement the bridge can deliver — so the
question is answerable without building the bridge, which is what made gating it
worth doing.
Three measurements
G*columns) → realistic ceiling 0.030, 14.7% of what needs explainingdoes not help — BEA's 3-function split moves 0.0453 where
govslocalfin's 33functions move 0.0464, so disaggregating does not move more dollars between them.
For scale, the inflation carry and
ORE's built seed both get ~4.5%, which theplan already calls at the bar rather than over it.
Two defects that would also have sunk it
Current Operationsby function exists only for 2022-2024 — oneeconomy-wide number for 2017-2021. No 2017 anchor at the seed year. The
137→232 row jump the source note flagged is exactly this.
Total Expenditure, is a 0.062proxy for it — larger than the 0.0385 of movement it would have to transmit.
and
S00500(83,851 $M at 0.383, worst column in the table) is out of reach.What this does not close
#578 stays open. The
G*columns still drift 230-258 $B and the drift iswithin-function. This closes
govslocalfinas the route to it, not the problem.Two by-products belong elsewhere and are not claimed here:
Salaries and Wagesis Step 2's government
V00100, andCapital Outlayby function does run2017-2024, which makes it the check on the FD government investment columns.
Contents
gov_function_bridge.py— the probe, with--reach/--coverage/--movement/--boundand a--checkthat regresses every documented finding.S5, the S4 verdict table, the source table and the two-problems table all updated off the result.annual_survey_expense_sources.md— corrects two claims now known wrong: thatG*needs a total rather than a mix, and that Current Operations by function runs for every year.Gates:
ruff check .clean,mypy bedrockclean (bar 4 pre-existing Windows-onlyresourceerrors),pytest795 passed.🤖 Generated with Claude Code