Skip to content

PolicyEngine-US bridge: depletion-cut offsets for illustrative households - #506

Merged
MaxGhenis merged 18 commits into
masterfrom
pe-us-depletion-cut-20261001
Oct 3, 2026
Merged

MaxGhenis merged 18 commits into
masterfrom
pe-us-depletion-cut-20261001

Conversation

@MaxGhenis

@MaxGhenis MaxGhenis commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

ILLUSTRATIVE HOUSEHOLDS, NOT SURVEY DATA. Applied to 2026 law and prices: the cut would not happen in 2026, and this is not a projection.

This PR shows what an across-the-board Social Security cut at trust fund depletion does to a household once federal and state taxes and benefits respond, and who pays the part that other programs offset. It is the second use of the PolicyEngine-US bridge from #496. Five illustrative households are each run in California, Montana and Florida through PolicyEngine-US 2.18.0 for 2026, installed from PyPI and checked against the wheel's RECORD.

The cut: 2026 Trustees Report

Source. The 2026 Annual Report of the Board of Trustees of the Federal Old-Age and Survivors Insurance and Federal Disability Insurance Trust Funds, section II.A (Highlights), intermediate assumptions.

  • URL: https://www.ssa.gov/oact/TR/2026/II_A_highlights.html
  • Retrieved 2026-10-01T02:35:26Z; SHA-256 8447f9cae65e561cb84239350e6a037f9b2572d18bf457212130d682c0003551.
  • The page is committed with its fetch record under docs/analysis/pe_us_depletion_cut_20261001/sources/, byte-pinned in .gitattributes.

The OASI Trust Fund is projected to become depleted in the fourth quarter of 2032, one quarter earlier than projected in last year’s report. Upon reserve depletion in 2032, projected income is sufficient to pay 78 percent of scheduled benefits.

The combined OASDI fund is projected to become depleted in the third quarter of 2034, the same quarter as in last year’s report. Upon reserve depletion in 2034, projected income is sufficient to pay 83 percent of scheduled benefits.

Both quotes are on printed page 5 of the full report.

  • Primary: a 22 percent cut in each OASI benefit, leaving the 78 percent payable share. The report's introduction (printed page 1) says retired workers, their families and survivors are paid under OASI, and Table III.A5 (printed page 40) lists retired workers and spouses under OASI benefit payments. Every benefit in these households is a retired-worker or spouse's benefit.
  • Sensitivity: a 17 percent cut, leaving the 83 percent payable share for OASI and DI on a combined basis. The Trustees note that this figure "implicitly assumes that the law will have been changed to permit the transfer of funds between OASI and DI as needed" (printed page 28).
  • First-year cuts. Both shares apply in the first year of depletion. The Highlights project the share to decline "gradually to 62 percent by 2100" for OASI, and to 65 percent for OASDI.
  • How the numbers are taken. The script parses them from the quoted sentences and requires the page's Table II.A1 to state the same numbers. The full report, tr2026.pdf, is not committed; its SHA-256 is fb4e1556a00d925efa03e6355f64f911656a2626eaaceeb16062687008feb683.
  • The across-the-board cut is an assumption. The Trustees project the payable share. Once reserves are depleted, "scheduled benefits could not be paid in full on a timely basis, and actual amounts paid would be less than the scheduled benefits" (Table IV.A1 note, printed page 46). They do not say how a shortfall would be spread across beneficiaries.
  • Rounding. Each beneficiary's payable monthly benefit is floor(scheduled whole-dollar monthly benefit × share). That uses 42 USC 415(g)'s rule of rounding down to the dollar.
    • 415(g) rounds a benefit after the reductions and deductions of sections 403 and 424a and the Medicare Part B deduction; this analysis floors the gross benefit.
    • Applying the share to the unrounded amount would pay D and E a dollar a month more at 78 percent.
    • A couple's two benefits are cut and rounded separately.

Households

All five households share #496's common facts: $800 monthly rent, $1,500 in the bank, and housing take-up off.

