You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
REGISTRATION — the first estimates report (forecast ledger entry 8)
Registration
Class: registered estimates report (the class chartered by docs/design/first_estimates_report.md, ratified at 6586b92,
amendment 1 at ee1221d, amendment 2 ratified at the implementation
merge 070cbb720cb2f10da7ffae8122a2269e58b39e6e — PR #285 nine
referee rounds; PR #286 nine referee rounds, final verdict SHIP with
the hardened-guard exploits replayed and held).
Output artifact:runs/first_estimates_v1.json with its paired .env.json sidecar, integrity-bound by the primary's recorded sidecar
hash, written append-only by artifacts.write_new.
The canonical execution rule (§11, restated verbatim as the sole
normative wording): one registered run; publishes_regardless; no_self_rescue; at most one coordinator-adjudicated, report-first
retry solely for an external pre-output failure yielding no
estimate-bearing information. A published v1, any changed
configuration byte, or a second failure of any kind requires fresh
registration — there is no same-ceremony v2 path. Preparation,
invariant, compute, or publication aborts publish an append-only
incident record (first_estimates_incident.v1, the frozen nine-key
schema) before any further step. The durable attempt claim and the
retry-consumption marker enforce these terms across crashes.
The sealed invocation (amendment 2, restated verbatim): before any populace_dynamics import, the runner self-re-executes the same
interpreter as python -I -B -X pycache_prefix=<fresh-empty-sentinel-directory> scripts/run_first_estimates.py <registered-arguments>; the launcher
procedure is the launchd user-domain topology of the candidate-3
record (one-shot LaunchAgent, RunAtLoad, AbandonProcessGroup, ProcessType=Interactive, no KeepAlive, launcher spawns-and-exits,
runner-held caffeinate -sim, bootstrap → health check → bootout,
runner ending as a pid-1 orphan in no application coalition;
publication performed by the coordinator after exit).
Registered arguments: --registration-reference <this issue's number as populace-dynamics#<n>> (the reference string is this registration's
identity; the coordinator validates it against the canonical byte
bound and binds the durable claim to it).
Frozen configuration (the coordinator hard-asserts or records)
Source: master 070cbb720cb2f10da7ffae8122a2269e58b39e6e — a clean checkout; the
guards refuse ANY tracked or untracked drift, ignored executable
artifacts under the code roots, assume-unchanged/skip-worktree
entries, redirected git routing, and an unsealed interpreter.
Design identity:6586b92 + amendments ee1221d and the §11
sealed-invocation restatement ratified at 070cbb7.
Candidate-3 binding: the gate runner's normative
fit/preflight/materialization sequence with both CandidateSpec
sha256s asserted against the registration-12 pins — family 734a5b04f347c5d4904bbc6d5ab9a1c2876272d35284eedd2f450518acf1cec5,
engine c9be28a28d6fcc3911723872386906af559f6d0e0d5c89a87f741a5b2c3eacd6
(a mismatch aborts); unsplit population; draw indices 0-19
(root seeds 5200+k per the RNG registry law).
Statutory parameters: policyengine-us 1.752.2 (path and content
hashes recorded in the artifact); rate legs read from gov/irs/payroll/social_security/rate/{employee,employer}.yaml
with the 6.2%/6.2%/12.4% fail-closed assertions and no fallback;
the committed SSA COLA-history extraction data/external/ssa_cola_history.json, sha256 12da7f0e0d33fc53eaa31567d86c3cc035a49feefc2e4695bceea3379c2a38db,
determination-year keyed 1975-2022 (verified against the official
SSA series at the PR Entry-8 implementation: the first-estimates statutory pipeline (design 6586b92) #286 round-2 review, all 48 rows), with
coverage asserted for 1979-2022 exactly.
The staged inclusion law as ratified: Stage A DI screen over all
persons; Stage B any-slice candidate universe; Stage C origins with
the strict-< truncated-renormalized 6.B5.1 imputation under the
code-frozen stock-imputation namespace; Stage D's five ordered
predicates with the frozen excluded_* keys; the eligibility-era
bound ≥ 1979; the 0.80 coverage rule; cutoff-before-imputation.
Ledgers: as-of AIME; eligibility-year PIA; months-based benefit_factor; stepwise COLA with dime flooring per the SSA
application convention; no recomputation (affected count
published); the payment-window triple intersection; nominal
in-window revenue with wage-base capping and no expectation layers.
PSID staging:~/PolicyEngine/psid-data (the label-verified
readers' documented staging path).
Candid expectations (house rule)
Every dollar is frame-relative, pre-alignment, labor-income-proxy
— the design's three labels appear on every table, and the artifact's
closing claim is what the statutory formulas yield on the candidate-3 GATED_REALIZED reproduction panel, not what Social Security pays and
collects. No level anchor exists in-repo; no comparison to any
administrative total is made (the context ratio is deferred_to_anchor_extraction by amendment 1). The registration
names what would look pathological rather than predicting magnitudes:
an empty or near-empty modeled_award universe, an exclusion class
absorbing the overwhelming majority of candidates, a coverage-ratio
distribution collapsing at the 0.80 boundary, or across-draw SDs
rivaling means. The odd-year earnings carry law and its affected-share
diagnostics accompany every annual table, with biennial companions.
Runtime and publication
Twenty draws of a 2014→2022 unsplit projection plus the statutory
pipeline — hours-scale. On completion (any verdictless outcome: this
class has no verdict), the coordinator commits the artifact pair on a
branch and opens the publication PR; forecast ledger entry 8
resolves at that PR's merge (p50 2026-08-02). Incidents, if any,
publish to runs/first_estimates_incident_<n>.json and are
cross-referenced.
REGISTRATION — the first estimates report (forecast ledger entry 8)
Registration
Class: registered estimates report (the class chartered by
docs/design/first_estimates_report.md, ratified at6586b92,amendment 1 at
ee1221d, amendment 2 ratified at the implementationmerge
070cbb720cb2f10da7ffae8122a2269e58b39e6e— PR #285 ninereferee rounds; PR #286 nine referee rounds, final verdict SHIP with
the hardened-guard exploits replayed and held).
Output artifact:
runs/first_estimates_v1.jsonwith its paired.env.jsonsidecar, integrity-bound by the primary's recorded sidecarhash, written append-only by
artifacts.write_new.The canonical execution rule (§11, restated verbatim as the sole
normative wording): one registered run;
publishes_regardless;no_self_rescue; at most one coordinator-adjudicated, report-firstretry solely for an external pre-output failure yielding no
estimate-bearing information. A published
v1, any changedconfiguration byte, or a second failure of any kind requires fresh
registration — there is no same-ceremony v2 path. Preparation,
invariant, compute, or publication aborts publish an append-only
incident record (
first_estimates_incident.v1, the frozen nine-keyschema) before any further step. The durable attempt claim and the
retry-consumption marker enforce these terms across crashes.
The sealed invocation (amendment 2, restated verbatim): before any
populace_dynamicsimport, the runner self-re-executes the sameinterpreter as
python -I -B -X pycache_prefix=<fresh-empty-sentinel-directory> scripts/run_first_estimates.py <registered-arguments>; the launcherprocedure is the launchd user-domain topology of the candidate-3
record (one-shot LaunchAgent,
RunAtLoad,AbandonProcessGroup,ProcessType=Interactive, no KeepAlive, launcher spawns-and-exits,runner-held
caffeinate -sim, bootstrap → health check → bootout,runner ending as a pid-1 orphan in no application coalition;
publication performed by the coordinator after exit).
Registered arguments:
--registration-reference <this issue's number as populace-dynamics#<n>>(the reference string is this registration'sidentity; the coordinator validates it against the canonical byte
bound and binds the durable claim to it).
Frozen configuration (the coordinator hard-asserts or records)
070cbb720cb2f10da7ffae8122a2269e58b39e6e— a clean checkout; theguards refuse ANY tracked or untracked drift, ignored executable
artifacts under the code roots, assume-unchanged/skip-worktree
entries, redirected git routing, and an unsealed interpreter.
6586b92+ amendmentsee1221dand the §11sealed-invocation restatement ratified at
070cbb7.fit/preflight/materialization sequence with both CandidateSpec
sha256s asserted against the registration-12 pins — family
734a5b04f347c5d4904bbc6d5ab9a1c2876272d35284eedd2f450518acf1cec5,engine
c9be28a28d6fcc3911723872386906af559f6d0e0d5c89a87f741a5b2c3eacd6(a mismatch aborts); unsplit population; draw indices 0-19
(root seeds 5200+k per the RNG registry law).
hashes recorded in the artifact); rate legs read from
gov/irs/payroll/social_security/rate/{employee,employer}.yamlwith the 6.2%/6.2%/12.4% fail-closed assertions and no fallback;
the committed SSA COLA-history extraction
data/external/ssa_cola_history.json, sha25612da7f0e0d33fc53eaa31567d86c3cc035a49feefc2e4695bceea3379c2a38db,determination-year keyed 1975-2022 (verified against the official
SSA series at the PR Entry-8 implementation: the first-estimates statutory pipeline (design 6586b92) #286 round-2 review, all 48 rows), with
coverage asserted for 1979-2022 exactly.
persons; Stage B any-slice candidate universe; Stage C origins with
the strict-< truncated-renormalized 6.B5.1 imputation under the
code-frozen stock-imputation namespace; Stage D's five ordered
predicates with the frozen
excluded_*keys; the eligibility-erabound ≥ 1979; the 0.80 coverage rule; cutoff-before-imputation.
benefit_factor; stepwise COLA with dime flooring per the SSAapplication convention; no recomputation (affected count
published); the payment-window triple intersection; nominal
in-window revenue with wage-base capping and no expectation layers.
~/PolicyEngine/psid-data(the label-verifiedreaders' documented staging path).
Candid expectations (house rule)
Every dollar is frame-relative, pre-alignment, labor-income-proxy
— the design's three labels appear on every table, and the artifact's
closing claim is what the statutory formulas yield on the candidate-3
GATED_REALIZEDreproduction panel, not what Social Security pays andcollects. No level anchor exists in-repo; no comparison to any
administrative total is made (the context ratio is
deferred_to_anchor_extractionby amendment 1). The registrationnames what would look pathological rather than predicting magnitudes:
an empty or near-empty
modeled_awarduniverse, an exclusion classabsorbing the overwhelming majority of candidates, a coverage-ratio
distribution collapsing at the 0.80 boundary, or across-draw SDs
rivaling means. The odd-year earnings carry law and its affected-share
diagnostics accompany every annual table, with biennial companions.
Runtime and publication
Twenty draws of a 2014→2022 unsplit projection plus the statutory
pipeline — hours-scale. On completion (any verdictless outcome: this
class has no verdict), the coordinator commits the artifact pair on a
branch and opens the publication PR; forecast ledger entry 8
resolves at that PR's merge (p50 2026-08-02). Incidents, if any,
publish to
runs/first_estimates_incident_<n>.jsonand arecross-referenced.