diff --git a/ledger/seeds/thesis_docket_series.json b/ledger/seeds/thesis_docket_series.json index f6a00d2..ab8e13c 100644 --- a/ledger/seeds/thesis_docket_series.json +++ b/ledger/seeds/thesis_docket_series.json @@ -1632,6 +1632,42 @@ "targetUnit": "usd", "country": "US" } + }, + { + "series": "usaspending.cdfi.assistance_transaction_obligations", + "cadence": "annual", + "comment": "Docket-only placeholder minted 2026-08-11 for the thesis bills full-coverage wave (thesis#159 Wave A verified request; S. 2718 CDFI page): CDFI Fund awarding-subtier ASSISTANCE TRANSACTION obligations via USAspending spending_over_time — the filter is part of the concept identity, so a differently filtered CDFI series is a distinct identity, never an enrichment of this one. Context series only, not the assistance S. 2718 would authorize. Observations arrive when the thesis usaspending-api extension and its docket admission land (in review at mint time).", + "extras": { + "targetUnit": "usd_millions", + "country": "US" + } + }, + { + "series": "usaspending.ondcp.hidta_al95001_obligations", + "cadence": "annual", + "comment": "Docket-only placeholder minted 2026-08-11 for the thesis bills full-coverage wave (thesis#159 Wave A verified request; S. 767 HIDTA page): the whole Assistance Listing 95.001 award-transaction aggregate via USAspending spending_over_time — the listing number is part of the concept identity. Not a section 707(s) supplemental metric. Observations arrive when the thesis usaspending-api extension and its docket admission land (in review at mint time).", + "extras": { + "targetUnit": "usd_millions", + "country": "US" + } + }, + { + "series": "usaspending.ntia.broadband_al11038_obligations", + "cadence": "annual", + "comment": "Docket-only placeholder minted 2026-08-11 for the thesis bills full-coverage wave (thesis#159 Wave A verified request; H.R. 2449 FUTURE Networks page): the Assistance Listing 11.038 award-transaction aggregate via USAspending spending_over_time — the listing number is part of the concept identity. Advanced-wireless grant context, not a 6G Task Force metric. Observations arrive when the thesis usaspending-api extension and its docket admission land (in review at mint time).", + "extras": { + "targetUnit": "usd_millions", + "country": "US" + } + }, + { + "series": "usaspending.usfs.minnesota_place_of_performance_obligations", + "cadence": "annual", + "comment": "Docket-only placeholder minted 2026-08-11 for the thesis bills full-coverage wave (thesis#159 Wave A verified request; H.R. 978 Superior NF page): Forest Service award obligations with Minnesota place of performance via USAspending spending_over_time. Geography decision: the docket-seed schema is country-level by design, so this row's geography is US country and the Minnesota place-of-performance scope is part of the concept identity string — a future state-geography series would be a distinct identity, not an enrichment of this one. Minnesota-wide context: USAspending has no named-forest filter, so this is NOT Superior National Forest obligations. Observations arrive when the thesis usaspending-api extension and its docket admission land (in review at mint time).", + "extras": { + "targetUnit": "usd_millions", + "country": "US" + } } ] } diff --git a/ledger/series_catalog.json b/ledger/series_catalog.json index 15f1306..480bab8 100644 --- a/ledger/series_catalog.json +++ b/ledger/series_catalog.json @@ -1,11 +1,11 @@ { "comment": "Canonical series catalog. One row per (concept, geography level/id/vintage, entity) identity. UUID authority is the append-only ledger/series_uuid_registry.jsonl (digest below): a uuid is minted once, inherited from the registry on every regeneration, and changes only through explicit, chained supersede/retire/revive/succeeds events recorded there (live bindings and rows stay in bijection). Consumers reference series by uuid or concept only. Regenerate with scripts/build_series_catalog.py; verify with --check. Aliases are curated identity statements (plus observed spellings of the same identity) and inherit only within one (geography, entity) slice; aliases listed in ambiguous_aliases match multiple rows and never drive inheritance. source_concepts are publisher labels — provenance, never identity. Cross-spelling and cross-vintage merges are manual curation: delete the absorbed row, alias its concept on the survivor, regenerate with --allow-remint.", "generator_version": 3, - "observations_sha256": "92a1f4f40c98bdd91edafd5e15faa78b641f94f016a526b783ab2fe74974074d", - "observation_rows": 179, - "current_assertion_rows": 179, - "docket_seed_sha256": "235ee5742faa3ad1f5048b91402b93b3526dd405da2b52557ffbb306579a6033", - "uuid_registry_sha256": "b2c933a238b92bae48dc565e14a65ea29a40b1c28ec2dab5141ffc4153b172b9", + "observations_sha256": "893b06cf310d7075ed62ad1a964c3cfa025b1049415446f2c76428d77c2bbe5c", + "observation_rows": 182, + "current_assertion_rows": 182, + "docket_seed_sha256": "f86ca19d9b7ff1f44cdfa026ae506452f32033342691e0dda35dca0b353392cc", + "uuid_registry_sha256": "488aed798f7bcbb053e774e0e8192397d8fee7b367e6fb5fbdc00613f64f9c64", "suspect_segments": [], "stripped_segments": { "2026-05": [ @@ -107,6 +107,9 @@ "june_2026": [ "abs.labour.employment_change.australia", "abs.labour.unemployment_rate.australia", + "bls.ces.aerospace_product_and_parts_employment", + "bls.ces.federal_department_of_defense_employment", + "bls.ces.ship_and_boat_building_employment", "bls.ces.total_nonfarm_payroll_change", "bls.cpi.u.core_mom", "bls.cpi.u.headline_mom", @@ -902,6 +905,41 @@ "last_observed_period": "2026-05", "observation_count": 1 }, + { + "uuid": "80a2c9d9-6a09-484b-9ecd-8cc7e8b6be22", + "concept": "bls.ces.aerospace_product_and_parts_employment", + "family_patterns": [ + "bls.ces.aerospace_product_and_parts_employment.{P}" + ], + "status": "observed", + "unit": "thousands", + "cadence": "month", + "geography": { + "level": "country", + "id": "0100000US", + "vintage": "current", + "name": "United States" + }, + "entity": { + "name": "economy", + "role": "aggregate" + }, + "sources": [ + "bls_ces" + ], + "aliases": [ + "bls.ces.aerospace_product_and_parts_employment.june_2026" + ], + "source_concepts": [ + "CES3133640001" + ], + "rid_patterns": [ + "bls.ces.aerospace_product_and_parts_employment.{P}.first_print" + ], + "first_observed_period": "2026-06", + "last_observed_period": "2026-06", + "observation_count": 1 + }, { "uuid": "0edb7ad9-0541-4bd2-9597-bffc9e73cd92", "concept": "bls.ces.average_hourly_earnings_private_monthly_change", @@ -937,6 +975,41 @@ "last_observed_period": "2026-05", "observation_count": 1 }, + { + "uuid": "d1d4fc9b-d53a-4e04-a3c3-e4498801c88b", + "concept": "bls.ces.federal_department_of_defense_employment", + "family_patterns": [ + "bls.ces.federal_department_of_defense_employment.{P}" + ], + "status": "observed", + "unit": "thousands", + "cadence": "month", + "geography": { + "level": "country", + "id": "0100000US", + "vintage": "current", + "name": "United States" + }, + "entity": { + "name": "economy", + "role": "aggregate" + }, + "sources": [ + "bls_ces" + ], + "aliases": [ + "bls.ces.federal_department_of_defense_employment.june_2026" + ], + "source_concepts": [ + "CES9091911001" + ], + "rid_patterns": [ + "bls.ces.federal_department_of_defense_employment.{P}.first_print" + ], + "first_observed_period": "2026-06", + "last_observed_period": "2026-06", + "observation_count": 1 + }, { "uuid": "d8ab9f3a-aa0c-4b7f-89df-a0c9107cfdbb", "concept": "bls.ces.nonfarm_payrolls.change", @@ -956,6 +1029,41 @@ "last_observed_period": null, "observation_count": 0 }, + { + "uuid": "13c723db-3ec7-4e28-b305-30050f832a71", + "concept": "bls.ces.ship_and_boat_building_employment", + "family_patterns": [ + "bls.ces.ship_and_boat_building_employment.{P}" + ], + "status": "observed", + "unit": "thousands", + "cadence": "month", + "geography": { + "level": "country", + "id": "0100000US", + "vintage": "current", + "name": "United States" + }, + "entity": { + "name": "economy", + "role": "aggregate" + }, + "sources": [ + "bls_ces" + ], + "aliases": [ + "bls.ces.ship_and_boat_building_employment.june_2026" + ], + "source_concepts": [ + "CES3133660001" + ], + "rid_patterns": [ + "bls.ces.ship_and_boat_building_employment.{P}.first_print" + ], + "first_observed_period": "2026-06", + "last_observed_period": "2026-06", + "observation_count": 1 + }, { "uuid": "c0515530-c56b-417d-9ead-aff423c87207", "concept": "bls.ces.total_nonfarm_payroll_change", @@ -6514,6 +6622,29 @@ "last_observed_period": "2026-06", "observation_count": 1 }, + { + "uuid": "69834e1f-1fbf-432c-9913-6b391321b3a8", + "concept": "usaspending.cdfi.assistance_transaction_obligations", + "family_patterns": [ + "usaspending.cdfi.assistance_transaction_obligations" + ], + "status": "docket-only", + "unit": "usd_millions", + "cadence": "year", + "geography": { + "level": "country", + "id": "0100000US", + "name": "United States" + }, + "entity": null, + "sources": [], + "aliases": [], + "source_concepts": [], + "rid_patterns": [], + "first_observed_period": null, + "last_observed_period": null, + "observation_count": 0 + }, { "uuid": "e64ea5db-b72a-4a46-8948-6142dbc59d91", "concept": "usaspending.dhs.title_vi.award_transaction_obligations", @@ -6651,6 +6782,75 @@ "last_observed_period": null, "observation_count": 0 }, + { + "uuid": "f37307e0-91c6-49ee-afc7-2021e33ea863", + "concept": "usaspending.ntia.broadband_al11038_obligations", + "family_patterns": [ + "usaspending.ntia.broadband_al11038_obligations" + ], + "status": "docket-only", + "unit": "usd_millions", + "cadence": "year", + "geography": { + "level": "country", + "id": "0100000US", + "name": "United States" + }, + "entity": null, + "sources": [], + "aliases": [], + "source_concepts": [], + "rid_patterns": [], + "first_observed_period": null, + "last_observed_period": null, + "observation_count": 0 + }, + { + "uuid": "02662bfc-b77d-48f3-938b-7a5b2f9e5c73", + "concept": "usaspending.ondcp.hidta_al95001_obligations", + "family_patterns": [ + "usaspending.ondcp.hidta_al95001_obligations" + ], + "status": "docket-only", + "unit": "usd_millions", + "cadence": "year", + "geography": { + "level": "country", + "id": "0100000US", + "name": "United States" + }, + "entity": null, + "sources": [], + "aliases": [], + "source_concepts": [], + "rid_patterns": [], + "first_observed_period": null, + "last_observed_period": null, + "observation_count": 0 + }, + { + "uuid": "720be189-a4a5-4b0c-a25c-49233ff388a4", + "concept": "usaspending.usfs.minnesota_place_of_performance_obligations", + "family_patterns": [ + "usaspending.usfs.minnesota_place_of_performance_obligations" + ], + "status": "docket-only", + "unit": "usd_millions", + "cadence": "year", + "geography": { + "level": "country", + "id": "0100000US", + "name": "United States" + }, + "entity": null, + "sources": [], + "aliases": [], + "source_concepts": [], + "rid_patterns": [], + "first_observed_period": null, + "last_observed_period": null, + "observation_count": 0 + }, { "uuid": "4266e63f-dbf3-4c86-be8d-44315dbe32e3", "concept": "usda.fsa.crp.enrolled_acres_total", diff --git a/ledger/series_uuid_registry.jsonl b/ledger/series_uuid_registry.jsonl index adfa55f..4fb3ae0 100644 --- a/ledger/series_uuid_registry.jsonl +++ b/ledger/series_uuid_registry.jsonl @@ -227,3 +227,10 @@ {"concept": "fed.g19.consumer_credit_nonrevolving_annual_rate", "geography": {"level": "country", "id": "0100000US", "vintage": "current"}, "entity": {"name": "economy", "role": "aggregate"}, "uuid": "bd0643c4-6716-41ae-988d-c985272e38ae", "succeeds": {"concept": "fed.g19.consumer_credit_nonrevolving_annual_rate", "geography": null, "entity": null}} {"concept": "fed.g19.consumer_credit_revolving_annual_rate", "geography": {"level": "country", "id": "0100000US", "vintage": "current"}, "entity": {"name": "economy", "role": "aggregate"}, "uuid": "8a82c6a5-7c83-4ac8-ab5b-7dd6eaf97e8f", "succeeds": {"concept": "fed.g19.consumer_credit_revolving_annual_rate", "geography": null, "entity": null}} {"concept": "fed.g19.consumer_credit_total_annual_rate", "geography": {"level": "country", "id": "0100000US", "vintage": "current"}, "entity": {"name": "economy", "role": "aggregate"}, "uuid": "dac76c03-0630-4859-898d-b4849383d147", "succeeds": {"concept": "fed.g19.consumer_credit_total_annual_rate", "geography": null, "entity": null}} +{"concept": "bls.ces.aerospace_product_and_parts_employment", "geography": {"level": "country", "id": "0100000US", "vintage": "current"}, "entity": {"name": "economy", "role": "aggregate"}, "uuid": "80a2c9d9-6a09-484b-9ecd-8cc7e8b6be22"} +{"concept": "bls.ces.federal_department_of_defense_employment", "geography": {"level": "country", "id": "0100000US", "vintage": "current"}, "entity": {"name": "economy", "role": "aggregate"}, "uuid": "d1d4fc9b-d53a-4e04-a3c3-e4498801c88b"} +{"concept": "bls.ces.ship_and_boat_building_employment", "geography": {"level": "country", "id": "0100000US", "vintage": "current"}, "entity": {"name": "economy", "role": "aggregate"}, "uuid": "13c723db-3ec7-4e28-b305-30050f832a71"} +{"concept": "usaspending.cdfi.assistance_transaction_obligations", "geography": {"level": "country", "id": "0100000US", "vintage": null}, "entity": null, "uuid": "69834e1f-1fbf-432c-9913-6b391321b3a8"} +{"concept": "usaspending.ntia.broadband_al11038_obligations", "geography": {"level": "country", "id": "0100000US", "vintage": null}, "entity": null, "uuid": "f37307e0-91c6-49ee-afc7-2021e33ea863"} +{"concept": "usaspending.ondcp.hidta_al95001_obligations", "geography": {"level": "country", "id": "0100000US", "vintage": null}, "entity": null, "uuid": "02662bfc-b77d-48f3-938b-7a5b2f9e5c73"} +{"concept": "usaspending.usfs.minnesota_place_of_performance_obligations", "geography": {"level": "country", "id": "0100000US", "vintage": null}, "entity": null, "uuid": "720be189-a4a5-4b0c-a25c-49233ff388a4"} diff --git a/tests/test_build_series_catalog.py b/tests/test_build_series_catalog.py index 08b41c7..ff44826 100644 --- a/tests/test_build_series_catalog.py +++ b/tests/test_build_series_catalog.py @@ -792,7 +792,7 @@ def test_committed_catalog_is_current_and_valid() -> None: assert committed["docket_seed_sha256"] is not None assert committed["uuid_registry_sha256"] == registry.sha256() assert bsc.DOCKET_SEED.exists() - assert len(committed["series"]) == 209 + assert len(committed["series"]) == 216 def test_rebuild_without_prior_catalog_is_gated( @@ -1184,8 +1184,28 @@ def test_identity_uuid_map_matches_reviewed_anchor() -> None: # supersedes; builder reported minted=5 (all succeeds), superseded=0, # suspects=0. The other 204 bindings are byte-unchanged; row count # stays 209. + # Updated 2026-08-11: +7 mints, superseded=0, suspects=0, all 209 + # prior bindings unchanged (209 -> 216). Four docket-only + # placeholders for the thesis bills full-coverage wave's in-review + # usaspending-api extensions (thesis#159 Wave A verified requests; + # implementation, tests, anchors, and docket admission were still + # outstanding at mint time), + # with the defining filter carried in each concept identity so a + # differently filtered series can never enrich these lineages: + # usaspending.cdfi.assistance_transaction_obligations, + # usaspending.ondcp.hidta_al95001_obligations, + # usaspending.ntia.broadband_al11038_obligations, and + # usaspending.usfs.minnesota_place_of_performance_obligations + # (country-level geography by seed-schema design; the Minnesota + # place-of-performance scope lives in the concept string, so a + # future state-geography series is a distinct identity). Plus the + # three observed BLS CES defense-employment identities whose first + # prints were recorded 2026-08-10 ahead of their catalog rows + # (aerospace_product_and_parts, federal_department_of_defense, + # ship_and_boat_building employment) — deterministic auto-mints any + # next build would produce. assert digest == ( - "96cfd574d8749179f92bf469665b0facb7739aefc06d6f04b23d901b2c1cf3c3" + "bf17abbe438eddb9401cee0f5c38d4c2d25eed775c53b5a2106bd4ef1445d38d" )