Skip to content

Commit 3339fe6

Browse files
MaxGhenisclaude
andcommitted
Add benefits delivery observation facts (SNAP QC, Medicaid PI)
Record eight source-backed delivery observations for Thesis resolutions: FY2024 national SNAP payment error rates (total, over, under) from the FNS QC release; California FY2024 SNAP application processing timeliness; and California February 2026 Medicaid renewal counts (renewed total, ex parte, disenrolled total, procedural) from the CMS State Medicaid and CHIP Eligibility Processing Data dataset. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 816e9a3 commit 3339fe6

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

ledger/official_observations.jsonl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,11 @@
33
{"value":0.3,"observed_at":"2026-06-05","period":{"type":"month","value":"2026-05"},"geography":{"level":"country","id":"0100000US","vintage":"current","name":"United States"},"entity":{"name":"person","role":"private_nonfarm_payroll_employee"},"measure":{"concept":"bls.ces.average_hourly_earnings_private_monthly_change","unit":"percent_growth","source_concept":"bls.ces.average_hourly_earnings_private","concept_relation":"source_label","concept_authority":"bls","concept_evidence_url":"https://www.bls.gov/news.release/archives/empsit_06052026.htm","concept_evidence_notes":"BLS first reported average hourly earnings for all employees on private nonfarm payrolls rose 0.3 percent in May 2026."},"aggregation":{"method":"mean"},"source":{"source_name":"bls","source_table":"Employment Situation, May 2026","source_file":"empsit_06052026.htm","url":"https://www.bls.gov/news.release/archives/empsit_06052026.htm","vintage":"may_2026_first_print","extracted_at":"2026-06-08","extraction_method":"Official release value recorded from publisher news release","method_notes":"First-print May 2026 Employment Situation release."},"filters":{"seasonal_adjustment":"seasonally_adjusted","employee_group":"all_employees_private_nonfarm"},"domain":"private_nonfarm_payroll_employees","label":"United States May 2026 mean BLS CES average hourly earnings private monthly change for persons [BLS Employment Situation, May 2026 first print]","source_record_id":"bls.ces.average_hourly_earnings_private.may_2026.first_print","source_cell_keys":["official_release:bls:empsit_06052026:average_hourly_earnings_mom"],"source_row_keys":["official_release:bls:empsit_06052026:summary"]}
44
{"value":6.6,"observed_at":"2026-06-05","period":{"type":"month","value":"2026-05"},"geography":{"level":"country","id":"CA","vintage":"current","name":"Canada"},"entity":{"name":"person","role":"labour_force"},"measure":{"concept":"statcan.lfs.unemployment_rate","unit":"percent","source_concept":"statcan.lfs.unemployment_rate","concept_relation":"source_label","concept_authority":"statcan","concept_evidence_url":"https://www150.statcan.gc.ca/n1/daily-quotidien/260605/dq260605a-eng.htm","concept_evidence_notes":"Statistics Canada first reported the unemployment rate fell 0.3 percentage points to 6.6% in May 2026."},"aggregation":{"method":"rate","denominator":"labour_force"},"source":{"source_name":"statcan","source_table":"Labour Force Survey, May 2026","source_file":"dq260605a-eng.htm","url":"https://www150.statcan.gc.ca/n1/daily-quotidien/260605/dq260605a-eng.htm","vintage":"may_2026_first_print","extracted_at":"2026-06-08","extraction_method":"Official release value recorded from publisher Daily release","method_notes":"First-print May 2026 Labour Force Survey Daily release."},"filters":{"seasonal_adjustment":"seasonally_adjusted","age":"15_plus"},"domain":"labour_force","label":"Canada May 2026 rate Statistics Canada LFS unemployment rate for persons [Statistics Canada Labour Force Survey, May 2026 first print]","source_record_id":"statcan.lfs.unemployment_rate.canada.may_2026.first_print","source_cell_keys":["official_release:statcan:dq260605a:unemployment_rate"],"source_row_keys":["official_release:statcan:dq260605a:highlights"]}
55
{"value":88,"observed_at":"2026-06-05","period":{"type":"month","value":"2026-05"},"geography":{"level":"country","id":"CA","vintage":"current","name":"Canada"},"entity":{"name":"person","role":"employed"},"measure":{"concept":"statcan.lfs.employment_change","unit":"thousands","source_concept":"statcan.lfs.employment_change","concept_relation":"source_label","concept_authority":"statcan","concept_evidence_url":"https://www150.statcan.gc.ca/n1/daily-quotidien/260605/dq260605a-eng.htm","concept_evidence_notes":"Statistics Canada first reported employment increased by 88,000 in May 2026."},"aggregation":{"method":"sum"},"source":{"source_name":"statcan","source_table":"Labour Force Survey, May 2026","source_file":"dq260605a-eng.htm","url":"https://www150.statcan.gc.ca/n1/daily-quotidien/260605/dq260605a-eng.htm","vintage":"may_2026_first_print","extracted_at":"2026-06-08","extraction_method":"Official release value recorded from publisher Daily release","method_notes":"First-print May 2026 Labour Force Survey Daily release."},"filters":{"seasonal_adjustment":"seasonally_adjusted","age":"15_plus"},"domain":"employment","label":"Canada May 2026 sum Statistics Canada LFS employment change for persons [Statistics Canada Labour Force Survey, May 2026 first print]","source_record_id":"statcan.lfs.employment_change.canada.may_2026.first_print","source_cell_keys":["official_release:statcan:dq260605a:employment_change"],"source_row_keys":["official_release:statcan:dq260605a:highlights"]}
6+
{"value":10.93,"observed_at":"2025-06-30","period":{"type":"fiscal_year","value":2024},"geography":{"level":"country","id":"0100000US","vintage":"current","name":"United States"},"entity":{"name":"household","role":"snap_participant"},"measure":{"concept":"fns.snap.total_payment_error_rate","unit":"percent","source_concept":"fns.snap.total_payment_error_rate","concept_relation":"source_label","concept_authority":"fns","concept_evidence_url":"https://fns-prod.azureedge.us/sites/default/files/resource-files/snap-fy24QC-PER.pdf","concept_evidence_notes":"FNS reported the FY2024 national SNAP payment error rate was 10.93 percent."},"aggregation":{"method":"rate","denominator":"snap_benefit_dollars"},"source":{"source_name":"fns","source_table":"SNAP Payment Error Rates, Fiscal Year 2024","source_file":"snap-fy24QC-PER.pdf","url":"https://fns-prod.azureedge.us/sites/default/files/resource-files/snap-fy24QC-PER.pdf","vintage":"fy2024_official_release","extracted_at":"2026-06-10","extraction_method":"Official release value recorded from publisher PDF","method_notes":"FY2024 SNAP QC payment error rate release, dated June 30, 2025."},"filters":{"error_component":"total"},"domain":"snap_payment_accuracy","label":"United States FY2024 rate FNS SNAP total payment error for households [FNS SNAP Payment Error Rates FY2024]","source_record_id":"fns.snap.total_payment_error_rate.us.fy2024.official_release","source_cell_keys":["official_release:fns:snap_fy24_per:total_us"],"source_row_keys":["official_release:fns:snap_fy24_per:united_states"]}
7+
{"value":9.26,"observed_at":"2025-06-30","period":{"type":"fiscal_year","value":2024},"geography":{"level":"country","id":"0100000US","vintage":"current","name":"United States"},"entity":{"name":"household","role":"snap_participant"},"measure":{"concept":"fns.snap.overpayment_error_rate","unit":"percent","source_concept":"fns.snap.overpayment_error_rate","concept_relation":"source_label","concept_authority":"fns","concept_evidence_url":"https://fns-prod.azureedge.us/sites/default/files/resource-files/snap-fy24QC-PER.pdf","concept_evidence_notes":"FNS reported the FY2024 national SNAP overpayment error rate was 9.26 percent."},"aggregation":{"method":"rate","denominator":"snap_benefit_dollars"},"source":{"source_name":"fns","source_table":"SNAP Payment Error Rates, Fiscal Year 2024","source_file":"snap-fy24QC-PER.pdf","url":"https://fns-prod.azureedge.us/sites/default/files/resource-files/snap-fy24QC-PER.pdf","vintage":"fy2024_official_release","extracted_at":"2026-06-10","extraction_method":"Official release value recorded from publisher PDF","method_notes":"FY2024 SNAP QC payment error rate release, dated June 30, 2025."},"filters":{"error_component":"overpayment"},"domain":"snap_payment_accuracy","label":"United States FY2024 rate FNS SNAP overpayment payment error for households [FNS SNAP Payment Error Rates FY2024]","source_record_id":"fns.snap.overpayment_payment_error_rate.us.fy2024.official_release","source_cell_keys":["official_release:fns:snap_fy24_per:overpayment_us"],"source_row_keys":["official_release:fns:snap_fy24_per:united_states"]}
8+
{"value":1.67,"observed_at":"2025-06-30","period":{"type":"fiscal_year","value":2024},"geography":{"level":"country","id":"0100000US","vintage":"current","name":"United States"},"entity":{"name":"household","role":"snap_participant"},"measure":{"concept":"fns.snap.underpayment_error_rate","unit":"percent","source_concept":"fns.snap.underpayment_error_rate","concept_relation":"source_label","concept_authority":"fns","concept_evidence_url":"https://fns-prod.azureedge.us/sites/default/files/resource-files/snap-fy24QC-PER.pdf","concept_evidence_notes":"FNS reported the FY2024 national SNAP underpayment error rate was 1.67 percent."},"aggregation":{"method":"rate","denominator":"snap_benefit_dollars"},"source":{"source_name":"fns","source_table":"SNAP Payment Error Rates, Fiscal Year 2024","source_file":"snap-fy24QC-PER.pdf","url":"https://fns-prod.azureedge.us/sites/default/files/resource-files/snap-fy24QC-PER.pdf","vintage":"fy2024_official_release","extracted_at":"2026-06-10","extraction_method":"Official release value recorded from publisher PDF","method_notes":"FY2024 SNAP QC payment error rate release, dated June 30, 2025."},"filters":{"error_component":"underpayment"},"domain":"snap_payment_accuracy","label":"United States FY2024 rate FNS SNAP underpayment payment error for households [FNS SNAP Payment Error Rates FY2024]","source_record_id":"fns.snap.underpayment_payment_error_rate.us.fy2024.official_release","source_cell_keys":["official_release:fns:snap_fy24_per:underpayment_us"],"source_row_keys":["official_release:fns:snap_fy24_per:united_states"]}
9+
{"value":80.21,"observed_at":"2026-06-10","period":{"type":"fiscal_year","value":2024},"geography":{"level":"state","id":"0400000US06","vintage":"current","name":"California"},"entity":{"name":"household","role":"snap_applicant"},"measure":{"concept":"fns.snap.application_processing_timeliness_rate","unit":"percent","source_concept":"fns.snap.application_processing_timeliness_rate","concept_relation":"source_label","concept_authority":"fns","concept_evidence_url":"https://www.fns.usda.gov/snap/qc/timeliness/apt-fy24","concept_evidence_notes":"FNS reported California processed 80.21 percent of SNAP applications within federal timeliness standards in FY2024."},"aggregation":{"method":"rate","denominator":"initial_applications"},"source":{"source_name":"fns","source_table":"SNAP Application Processing Timeliness, FY 2024","source_file":"apt-fy24","url":"https://www.fns.usda.gov/snap/qc/timeliness/apt-fy24","vintage":"fy2024_official_release","extracted_at":"2026-06-10","extraction_method":"Official release value recorded from publisher web table","method_notes":"FY2024 application processing timeliness state table."},"filters":{},"domain":"snap_application_processing","label":"California FY2024 rate FNS SNAP application processing timeliness for households [FNS SNAP Application Processing Timeliness FY2024]","source_record_id":"fns.snap.application_processing_timeliness.california.fy2024.official_release","source_cell_keys":["official_release:fns:snap_apt_fy24:california"],"source_row_keys":["official_release:fns:snap_apt_fy24:california"]}
10+
{"value":564563,"observed_at":"2026-06-10","period":{"type":"month","value":"2026-02"},"geography":{"level":"state","id":"0400000US06","vintage":"current","name":"California"},"entity":{"name":"person","role":"medicaid_beneficiary"},"measure":{"concept":"cms.medicaid_pi.beneficiaries_renewed_total","unit":"count","source_concept":"Beneficiaries Whose Coverage Was Renewed (Total)","concept_relation":"source_label","concept_authority":"cms","concept_evidence_url":"https://data.medicaid.gov/dataset/5abea2e0-3f8e-4b49-a50d-d63d5fd9103c","concept_evidence_notes":"CMS dataset reports 564,563 California beneficiaries had coverage renewed in the February 2026 reporting period."},"aggregation":{"method":"sum"},"source":{"source_name":"cms","source_table":"State Medicaid and CHIP Eligibility Processing Data","source_file":"state-medicaid-and-chip-eligibility-processing-data.csv","url":"https://data.medicaid.gov/dataset/5abea2e0-3f8e-4b49-a50d-d63d5fd9103c","vintage":"feb_2026_original_submission","extracted_at":"2026-06-10","extraction_method":"Official dataset value recorded from publisher CSV download","method_notes":"California February 2026 reporting period, original (O) state submission row."},"filters":{"submission":"original"},"domain":"medicaid_eligibility_processing","label":"California February 2026 sum CMS Medicaid PI beneficiaries renewed total for persons [CMS State Medicaid and CHIP Eligibility Processing Data]","source_record_id":"cms.medicaid_pi.beneficiaries_renewed_total.california.feb_2026.original_submission","source_cell_keys":["official_dataset:cms:medicaid_pi:5abea2e0:ca:202602:beneficiaries_renewed_total"],"source_row_keys":["official_dataset:cms:medicaid_pi:5abea2e0:ca:202602:O"]}
11+
{"value":430980,"observed_at":"2026-06-10","period":{"type":"month","value":"2026-02"},"geography":{"level":"state","id":"0400000US06","vintage":"current","name":"California"},"entity":{"name":"person","role":"medicaid_beneficiary"},"measure":{"concept":"cms.medicaid_pi.beneficiaries_renewed_ex_parte","unit":"count","source_concept":"Beneficiaries Whose Coverage Was Renewed on an Ex Parte Basis","concept_relation":"source_label","concept_authority":"cms","concept_evidence_url":"https://data.medicaid.gov/dataset/5abea2e0-3f8e-4b49-a50d-d63d5fd9103c","concept_evidence_notes":"CMS dataset reports 430,980 California beneficiaries were renewed on an ex parte basis in the February 2026 reporting period."},"aggregation":{"method":"sum"},"source":{"source_name":"cms","source_table":"State Medicaid and CHIP Eligibility Processing Data","source_file":"state-medicaid-and-chip-eligibility-processing-data.csv","url":"https://data.medicaid.gov/dataset/5abea2e0-3f8e-4b49-a50d-d63d5fd9103c","vintage":"feb_2026_original_submission","extracted_at":"2026-06-10","extraction_method":"Official dataset value recorded from publisher CSV download","method_notes":"California February 2026 reporting period, original (O) state submission row."},"filters":{"submission":"original"},"domain":"medicaid_eligibility_processing","label":"California February 2026 sum CMS Medicaid PI beneficiaries renewed ex parte for persons [CMS State Medicaid and CHIP Eligibility Processing Data]","source_record_id":"cms.medicaid_pi.beneficiaries_renewed_ex_parte.california.feb_2026.original_submission","source_cell_keys":["official_dataset:cms:medicaid_pi:5abea2e0:ca:202602:beneficiaries_renewed_ex_parte"],"source_row_keys":["official_dataset:cms:medicaid_pi:5abea2e0:ca:202602:O"]}
12+
{"value":213206,"observed_at":"2026-06-10","period":{"type":"month","value":"2026-02"},"geography":{"level":"state","id":"0400000US06","vintage":"current","name":"California"},"entity":{"name":"person","role":"medicaid_beneficiary"},"measure":{"concept":"cms.medicaid_pi.beneficiaries_disenrolled_total","unit":"count","source_concept":"Beneficiaries Disenrolled at Renewal (Total)","concept_relation":"source_label","concept_authority":"cms","concept_evidence_url":"https://data.medicaid.gov/dataset/5abea2e0-3f8e-4b49-a50d-d63d5fd9103c","concept_evidence_notes":"CMS dataset reports 213,206 California beneficiaries were disenrolled at renewal in the February 2026 reporting period."},"aggregation":{"method":"sum"},"source":{"source_name":"cms","source_table":"State Medicaid and CHIP Eligibility Processing Data","source_file":"state-medicaid-and-chip-eligibility-processing-data.csv","url":"https://data.medicaid.gov/dataset/5abea2e0-3f8e-4b49-a50d-d63d5fd9103c","vintage":"feb_2026_original_submission","extracted_at":"2026-06-10","extraction_method":"Official dataset value recorded from publisher CSV download","method_notes":"California February 2026 reporting period, original (O) state submission row."},"filters":{"submission":"original"},"domain":"medicaid_eligibility_processing","label":"California February 2026 sum CMS Medicaid PI beneficiaries disenrolled total for persons [CMS State Medicaid and CHIP Eligibility Processing Data]","source_record_id":"cms.medicaid_pi.beneficiaries_disenrolled_total.california.feb_2026.original_submission","source_cell_keys":["official_dataset:cms:medicaid_pi:5abea2e0:ca:202602:beneficiaries_disenrolled_total"],"source_row_keys":["official_dataset:cms:medicaid_pi:5abea2e0:ca:202602:O"]}
13+
{"value":197693,"observed_at":"2026-06-10","period":{"type":"month","value":"2026-02"},"geography":{"level":"state","id":"0400000US06","vintage":"current","name":"California"},"entity":{"name":"person","role":"medicaid_beneficiary"},"measure":{"concept":"cms.medicaid_pi.beneficiaries_disenrolled_procedural","unit":"count","source_concept":"Beneficiaries Disenrolled for Procedural Reasons at Renewal","concept_relation":"source_label","concept_authority":"cms","concept_evidence_url":"https://data.medicaid.gov/dataset/5abea2e0-3f8e-4b49-a50d-d63d5fd9103c","concept_evidence_notes":"CMS dataset reports 197,693 California beneficiaries were disenrolled for procedural reasons at renewal in the February 2026 reporting period."},"aggregation":{"method":"sum"},"source":{"source_name":"cms","source_table":"State Medicaid and CHIP Eligibility Processing Data","source_file":"state-medicaid-and-chip-eligibility-processing-data.csv","url":"https://data.medicaid.gov/dataset/5abea2e0-3f8e-4b49-a50d-d63d5fd9103c","vintage":"feb_2026_original_submission","extracted_at":"2026-06-10","extraction_method":"Official dataset value recorded from publisher CSV download","method_notes":"California February 2026 reporting period, original (O) state submission row."},"filters":{"submission":"original"},"domain":"medicaid_eligibility_processing","label":"California February 2026 sum CMS Medicaid PI beneficiaries disenrolled procedural for persons [CMS State Medicaid and CHIP Eligibility Processing Data]","source_record_id":"cms.medicaid_pi.beneficiaries_disenrolled_procedural.california.feb_2026.original_submission","source_cell_keys":["official_dataset:cms:medicaid_pi:5abea2e0:ca:202602:beneficiaries_disenrolled_procedural"],"source_row_keys":["official_dataset:cms:medicaid_pi:5abea2e0:ca:202602:O"]}

