Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
247aee9
DRAFT: SIPP job-spell noise floors for E4/E5 (pre-C3 anchor)
daphnehanse11 Jul 15, 2026
370736d
DRAFT: E3 tenure noise floors (with a heaping-robust ECDF variant)
daphnehanse11 Jul 15, 2026
fc9fcec
Lint: unused loop variable (B007)
daphnehanse11 Jul 15, 2026
835e85e
DRAFT: E8/E9 SIPP floors — completing the Workstream A battery
daphnehanse11 Jul 15, 2026
39e2bed
Merge remote-tracking branch 'origin/master' into sipp-spell-floors
vahid-ahmadi Jul 16, 2026
ef5b8ab
Review fixes for #212: merge master, thin-flag unit honesty, reader r…
vahid-ahmadi Jul 16, 2026
5346b3b
Merge origin/master into sipp-spell-floors (ADR 0003 status flip, sip…
vahid-ahmadi Jul 17, 2026
85912a1
Merge remote-tracking branch 'origin/master' into sipp-spell-floors
daphnehanse11 Jul 22, 2026
a3e8331
Address review: scale gap recorded, 20-seed E8/E9, person-unit thin, …
daphnehanse11 Jul 22, 2026
fd4c372
Rename the interface contracts C1/C2/C3 -> IC1/IC2/IC3 (ADR 0003 am. 1)
vahid-ahmadi Jul 23, 2026
3fa6800
Address review: finish the Proposed fix, rename the operative plan
vahid-ahmadi Jul 23, 2026
52afa9c
Merge remote-tracking branch 'origin/master' into rename-interface-co…
vahid-ahmadi Jul 30, 2026
c5b4d11
Keep naming amendment outside sealed production sources
vahid-ahmadi Jul 30, 2026
6126127
Merge remote-tracking branch 'origin/master' into sipp-spell-floors
daphnehanse11 Jul 30, 2026
27bceb7
Merge IC naming root into Workstream A floor promotion
vahid-ahmadi Jul 30, 2026
211152b
Promote Workstream A floor references to v1
vahid-ahmadi Jul 30, 2026
c24809b
Resolve Workstream A strict staging provenance
vahid-ahmadi Jul 30, 2026
1cef081
Merge master into Workstream A floor references
vahid-ahmadi Jul 31, 2026
55ddae0
Format Workstream A floor seal files
vahid-ahmadi Jul 31, 2026
2e9dffe
Merge remote-tracking branch 'origin/master' into sipp-spell-floors
vahid-ahmadi Aug 11, 2026
0bc4c2d
Recount tier manifest after merging master (artifact 2,535 -> 2,543)
vahid-ahmadi Aug 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions runs/sipp_e8_e9_floors_v1.env.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"artifact": "sipp_e8_e9_floors_v1.json",
"status": "MEASUREMENT_ENVIRONMENT",
"environment": {
"python": "3.10.13",
"numpy": "2.1.3",
"pandas": "2.3.3",
"sklearn": "1.5.2",
"scipy": "1.13.1",
"platform": "macOS-26.5.2-arm64-arm-64bit",
"fitting_stack": {
"populace_fit": "absent",
"populace_frame": "absent"
}
}
}
16 changes: 16 additions & 0 deletions runs/sipp_e8_e9_floors_v1.inputs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"artifact": "sipp_e8_e9_floors_v1.json",
"status": "SOURCE_INPUT_DIGESTS",
"official_source": {
"url": "https://www2.census.gov/programs-surveys/sipp/data/datasets/2023/pu2023_csv.zip",
"archive_sha256": "9c5363d56aca2041db20d46d17b81e9be931eb5b18bd5f5238b367d2dd7fb74b",
"archive_bytes": 109036604,
"archive_member": "pu2023.csv"
},
"staged_input": {
"path": "pu2023.csv.gz",
"sha256": "1e49df7e013970ea60443e4e15ded3e8fda07643038471bf6b3429a7383fbf69",
"bytes": 109032744,
"transport_note": "gzip -n recompression of the sole CSV member from the verified official Census ZIP"
}
}
152 changes: 152 additions & 0 deletions runs/sipp_e8_e9_floors_v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
{
"artifact": "sipp_e8_e9_floors",
"version": "v1",
"status": "PRE-LOCK REFERENCE - NOT RATIFIED; IC3 not locked; no thresholds. v1 is a pinning event, not a ratification",
"issue": "192",
"deployment_scale_note": "RECORDED GAP (review of #212): these floors are half-vs-half, i.e. the sampling noise of ~50%-of-source estimates, while IC3 proposes scoring on a 0.20 person holdout - there is no candidate-context floor (gate-1 ctx20 analog). Under root-n scaling, a 20% scoring frame has ~sqrt(0.5/0.2)=1.58x the sampling noise of the half-split basis, so these floors are mildly ANTI-conservative (too tight), not conservative. RECORDED_NOT_SATISFIED: IC3 must accept a registered analytic scale adjustment or require matching-context floors before candidate runs.",
"source": "pu2023 (reference year 2022), persons observed all 12 reference months (censoring-free draft restriction, recorded; ESTIMAND NOTE per review: candidate runs scored against these cells must apply the identical full-year-persons restriction)",
"method": "person-disjoint sha256 half-splits, seeds 0-19 (raised from 5 per review: E8 cells where floor sd exceeds the mean need a stable across-seed sd); rates floored on |log rate ratio|, earnings-change medians/IQRs on absolute gaps in log-points; weighted by WPFINWGT",
"seam_caveat": "identical to the E4/E5 floors: half-splits share SIPP's seam structure; #214 carries the seam measurement",
"stay_median_heaping_caveat": "within-job SIPP monthly earnings are mostly constant across a wave (dependent-interview reporting), so the stay-transition median log-change heaps at exactly 0 and its half-vs-half floor is degenerate (0.0) - the same failure class as the tenure quantile heaping; E9-stay thresholds should be stated on the IQR or a distributional distance, not the median",
"thin_flag_units": {
"e8_nonemployment_by_age": "rows per half, equal to persons (one row per person in the E8 frame) vs THIN_CELL_PERSONS=200",
"e9_transitions.earnings_change": "distinct persons per half (person_id.nunique(); rows are consecutive-month transition pairs and a person can contribute up to 11) vs THIN_CELL_PERSONS=200"
},
"sipp_jobs_reader_commit": "a059193e4fad80ceb1c2e1f4177aa5c69abb1048",
"source_input": {
"path": "pu2023.csv.gz",
"sha256": "1e49df7e013970ea60443e4e15ded3e8fda07643038471bf6b3429a7383fbf69"
},
"e8_nonemployment_by_age": {
"16_24": {
"any_nonemp_share": 0.4145,
"long_nonemp_share": 0.3422,
"persons_unweighted": 1781,
"any_nonemp": {
"floor_abs_log_ratio_mean": 0.05149,
"floor_abs_log_ratio_sd": 0.0356,
"thin": false
},
"long_nonemp": {
"floor_abs_log_ratio_mean": 0.08586,
"floor_abs_log_ratio_sd": 0.04431,
"thin": false
}
},
"25_34": {
"any_nonemp_share": 0.1401,
"long_nonemp_share": 0.0973,
"persons_unweighted": 3240,
"any_nonemp": {
"floor_abs_log_ratio_mean": 0.05885,
"floor_abs_log_ratio_sd": 0.04819,
"thin": false
},
"long_nonemp": {
"floor_abs_log_ratio_mean": 0.10659,
"floor_abs_log_ratio_sd": 0.06993,
"thin": false
}
},
"35_44": {
"any_nonemp_share": 0.1017,
"long_nonemp_share": 0.0663,
"persons_unweighted": 3543,
"any_nonemp": {
"floor_abs_log_ratio_mean": 0.09917,
"floor_abs_log_ratio_sd": 0.07372,
"thin": false
},
"long_nonemp": {
"floor_abs_log_ratio_mean": 0.13369,
"floor_abs_log_ratio_sd": 0.0899,
"thin": false
}
},
"45_54": {
"any_nonemp_share": 0.0852,
"long_nonemp_share": 0.0555,
"persons_unweighted": 3241,
"any_nonemp": {
"floor_abs_log_ratio_mean": 0.10871,
"floor_abs_log_ratio_sd": 0.078,
"thin": false
},
"long_nonemp": {
"floor_abs_log_ratio_mean": 0.09797,
"floor_abs_log_ratio_sd": 0.07416,
"thin": false
}
},
"55_64": {
"any_nonemp_share": 0.1045,
"long_nonemp_share": 0.083,
"persons_unweighted": 3449,
"any_nonemp": {
"floor_abs_log_ratio_mean": 0.09033,
"floor_abs_log_ratio_sd": 0.05384,
"thin": false
},
"long_nonemp": {
"floor_abs_log_ratio_mean": 0.11965,
"floor_abs_log_ratio_sd": 0.05523,
"thin": false
}
},
"65_99": {
"any_nonemp_share": 0.1887,
"long_nonemp_share": 0.1546,
"persons_unweighted": 2286,
"any_nonemp": {
"floor_abs_log_ratio_mean": 0.05524,
"floor_abs_log_ratio_sd": 0.04697,
"thin": false
},
"long_nonemp": {
"floor_abs_log_ratio_mean": 0.08085,
"floor_abs_log_ratio_sd": 0.04997,
"thin": false
}
}
},
"e9_transitions": {
"transition_rates": {
"entry": 0.0101,
"exit": 0.0094,
"j2j": 0.0035,
"stay": 0.977
},
"earnings_change": {
"stay": {
"median_log_change": 0.0,
"iqr_log_change": 0.0656,
"pairs_unweighted": 163552,
"persons_unweighted": 16286,
"floor_abs_median_gap": {
"mean": 0.0,
"sd": 0.0
},
"floor_abs_iqr_gap": {
"mean": 0.0,
"sd": 0.0
},
"thin": false
},
"j2j": {
"median_log_change": 0.2264,
"iqr_log_change": 1.069,
"pairs_unweighted": 545,
"persons_unweighted": 524,
"floor_abs_median_gap": {
"mean": 0.06659,
"sd": 0.05025
},
"floor_abs_iqr_gap": {
"mean": 0.12848,
"sd": 0.07392
},
"thin": false
}
}
}
}
16 changes: 16 additions & 0 deletions runs/sipp_spell_floors_v1.env.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"artifact": "sipp_spell_floors_v1.json",
"status": "MEASUREMENT_ENVIRONMENT",
"environment": {
"python": "3.10.13",
"numpy": "2.1.3",
"pandas": "2.3.3",
"sklearn": "1.5.2",
"scipy": "1.13.1",
"platform": "macOS-26.5.2-arm64-arm-64bit",
"fitting_stack": {
"populace_fit": "absent",
"populace_frame": "absent"
}
}
}
16 changes: 16 additions & 0 deletions runs/sipp_spell_floors_v1.inputs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"artifact": "sipp_spell_floors_v1.json",
"status": "SOURCE_INPUT_DIGESTS",
"official_source": {
"url": "https://www2.census.gov/programs-surveys/sipp/data/datasets/2023/pu2023_csv.zip",
"archive_sha256": "9c5363d56aca2041db20d46d17b81e9be931eb5b18bd5f5238b367d2dd7fb74b",
"archive_bytes": 109036604,
"archive_member": "pu2023.csv"
},
"staged_input": {
"path": "pu2023.csv.gz",
"sha256": "1e49df7e013970ea60443e4e15ded3e8fda07643038471bf6b3429a7383fbf69",
"bytes": 109032744,
"transport_note": "gzip -n recompression of the sole CSV member from the verified official Census ZIP"
}
}
149 changes: 149 additions & 0 deletions runs/sipp_spell_floors_v1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
{
"artifact": "sipp_spell_floors",
"version": "v1",
"status": "PRE-LOCK REFERENCE - NOT RATIFIED; IC3 not locked; no thresholds. v1 is a pinning event, not a ratification",
"issue": "192",
"deployment_scale_note": "RECORDED GAP (review of #212): these floors are half-vs-half, i.e. the sampling noise of ~50%-of-source estimates, while IC3 proposes scoring on a 0.20 person holdout - there is no candidate-context floor (gate-1 ctx20 analog). Under root-n scaling, a 20% scoring frame has ~sqrt(0.5/0.2)=1.58x the sampling noise of the half-split basis, so these floors are mildly ANTI-conservative (too tight), not conservative. RECORDED_NOT_SATISFIED: IC3 must accept a registered analytic scale adjustment or require matching-context floors before candidate runs.",
"source": "pu2023 (reference year 2022)",
"method": "person-disjoint sha256 half-splits, seeds 0-4; per-cell |log(rate_a/rate_b)| mean/sd across seeds; weighted by WPFINWGT",
"seam_caveat": "both halves share SIPP seam structure; the seam-vs-J2J reconciliation run is a separate required artifact before IC3 thresholds lock",
"thin_flag_units": {
"e4_retention_by_age_sex": "distinct persons per half (person_id.nunique(); rows are person-month retention pairs) vs THIN_CELL_PERSONS=200",
"e5_runs_by_age": "rows per half, equal to persons (one row per person in the run-length frame) vs THIN_CELL_PERSONS=200"
},
"sipp_jobs_reader_commit": "a059193e4fad80ceb1c2e1f4177aa5c69abb1048",
"source_input": {
"path": "pu2023.csv.gz",
"sha256": "1e49df7e013970ea60443e4e15ded3e8fda07643038471bf6b3429a7383fbf69"
},
"e4_retention_by_age_sex": {
"16_24|sex1": {
"rate": 0.9897,
"pairs_unweighted": 8055,
"floor_abs_log_ratio_mean": 0.00182,
"floor_abs_log_ratio_sd": 0.00107,
"thin": false
},
"16_24|sex2": {
"rate": 0.9901,
"pairs_unweighted": 7093,
"floor_abs_log_ratio_mean": 0.00198,
"floor_abs_log_ratio_sd": 0.00232,
"thin": false
},
"25_34|sex1": {
"rate": 0.9948,
"pairs_unweighted": 17797,
"floor_abs_log_ratio_mean": 0.0008,
"floor_abs_log_ratio_sd": 0.00036,
"thin": false
},
"25_34|sex2": {
"rate": 0.9953,
"pairs_unweighted": 15555,
"floor_abs_log_ratio_mean": 0.00143,
"floor_abs_log_ratio_sd": 0.00114,
"thin": false
},
"35_44|sex1": {
"rate": 0.9968,
"pairs_unweighted": 19920,
"floor_abs_log_ratio_mean": 0.00097,
"floor_abs_log_ratio_sd": 0.00058,
"thin": false
},
"35_44|sex2": {
"rate": 0.9964,
"pairs_unweighted": 17203,
"floor_abs_log_ratio_mean": 0.00089,
"floor_abs_log_ratio_sd": 0.00065,
"thin": false
},
"45_54|sex1": {
"rate": 0.9978,
"pairs_unweighted": 17779,
"floor_abs_log_ratio_mean": 0.0003,
"floor_abs_log_ratio_sd": 0.00028,
"thin": false
},
"45_54|sex2": {
"rate": 0.998,
"pairs_unweighted": 16516,
"floor_abs_log_ratio_mean": 0.00051,
"floor_abs_log_ratio_sd": 0.00045,
"thin": false
},
"55_64|sex1": {
"rate": 0.9984,
"pairs_unweighted": 18342,
"floor_abs_log_ratio_mean": 0.00067,
"floor_abs_log_ratio_sd": 0.00058,
"thin": false
},
"55_64|sex2": {
"rate": 0.999,
"pairs_unweighted": 17410,
"floor_abs_log_ratio_mean": 0.0003,
"floor_abs_log_ratio_sd": 0.00014,
"thin": false
},
"65_99|sex1": {
"rate": 0.9992,
"pairs_unweighted": 12113,
"floor_abs_log_ratio_mean": 0.00058,
"floor_abs_log_ratio_sd": 0.00039,
"thin": false
},
"65_99|sex2": {
"rate": 0.9996,
"pairs_unweighted": 10437,
"floor_abs_log_ratio_mean": 0.00039,
"floor_abs_log_ratio_sd": 0.00032,
"thin": false
}
},
"e5_runs_by_age": {
"16_24": {
"full_year_run_share": 0.4669,
"persons_unweighted": 1830,
"floor_abs_log_ratio_mean": 0.04937,
"floor_abs_log_ratio_sd": 0.04904,
"thin": false
},
"25_34": {
"full_year_run_share": 0.7499,
"persons_unweighted": 3299,
"floor_abs_log_ratio_mean": 0.01944,
"floor_abs_log_ratio_sd": 0.01104,
"thin": false
},
"35_44": {
"full_year_run_share": 0.8245,
"persons_unweighted": 3555,
"floor_abs_log_ratio_mean": 0.01764,
"floor_abs_log_ratio_sd": 0.01639,
"thin": false
},
"45_54": {
"full_year_run_share": 0.8671,
"persons_unweighted": 3256,
"floor_abs_log_ratio_mean": 0.01096,
"floor_abs_log_ratio_sd": 0.00768,
"thin": false
},
"55_64": {
"full_year_run_share": 0.8673,
"persons_unweighted": 3458,
"floor_abs_log_ratio_mean": 0.01742,
"floor_abs_log_ratio_sd": 0.00998,
"thin": false
},
"65_99": {
"full_year_run_share": 0.7941,
"persons_unweighted": 2294,
"floor_abs_log_ratio_mean": 0.01327,
"floor_abs_log_ratio_sd": 0.01036,
"thin": false
}
}
}
16 changes: 16 additions & 0 deletions runs/tenure_floors_v1.env.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"artifact": "tenure_floors_v1.json",
"status": "MEASUREMENT_ENVIRONMENT",
"environment": {
"python": "3.10.13",
"numpy": "2.1.3",
"pandas": "2.3.3",
"sklearn": "1.5.2",
"scipy": "1.13.1",
"platform": "macOS-26.5.2-arm64-arm-64bit",
"fitting_stack": {
"populace_fit": "absent",
"populace_frame": "absent"
}
}
}
Loading