Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
451e396
Bound each PUF QRF draw by the population slice its recipient stands for
MaxGhenis Oct 13, 2026
85eb94b
Carry Schedule E line 32 by entity on the US PUF donor; retire the S-…
MaxGhenis Oct 13, 2026
e000e04
Regenerate spec-engine coverage evidence; pin the new US spec digest …
MaxGhenis Oct 13, 2026
aa47a3f
Note the #1258 transfer-target counts in the spec-engine ruling doc
MaxGhenis Oct 13, 2026
d9f1808
Bound snapped outputs on their grid; give finalize callers a sink; repin
MaxGhenis Oct 13, 2026
37be490
Give the base-builder weights-audit tests a tail-bound sink
MaxGhenis Oct 13, 2026
8e54ef7
Address review r1: shared config schema, interim label, edge cases, t…
MaxGhenis Oct 13, 2026
ba4dfa9
Require both line-32 components for the primary passive placement; fi…
MaxGhenis Oct 13, 2026
635ae0a
Address review r2: spec-bundle schema assert, claims, tests, diagnostics
MaxGhenis Oct 13, 2026
a3d61e9
Keep the LP oracle well conditioned: no share exceeds one (review r3)
MaxGhenis Oct 13, 2026
97b44c6
Merge remote-tracking branch 'origin/main' into us-puf-tail-draw-domi…
MaxGhenis Oct 13, 2026
48046eb
Refuse a partial passive basis before the QRF fit; re-pin seeds (#1258)
MaxGhenis Oct 13, 2026
f333029
Finish the count and digest re-pins the S-corp transfer target moves …
MaxGhenis Oct 13, 2026
0260d64
Never zero a snapped carrier; fix tests the Modal CI run exposed
MaxGhenis Oct 13, 2026
e953167
Fix three count pins CI found; two are inherited from #1251 (#1258)
MaxGhenis Oct 13, 2026
683b644
State the snapped-output exception beside the bound's guarantee (revi…
MaxGhenis Oct 13, 2026
2126a5a
Re-pin the spec-bundle coverage-scope and battery counts (#1258)
MaxGhenis Oct 13, 2026
d3348e5
Merge main into us-puf-tail-draw-dominance and re-pin the spec digests
MaxGhenis Oct 29, 2026
f8bc899
Merge #1251's main merge into us-puf-entity-split-line32 and re-pin
MaxGhenis Oct 29, 2026
487243e
Merge #1251's scoring-pin fix into us-puf-entity-split-line32
MaxGhenis Oct 29, 2026
f4a1baa
Merge origin/main (f36a14a3c) into the recipient-share bound
MaxGhenis Oct 31, 2026
b913e48
Merge #1259's head (f4a1baa92) into the entity split
MaxGhenis Oct 31, 2026
3c3d3e0
Give #1251's passive tests the diagnostics sink #1259 requires
MaxGhenis Oct 31, 2026
1c41d5f
Merge #1259's sink fix into the entity split
MaxGhenis Oct 31, 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
1 change: 1 addition & 0 deletions changelog.d/1258-puf-schedule-e-entity-split.changed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The US PUF donor now carries the partnership and S corporation shares of Schedule E line 32 as separate leaves (`partnership_income` = E25940 + E25980 − E25920 − E25960 − E26110; `s_corp_income` = E26170 + E26190 − E26160 − E26180 − E26100, from the TY2015 source rows). Previously the whole line-32 total sat in `partnership_income` and `s_corp_income` was an exact-zero universe. Their sum equals E26270 within the booklet's per-field rounding, and the passive subset is byte-identical. The exact-zero machinery is retired: the stacked-spine materializer and its whole-pool doctrine, the late-transfer exclusion, the pool's `primary_puf_exact_zero_universe` provision, the donor's zero alias and the fiscal-refresh degenerate-input exclusion. `s_corp_income` is now a PUF-clone primary output that the late ACS transfer carries to native rows. SOI Table 1.4's partnership and S corporation net income/loss legs bind each entity's own leaf once the feed carries them (microcosm#1258).
1 change: 1 addition & 0 deletions changelog.d/us-puf-recipient-share-bound.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
A single PUF-channel QRF draw can no longer carry more mass than the population slice its recipient stands for. The #982 income-rank predictor sends the top-ranked survey tax units, each standing for several hundred units, onto the PUF's top-ranked returns, which stand for one return or less: the synthetic Forbes-tail records weigh about 0.13 each. One such draw put $141B of line-32 mass on a single weight-644 unit in the #1251 rebuild. As an interim censor, until a tail stratum carries those donors at their own weights (#958, #964), QRF finalization now caps each raw amount draw at the positive mass, per unit of slice weight, of the donor's top slice of the recipient's own weight share, and floors losses from the bottom slice, on every amount output (booleans and origination years excepted). The cap limits a record to the mass of its slice; it does not remove concentration the slice itself has. The rule is bound into the primary PUF execution config, which moves to schema 6, and stacked pools recorded at schema 5 are no longer loadable. Every bounded output writes a tail-bound diagnostics record.
98 changes: 49 additions & 49 deletions docs/evidence/spec-engine/us-f0-coverage.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"country": "us",
"documentation_sha256": "811b4091f9419c8792e5cc7fcda30d54c5a7c6d35dd944c26c005e32cae06647",
"field_usage": {
"authored_normative_field_count": 32506,
"authored_normative_field_count": 32524,
"claim_count": 49,
"claims": [
{
Expand All @@ -33,8 +33,8 @@
],
"mode": "legacy_behavior",
"pointer_class": "all",
"pointer_count": 802,
"pointer_sha256": "eaf3cc45daebdba940e20e7bf2c995e7fc0bd5219935a963e7fca60c87111409",
"pointer_count": 807,
"pointer_sha256": "f35844c0d404d5fc7905d8b7ecbee1d273c0bb46a7ed656d86f1b7cb0760fb33",
"rationale": null,
"relative_sink_prefix": "/battery_contract",
"source_prefix": "/authored/spec~1battery.yaml",
Expand Down Expand Up @@ -274,8 +274,8 @@
],
"mode": "compiler_semantic",
"pointer_class": "all",
"pointer_count": 24504,
"pointer_sha256": "342cad7ff55198088d9d4dc4d57fe5601f7ded6081d64379109a72917e57f682",
"pointer_count": 24511,
"pointer_sha256": "5869ddc4afa6eb0c09f290b709e75467decc6929e7f79c98341878928e6169fc",
"rationale": null,
"relative_sink_prefix": null,
"source_prefix": "/authored/spec~1imputation.yaml/producer_graph",
Expand Down Expand Up @@ -334,8 +334,8 @@
],
"mode": "legacy_behavior",
"pointer_class": "family_execution",
"pointer_count": 1781,
"pointer_sha256": "0e8e14ad18161ef4b871ad5f2cfbb924bb39a80c334ecdc05336a8eae6731451",
"pointer_count": 1787,
"pointer_sha256": "aa733722f4442ae0ab22c5f1f2ffc1df2accfc5a1791702b242545e40abd26bf",
"rationale": null,
"relative_sink_prefix": null,
"source_prefix": "/authored/spec~1imputation.yaml/families",
Expand Down Expand Up @@ -772,20 +772,20 @@
"verifier": "vintages"
}
],
"configuration_field_count": 42287,
"consumed_field_count": 42287,
"configuration_field_count": 42305,
"consumed_field_count": 42305,
"generation0_effect_counts": {
"legacy_behavior": 38590,
"legacy_behavior": 38608,
"no_generation0_effect": 3697
},
"mode_counts": {
"compiler_semantic": 27744,
"compiler_semantic": 27751,
"front_end_validation": 354,
"identity_only": 103,
"legacy_behavior": 14086
"legacy_behavior": 14097
},
"multiple_primary_use_field_count": 0,
"pointer_inventory_sha256": "f40dab5e9d23abbd1e0f98f3ae819a2aa3278d0133b5fdf7c5f11a385cbe6b11",
"pointer_inventory_sha256": "d51087fd950f99fb7fcf126c31419374172d946f5846d2bf9d0eb0e7a6dfca46",
"resolved_binding_field_count": 9781,
"unused_field_count": 0
},
Expand All @@ -801,16 +801,16 @@
"early_families": 13,
"early_targets": 48,
"itemization_batches": 5,
"itemization_targets": 38,
"itemization_targets": 39,
"late_groups": 19,
"late_targets": 71,
"late_targets": 72,
"ownership_rows": 18,
"primary_effective_predictor_tuples": 66,
"primary_families": 1,
"primary_targets": 66,
"producer_authored_outputs": 92,
"producer_compiled_outputs": 229,
"producer_inputs": 2746,
"producer_compiled_outputs": 230,
"producer_inputs": 2747,
"producer_nodes": 38,
"producer_virtual_resources": 75,
"release_rungs": 5,
Expand Down Expand Up @@ -1036,10 +1036,10 @@
8,
8,
8,
6
7
],
"batches": 5,
"targets": 38
"targets": 39
},
"failures": [],
"observed": {
Expand All @@ -1048,7 +1048,7 @@
8,
8,
8,
6
7
],
"ids": [
"late/person/puf_tax_itemization__batch_1",
Expand All @@ -1074,11 +1074,11 @@
"legacy_adapter.stacked_checkpoint_static_components"
],
"expected": {
"schedule_sha256": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0"
"schedule_sha256": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da"
},
"failures": [],
"observed": {
"schedule_sha256": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0"
"schedule_sha256": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da"
},
"status": "covered"
},
Expand All @@ -1096,14 +1096,14 @@
],
"expected": {
"groups": 19,
"sha256": "734080f8857f8637913a0e3ae81c59bf28b63dccc8d4bbf42009d0a80e9f1e48",
"targets": 71
"sha256": "7857518a5327a816acae80d55a04f43e7445a5e47be822d3ccb747bcb375e199",
"targets": 72
},
"failures": [],
"observed": {
"groups": 19,
"sha256": "734080f8857f8637913a0e3ae81c59bf28b63dccc8d4bbf42009d0a80e9f1e48",
"targets": 71
"sha256": "7857518a5327a816acae80d55a04f43e7445a5e47be822d3ccb747bcb375e199",
"targets": 72
},
"status": "covered"
},
Expand Down Expand Up @@ -1250,14 +1250,14 @@
"expected": {
"edges": 71,
"nodes": 38,
"schedule_sha256": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0",
"schedule_sha256": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da",
"waves": 6
},
"failures": [],
"observed": {
"edges": 71,
"nodes": 38,
"schedule_sha256": "6eb7556639fac5ef67bb1602c769aa01fc2070ecef42be097c6b866a05b030d0",
"schedule_sha256": "f1fb754e6ade602be394837bc0d7d091f2fba4b4b83fb00f59a0258fe56eb5da",
"waves": 6
},
"status": "covered"
Expand All @@ -1275,11 +1275,11 @@
],
"expected": {
"relation": "source rows preserved exactly",
"rows": 2746
"rows": 2747
},
"failures": [],
"observed": {
"rows": 2746
"rows": 2747
},
"status": "covered"
},
Expand All @@ -1298,13 +1298,13 @@
],
"expected": {
"authored_rows": 92,
"compiled_rows": 229,
"compiled_rows": 230,
"relation": "typed closure exact"
},
"failures": [],
"observed": {
"authored_rows": 92,
"compiled_rows": 229
"compiled_rows": 230
},
"status": "covered"
},
Expand Down Expand Up @@ -1338,12 +1338,12 @@
],
"expected": {
"nodes": 38,
"sha256": "5e5c89a0d5e00f759566b5bb025efd46f179e11faf7de4ff663ed2488c5a669b"
"sha256": "1b208fff4f6d878c522147fee617177544bda8963c940f98a4bfc37507cb955f"
},
"failures": [],
"observed": {
"nodes": 38,
"sha256": "5e5c89a0d5e00f759566b5bb025efd46f179e11faf7de4ff663ed2488c5a669b"
"sha256": "1b208fff4f6d878c522147fee617177544bda8963c940f98a4bfc37507cb955f"
},
"status": "covered"
},
Expand All @@ -1361,12 +1361,12 @@
],
"expected": {
"producer_count": 38,
"sha256": "4f2918584365b53b95c9a72203307ed2e2737e74108552f227437759a5875871"
"sha256": "6a1393f35ca9b00e2f01ae2f9ed90376be01ad9875109cb332dbda988d31b57f"
},
"failures": [],
"observed": {
"producer_count": 38,
"sha256": "4f2918584365b53b95c9a72203307ed2e2737e74108552f227437759a5875871"
"sha256": "6a1393f35ca9b00e2f01ae2f9ed90376be01ad9875109cb332dbda988d31b57f"
},
"status": "covered"
},
Expand Down Expand Up @@ -1656,13 +1656,13 @@
"compiler_ir.node_slices"
],
"expected": {
"map_sha256": "7eb4e585cb968366a218a318b2638979421602076aadeb7c0f4d375a458a7921",
"protocol_sha256": "281c2a54be11e3391d1129db04869277cf206d2461212ac9558c9ccf94b747b3"
"map_sha256": "488846129a3c47e89d54538515e6bdbd7ce849e4081ab8a4ad40c9ce2a1e1391",
"protocol_sha256": "87f44e60621c45d2fc1448fda11cd446960d6bab7cb51b346367339e2e751e1f"
},
"failures": [],
"observed": {
"map_sha256": "7eb4e585cb968366a218a318b2638979421602076aadeb7c0f4d375a458a7921",
"protocol_sha256": "281c2a54be11e3391d1129db04869277cf206d2461212ac9558c9ccf94b747b3"
"map_sha256": "488846129a3c47e89d54538515e6bdbd7ce849e4081ab8a4ad40c9ce2a1e1391",
"protocol_sha256": "87f44e60621c45d2fc1448fda11cd446960d6bab7cb51b346367339e2e751e1f"
},
"status": "covered"
},
Expand All @@ -1677,7 +1677,7 @@
"compiler_ir.seed_stream_map"
],
"expected": {
"implementation_sha256": "281c2a54be11e3391d1129db04869277cf206d2461212ac9558c9ccf94b747b3",
"implementation_sha256": "87f44e60621c45d2fc1448fda11cd446960d6bab7cb51b346367339e2e751e1f",
"protocol": "legacy-v1",
"streams": [
"build_model",
Expand All @@ -1698,7 +1698,7 @@
},
"failures": [],
"observed": {
"implementation_sha256": "281c2a54be11e3391d1129db04869277cf206d2461212ac9558c9ccf94b747b3",
"implementation_sha256": "87f44e60621c45d2fc1448fda11cd446960d6bab7cb51b346367339e2e751e1f",
"protocol": "legacy-v1",
"streams": [
"build_model",
Expand Down Expand Up @@ -1840,11 +1840,11 @@
"legacy_adapter.stacked_checkpoint_static_components"
],
"expected": {
"sha256": "3b6f534db79be588396d6543a8368c6251d41ae25139153ade01bdb36ac7b1a2"
"sha256": "bf681aedc859fd6398ef72da68f584069b7d25b3085c549bf99f82e8324c4eef"
},
"failures": [],
"observed": {
"sha256": "3b6f534db79be588396d6543a8368c6251d41ae25139153ade01bdb36ac7b1a2"
"sha256": "bf681aedc859fd6398ef72da68f584069b7d25b3085c549bf99f82e8324c4eef"
},
"status": "covered"
},
Expand Down Expand Up @@ -1887,7 +1887,7 @@
"alpha",
"zeta"
],
"sha256": "42a6073c6d6661321ec943536bc8fe2c9c0dd7e1507a7f238949844eed6df5c8"
"sha256": "69c2e4fcc8ebdf1e6257ccaf4787b736c4822beda5f4ee01a53ffa3945f4936f"
},
"failures": [],
"observed": {
Expand All @@ -1911,7 +1911,7 @@
"alpha",
"zeta"
],
"sha256": "42a6073c6d6661321ec943536bc8fe2c9c0dd7e1507a7f238949844eed6df5c8"
"sha256": "69c2e4fcc8ebdf1e6257ccaf4787b736c4822beda5f4ee01a53ffa3945f4936f"
},
"status": "covered"
},
Expand Down Expand Up @@ -1975,7 +1975,7 @@
"take_up_contract",
"us_qbi_reconciliation_contract"
],
"sha256": "901355aa9e4320e2a84c28dabee74e713aa4ee9c8911cdc0f141e67c423f1af9"
"sha256": "7248c2831f3772e75f22dbabcbb5794d5d81138009a38aae8410e43aa05fb656"
},
"status": "covered"
},
Expand Down Expand Up @@ -2599,7 +2599,7 @@
"country": "us",
"schema_id": "country_spec",
"schema_version": 1,
"spec_sha256": "b23dbfdb383c573d36ced7f61244d9c43e7a5600a706ef8ada9103d72136afdf"
"spec_sha256": "9b4b3260c20c30ba71a0947f8d78e322c8d2a3e6cb94e87a3729be950a9e90f2"
}
},
"report_schema_version": 3,
Expand All @@ -2609,7 +2609,7 @@
"country": "us",
"schema_id": "country_spec",
"schema_version": 1,
"spec_sha256": "b23dbfdb383c573d36ced7f61244d9c43e7a5600a706ef8ada9103d72136afdf"
"spec_sha256": "9b4b3260c20c30ba71a0947f8d78e322c8d2a3e6cb94e87a3729be950a9e90f2"
},
"status": "pass"
}
5 changes: 3 additions & 2 deletions docs/spec-engine.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ Review provenance:
- v2 factual errors corrected here: `puf_tax_itemization` is **five**
batches / **37** targets (19 bounded groups / 70 targets across the
registry), not 4/32 (counts as of this ruling; #1239 later added the
passive partnership/S-corp leaf, making them 38 and 71); `wic` and `social_security` are not contract
passive partnership/S-corp leaf, making them 38 and 71, and #1258 the
late S-corp transfer target, making them 39 and 72); `wic` and `social_security` are not contract
programs; `takes_up_eitc`/`takes_up_dc_ptc` break the suffix naming
rule (column mapping must come from an engine ABI projection).

Expand Down Expand Up @@ -338,7 +339,7 @@ ownership matrix**). The v3 contract:
**The frozen split ledger, corrected**: at the flip, the entire current
ordered split structure — **19 bounded groups / 70 targets overall;
five batches / 37 targets for `puf_tax_itemization`** (71 and 38 since
#1239) — is declared
#1239; 72 and 39 since #1258) — is declared
explicitly with a reason per split, compiled back against both greedy
splitter implementations and every literal batch-name consumer
(ownership constants included), after which the two splitters and
Expand Down
Loading
Loading