Household Social Security, monthly (scheduled → after 22% cut) Other income Derivation
A, B, C $743 → $579 none / $4,800 / $31,200 pension #496's low earner, worker_benefits() unchanged; cross-checked against #496's committed JSON
D $2,351 → $1,833 $31,200 pension (C's) Medium earner: 100% of the average wage index, 1980–2014, full retirement age 66 in 2020. history_pia gives AIME $3,873 and PIA $1,735.80; statutory COLAs carry it to $2,351.50
E $2,351 + $1,175 → $1,833 + $916 $42,000 pension, entered on the worker D's worker plus a spouse with no covered work. The spouse's benefit and the family maximum (not binding) come from Track B's gross-benefit layer, which is checked against D's derivation

Headline: the 22% (OASI) cut, 2026 law, annual dollars

Household State Social Security Net income Offset share Federal State Net income, health counted
A CA −1,968 0 100% 100% 0% 0
A MT −1,968 0 100% 100% 0% 0
A FL −1,968 0 100% 100% 0% 0
B CA −1,968 0 100% 21% 79% 0
B MT −1,968 −1,548 21% 21% 0% +3,916
B FL −1,968 −936 52% 52% 0% −936
C CA −1,968 −1,776 10% 10% 0% −1,776
C MT −1,968 −1,654 16% 10% 6% −1,654
C FL −1,968 −1,776 10% 10% 0% −1,776
D CA −6,216 −5,899 5% 5% 0% −5,899
D MT −6,216 −5,775 7% 5% 2% −5,775
D FL −6,216 −5,899 5% 5% 0% −5,899
E CA −9,324 −8,928 4% 4% 0% −8,928
E MT −9,324 −8,741 6% 4% 2% −8,741
E FL −9,324 −8,928 4% 4% 0% −8,928

Sensitivity: the 17% (OASDI) cut

Household State Social Security Net income Offset share Federal State Net income, health counted
A CA −1,524 0 100% 100% 0% 0
A MT −1,524 0 100% 100% 0% 0
A FL −1,524 0 100% 100% 0% 0
B CA −1,524 0 100% 0% 100% 0
B MT −1,524 −1,524 0% 0% 0% +3,940‡
B FL −1,524 −912 40% 40% 0% −912
C CA −1,524 −1,373 10% 10% 0% −1,373
C MT −1,524 −1,277 16% 10% 6% −1,277
C FL −1,524 −1,373 10% 10% 0% −1,373
D CA −4,800 −4,555 5% 5% 0% −4,555
D MT −4,800 −4,459 7% 5% 2% −4,459
D FL −4,800 −4,555 5% 5% 0% −4,555
E CA −7,200 −6,894 4% 4% 0% −6,894
E MT −7,200 −6,750 6% 4% 2% −6,750
E FL −7,200 −6,894 4% 4% 0% −6,894

‡ ENCODING ARTIFACT, NOT STATE POLICY. See household B in Montana below.

Each dollar cell is rounded on its own, so a row can miss its own sum by a dollar.

What the table shows.

  • Household A (the low earner, no other income). In all three states, SSI replaces the cut dollar for dollar: a 100 percent federal offset, and no change in net income.
  • Household B (a $4,800 pension).
    • California: the cut is fully offset, 21 percent by SSI and 79 percent by the state's SSI supplement.
    • Florida: 52 percent is offset, by SSI and SNAP.
    • Montana: 21 percent is offset, by SSI; SNAP does not change.
  • Household C (a $31,200 pension). 10 percent is offset by lower federal income tax. In Montana it is 16 percent, because Montana's income tax and refundable credits add 6 points.
  • The medium earner and the couple (D and E). They absorb 93 to 96 percent of the cut. The 4 to 7 percent offset comes entirely through income taxes.
  • The 17 percent (OASDI) cut follows the same pattern, with two differences:
    • Florida: household B's offset is 40 percent.
    • Montana: household B's SSI countable income is $996 a month, $2 above the 2026 federal benefit rate, so PolicyEngine-US pays no SSI and the offset is 0 percent.

Household B in Montana, health coverage counted.

Under the 22 percent cut:

  • SSI begins at $420 a year, and PolicyEngine-US gives SSI recipients in Montana Medicaid (is_ssi_recipient_for_medicaid.py:20-34, checked before any other category in medicaid_category.py:44-47). Medicaid, valued at average cost, adds $10,799.
  • The Medicare Savings Program value of $5,335 ends:
    • $2,434.80 is Medicare premiums.
    • $2,900 is QMB cost sharing, which PolicyEngine-US approximates as 20 percent of an average Medicare cost per enrollee of $14,500, an entry its parameter file marks "Estimated".

Under the 17 percent cut, the +3,940 is an encoding artifact, not state policy:

  • SSI stays $0, but PolicyEngine-US 2.18.0 starts Medicaid through its optional aged and disabled pathway. Its limit for Montana is 75 percent of the poverty guideline, $11,970 a year (senior_or_disabled/income/limit/individual.yaml:80-81), and B's countable income is $18 under it.
  • Montana's own rules set a different standard:
    • Montana covers aged, blind and disabled people who meet SSI's income standard without receiving SSI (State Plan Attachment 3.1-F, TN 24-0002, row 7, 42 CFR 435.210).
    • Its limit is the SSI payment rate in dollars, $994 a month for one person in 2026 (DPHHS Medicaid manual ABD 008).
    • The same plan page marks the poverty-level aged or disabled group (1902(m)) N/A.
  • The parameter's 0.75 matches its cited source, KFF, which writes the SSI rate as a share of the poverty guideline.
  • Reported upstream as Medicaid aged/disabled income limit is 75% of poverty where the state standard is the SSI rate (MT, CO, IA, LA, OH, OR, WA) policyengine-us#9733, with a fix proposed in #9735. Under that fix, B gets no Medicaid under the 17 percent cut.
  • Every artifact labels this figure; the tables mark it ‡.

Outputs. In docs/analysis/pe_us_depletion_cut_20261001/:

  • JSON with full provenance: package versions, the source and RECORD check, the Trustees and statute citations, inputs, and each component;
  • a Markdown table;
  • one waterfall chart per household (PNG and SVG);
  • offset_share_summary, the offset share by household and state.

Every artifact carries the ILLUSTRATIVE label and the 2026-law note. Each chart's visible title starts "Illustrative households:", and its file metadata carries the label. The design note is docs/design/pe_us_depletion_cut.md.

Who pays the offset

depletion_cut.LEAF_LEVELS assigns each reviewed leaf of the bridge's decomposition to a payer group. Every statute phrase quoted below is checked against the saved Legal Information Institute page and its SHA-256.

  • Federal.
    • Federal income tax and refundable credits.
    • SSI: "there are authorized to be appropriated sums sufficient to carry out this subchapter" (42 USC 1381).
    • SNAP: benefits are "redeemable at face value by the Secretary through the facilities of the Treasury of the United States" (7 USC 2013(a)(1)). The State cost share in 2013(a)(2)(B) starts in fiscal 2028 at the earliest.
  • State.
    • State income tax and refundable credits.
    • California's SSI supplement. 42 USC 1382e(a) describes such supplements as cash payments made by a State. Under 1382e(d)(1), where SSA makes the payments on a State's behalf, the State pays SSA back.
  • Joint. Medicaid, and the Medicare Savings Programs other than QI. These appear in the health sensitivity only.

The script refuses a run in which any unreviewed leaf or any market-income leaf changes.

Invariants

Hypothesis properties in tests/bridge/test_depletion_cut.py:

  • A zero cut (payable share of 1) changes nothing. Identical runs decompose to zero, with no offset share.
  • The cut is the cut share times the benefit, within the stated rounding: at least that amount, and less than $1 a month more.
  • A deeper cut never leaves more Social Security, for one benefit or for a whole household.
  • The components sum exactly, in cents, to the net change.
  • The government-level groups partition the components (baseline, reform and change).
  • Whenever Social Security changes, the offset share is exactly 1 − (net change ÷ Social Security change), and the level shares sum to it.

Before writing, the script also checks every comparison (raising, never asserting):

Artifact test. tests/bridge/test_pe_us_depletion_cut_artifact.py rechecks on the committed JSON:

  • the identities;
  • the Social Security change against the cut;
  • that nothing changes outside the payer groups;
  • the wrong-way categories;
  • the payer groups against the display categories;
  • that no joint change appears without health coverage;
  • the float32 guard.

It also checks:

Oracle-tier tests, run live:

  • the benefit derivations;
  • a zero cut: household A in Florida, built with a payable share of 1 and run as its own case against the baseline;
  • SSI offsetting household A's cut dollar for dollar;
  • taxes offsetting part of household D's cut.

Caveats

Review, run and tests

Review rounds.

  • Before the PR, three independent read-only reviews checked correctness and test adequacy, claims against PolicyEngine-US source and statute text, and the benefit derivations. A round-2 check of their fixes followed.
  • After the PR opened, two independent reviews ran:
    • A reproduce review re-ran the script from a clean checkout. Every number reproduced, and nine deliberate mutations each failed a test.
    • A claims review asked for changes to the Montana Medicaid explanation, the Trustees wording, the wrong-way and test claims, the chart titles, two absolutes and a CalWORKs detail.
  • Those are fixed in 7199458, bf7dec1 and d0c6933. The claims re-review then found the generated caveat calling the 78 percent payable share "the cut" (fixed in a360ca3) and noted that household D's subtitle overlapped the state headings and the summary chart's title was clipped (fixed in 5ac5ab5).

The run.

  • The outputs come from a fresh run from a clean clone at 5ac5ab5 (committed in 363d9e8). Against the outputs at 9001436, all 10,736 numeric JSON fields are identical; only the recorded commit and the corrected caveat sentence differ.
  • It ran on Modal (Linux, 8 cores, 32 GiB), not on the Mac, which was out of memory. The container reproduces the local paths and the package versions frozen from the local environments. policyengine-us 2.18.0 comes from PyPI, and its 17,551 files match the wheel's RECORD.
  • The Modal runner and its log are kept with the evidence for this analysis, outside the repository.
  • No number changed from the earlier macOS runs; the differences are text, chart titles and provenance.
  • The runs cover 90 cases. The float32 guard traced every changed leaf and found no change without a cause.

Targeted tests, Python 3.14:

  • tests/bridge/test_depletion_cut.py and tests/bridge/test_pe_us_depletion_cut_script.py: 119 passed. In CI the chart smoke test skips: matplotlib is in the model extra, and CI installs only dev.
  • tests/bridge/test_pe_us_depletion_cut_artifact.py: 27 passed against the committed outputs.
  • tests/bridge/test_pe_us_depletion_cut_oracle.py: 5 passed live against policyengine-us 2.18.0.
  • All five files together (unit and script, artifact, oracle, and tests/estimates/test_birth_evidence_artifact.py) were re-run at 9001436 in the same Modal container: 164 passed, none skipped. Re-run at 363d9e8 on the host, the oracle live against policyengine-us 2.18.0: 164 passed.
  • Wiring: the new module is listed in POST_REVIEW_SOURCE_EXCLUSIONS and in bridge_modules, next to Bridge to PolicyEngine-US: federal and state tax-benefit effect of the minimum benefit on sample households #496's bridge.
  • Tier counts after merging origin/master (Run PolicyEngine-US over a validated invented population #498): unit 5,824 and oracle_policyengine 220, matching tests/tier_counts.json and tests/README-tiers.md.

black -l 79 and ruff pass on all changed Python.

🤖 Generated with Claude Code

MaxGhenis and others added 6 commits October 1, 2026 05:17
ILLUSTRATIVE HOUSEHOLDS, NOT SURVEY DATA. A Social Security cut at trust
fund depletion (the 2026 Trustees Report's OASI payable share, with the
combined OASDI share as a sensitivity), applied to 2026 benefits under
2026 law through the PolicyEngine-US bridge of #496.

- src/populace_dynamics/bridge/depletion_cut.py: reads the depletion
  year and payable share from the Highlights page's own sentences (and
  Table II.A1), applies the cut to each monthly benefit rounded down to a
  dollar (415(g)), and groups the decomposition's leaves by who pays the
  offset (federal, state, joint).
- scripts/pe_us_depletion_cut_sample_households.py: #496's households A-C
  at #496's current-law benefit, a medium earner (D) and a one-earner
  couple (E, spouse's benefit from Track B G), each in CA, MT and FL.
- The Highlights page and the fetch records, byte-pinned (.gitattributes).
- Unit and Hypothesis tests; the module joins #496's bridge in the
  birth-evidence exclusions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The caveats now quote the Highlights page for the temporary senior
deduction and for income taxation of benefits, and the script refuses a
page without those phrases. The SNAP caveat states the statute's 6
percent and 5-15 percent terms, and the summary chart names E's pension.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every PNG and SVG has the ILLUSTRATIVE label and the 2026-law note as
its title and description, so the label is findable in the bytes as
well as drawn on the chart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Three independent reviews (correctness, claims against source, benefit
derivations) found no arithmetic or identity error; this fixes what they
did find.

- Claims: the across-the-board cut is stated as an assumption, quoting the
  Trustees Report (depletion means benefits "could not be paid in full on
  a timely basis"); the rounding text says 415(g) rounds once; the SS
  input-variable claim names Idaho's retirement deduction; California's
  supplement cites 1382e(a); the MSP basis names QI's 100 percent federal
  share; "hypothetical" and an unsupported "rationed" are cut; the design
  note's C-versus-D and differential-check wording is corrected.
- Checks: each payer group is checked against the bridge's display
  categories (an independent reading, replacing checks that held by
  construction); a changed MSP value that is all federal (QI) is refused;
  the full report's quoted phrases and the law pages' status and size are
  checked; --docs-dir outside the repository is refused up front.
- Output: the health text names the optional aged Medicaid pathway and its
  limit; the default tables drop the always-zero joint column and add the
  with-health offset and joint shares; chart ticks no longer overlap;
  exact Fraction arithmetic in the cut.
- Tests: union tracing of a shared baseline, a write-path smoke test, the
  grouping and QI refusals, tick labels, Fraction exactness; the artifact
  test (unit tier) and the oracle test; tier counts 5,756 unit and 212
  oracle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The artifact test reads the default variant's offsets where the script
  writes them (beside the decomposition), which failed 3 of its 24 tests.
- When the cut starts SSI in a state where SSI receipt confers Medicaid
  in PolicyEngine-US (read from the release's ssi_recipient parameters;
  Montana is covered and section 1634), the health text names that route
  too. The described pattern is refused for a couple, whose household
  memo sums would double the limit.
- The category cross-check is described as it is: category_for names
  Social Security, SSI, SNAP and the income taxes, and places state
  benefits, state refundable credits and health by position.
- The no-joint-change-without-health check moves into check_invariants,
  before anything is written.
- #496's SNAP caveat, which describes losing California's supplement, is
  replaced by the direction-free fact it rests on.
- An unrecorded counterfactual is cut from the design note; the summary
  chart's legend no longer sits on the 100 percent line.
- Tests for each; unit tier 5,762.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
social-security-model Ready Ready Preview Oct 3, 2026 12:01pm UTC

Request Review

ILLUSTRATIVE HOUSEHOLDS, NOT SURVEY DATA; 2026 law and prices. A fresh
run (90 cases, every changed leaf traced) from clean code at 27c9867
with policyengine-us 2.18.0 from PyPI (RECORD-verified): JSON with
provenance, the Markdown tables, a waterfall per household and the
offset-share summary chart, each labelled. The run and trace job hashes
equal the two earlier runs', and so do the numbers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CI installs the dev extra only; matplotlib is in the model extra. The
write-path smoke test is split: the Markdown and JSON part always runs,
and the chart part skips without matplotlib. Unit tier 5,763. Tests only;
the committed outputs (generated at 27c9867) are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis marked this pull request as ready for review October 1, 2026 12:15
Both PRs' bridge modules stay in the reducer exclusion lists, in the same
order in the script and the test. Tier counts: unit 5,813 and
oracle_policyengine 220 (master's plus this branch's 135 and 5).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking items from the claims review, each verified first:

- Montana Medicaid. policyengine-us 2.18.0 encodes an optional aged
  pathway for Montana at 75% of the poverty guideline
  (senior_or_disabled/income/limit/individual.yaml:80-81). Its cited KFF
  source leaves Montana unchecked for that pathway (2018 Appendix Table 1)
  and gives Montana's limit as the SSI benefit rate ($750, 74%, in 2018;
  $943, 75%, "1634 State" in June 2024). The health text now has two
  routes: SSI receipt (the 22% cut: SSI begins, Montana covers SSI
  recipients, medicaid_category.py checks SSI first) and an encoding
  artifact (the 17% cut: SSI stays zero, $2 a month over the rate, and
  only the encoded limit admits the household), labelled "ENCODING
  ARTIFACT, NOT STATE POLICY" in the JSON, the tables (marked ‡), the
  design note and the explanations. The Medicare Savings Program loss is
  split into premiums and the QMB cost-sharing proxy (20% of an
  "Estimated" $14,500). The KFF fetch record is committed.
- The Trustees Report: the full shortfall sentence (Table IV.A1 note,
  printed page 46) replaces the out-of-context "not well-defined" quote.
- The wrong-way check is described by the categories it covers.
- The oracle zero-cut test runs a payable-share-1 case of its own; the
  artifact test rechecks more of the pre-write checks.
- Visible chart titles start "Illustrative households:".
- "Each OASI benefit", not every Social Security benefit.
- CalWORKs counts both Social Security inputs; the differences are
  Idaho's deduction and eight states' child-care lists.

Nonblocking: tax-sign and per-cell rounding notes; the OASDI transfer
assumption and the declining payable share (first-year cuts); printed
page numbers; the 415(g) scope; the :339 cite; household E's pension is
the worker's; the unsourced CSFP and "rationed" clauses are cut; the
guard counts uncaused changes and notes double-counted baselines; the
joint-guard test is isolated; the artifact test checks all ten summary
columns and ties the recorded commit to HEAD. Unit tier 5,824.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ules

The encoding note now cites Montana's own sources instead of reading the
limit off KFF alone. Montana covers aged, blind and disabled people who
meet SSI's income standard without receiving SSI (State Plan Attachment
3.1-F, TN 24-0002, row 7, 42 CFR 435.210), at the SSI payment rate in
dollars ($994 a month for one person in 2026; DPHHS manual ABD 008), and
the same plan page marks the 1902(m) poverty-level group N/A. The 0.75 in
policyengine-us matches KFF, which writes the SSI rate as a share of the
poverty guideline. Reported upstream as PolicyEngine/policyengine-us#9733
(fix proposed in #9735). Household B in Montana under the 17 percent cut
stays an encoding artifact: its SSI countable income is $2 a month above
Montana's standard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A fresh run from a clean clone at bf7dec1, executed on Modal (Linux, 8
cores, 32 GiB) because the Mac it had been running on was out of memory.
The container reproduces the local paths and the package versions frozen
from the local environments, with policyengine-us 2.18.0 from PyPI (17,551
files checked against the wheel's RECORD, none mismatched). The run took
842 seconds.

Every number already in the committed JSON is unchanged. The differences
are the round-1 review's text fixes, the Montana encoding note, the added
memo fields behind the health explanations, the chart titles and the
provenance.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The summary footnote said the parameter's own cited source does not
support the limit. Montana's own rules set the standard at the SSI payment
rate in dollars, and KFF's 0.75 is that rate written as a share of the
poverty guideline; the footnote now says so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A fresh run from a clean clone at d0c6933 on Modal (615 seconds), with the
same container as the bf7dec1 run. Against the committed JSON, the only
changed field is the recorded commit; the Markdown changes only in the
summary footnote. The artifact tests pass (27).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The generated caveat called the 78 percent payable share "the cut"; the
OASI cut is 22 percent. Calculations are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Household D's four-line subtitle ran into the state headings, and the
summary chart's title ran past the right edge. Titles now wrap to the
figure width, and the header grows with the title and subtitle lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run on Modal at the exact commit with the frozen package versions. Only
the recorded commit, the corrected caveat and the chart bytes change; no
numeric JSON field changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Resolves the only conflicts, in tests/tier_counts.json and
tests/README-tiers.md, by recounting the merged suite with
pytest --collect-only -m <tier>: unit 5,828, artifact 3,331,
integration_psid 1,341, reproduction_legacy 520, oracle_policyengine 220
(total 11,240). No analysis code or output changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaxGhenis
MaxGhenis merged commit 6d4a2b7 into master Oct 3, 2026
12 checks passed
@MaxGhenis

Copy link
Copy Markdown
Contributor Author

Merge record:

  • Max's go: 2026-10-03 in chat ("yes" on d775).
  • CI: gh pr checks 506 exits 0 on 7e082b6; MERGEABLE; not a draft; no CHANGES_REQUESTED.
  • Independent review: five claims-review rounds (review-claims-r1 to r5); r5 APPROVE on 363d9e8. 7e082b6 adds only a merge of master, resolving tests/tier_counts.json and tests/README-tiers.md by recounting the merged suite (unit 5,828; artifact 3,331; integration_psid 1,341; reproduction_legacy 520; oracle_policyengine 220). No analysis code or output changed between 363d9e8 and 7e082b6.
  • Merged as a merge commit so the commit the outputs record (5ac5ab5) stays in history.

MaxGhenis added a commit that referenced this pull request Oct 3, 2026
Tier counts are master's plus this branch's additions (unit +122,
oracle +12).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Oct 3, 2026
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>
@MaxGhenis
MaxGhenis deleted the pe-us-depletion-cut-20261001 branch October 4, 2026 15:34
MaxGhenis added a commit that referenced this pull request Oct 6, 2026
…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>

This branch was successfully deployed

1 active deployment
Preview — 7e082b6c Deployed Oct 3, 2026 by vercel[bot]
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