Repository navigation
Conversation
… disability insured status Max ruled d1802: the rules lane builds insured status for B6a's monthly claiming hazard, and the open-population lane's OP8(d) will call it for entrants. Nothing in the repository decided insured status before. The new reference implements Act 213, 214, 216(i) and 223(c) as a sealed, person-month API: - Quarters of coverage: quarterly wages before 1978, the self-employment and agricultural rules, gift QCs for maximum earnings, annual increments 1978-2027, favourable assignment, and exclusions. - Fully insured (6 to 40 elapsed years, counted from birth, with the pre-1913 male cohorts), currently insured (6 of 13 quarters), and disability insured (20/40, special status before 31, subsequent periods, blindness), with the date last insured. - Every earnings year declares its provenance: observed, convention-filled (with an id) or unknown. Unknown years are bounded at their lowest and highest QC counts. A status is returned only if both bounds agree; otherwise it is refused by name and stays in the shared denominator. - Direct QC input (a 0-4 count after 1977, quarter flags before), evaluation at a stated month, an optional totalization input (refused until built), and a coverage-end month for emigrants. Specialist paths (deemed status, the SSPA alien-worker rule, railroad and military credits, Medicare government employment, fiscal and short taxable years, simplified pre-1951 methods) are named refusals. The tests reproduce the RS 00301 and CFR worked examples, compare the 213(d) formula on the pinned NAWI with the published chart, compare POMS with OACT, and compare the CFR 404.115 cohort chart. Hypothesis properties cover monotonicity in QCs and the date last insured, the soundness of the unknown-year bounds, and the shared input and seal contract. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The design note gives B6a and OP8(d) a citable interface: inputs, the earnings-provenance enum, the decided-despite-unknowns flag, refusal reasons and signatures. The rulespec issue draft covers 42 U.S.C. 413, 414 and 423(c)(1), which Axiom does not encode yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…lict lines The exhibit linked from RS 00301.800 (a PDF and two GIF renderings of the quarters-of-coverage table) was not captured, so its differential was recorded as unavailable. Its text is now captured as pdf_text (pdftotext, -layout), with the PDF and both GIFs pinned by hash. A test checks all 38 rows against fully_insured_requirement: by birth cohort (men before January 2, 1913 at age 65, women at 62), by footnote 1's January 1 rule, and by year of death. Moving the 1975 cap or the 1913 cutoff fails it. The PDF's footnote misprints the male cohort as "born before 1/2/31"; the GIF, the table itself and 20 CFR 404.132(b) say 1913. A test pins that. The decision lines for the two readings taken from 20 CFR 404.130(f) over inconsistent POMS examples are marked with their source-conflict ids: us:oasdi-insured-prior-disability-favorable-disregard and us:oasdi-insured-disability-period-endpoint-quarters. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 23, 2026
Draft
Merged
Master added the holdout registry and an ARF change. Only the tier files conflicted; they take master's version and are recounted (unit 19,575; total 26,124). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Round 1 of the independent review found that a declared disability onset froze the fully insured elapsed-year count and anchored the disability test to the onset quarter. A period of disability exists only after an application and five months (42 U.S.C. 416(i)(2)(A)-(B); 20 CFR 404.320(b)), and it begins on the onset day only if the worker is insured then, otherwise on the first day of the first later qualifying quarter (416(i)(2)(C); 404.321(a)). So: - Onset alone no longer removes elapsed years (404.110). The current period's establishment is declared, with provenance. - The disability test scans the quarters from onset to the query and uses each candidate year's fully insured endpoint (404.131(a), 404.132). A later qualifying quarter now counts. - Currently insured excludes every established period intersecting the 13-quarter window, including the event's own (404.120(b), RS 00301.110). The old contract assertion pinned the misreading. - Count bounds with a switching witness use a sound envelope. It also takes the open-population lane's rev 10 needs. Prior periods, the current period and section 214(c) applicability carry OBSERVED / CONVENTION_FILLED / UNKNOWN provenance, with UNKNOWN as the default. Unknown facts are bounded, or refused by name: unknown_prior_disability_periods_decide_status, unknown_current_disability_period_decides_status and sspa211_applicability_unknown. The no-periods lower bound rests on 404.320(a) and 404.130(f). Adds 20 CFR 404.315, 404.320 and 404.321 captures. Moves the mutation report to docs/design/track_b_insured_status_mutations.json, next to its design note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Master added the P2 forward-earnings work. Only the tier files conflicted; they take master's version and are recounted (unit 19,723; total 26,293). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
This PR adds Track B's insured-status rule: quarters of coverage, and fully, currently and disability insured status, decided per person-month (Act 213, 214, 216(i) and 223(c); 20 CFR 404 subpart B; POMS RS 00301). Max ruled d1802 that the rules lane builds it. B6a, the baseline claiming hazard on an insured, unclaimed person-month risk set, needs it, and the open-population lane's OP8(d) will call it for entrants. Nothing in the repository decided insured status before (
docs/parity-ledger.md). The work is statutory conformance on invented cases and published examples only, with no population claim.Status: draft, round-2 review in progress (GPT-6 Astra, at
3fd1d225). Round 1 (atf865bb54) asked for changes. Master9967dfd6is merged in at1e205464, and the round-2 fixes are74da853bplus a tier recount.What it does
unknown_earnings_years_decide_status), and the row stays in the shared denominator.count_family_outcomesdenominator, and validation once per call.Invariants
Each is a Hypothesis property, alongside the example tests:
Worked examples and differentials
tests/data/track_b/insured_status_examples.yaml) inventories 47 cases, each figure checked against its pinned capture:tests/data/track_b/insured_status_mutation_checks.json). The exhibit differential also catches moving the 1975 cap and moving the 1913 male cutoff.Source readings
Four places where the sources disagree are pinned with both sides, and none needs a ruling from Max:
~/reviews/us-hub/source-conflicts/RULINGS.mdand marked at its decision line (us:oasdi-insured-prior-disability-favorable-disregard,us:oasdi-insured-disability-period-endpoint-quarters).Effort
The coordinator estimated 5–10 engineer-days for a person. This build took about an hour of automated lane time, plus orchestration and review. That isn't a human-effort measurement and shouldn't be read as one. B6a still needs its empirical risk set, observed histories, claim timing and estimation; this PR supplies only the statutory predicate.
Round 2 (after the first review)
unknown_prior_disability_periods_decide_status,unknown_current_disability_period_decides_status,sspa211_applicability_unknown.docs/design/track_b_insured_status_mutations.json.3fd1d225. 2,717 tests pass across the insured-status files, the shared schema file and two G fix-round fixtures, plus 3,000 in the G receivers file. Birth evidence, tier policy, black and ruff all pass.Round 1 checks (local, at
f865bb54)b85c1e35, the 11,230 shared tests passed (G, R2, R3, the schema and audit suites, birth-evidence); the later commits touch only the insured-status files.axiom: n/a: Axiom (rulespec-us) encodes 42 U.S.C. 402, 415, 416(l) and 426 but not 413, 414 or 423(c), so there is no differential yet. A dispatch-ready rulespec-us issue (
docs/design/track_b_insured_status_rulespec_issue.md) will be filed.🤖 Generated with Claude Code