Repository navigation
Registration 19: SSI asset-test population run, with its released results - #511
Merged
Merged
Conversation
The registration spec for extending PR #506's depletion cut to Microcosm's populace-us-2024 frame: how often SSI's resource test stops SSI from replacing a 22% OASI cut (17% OASDI sensitivity), by age, sex, marital status, race and income quintile. Draft, not registered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Methodology-review fixes: statistics renamed _test, a conditional denominator and small-cell rule for B_cond, a fully specified bootstrap, the none label covering SSI decreases, the spousal-deeming cap named as difference 12, defined diagnostic aggregation, and a fifth label for the headline's basis. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Implementability-review fixes: the refusal rule covers only the refusal checks, empty cells are exempt from the partition check, the baseline components come from a probe simulation, the cut check is exact per component, and the synthetic-split check has an exact rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
Round-2 fixes: drop the beneficiary record count that the exposure record lists as a frame tabulation, add the re-execution marker and the rule for a failure after the statistics phase, state the bootstrap's household set and replicate weights, restate refusal 3 for the probe, register dataset_end_year=2026, and describe the review lanes by round. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The cut check is exact per component (each calculated component equals the float32 of the input set), the synthetic-split check uses the specification's rounding rule, operational failures are distinguished from the numbered refusal checks, and the release decision is filed before the run so the artifact can record its id. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The specification has the artifact record the id of the decision that holds the release, so the entry point refuses a registered run whose metadata does not name it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The specification is sa1-draft-6 with its version and status set and the ratification check recorded; two independent re-checks recommended ratifying it as it stood. The code pins its SHA-256, and the cut check again refuses a non-finite Social Security total. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Any failure now leaves a refusal record; entity order and exact inputs are recorded by the parent under their registered refusal numbers rather than as a child crash; a weightless decile-0 household no longer raises; the context block reports the beneficiary record count; a registered run needs matplotlib for its chart; the SSA page is hashed when present. Adds a worked end-to-end test with expected values for every row. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tier counts are master's plus this branch's additions (unit +122, oracle +12). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refusal 4 again covers only what the specification registers; the no-local-path check (refusal 7) is settled before any child runs and now catches embedded paths and path-valued keys; repeated probes are compared bit for bit; the child refuses the real frame unless a validated registration record is set; a frame that stored a calculated variable is refused before any outcome is computed; undefined unscored totals carry a reason; the chart marks small cells; a registered run needs its context snapshot. PR #506's identity test now follows the artifact's import closure instead of a recorded module list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The frame's time-period table is a Series; the stored-variable guard now skips tables without columns. Found by the frame-sized invented dry run. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The registered one shot (issue #42, Registration 19) ran on Modal at 3ba0d02 (call fc-01M48CG9VMP741AWN9A163FE9B, 2026-10-06 10:35-11:04Z), exit 0. The artifact, sidecar, report and chart are the volume's bytes; their SHA-256 were posted on issue #42 (comment 6014920955) before any release decision. A pin test keeps the committed copies identical. LOCAL ONLY: release (push, PR, run-complete comment) waits for Max's go on d905. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lation branch Takes master's version of PR #506's artifact test (#514 narrowed its pin to the generator's own code). Tier counts are master's plus this branch's additions: unit 6,166; artifact 3,536; integration_psid 1,341; reproduction_legacy 520; oracle_policyengine 232 (11,795). The registered commit 3ba0d02 (tag registration-19-sa1) is unchanged; this merge only brings the branch up to date for PR #511. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Brings in 5fc28d0 unchanged: the artifact, sidecar, report and chart whose SHA-256 were posted on issue #42 (comment 6014920955) before release, and their pin test. Max released them on d905 (2026-10-10), with microcosm#1178 disclosed on issue #42. Tier counts: unit 6,166; artifact 3,540; integration_psid 1,341; reproduction_legacy 520; oracle_policyengine 232 (11,799). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e population branch Tier counts are master's plus this branch's additions over the merge base 1fadf50 (unit +137, artifact +4, oracle_policyengine +12): unit 6,550; artifact 3,929; integration_psid 1,346; reproduction_legacy 520; oracle_policyengine 232 (12,577). The one file both sides edited, the birth-evidence exclusion lists, only gains entries; its test count is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
marked this pull request as ready for review
October 12, 2026 09:27
Contributor
Author
|
Merge audit. Merged at 2026-10-12T11:54:00Z as merge commit Gates at merge
Verified on master after the merge
Still open
|
MaxGhenis
added a commit
that referenced
this pull request
Oct 12, 2026
Brings in #511. Tier counts resolved as master's plus this branch's change, and verified by collecting each tier: unit 6,766, artifact 3,929, integration_psid 1,346, reproduction_legacy 520, oracle_policyengine 307; total 12,868. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 12, 2026
…to the read-log branch Tier counts by collection on the merged tree: unit 6,834 (#505's 6,766 plus this PR's 68), artifact 3,929, integration_psid 1,346, reproduction_legacy 520, oracle_policyengine 307; total 12,936. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
added a commit
that referenced
this pull request
Oct 13, 2026
…505) Master 3d23760. gates.yaml (blob b0c39af) and runs/legacy_manifest_v1.json are unchanged on master since this branch's last merge base, so the lock flip's pins hold. Only the tier counts conflicted; recounted against the full collection: unit 6,747, artifact 4,036 (total 12,956). Against master + (branch - merge-base), 80 tests move from unit to artifact: tests/track_u2/test_source_registries.py now reads runs/legacy_manifest_v1.json (62ad264), and the classifier assigns any module that reads a committed runs/*.json to the artifact tier (tests/conftest.py, _references_committed_artifact; README-tiers rule 5). CI runs every tier, so coverage is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 13, 2026
Merged
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.
Registration 19: specification, code, and the released one-shot results. The registered run took place on 2026-10-06 at the registered commit
3ba0d020(tagregistration-19-sa1). Max released the results on d905 (2026-10-10), and they were posted on issue #42 here.Warning
Frame defect: microcosm#1178. The frame's PUF-support channel erases CPS-reported Social Security for 11.8 million weighted people, 9.2 million of them aged 65 and over. Only 15.8% of the model's SSI recipients aged 65 and over have Social Security, against SSA's 57%. The results are the registered result on that frame, published as the registration commits; they are not an estimate for the US population. A rerun on the corrected frame will be registered separately once #1178 is fixed.
Merge with a merge commit, never squash or rebase: the registered commit
3ba0d020and the results commit5fc28d08must stay in history.Results in this PR
runs/pe_us_depletion_cut_population_v1.jsonand its.env.jsonsidecar: the bytes whose SHA-256 (ef9366be…,360a3b99…) were posted on issue Candidate 2 design: latent-permanent conditioned chained QRF (research memo) #42 before release (comment 6014920955). A pin test (tests/bridge/test_pe_us_depletion_cut_population_v1_artifact.py) holds them.docs/analysis/pe_us_depletion_cut_population_20261001/: the report and the chart.fc-01M48CG9VMP741AWN9A163FE9B, first attempt, exit 0. Every refusal and row-validity check passed. An independent recomputation from the raw arrays reproduced all 12,319 compared values.What this is
PR #506 showed that for an illustrative low earner with $1,500 in the bank, SSI replaces a depletion-sized Social Security cut dollar for dollar. At the NASI meeting on 2026-10-01, participants asked how often that holds for real beneficiaries, since SSI's asset limit excludes many people, and asked for results by age, sex, marital status, race and income quintile.
This PR adds the registered analysis that answers it: the same cut (22 percent OASI, with 17 percent OASDI as the sensitivity) on Microcosm's populace-us-2024 frame, which carries imputed bank, stock and bond assets, through PolicyEngine-US 2.18.0, with and without SSI's resource test.
docs/design/pe_us_depletion_cut_population.md,sa1-ratified-1, SHA-2564672d084aaf18d492eff30ca6961d511926086c8f73fc60368849b3589e11e1f.What it adds
src/populace_dynamics/bridge/depletion_cut_population.py: the registered arithmetic on arrays. The cut, the marital-unit replacement labels (full, part, none), the resource tests for rows R0, R3 and R4, the cells, the statistics and the household bootstrap.src/populace_dynamics/bridge/depletion_cut_population_child.py: the worker that runs inside the PolicyEngine-US interpreter. It always passes an explicit dataset, refuses the real frame outside a registered run, and removes the resource test with a structural reform.scripts/run_pe_us_depletion_cut_population_registered.py: the one-shot entry point, with the preflight refusals, the run-time checks and the labelled outputs.It also fixes one thing in #506: its artifact test ran
git diff --quiet <commit> HEAD -- src scripts, so it would fail as soon as any later change touchedsrc/orscripts/. The diff now covers only the files that artifact records as its dependencies.Invariants
Stated in the specification and tested as properties:
payable_monthly_benefitelement by element;12m <= a < 12(m + 1)holds exactly; a payable share of 1 changes nothing; the OASI cut never touches the disability component.What the review found
Four independent referees reviewed the specification in two rounds, plus two re-checks before ratification; §20 of the specification and the registration comment list them. Findings that changed the design:
Tests
The code was tested on Modal (Linux, the frozen environments of #506's runner) with invented data only: 239 tests at the registered commit, plus a frame-sized invented dry run and control-path rehearsals of the runner. CI runs the full suite here, including the tier census: unit 6,166; artifact 3,540; integration_psid 1,341; reproduction_legacy 520; oracle_policyengine 232.
axiom: n/a: analysis code, no policy change. (Two PolicyEngine-US SSI encoding gaps found here are filed separately.)
🤖 Generated with Claude Code