tests/test_policyengine_ledger.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from __future__ import annotations
44

55
import json
6+
import re
67
from pathlib import Path
78

89
from arch.core import (
@@ -26,6 +27,14 @@
2627
"bls.ces.average_hourly_earnings_private.may_2026.first_print",
2728
"statcan.lfs.unemployment_rate.canada.may_2026.first_print",
2829
"statcan.lfs.employment_change.canada.may_2026.first_print",
30+
"fns.snap.total_payment_error_rate.us.fy2024.official_release",
31+
"fns.snap.overpayment_payment_error_rate.us.fy2024.official_release",
32+
"fns.snap.underpayment_payment_error_rate.us.fy2024.official_release",
33+
"fns.snap.application_processing_timeliness.california.fy2024.official_release",
34+
"cms.medicaid_pi.beneficiaries_renewed_total.california.feb_2026.original_submission",
35+
"cms.medicaid_pi.beneficiaries_renewed_ex_parte.california.feb_2026.original_submission",
36+
"cms.medicaid_pi.beneficiaries_disenrolled_total.california.feb_2026.original_submission",
37+
"cms.medicaid_pi.beneficiaries_disenrolled_procedural.california.feb_2026.original_submission",
2938
}
3039

3140

@@ -69,9 +78,9 @@ def test_official_observation_ledger_contains_facts_not_predictions():
6978
assert "prediction" not in json.dumps(row).lower()
7079
assert "forecast" not in json.dumps(row).lower()
7180
assert row["source_record_id"]
72-
assert row["observed_at"] == "2026-06-05"
81+
assert re.fullmatch(r"\d{4}-\d{2}-\d{2}", row["observed_at"])
7382
assert row["source"]["url"].startswith("https://")
74-
assert row["source"]["vintage"] == "may_2026_first_print"
83+
assert row["source"]["vintage"]
7584

7685

7786
def test_official_observations_validate_as_aggregate_facts():
@@ -80,5 +89,5 @@ def test_official_observations_validate_as_aggregate_facts():
8089
report = validate_facts(facts)
8190

8291
assert report.valid, report.to_dict()
83-
assert report.counts["by_source"] == {"bls": 3, "statcan": 2}
92+
assert report.counts["by_source"] == {"bls": 3, "statcan": 2, "fns": 4, "cms": 4}
8493
assert report.counts["missing_lineage"]["count"] == 0

0 commit comments

Comments
 (0)