diff --git a/docs/evidence/us-state-child-spm-2026-11/README.md b/docs/evidence/us-state-child-spm-2026-11/README.md new file mode 100644 index 0000000000..7a1a8d6072 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/README.md @@ -0,0 +1,290 @@ +# How calibration, sampling noise and rent imputation move state child SPM rates in Microcosm's US files + +We build Microcosm's US files to correct CPS errors, so we expect their state child SPM rates to differ from Census P60-290 Table 18, which Census estimates from the CPS ASEC. On the default file they differ by 4.8 points on average, and 38 of 51 jurisdictions fall outside Census's margin. We cannot tell a correction from noise or a bug by the size of a gap. So we split the difference into sampling noise, weight concentration and systematic shifts, decompose the largest gaps, and list what we would change. + +Model figures come from real PolicyEngine US simulations at 2.90.2 (`469ad12cb957`), one state cut at a time as `slideshows/appam-2026/analysis/state_baseline.py` on PolicyEngine/policyengine-slides#95 does. We compute differences, standard errors and fits from those runs' output, and the two figures that change an input without re-simulating say so. No poverty rate entered a calibration target: the dense file's 6,102 target names include none. That makes these comparisons holdouts of the target, not of the sample, because the ASEC pool and Table 18 share households. + +## What we found + +1. **Noise accounts for most of the default file's state scatter, and the data pin that share down poorly.** A state rate carries a replicate standard error of about 3.6 points, or about ±6 at 90%, and that error runs low because it ignores CPS design. Child-weighted effective samples run from 19 in DC to 277 in California. Three fits put noise at 60%, 71% and 80% of the cross-state variance, and the first carries a 95% interval of about 10% to 89%. +2. **On the dense pool, calibration creates most of the systematic shift, and most of the added state variation lands on ASEC rows.** At initial weights, the mean gap reads 0.00, the mean absolute gap 1.78, and 16 jurisdictions fall outside Census's margin. At published weights those read +3.62, 4.33 and 38. ASEC rows go from a mean absolute gap of 2.44 to 7.30, and PUF rows from 2.95 to 3.16. State-specific variation rises about 1.7 times, from 1.88 to 3.20 points, once we allow for households the pool shares with Table 18, and a test with no shared households keeps the direction. This result covers the dense pool only. On the default file, support selection puts the shift in place before calibration starts (+3.27 at initial weights) and state-specific variation stays flat, and the ACS-local file stores no initial weights. The dense zero nets +2.20 on ASEC rows against -2.20 on PUF rows, and initial weights miss the administrative targets, so this result shows where the shift enters and does not recommend skipping calibration. +3. **Some state variation predates calibration, and we cannot yet pin it on particular states.** At dense initial weights, state gaps still exceed their sampling noise (Q = 170.5 on 50 degrees of freedom after allowing for shared households). Louisiana has the largest joint gap, about 2.8 standard errors the same way at dense initial weights and on ACS rows, which draw on another survey. A gap that large on both turns up by chance about one time in five (p = .19), so Louisiana gives a lead and not a finding. Florida, Massachusetts and Maryland sit within 3 points at dense initial weights and mostly move away after calibration. +4. **The files we checked carry rent on the wrong households.** Of records that should carry rent, 89% do not hold their own in each file, including the local-area file. PolicyEngine/microcosm#1444 fixed the code, and no published file carries the fix yet. On published weights, the fix nearly doubles modelled housing subsidies on the dense file, from $7.3bn to $13.9bn, and lowers the 2025 child rate 0.7 points. It barely moves the state gaps: the mean absolute gap goes from 4.33 to 4.13 on dense, 4.80 to 4.71 on default and 3.19 to 3.22 on ACS-local, where contract rent stands in on ACS rows. It lifts SNAP by less than 1%. On ACS-local, it moves a state's 2021 CTC effect by a median of 0.29 points and by more than a point in nine states, where five source households hold most of each change. +5. **`policyengine.py` routes state regions to the ACS-local file, not the default file.** There the mean gap falls to +0.89 and the mean absolute gap to 3.19, 29 jurisdictions fall outside Census's margin, and 23,407 donor households hold 68% of child weight. ACS rows alone reach a mean absolute gap of 2.46 and a correlation of .69 with a median standard error of 1.06, and still leave 22 outside. Raising the ACS share of the mass moves the mean absolute gap furthest of any change we ran on this path, from 2.79 to 2.16, or 2.88 to 2.23 with corrected rent. It also lowers the median standard error on a state's reform effect from 1.30 to 0.56. + +## What the comparison measures + +Table 18 averages income years 2023 to 2025 and carries a margin of 1.0 to 3.7 points. The model column holds PolicyEngine's 2025 rate. Standard errors below linearize the ratio and cluster on source household, counting an ASEC record and its PUF clone as one cluster, so the columns compare like with like. Q and τ first treat model and Census as independent. The two rows after them subtract the covariance from households they share. + +| Measure | Default, initial | Default, published | Dense, initial | Dense, published | ACS-local (Build O 10/17) | +| --- | --- | --- | --- | --- | --- | +| Household records | 57,240 | 57,240 | 352,932 | 352,932 | 1,586,908 | +| Mean gap | +3.27 | +3.24 | 0.00 | +3.62 | +0.89 | +| Standard deviation of gaps | 4.01 | 5.11 | 2.40 | 4.02 | 4.12 | +| Mean absolute gap | 4.21 | 4.80 | 1.78 | 4.33 | 3.19 | +| Correlation with Census | .65 | .52 | .78 | .65 | .54 | +| Outside Census's margin, of 51 | 36 | 38 | 16 | 38 | 29 | +| Median state standard error | 2.20 | 4.04 | 1.07 | 1.86 | 2.98 | +| Median child-weighted Kish sample | 211 | 51 | 635 | 305 | 88 | +| Q on 50 degrees of freedom | 109.5 | 71.5 | 94.4 | 147.8 | 73.9 | +| State-specific standard deviation τ | 2.74 | 2.73 | 1.50 | 3.07 | 2.04 | +| Q, allowing for shared households | 139.5 | 76.0 | 170.5 | 188.4 | not run | +| τ, allowing for shared households | 2.95 | 2.90 | 1.88 | 3.20 | not run | + +The default column reads Build P and the dense column `b5db384`. The published snapshot does not store ACS-local initial weights, so that column has no initial counterpart. We also ran 80 replicate calibrations on the default file, a Poisson bootstrap of source households and then a full re-solve, for a replicate standard error. Its median reads 3.57, and its ratio to the linearized error runs from .53 in West Virginia to 2.17 in Montana. Census's own root-mean-square standard error reads 1.35. + +## Noise and weight concentration + +Calibration nearly doubles the default file's noise. Initial weights give a median state standard error of 2.20 and a national Kish sample of 42,355; published weights give 4.04 and 9,174. In Massachusetts, 1,279 of 1,684 SPM units carry weights below 1, so a few records set the state's rate. + +We tested whether noise alone could produce the pattern, using a common shift plus replicate noise: + +| Statistic | Observed | Null median | Null central 95% | One-sided p | +| --- | --- | --- | --- | --- | +| Mean absolute gap | 4.80 | 4.25 | 3.44 to 5.13 | .10 | +| Standard deviation of gaps | 5.11 | 4.12 | 3.27 to 5.12 | .03 | +| Outside Census's margin | 38 | 36 | 30 to 42 | .31 | + +Only the standard deviation rejects, and adding a state-specific τ of 3.25 lifts the null medians to 4.94 and 5.23, just past the observed values. A DerSimonian-Laird fit gives Q = 88.4 and τ = 3.25, with a Q-profile 95% interval of 1.71 to 4.84. That interval puts noise's share of the variance anywhere from about 10% to 89%, around a point estimate of 60%. Replicates also centre away from the published values, by 1.83 points on average and by -6.93 in Tennessee, -5.76 in Rhode Island and +4.92 in Montana. Measuring replicate error around the published values gives Q = 64.8 (p = .08), τ = 2.28 and a noise share of 80%, and linearized errors give 71%, so the default file alone barely separates noise from state-specific variation. + +These standard errors run low. Replicates hold support, the target matrix and imputations fixed, and source-household clusters ignore CPS strata, primary sampling units and rotation overlap. τ absorbs that, along with the mismatch between one model year and a three-year Census average. + +Firmer evidence comes from the dense file (Q = 147.8, τ = 3.07, 95% interval 2.33 to 4.34) and ACS rows (Q = 131.6, τ = 2.08, 95% interval 1.62 to 3.22). The dense file adds records, not surveys: every channel maps to the same ASEC households, so its .65 gap correlation with the default file partly reflects shared sample noise. ACS rows give the only independent sample. Their gaps correlate .30 with the dense file's at initial weights and .42 at published weights, but both gaps subtract the same Census estimate, and that alone would give about .16 and .09. ACS rows also take tax and rent inputs from donors by QRF, so they can share model error, and they carry published weights. + +## Where the differences enter + +Calibration moves both halves of the dense pool up: + +| Dense file, 2025 | Initial weights | Published weights | +| --- | --- | --- | +| All rows, child rate | 13.86 | 18.19 | +| ASEC rows, child rate | 16.38 | 22.13 | +| ASEC rows, mean gap | +2.20 | +6.98 | +| ASEC rows, correlation with Census | .88 | .68 | +| ASEC rows, τ | 1.28 | 4.55 | +| PUF rows, child rate | 11.34 | 15.16 | +| PUF rows, mean gap | -2.20 | +0.98 | +| PUF rows, correlation with Census | .55 | .52 | +| PUF rows, τ | 2.43 | 2.82 | + +ASEC rows at initial weights hold the tightest state pattern, with a +2.20 shift, partly because they compare the survey with itself. PUF rows start 5 points below them, so the dense pool's zero comes from two offsetting gaps. + +Shared households pull the initial-weight columns toward Census. The pool holds income years 2022 to 2024 and Table 18 averages 2023 to 2025, so they share households. ASEC rows at initial weights reproduce Census's own state rates on Census's flag (correlation .98 or more in each year). In raw ASEC, the 2022 to 2024 average correlates .96 with Table 18, while 2022 and 2025 correlate .68. Subtracting the covariance from shared clusters moves τ from 1.50 to 1.88 (95% interval 1.41 to 2.59) at initial weights and from 3.07 to 3.20 (2.57 to 4.48) at published weights. So state-specific variation rises about 1.7 times, not double, and the intervals just overlap. That adjustment ignores rotation overlap and design effects, so it still understates the covariance. + +A stricter test uses records that share no household with their benchmark: dense 2022 records against Census's 2024 to 2025 average in raw ASEC. + +| 2022 records against Census 2024-25 | Initial weights | Published weights | +| --- | --- | --- | +| All rows, mean absolute gap | 2.47 | 6.08 | +| All rows, mean absolute gap around the column's mean | 2.33 | 4.36 | +| All rows, correlation | .67 | .58 | +| All rows, median state standard error | 1.78 | 3.13 | +| ASEC rows, mean absolute gap | 3.44 | 9.44 | +| ASEC rows, correlation | .80 | .60 | +| PUF rows, mean absolute gap | 3.13 | 4.72 | +| PUF rows, correlation | .41 | .42 | + +The direction survives. This test uses a third of the records, so both columns carry more noise, and calibration targets the pool rather than a single source year, so the published column may overstate calibration's effect. Still, the 1.78 and .78 at initial weights overstate how closely the pool tracks Census on its own, and calibration still widens state variation. + +The calibration step differs by flag and by file: + +| Calibration step, state mean | Census's flag | PE 2024 | PE 2025 | Largest state moves, PE 2025 | +| --- | --- | --- | --- | --- | +| Dense | +2.74 | +3.33 | +3.62 | -2.06 to +10.75 | +| Default | +1.58 | -0.05 | -0.03 | -10.31 to +8.36 | + +On the default file, calibration nets to nothing on PolicyEngine's flag and still moves a typical state 3 points. The shift arrives earlier: selecting 57,240 records from the pool moves Census's flag from 13.03 to 15.06 at initial weights. + +## Decomposition of the largest gaps + +Each column adds up to the gap on the dense file, at its own weights and records: + +| Step | DC | DE | TN | MD | FL | LA | MT | State mean | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| ASEC period, sample and selection | -2.9 | 1.6 | -2.0 | 1.4 | -0.8 | -2.1 | -1.7 | -0.34 | +| Calibration | 8.8 | 4.8 | 6.1 | 3.7 | 6.5 | 2.3 | 3.7 | 2.74 | +| Thresholds | 2.7 | 3.2 | 2.4 | 2.2 | 5.9 | 2.4 | 1.9 | 2.89 | +| Cash income | -1.8 | 1.0 | -0.6 | 0.6 | 0.2 | -4.7 | -0.3 | -0.79 | +| SNAP, housing and other in-kind | -1.1 | 0.3 | -1.6 | -2.1 | -3.8 | -5.0 | -2.3 | -2.16 | +| Taxes and expenses | -1.2 | -0.9 | -1.1 | 1.2 | 0.3 | 0.0 | -1.5 | -0.01 | +| 2024 to 2025 | 1.2 | 3.0 | 2.0 | 1.5 | 3.3 | 0.1 | 1.3 | 1.28 | +| **Gap** | **5.8** | **13.0** | **5.3** | **8.5** | **11.6** | **-7.0** | **1.0** | **3.62** | + +The steps run in order. The first compares Table 18 with the ASEC 2022 to 2024 pool at survey weights, and includes record selection. Calibration compares Census's own poverty flag at initial and final weights. An exact Shapley over nine swapped components then moves from Census's resources and thresholds to PolicyEngine's for 2024, and the last step moves the model to 2025. `outputs/dense_steps.csv` and `outputs/default_steps.csv` hold all 51 states and the nine components. + +The order matters. The Shapley runs at final weights only, so it says nothing about how weights interact with the swapped components, and the table above shows the calibration step changing with the flag. + +Ten states read this way, with standard errors in brackets: + +| State | Census | Default gap | Dense, initial | Dense, published | ACS-local | ACS rows | ACS-local donors | Reading | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| DC | 20.3 | +14.1 (10.6) | -4.9 (1.7) | +5.8 (3.4) | +0.9 (5.3) | +1.8 (5.5) | +0.3 | Too noisy to read on any file | +| DE | 8.7 | +13.7 (6.9) | +5.3 (1.7) | +13.0 (3.2) | +13.5 (6.9) | +6.3 (2.9) | +16.8 | High everywhere, and donors widen it | +| TN | 10.0 | +13.2 (5.1) | -0.1 (0.9) | +5.3 (1.8) | +6.6 (3.1) | +8.3 (1.4) | +5.7 | High on ACS rows, near Census on the initial pool | +| MD | 10.7 | +12.5 (6.0) | +2.7 (1.5) | +8.5 (2.8) | +6.9 (4.2) | +0.7 (1.2) | +9.8 | Calibration and donors | +| FL | 18.4 | +9.8 (4.0) | +0.9 (0.9) | +11.6 (1.7) | +4.3 (3.5) | -5.1 (0.6) | +8.7 | Calibration and donors; ACS rows read low | +| MA | 12.8 | +7.4 (5.1) | +0.5 (1.0) | +7.9 (1.9) | +8.6 (4.6) | +2.5 (1.2) | +11.7 | Calibration and donors | +| LA | 20.7 | -8.6 (3.5) | -7.0 (0.9) | -7.0 (1.7) | -9.0 (2.3) | -6.4 (1.4) | -10.1 | Low everywhere; cash and SNAP run high | +| MS | 19.1 | -6.2 (4.0) | -5.2 (1.1) | -4.0 (1.7) | -5.3 (2.9) | -3.2 (1.7) | -6.4 | Low everywhere | +| HI | 13.0 | -6.0 (2.8) | -2.2 (1.2) | -4.2 (1.3) | -7.1 (2.0) | -7.9 (0.8) | -6.7 | Low, and lowest on ACS rows | +| MT | 9.3 | -6.8 (1.6) | -1.1 (0.9) | +1.0 (1.5) | -4.5 (1.3) | +1.2 (2.7) | -7.4 | Low on donors only | + +## The common shift + +**Calibration moves weight toward poorer households on the dense file.** Census's flag reads 13.03 at dense initial weights and 16.31 at final weights. On the default file, re-solves that keep one target family at a time show the families pulling apart: + +| Targets kept, default pipeline | Census's flag | PE 2025 | State correlation | +| --- | --- | --- | --- | +| Initial weights, no solve | 15.06 | 16.70 | .65 | +| Population only | 15.01 | 16.43 | .60 | +| Population plus SNAP, SSI and ACA | 19.06 | 20.97 | .64 | +| Population plus Medicaid | 18.65 | 20.65 | .52 | +| Population plus EITC | 17.15 | 18.55 | .60 | +| Population plus all SOI | 13.69 | 14.41 | .53 | +| Population plus CTC only | 11.88 | 12.57 | .65 | +| All targets, same pipeline | 15.92 | 16.23 | .42 | +| All targets, as published | 16.50 | 17.17 | .52 | + +Benefit targets and the EITC pull the rate up, and CTC and joint SOI targets pull it down. With every family in, the national rate lands near population-only, at 16.23 against 16.43, while the state correlation falls from .60 to .42. The last two rows land about a point apart, and they differ in the 11 JCT rows the re-solves drop, the rebuilt matrix and the solver path. `outputs/ablate_eval.csv` holds the drop-one runs too. + +On the dense file, benefit receipt starts far below target. Summing each family's cells, which mixes dollars and counts where a family holds both, SNAP starts 37.8% short, Medicaid 26.2%, EITC 50.8% and ACA 43.9%, while AGI starts 4.2% short. Those shortfalls line up with the +3.3 point rise, though we ran the ablations on the default file only. + +A chi-square anchor to the default file's initial weights lowers noise and overshoots on level. The grid starts from the same-pipeline re-solve, not from the published weights, so that row anchors it: + +| Weights, default file | Mean gap | Correlation | Median state SE | Census's flag | +| --- | --- | --- | --- | --- | +| Published, for reference | 3.24 | .52 | 4.04 | 16.50 | +| Same pipeline, no anchor | 2.93 | .42 | 4.27 | 15.92 | +| λ = .003 | 3.07 | .45 | 3.72 | 16.09 | +| λ = .01 | 3.42 | .52 | 3.28 | 16.40 | +| λ = .03 | 4.77 | .57 | 2.78 | 17.34 | +| λ = .1 | 5.18 | .68 | 2.50 | 17.74 | +| λ = .3 | 4.55 | .69 | 2.38 | 16.90 | +| Initial | 3.27 | .65 | 2.20 | 15.06 | + +The mean gap rises above both endpoints, so a pull toward initial weights cannot explain it, and we do not know why it overshoots. Correlation climbs from .42 to .69 across the grid and ends at .65. We did not test an anchor on the dense pool. + +**Pooled records keep nominal income from their source year.** PolicyEngine holds every record to a 2024 threshold, while a 2022 record's market income keeps its nominal 2022 value. That accounts for 2.3 to 2.5 points of the thresholds step. Aging 2022 and 2023 ASEC records by Census's growth in 20th-percentile child resources (a real national simulation on the default file) lowers the national 2025 rate from 17.17 to 16.29, the mean gap from 3.24 to 2.45, and the mean absolute gap from 4.80 to 4.05, with 33 jurisdictions outside the margin rather than 38. `outputs/cf_state.csv` holds each state. + +**PolicyEngine's child rate rises 1.48 points from 2024 to 2025 while Census's holds at 13.4.** Reference thresholds match Census for 2025, and swapping Census's 2024 thresholds into the test moves PolicyEngine's 2024 rate only from 15.69 to 15.72, so the difference sits in resources. We computed that swap by arithmetic on simulated resources (`outputs/logs/thr_census.txt`). Between the 10th and 30th percentiles, child SPM resources grew 3.6% to 5.7% in Census's data, against 1.6% to 2.8% on the default file and 2.5% to 3.2% on dense (`outputs/resource_growth.csv`). + +The CTC's adult SSN requirement explains little of this. `gov.irs.credits.ctc.adult_ssn_requirement_applies` starts in 2025. Units whose refundable CTC falls to zero that year hold 2.48% of child weight, and 83% of that weight has no adult in the SPM unit with an eligible SSN card. Those units hold 11% of the child weight moving into poverty, so the rule can account for at most that share through this channel. + +**Partnership and S-corp income stays out of SPM resources** (PolicyEngine/policyengine-us#9919). Adding it before tax, by arithmetic on simulation output, lowers the 2024 rate from 16.62 to 15.29 on the dense file, all of it on PUF records. + +**Administrative SNAP offsets part of the shift.** PolicyEngine's SNAP matches USDA totals after calibration and runs about twice Census's recorded value on low-income child units, which pulls poverty down 2.7 to 3.4 points. + +## The rent bug + +Until PolicyEngine/microcosm#1444, `impute_us_pre_subsidy_rent` drew rent for households in table order, and `person_rent[head_mask] = predicted` wrote those draws to heads in person order. The two orders agree for 9.15% of households. On the dense file, 46.4% of records hold the wrong rent, and 89% of records that should carry rent do not hold their own. + +| Pairing, 168,852 base households | Rented | Owned with mortgage | None | +| --- | --- | --- | --- | +| Rent on the household's own head, as published | 40.8% | 27.1% | 25.1% | +| The n-th head's rent with the n-th household's tenure | 100% | 0% | 0% | + +The second row restores the link exactly, so the model drew rent for the right households and the code wrote it to the wrong heads. The default and dense files carry the same draws, and so do ACS-local donors. + +ACS rows inherit the misplaced rent. `build_optional_acs_multispine` passes the base to `transfer_acs_inputs` as its donor, and `pre_subsidy_rent` sits among the transfer targets, so ACS rows learned from it: 39.6% of ACS renters carry rent, and so do 30% of ACS owners. The file stores native `RNTP` for all 336,110 renter households, and `acs_transfer.py` leaves it out of this path because contract rent differs from pre-subsidy rent. A 2023 to 2025 pipeline smoke run recorded 30,838 heads with rent outside renter households in its `positive_rent_nonrenter` receipt (`experiments/us-asec-2025-source/receipts/pipeline_smoke_2023_2025.json`), and `us_housing_inputs_signal_gate` passed them until PolicyEngine/microcosm#1529 made it fail the build on such rent. `transfer_acs_inputs` draws rent through the same QRF sign classifier, which gives every owner a small chance of positive rent, so a rebuild can still leave rent on ACS owners. + +Rent reaches poverty by several paths. SNAP's shelter deduction, some state TANF programs and state credits read it, and the largest path we measured runs through `hud_gross_rent`. `hud_hap` takes the lesser of the maximum subsidy and gross rent less tenant payment, so a recipient whose rent and utility allowance fall short of the tenant payment gets nothing. On the default file, 74% of Census housing recipients among child units on ASEC rows get no model subsidy. Moving rent back onto the right households, on published weights, gives: + +| All 51 states | Dense, as published | Dense, corrected | Default, as published | Default, corrected | +| --- | --- | --- | --- | --- | +| Modelled housing subsidy, 2024 | $7.26bn | $13.88bn | $4.50bn | $7.51bn | +| SPM units with a subsidy | 1.23M | 2.57M | 0.68M | 1.34M | +| SNAP, 2024 | $89.43bn | $90.14bn | $99.63bn | $100.46bn | +| SNAP at initial weights, 2024 | $57.58bn | $58.86bn | $68.00bn | $70.45bn | +| Child SPM rate, 2024 | 16.62 | 15.88 | 15.69 | 15.20 | +| Child SPM rate, 2025 | 18.19 | 17.49 | 17.17 | 16.81 | +| Mean gap | +3.62 | +3.06 | +3.24 | +3.03 | +| Mean absolute gap | 4.33 | 4.13 | 4.80 | 4.71 | +| Outside Census's margin, of 51 | 38 | 36 | 38 | 34 | + +The fix takes 0.56 off the dense file's 3.62 mean gap and 0.21 off the default file's 3.24. State steps run from -2.93 to +0.40 on dense and from -5.38 to +3.02 on default. The fix leaves the SNAP shortfall at initial weights in place. + +On the ACS-local file, where contract rent stands in on ACS rows, the fix moves the mean gap from +0.89 to +0.50 and the mean absolute gap from 3.19 to 3.22. The correlation falls from .54 to .51, 29 jurisdictions stay outside Census's margin, and ACS rows go from a mean absolute gap of 2.46 to 2.53. So at published weights the fix corrects housing here and leaves the state gaps about where they were. + +The fix moves reform effects about as far as it moves baselines, and those moves show how few households can set a state's effect. On published weights across all 51 states, the fix moves a state's 2021 CTC effect 0.55 points on average (median 0.29) and its baseline rate 0.50 (median 0.26). The effect moves nearly cancel: their mean reads -0.02, and the median state's effect goes from -2.90 to -2.93 (`outputs/acsrent_reform.csv`). + +Nine states move more than a point, and donors carry at least 90% of each of those moves. Florida moves furthest, from -3.53 to -6.27: one donor with 1.21% of the state's child weight moves its effect 1.21 points, and ten source households hold 90% of the gross change. New Hampshire goes from -1.74 to -3.35 through four source households, and Delaware from -2.98 to -1.77 through five. In each of the nine, five source households hold most of the gross change, and in six, one household holds more than half (`outputs/logs/fl_reform.txt`). These runs also use stand-in rent on ACS rows, so they show sensitivity and not the rebuilt file's answer. + +The PUF half also holds less housing assistance. `impute_us_housing_assistance_to_puf_support` replaces each PUF-half person's receipt with a QRF draw, and the unit takes its first person's draw. Unweighted, 2.05% of PUF-half units receive assistance against 3.73% on the ASEC half (2.82% against 7.75% among low-income child units), and 9.6% of ASEC recipients keep the flag on their PUF clone. + +## What this means for the Child Poverty Impact Dashboard + +The dashboard reads ACS-local slices, not the default file: master serves Build P's August 19 slices under policyengine-us 1.825.2, and PolicyEngine/child-poverty-impact-dashboard#127, still open, moves it to Build O 10/17 through `policyengine.py` 6.11.1. + +**Baselines.** At 2.90.2, the 10/17 file gives a mean gap of +0.89, a mean absolute gap of 3.19, and 29 of 51 jurisdictions outside Census's margin. Its median state standard error of 2.98 gives about ±4.9 points at 90%. A common shift plus model and Census noise gives a mean absolute gap of 2.79 (central 95% 2.22 to 3.43), so noise can account for most of the 3.19. The dashboard's stored audits put Build P closer to Census than Build O at the same model: at 1.825.2 the mean absolute gap reads 2.78 against 3.13, with 23 jurisdictions outside the margin against 31. So PR #127's move widens the baseline gaps. + +**Reform effects.** The 2021 CTC reform lowers the median state's 2025 child rate 2.90 points, with a median standard error of 1.29, or about ±2.1 at 90%. That error runs smaller in points than a baseline's, and larger for its size: the median ratio of standard error to effect reads .45, against .24 for baselines. The largest effects carry the largest errors: West Virginia at -11.85 (4.61), Missouri at -8.96 (3.70) and DC at -8.65 (4.34). + +The stored audits give a second reading. At 1.825.2, Build P and Build O differ on a state's 2025 effect by 0.55 on average (standard deviation 0.83, or 0.59 per build), about half the clustered error. Those builds share source records, so that comparison understates sampling noise. Model version moves effects further: the same 10/17 file at 1.825.2 and 2.30.1 differs by 1.11 on average (standard deviation 1.72), and Arizona goes from -11.92 to -6.37. + +So state baselines and state reform effects on the dashboard both need a stated uncertainty, and neither should read as a point estimate to the tenth. The rent code predates the August 19 build, so those slices should carry the bug, though we did not test them, and the fix moves nine state effects by more than a point. The legacy `backend/` and `cpid_calc/` paths read `enhanced_cps_2024`, and PR #127 says the frontend no longer calls them. + +## What we would change + +We want Microcosm's files to differ from Census where the CPS errs, so a smaller gap alone does not make a better file, and we judge each change by what it corrects. Where we ran them, these changes move the gaps as follows: + +| Change | Measured on | Mean absolute gap | Mean gap | +| --- | --- | --- | --- | +| No calibration (comparison only) | Dense | 4.33 to 1.78 | +3.62 to 0.00 | +| Rent fix, published weights | Dense | 4.33 to 4.13 | +3.62 to +3.06 | +| Rent fix, published weights | Default | 4.80 to 4.71 | +3.24 to +3.03 | +| Rent fix, published weights | ACS-local | 3.19 to 3.22 | +0.89 to +0.50 | +| ACS share 0.5 to 0.9, λ = .03 | ACS-local solves | 2.79 to 2.16 | +0.55 to -0.45 | +| The same solves, corrected rent | ACS-local solves | 2.88 to 2.23 | +0.17 to -0.78 | +| Single-factor income aging | Default | 4.80 to 4.05 | +3.24 to +2.45 | + +We cannot rank the changes from this table, because its rows use different files, and benefit receipt, a dense anchor and the ASEC-PUF gap have no row. So we order them by judgement: prerequisites first, then the change we measured on the state path, then changes measured elsewhere or not at all. Aging reaches as far on the default file (0.75) as the ACS share does on ACS-local (0.63), so it could rank higher. + +Aging and better benefit receipt should lower rates, and we have not tested either on the ACS-local path. That path already reads +0.89, and -0.45 at share 0.9, or -0.78 with corrected rent, so we would measure steps 3 and 4 there before adopting a size from the default file. + +1. **Rebuild with the rent fix.** PolicyEngine/microcosm#1444 fixed the assignment, and PolicyEngine/microcosm#1529 made `us_housing_inputs_signal_gate` fail the build on positive rent outside renter households. The rebuild comes first because it corrects a bug and every later step should run on the rebuilt base, not because it closes the largest gap. With it, set ACS owners' rent to zero after the transfer, confirm ACS renters pick up the corrected link through the donor, and re-run `scripts/`. Calibration then fits to corrected housing, which the fixed-weight runs here cannot show. +2. **Limit what calibration does to states.** Two levers apply: + + - Give ACS records more of the state mass. `--acs-share` raises the weight on real state samples. On all 51 states: + + | Solve | Mean absolute gap | Correlation | Outside margin | Median state SE | Median reform SE | + | --- | --- | --- | --- | --- | --- | + | Share 0.5, release-like | 2.79 | .56 | 27 | 2.82 | 1.30 | + | Share 0.7, λ = .03 | 2.40 | .64 | 23 | 1.86 | 0.88 | + | Share 0.9, λ = .03 | 2.16 | .75 | 22 | 1.09 | 0.56 | + | Share 0.964, λ = .03 | 2.14 | .77 | 22 | 0.87 | 0.47 | + + With corrected rent, the share 0.9 row reads 2.23, with 23 outside the margin (`outputs/acsrent_solves.csv`). Standard errors fall and gaps remain: at share 0.9, DC reads 24.47 against Census's 20.3. PolicyEngine/microcosm#1078 puts the cost at 36% and 43% more held-out target error on its two folds at share 0.9 with no penalty, mostly on SOI cells, so the share needs a methodology decision. + - Test an anchor on the dense pool. Initial weights there carry a mean absolute gap of 1.78, against 4.21 on the default file, so an anchor could keep more of that pattern. This needs a solve; we have not run one. +3. **Close benefit receipt before calibration.** Better take-up and receipt inputs should reduce the tilt, because calibration then has less to do, though we have not tested that. The rent fix does not close SNAP's shortfall. +4. **Age pooled incomes** (microcosm#944). A crude single-factor run removes 0.88 points nationally. A real fix ages each income source and draws the pool from 2023 to 2025 to match Table 18. +5. **Close the gap between ASEC and PUF rows.** They start 5 points apart at initial weights, and the dense pool's zero depends on that offset. Start with cash income: at published weights, moving to PolicyEngine's cash income adds 0.75 points on ASEC rows and removes 2.06 on PUF rows, while housing adds 1.65 and 1.16 (`outputs/dense_shapley9_asec.csv`, `outputs/dense_shapley9_puf_tax_detail.csv`). Two known fixes should widen the gap. Carrying the ASEC housing flag to its PUF clone adds subsidy to PUF rows only, and partnership and S-corp income (PolicyEngine/policyengine-us#9919; PolicyEngine/policyengine-us#10573 partly addresses it) takes PUF rows from 13.63 to 11.27 in 2024, at published weights, and leaves ASEC rows at 20.52. Make those for their own reasons, not to close this gap. +6. **Reconcile 2025 resources near the line.** Compare PolicyEngine's and Census's child resource growth by income source, starting with the uprating series for low earners. +7. **Check the state gaps that persist.** Rank states by the smaller of their two z-scores at dense initial weights and on ACS rows, counting only gaps in the same direction (`outputs/state_persistence.csv`): Louisiana 2.80, Delaware 1.91, Ohio 1.40, Illinois 1.39, Mississippi 1.38 and Washington 1.31. These stay leads. Chance alone gives 0.7 states past 1.96 (we see one, p = .53), 1.4 past 1.645 (two, p = .41) and 3.0 past 1.28 (six, p = .05), and shared Census noise feeds those counts. Start with Louisiana and Delaware, looking at state tax and benefit rules and at Census's state estimates. +8. **Report state child rates as a standing holdout** with standard errors, in every release's receipts. Poverty stays a comparison and never a target. + +## Limits + +- Corrected-rent runs keep the published weights. Calibration fit those weights to outcomes that used misplaced rent, so a rebuild can move results further. +- The ACS-local corrected-rent run gives donors their base record's rent and gives ACS renter heads twelve times `RNTP`. Contract rent stands in for pre-subsidy rent there, and a rebuild would transfer rent from corrected donors instead. +- The ACS-local file stores no parent links: it stores 0 on ACS rows, which policyengine-us reads as unknown, and leaves donors blank. These runs fill the blanks with 0. A -1 fill instead points every donor's parent links at an id that matches no one, which policyengine-us reads as an absent parent. With published rent, that fill lowers California's rate 0.56 points and shrinks its reform effect by as much. It also moves South Dakota's reform effect from -2.54 to -3.88, with the baseline unchanged. Each move comes from one ASEC unit, and no other state's rate or effect moves by more than 0.01 point (`outputs/fill_moves.csv`, `outputs/logs/fill_trace_*.txt`). Microcosm's current build writes each ASEC person's co-resident parent's id, or 0 when the ASEC names no co-resident parent, and remaps those ids onto each PUF clone (PolicyEngine/microcosm#884). So a rebuild should store no blanks, and real links can move these figures in ways no run here tests. +- The #1078 solves come from the 2026-09-23 Build O checkpoint. We applied them to outcomes from the 10/17 file, which shares its household ids, and that mismatch alone moves the mean absolute gap: 2.79 for the release-like solve against 3.19 for the 10/17 weights. The cost figures come from share 0.9 with no penalty, not from the λ = .03 rows. +- The aged run scales 42 income columns on 2022 and 2023 ASEC records by a single child-resource factor. PUF records stay as they are, the weights stay fit to unaged income, and it tests 0.88 of the 2.3 to 2.5 points the Shapley assigns. +- policyengine-us 2.90.2 has no `spm_unit_spm_universe_status`, so it ignores that column and these runs measure every SPM unit, group quarters included. That choice matters at state level: PR #127 puts the August 19 release's 2024 median relative gap against ACS 2023 at -15.9% with all SPM units and -18.2% with group quarters excluded. +- The ablations ran on Build P, not the dense file. +- Initial weights miss the administrative targets, so we use the initial-weight columns to locate where differences enter, and they do not describe a usable file. +- We did not verify why Census records less SNAP than administrative totals imply. + +## Reproduction + +Scripts sit in `scripts/` and write beside themselves under `run/` and `asec/`. `outputs/` holds the tables behind this note, `outputs/logs/` holds the printed output of scripts that write no table, and `receipts.json` pins the inputs, including paths outside this repository. + +1. `dl.py`, `asec_extract.py`, `extract_state.py`, `assemble.py`, `cutrun.py`, `assemble_dense.py`, `cols.py`, `idcheck.py`: downloads, state cuts of each file and id checks. +2. `noise.py`, `vardec.py`, `rep_boot.py`, `rep_eval.py`, `noise_ci.py`, `dense_fit.py`, `kish.py`: noise. +3. `initial_fit.py`, `overlap.py`: initial and published weights by channel, sample overlap and persistent state gaps. +4. `decomp.py`, `decomp2.py`, `steps.py`, `year.py`, `paired.py`, `thr.py`, `thr_census.py`, `flip.py`, `resource_growth.py`: decomposition. +5. `ablate_eval.py`, `ablate_noise.py`, `fam.py`, `chi_solve.py`, `chi_eval.py`, `dmiss.py`: calibration. +6. `national_cf.py`, `cf_eval.py`, `ctc_ssn.py`, `part.py`: aged incomes, the CTC reform and partnership income. +7. `rent2.py` to `rent5.py`, `rentfix.py`, `dense_rent.py`, `sparse_rent.py`, `runcuts.py`, `rent_eval.py`, `house.py`, `house_sim.py`, `puf_house.py`: rent and housing. +8. `split_remote.sh` runs `acs_split.py`, which reads the ACS-local file through HTTP range requests with `remote_fixed.py`, and then `acs_hh_split.py`; `test_remote_fixed.py` and `real_fixed_diff.py` test the reader against pandas. `acs_rerun.sh` runs `acs_rerun.py` once per state, in two steps for large states, and `acs_parts.sh` and `acsrent_parts.sh` run the largest in household parts through `parts_ids.py` and `parts_merge.py`. `two_part_check.sh`, `two_part_cmp.py`, `parts_check.sh` and `acs_parts_cmp.py` check that both routes write what one whole-state run writes, and `host_wait.py` and `with_hold.sh` space the runs on a shared host. `acsrent.py` and `rent_map.py` build corrected rent. `post_acs.sh` and `post_acsrent.sh` run most of the scripts that evaluate the runs: `acs_rerun_check.py`, `acs_eval.py`, `acs_reform_cmp.py`, `fl_reform.py`, `persist.py`, `fill_cmp.py` and `fill_trace.py`. `acs_w.py`, `acs_stored.py`, `blank_holders.py` and `parent_blanks.py` run on their own. +9. `dash_swing.py`: the dashboard's stored audits. +10. `prep_evidence.py`, `receipts.py`: package this folder and write `receipts.json`. diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/ablate_eval.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/ablate_eval.csv new file mode 100644 index 0000000000..9465fc2ac7 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/ablate_eval.csv @@ -0,0 +1,50 @@ +run,natE,natP24,natP25,kids_m,E_pool_mean,E_pool_mad,E_pool_corr,P25_cen_mean,P25_cen_mad,P25_cen_corr +initial,15.0620764477773,15.347836112351281,16.69840528239648,81.55663372127822,2.294313416861093,2.7172208336028407,0.8345687193812189,3.2677686242522026,4.20659998326037,0.6516693967552849 +published,16.502406199878294,15.688595607597467,17.16724469444985,76.68300544760096,3.873603049179267,4.471104228488742,0.6260801264720072,3.236802990802789,4.798497276265718,0.5168815743952836 +R0_full,15.924216152755955,14.704814455699976,16.23279522764708,76.52056952228126,3.0633161234820205,4.109825370479613,0.6425277893022162,2.9267900056344387,4.745426037283913,0.4198348796841481 +drop_aca,15.819391353347935,14.673740041115744,16.085415612047147,76.44401323573673,3.0714952779893503,4.173441445786006,0.6372062028419944,2.9220536239005463,4.765382612452128,0.416337014601458 +drop_all_eitc,15.640155597742124,15.198094676994769,16.653757790242516,76.60667883453945,2.9184664920775187,3.9440949812401334,0.7109395005884531,3.011242446865335,4.7041142573880705,0.5203007598967829 +drop_all_eitc_ctc_actc,16.807711099208102,16.27957445288309,17.696602373929633,75.8444029938321,4.080601067942891,4.882210715454786,0.6564746338328344,4.002986884523601,5.307312538279662,0.5634384235225074 +drop_count_eitc_ctc_actc,17.177829131537628,17.155067594363693,18.61534050715503,75.51925051121415,4.49551381814701,5.083799002588413,0.7051922349704665,4.517674715387939,5.733831583166095,0.5813699422569714 +drop_ctc_actc,17.170016072538555,16.242738522044416,17.907245178988113,75.85885132219627,4.382254465725262,5.082199829303582,0.6569744263900658,3.9907866009101074,5.425148558499853,0.463203684084818 +drop_ctc_actc_tax,18.529463913939285,18.705390907285494,20.570601045111935,75.29251403965378,5.7598948663653795,6.302480445805714,0.6142497020019401,6.552014880086792,7.523692688382396,0.3893914243839443 +drop_ctc_actc_tax_count,19.03953354209649,18.052827033879755,19.894330225880093,74.6057490358358,6.220892383741369,6.571052869438273,0.6368507516576651,5.910407139607957,6.71452477395443,0.42247030045123235 +drop_medicaid_chip,14.818036603669615,13.551341341064159,15.122046912442737,76.42841935939808,2.427989314820742,3.7532443315511657,0.6333224001106237,1.7203229030140548,4.258358783502336,0.48474589159172465 +drop_other_bea,16.188146298313413,14.885979833356634,16.47918135490516,76.63368180035285,3.2192765271898462,4.333819740845506,0.6349581772681222,2.8042172229569124,4.691243680345419,0.439921491171793 +drop_other_cbo,15.921148405554028,14.623925723097013,16.14222955630875,76.52146761837056,3.0438908815997805,4.124890493862227,0.6512731026404498,2.7382590142606134,4.565639260357853,0.44332973096387873 +drop_other_federal_reserve,16.09688181418814,14.90268128012894,16.380208442962413,76.34676628581386,3.2745124199878735,4.417142381127857,0.6416483400218373,3.0386587942791174,4.967938225170937,0.41727594334950624 +drop_other_hhs_acf_tanf,15.499988254026238,14.594439176651974,16.15968731609002,76.42953327316228,2.950886805947737,4.214893981740142,0.6447973257290592,2.877830930873818,4.572964026827521,0.4617746266731397 +drop_other_ssa,15.71126345925938,15.222783663476708,16.65333001622099,76.55100045818601,3.0212928909833447,3.946281101463029,0.6594245762883867,3.200995082941771,4.742612508615553,0.49169980691961074 +drop_other_state_income_tax,15.893660823796443,14.680154985429892,16.187284770656365,76.3614417783142,2.9974010742098955,4.0889326397603964,0.645884535157083,2.6882748176579896,4.5355469078906925,0.4678734217364748 +drop_pep_national,15.86007421276696,14.680261927861709,16.22336865168751,76.41270327297524,3.0392371625504975,4.150762393982498,0.6469762182137764,2.8308599732609254,4.707112076466498,0.426603480565126 +drop_pep_state,15.642770302476197,14.33868073829011,15.975257179454793,78.44203836858914,2.93017623516216,4.039109583489123,0.6531074932498372,2.587890085229834,4.7569928817182054,0.4316601670684967 +drop_snap,14.284282328942155,14.270290568527688,15.560413728830587,76.51622406752014,1.8197228323606962,3.8754884924983517,0.5929728538095529,1.5147524389015008,4.275596842891081,0.42947906659310975 +drop_soi_actc,16.004589225539423,15.035982553121494,16.627451021057198,76.63714544034485,3.2970105191876025,4.199284702498356,0.6251246563095062,3.0157512069679555,4.857511139341075,0.41883371904955163 +drop_soi_ctc,17.23715973458685,16.139961710380025,17.786977672610764,75.73705060760066,4.212626734126116,5.053877353182301,0.6313427857643636,3.894913963865974,5.642091808254783,0.4765545533796267 +drop_soi_eitc_other,15.69904589734109,14.773627420249326,16.276363664004172,76.46486458759222,2.9503807549082057,4.039142613369825,0.642423726415993,2.9487784575176965,4.739276351700349,0.4380712896549166 +drop_soi_eitc_state,16.109612739318717,15.005833946559324,16.48094700475888,76.75949759996668,3.1592938923267537,4.1013018113270645,0.6503739778489152,2.9128814552168145,4.943259386742928,0.4669513169561062 +drop_soi_eitc_t25_by_agi_children,15.867480510506402,14.612310320334224,16.083778404824017,76.50244072169298,3.2298911510838986,4.113968646490979,0.6430425490105994,2.793967155955605,4.645056719356822,0.4119848798597359 +drop_soi_eitc_t25_child_totals,15.930475714264789,14.569049086016472,16.111231754058334,76.53564355937986,3.0476929209602743,4.115494022306632,0.647548914791618,2.828246258997465,4.594815916635461,0.43803339938249347 +drop_soi_other,15.211282473002896,14.866952603193036,16.21412649234447,76.79276086556541,2.0877257174631314,2.5593752038499398,0.8332293652846579,2.78486251567881,3.957965562801621,0.5892755603548562 +drop_soi_return_count,15.00683145682903,13.44668814671616,14.83685581975737,76.30024441618669,2.3057997774636365,3.8584955621517723,0.6252345695053271,1.3009820467069653,4.102252400694822,0.4632716974272967 +drop_ssi,16.031294654824528,14.928777132328895,16.47453508837923,76.49200459262731,3.262615490695995,4.295763163514418,0.63692668522365,2.6952109294690354,4.647031131432378,0.44036756840507835 +keep_pep,15.0134605731427,15.154037793131236,16.43003933728045,74.7496636712652,1.6579069707966614,2.411528334988822,0.8077165576187653,2.429144875008616,3.8451131210061806,0.602967968047262 +keep_pep_actc_only,15.228731686822924,15.404585649600376,16.752878453799408,74.7315159836609,1.6635870526915837,2.391729229316454,0.8317214733747696,2.430723254554038,3.8270008751950617,0.6424487483013556 +keep_pep_all_soi,13.690419510391843,13.198058258009734,14.41033928870889,76.37016508792573,1.1966023975597802,3.5014378813551166,0.592942236630598,0.7112748225507065,3.162939580606731,0.5334607466751029 +keep_pep_count,14.515213971325505,15.013800962474226,16.289462462444778,75.05568592311994,1.193102775352841,2.298111789736409,0.7893232911858047,2.240630690404167,3.713732467440932,0.6048803899414609 +keep_pep_ctc_actc,11.905086596952493,11.525764574321279,12.75182788209374,75.8440843051013,-1.0451774138054,1.8836105305161248,0.8309653961730378,-0.8307829700021379,2.6596087091378173,0.6343252289934157 +keep_pep_ctc_actc_count,12.575739935654726,12.70141067060658,14.012349886856912,76.10815725306925,-0.36459802484301074,1.7858784441285445,0.8416500341498842,0.3118807034963335,2.5909158026810246,0.676651914114917 +keep_pep_ctc_only,11.884379965290641,11.543098530169875,12.571272102511449,75.09360819604093,-0.9452911898606429,1.812386453412346,0.8427442135068935,-0.8199103975508037,2.5999751358997,0.6454207524274004 +keep_pep_eitc,17.152152972969297,17.03439871034984,18.549827698376433,74.73671465552262,3.4742679893472763,3.8020307452664674,0.7814562466324008,3.950951784498883,4.782677332458221,0.5986892015235319 +keep_pep_medicaid,18.648738965229363,18.875526326089354,20.647601738222004,74.82051381666378,4.838032304826807,5.093836534484346,0.7271288351668718,5.948600451653428,6.824546787034102,0.5222223757254406 +keep_pep_snap_ssi_aca,19.06134826825314,19.26109939525907,20.971373600706904,74.9402109722991,5.673305937443629,5.6966136493988255,0.8188546694247184,6.846498727583604,7.203689461609362,0.6403021540401134 +keep_pep_soi_adjusted_gross_income,15.448292427331692,15.143629605652437,16.540073922727142,75.08273287370386,2.3681812308680166,2.9625864450111954,0.7913090103220951,2.8982575139009765,4.197457868273756,0.5812038692148748 +keep_pep_soi_employment_income,15.598096975298862,15.528540004745144,16.87841534777281,74.753434137952,2.5003666437878955,3.0810530475444637,0.7922872367991433,3.1548148764457067,4.361146936457874,0.5995536315521629 +keep_pep_soi_income_tax,16.78183225519556,17.04162213745876,18.52635483130624,74.96386271728768,3.226338530488393,3.484902874769228,0.8363603074485367,4.190380609637151,4.955214365329211,0.6545067001046092 +keep_pep_soi_income_tax_before_credits,17.123675600869888,17.31806448551758,18.725773870115347,74.77703743693942,3.684650431052845,3.8355153333710836,0.8497958590697229,4.586866126847752,5.191949249645728,0.6686844509016306 +keep_pep_soi_other,11.689545317325567,11.261265612629936,11.924069415444977,75.73759565846335,-0.8864344897750683,4.485176046203521,0.5858665133453148,-1.4589312036321995,3.99044164337063,0.5947433017600242 +keep_pep_soi_tax_all,6.871553606992856,6.204462942650036,6.69488529605842,76.59728075542536,-4.919604910623718,5.031743760400607,0.778849926449078,-5.487015592252383,5.557878231089069,0.601968160814887 +keep_pep_soi_taxable_income,17.348751678800678,17.48837278677986,18.90046305293727,74.75879880618004,4.132129194618196,4.320056093913739,0.8316357598220409,5.052742961332301,5.5456762231608545,0.6587662248868175 +keep_pep_soi_taxable_interest_income,15.897400458045217,16.21751335886641,17.572620547896193,74.893925258176,2.6260160746547574,3.1091586653139096,0.7986826714967612,3.433506291891224,4.659369272029208,0.6011202667561169 +keep_pep_soi_taxable_pension_income,14.977418636852358,15.360692082513408,16.673869602241197,74.79136799284176,1.574686355540493,2.3978747058952803,0.8040220033652759,2.615498905251759,3.9774897429281824,0.6029590800414021 +keep_pep_soi_taxable_social_security,14.910381128778518,15.523195493189414,16.83200443366213,74.82725785925692,1.5187597544586982,2.3784300753632936,0.8014649307528147,2.7095348249087663,4.020027887160448,0.6095429957884052 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acs_eval.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_eval.csv new file mode 100644 index 0000000000..6ab543fe47 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_eval.csv @@ -0,0 +1,52 @@ +state,census,moe,acs_local,se,kish_src,acs_share,acs_only,acs_only_se,donor_only,donor_only_se,delta,delta_se,stored_2301,gap +AK,10.5,2.1,12.280018990905361,3.7429945829727433,81.68256219816811,0.41906561091719086,14.877056011665996,3.8674701569110397,10.406607937726202,5.820215767713671,-1.7128711765052902,1.2581818899101276,12.269848823547363,1.7800189909053614 +AL,15.5,2.4,15.097029105403672,3.714754421094721,114.89369341824126,0.3080806998135229,15.013489562072616,1.3201238751499236,15.134225525513061,5.34267960480369,-3.7065665355345523,1.8243214373931491,14.110982894897461,-0.4029708945963275 +AR,13.3,2.7,6.865179131445666,1.5082223057994428,115.11649934358303,0.3446122143394325,10.614289507353144,1.4069716796086178,4.893843600463475,2.1126039715893956,-1.9729223774049145,0.8486357725649586,6.774383068084717,-6.434820868554334 +AZ,13.3,2.3,17.2274257709247,4.036185043556269,74.97248693960735,0.32823023017732,15.422829288753853,1.1361190125873954,18.10916106972576,5.964356353114199,-6.409766223213803,3.1723381851552177,17.127504348754883,3.9274257709246996 +CA,17.9,1.0,20.374148310073995,2.0065644631305153,385.6580886961881,0.2837607789085938,17.18181747772617,0.44765749055376786,21.63889095030611,2.7981409628142764,-4.892303451376475,1.1413048285214231,20.379192352294922,2.4741483100739963 +CO,7.7,1.8,9.444477925729958,2.7918367533710695,65.42288079603081,0.3167165607859737,8.126498611394895,0.714650612194822,10.055389666988338,4.092871284920891,-0.7445325358294997,0.2448312330320677,9.367508888244629,1.7444779257299574 +CT,12.8,3.2,12.639491386601781,2.976592910506625,100.20771420344856,0.35243678570098613,14.997664995927149,1.6303966945262747,11.356053555910302,4.498691455689171,-2.0892910893802488,0.6399943235425594,12.430046081542969,-0.16050861339821942 +DC,20.3,3.7,21.17762088880096,5.263356667774975,47.067422820631876,0.4034754527762713,22.09693661968139,5.492706307713332,20.5558169203178,7.985315315053287,-8.648974183112678,4.339825412853922,20.46465492248535,0.8776208888009585 +DE,8.7,2.6,22.220429001435104,6.898631568028852,50.95816913382481,0.30803265271757674,14.964556458685824,2.865571367630918,25.450416190717128,9.749700895952708,-2.975067326538812,1.6835912146641878,22.213157653808594,13.520429001435105 +FL,18.4,1.8,22.716581880178733,3.4507520037558477,135.20425539702788,0.31737704011827417,13.309764442599114,0.5823985920811567,27.09016444439437,5.105259969130432,-3.5295844886195393,1.1124732966960185,22.613277435302734,4.316581880178735 +GA,15.1,2.2,17.43337014267132,2.957265204862554,121.17506625331394,0.3146201235481187,12.365941406152075,0.7861697616877288,19.75954736195083,4.3244730263696685,-3.4609575448229744,1.308112138441585,17.39934539794922,2.3333701426713187 +HI,13.0,2.6,5.857583818085909,1.9889760415112085,118.52750117470644,0.37760164062764257,5.072886842676986,0.8403045589641391,6.333650087940408,3.1596897479879456,-1.5974204310103088,0.7041621558092247,5.165446758270264,-7.142416181914091 +IA,8.2,1.9,5.3913265527436955,1.7684275375401726,74.5874438402306,0.3464490034124007,5.438172692878637,0.8378005928894581,5.366493297728849,2.6722934528230895,-0.7506708887596472,0.20700191879052138,5.389122486114502,-2.8086734472563037 +ID,6.5,1.3,6.8832216559761825,1.652010165863833,88.40879016819349,0.33214753479536296,9.519825758051493,1.536874895172609,5.571941697658865,2.305972755027926,-1.7885081332636041,0.9816030370166006,6.954473495483398,0.3832216559761825 +IL,12.4,1.6,13.732748462967361,3.3490960514359984,93.91544229009794,0.2965816587151526,9.11322317159108,0.7046820523010107,15.680474862723223,4.780003805114391,-4.427158137239671,2.0181302276137845,18.092145919799805,1.332748462967361 +IN,10.6,2.2,9.223448046626508,2.154468976525361,120.14005678566079,0.35487947569914285,9.880223739963972,0.8067320680282937,8.862157086373566,3.307091171465403,-2.170078429848301,1.19712258605729,9.129535675048828,-1.3765519533734913 +KS,9.7,2.5,11.586384567718781,4.696788420846965,87.66666433303108,0.3334748697513686,8.619343508755703,1.157438878904149,13.070850172662428,6.970213903172144,-5.5529596017194836,4.512273328741079,10.451759338378906,1.8863845677187818 +KY,13.3,2.9,9.689846323973743,2.9483317956973827,79.96088420874483,0.3957257386758641,7.453986059465105,0.6847411421861506,11.154061352444216,4.895395778032309,-2.5243584152065885,1.1998687175740188,9.635833740234375,-3.6101536760262576 +LA,20.7,3.0,11.730880540483419,2.2898751366337846,125.90331436963336,0.3111933330719865,14.302598248238658,1.3818096828258386,10.569014020279953,3.250604115565913,-1.6161803656670206,0.3522690221840859,11.565276145935059,-8.96911945951658 +MA,12.8,2.0,21.445487004357428,4.583912196904784,102.5908356155141,0.32989952283900936,15.29427219951415,1.1885725905269742,24.473813200445946,6.714566475961021,-3.438875692787333,1.6663025424800213,20.928058624267578,8.645487004357427 +MD,10.7,2.5,17.594849581875806,4.219468499518609,61.88106431360571,0.32215088761216787,11.384224840576135,1.1754050446097233,20.546477365215054,6.250901315946282,-3.413791655908443,2.109547341096508,17.483667373657227,6.894849581875807 +ME,6.5,2.3,7.341376743429005,3.023967157684075,38.50834478575946,0.3333179546821343,4.66433020068298,1.0427753176758428,8.679807385867475,4.590385414016676,-2.6266704709698754,1.5727339170258277,7.270956039428711,0.8413767434290049 +MI,10.3,1.9,9.518321082342105,2.7161230473664943,91.52893167205437,0.3203877234279062,6.846850836223199,0.5731837064265984,10.777724862798427,4.013116917840977,-3.506682134099301,1.645038820193314,9.475631713867188,-0.7816789176578958 +MN,6.9,1.9,5.148035849588164,1.6628146141935474,52.54399261696906,0.34048793553809076,5.546916997173596,0.7187904123890178,4.942104486411001,2.4835678014049756,-0.9536367002109238,0.5435043713052599,5.14799690246582,-1.751964150411836 +MO,9.7,2.3,16.712121944356173,3.9726214158520317,64.86277090035392,0.33222332397483334,10.966752143597944,0.998952501067569,19.57048151455564,5.872054536618208,-8.959380697884113,3.695574799852117,16.677257537841797,7.012121944356174 +MS,19.1,2.6,13.834987455238846,2.905001549407161,120.09612336052896,0.34971731263512185,15.918161912032344,1.681247230773782,12.714671342054093,4.372497038093584,-3.394959085138506,1.561580138172457,12.927408218383789,-5.265012544761156 +MT,9.3,2.3,4.762273156353108,1.3444919982053272,51.16610302382995,0.32933782545962187,10.54391779607155,2.746637529267138,1.923117549388858,1.1550900948238008,-0.6722669623049259,0.2382636276211245,4.747105598449707,-4.537726843646893 +NC,14.4,2.2,11.995112092574214,2.5342962431195852,123.95133566758639,0.3136719210648219,10.355041646555073,0.7418068425966107,12.744672052706704,3.6836405937100336,-5.352585782229246,1.8840570016606637,11.701009750366211,-2.4048879074257865 +ND,10.3,2.1,10.77332600550937,3.453878669263689,67.67907793489668,0.33186741866405767,5.077876834056866,1.4567092582961796,13.602306461578337,5.152722089063701,-1.2256245427537,0.5560134505331789,10.772493362426758,0.4733260055093691 +NE,7.1,1.9,9.449340085155248,4.219964071949956,79.73182955023789,0.3063484897355067,6.616695179849248,1.4327432632288672,10.70036668259837,6.024229239646368,-2.773364941208342,2.0470255282972625,9.424169540405273,2.349340085155248 +NH,7.5,2.4,7.341353766570573,3.0325569332572875,73.11100560293525,0.3519654122706294,5.426856408706541,1.0410016798293962,8.381169950167626,4.65576880909591,-1.7440078720187737,1.1478460185223052,7.5636773109436035,-0.15864623342942696 +NJ,13.3,1.9,9.557043381747203,1.9162624371592416,117.661096080773,0.33625390236036024,11.961959528060447,0.7749380283485001,8.33871239355312,2.8245204958290597,-1.8300351640183579,0.5244118016918777,9.367637634277344,-3.742956618252798 +NM,10.9,2.1,14.01167154192929,3.7994548780123316,90.34932912736528,0.3715312357460946,14.845410948645391,2.5727440555716186,13.518790670697477,5.861090460434442,-3.660158217562636,1.1255688052699755,14.007346153259277,3.11167154192929 +NV,15.0,2.5,13.468276340728854,3.0753002518416257,85.62569767303911,0.3410867850150841,15.56302854546373,1.4699101327703195,12.383926719766048,4.583093785704573,-1.7376207562912138,0.629917069409643,13.599339485168457,-1.5317236592711456 +NY,16.2,1.9,16.438761395241823,2.6761162776778433,174.20366464173924,0.3282953526362707,14.640476182044296,0.8125413850408143,17.31767250673155,3.9709324760353133,-3.1739864748408753,0.8278323796866007,16.431594848632812,0.2387613952418235 +OH,12.3,2.1,9.090849449499077,1.8533750618063252,136.868774475337,0.3594694685405358,10.263074274729792,0.707324640545021,8.43299004352262,2.853453360507819,-3.8587554469843512,1.4539869880448621,9.078166961669922,-3.209150550500924 +OK,9.9,2.0,13.83283197089369,4.169261159568695,72.68188683082842,0.30082612879830045,7.473084378961515,0.6936697180268595,16.56917314011818,5.9636832440681475,-2.8990779051992153,1.2894681243110515,13.372641563415527,3.932831970893689 +OR,11.0,2.4,14.960178635932131,3.5949311943496207,80.00122144021869,0.3868748897063032,9.96236498527892,0.9391047234304888,18.113741542437342,5.78101162715257,-2.1027433074865645,1.412721803429275,14.899346351623535,3.960178635932131 +PA,11.1,2.0,13.904691968664487,2.87649779986758,152.97423864359848,0.346456113240414,11.128527656204925,0.9551151036763976,15.376389764171986,4.369408281439186,-2.1674883896829673,0.879027961867837,13.813882827758789,2.8046919686644873 +RI,8.4,2.3,13.60351363660979,4.009385868577048,47.716257082316176,0.2638155685183552,12.630687973641486,2.1865267072560863,13.952130836825097,5.411007448316621,-7.082426369729525,3.2725430726119247,10.114660263061523,5.20351363660979 +SC,11.1,2.1,10.810091607299103,2.4552497356178207,115.26644659001987,0.3736839049269087,12.129888503293133,1.220142342915903,10.022650789978407,3.846932271101733,-4.377230751356924,1.8470338585513792,9.70772647857666,-0.2899083927008963 +SD,7.8,2.2,6.7334030791646615,2.327494107437512,55.2407957270471,0.26912123840231045,6.7068360049000635,1.5212604403340164,6.743185500412182,3.1399701067480654,-2.5428566716304988,1.2967713260749396,6.721802234649658,-1.0665969208353383 +TN,10.0,1.7,16.56342989643172,3.0750103992829754,89.2695834668554,0.3282847810394231,18.32285828603685,1.3583296773440554,15.703551264338433,4.498916992179288,-5.4719950504883315,2.1036927030836683,15.603744506835938,6.563429896431721 +TX,16.1,1.3,14.56129472980773,1.7099791037316212,294.32648200901883,0.3083157384243811,15.448597880836138,0.5091761389700658,14.165782584436048,2.4589102342382105,-3.2431418088928776,0.9309326462236662,14.510196685791016,-1.5387052701922705 +UT,7.3,1.6,8.396840398155128,2.099223154592061,88.5556251779635,0.29356651846541537,5.3493391276149715,0.7200935582967108,9.66326443013613,3.000050993855462,-0.9210572651019494,0.40017105080632065,8.38582706451416,1.0968403981551278 +VA,12.1,2.4,15.480344613972704,3.640112088292969,135.12178712944925,0.3120242155444285,10.43654201641124,0.7417936207780743,17.76790848529483,5.242359875269632,-4.143535467007477,2.455084414660597,15.400092124938965,3.3803446139727047 +VT,8.3,2.5,10.308498569173608,4.103266497775551,68.58960036751176,0.3813777601649377,5.468605036993444,1.7524339067205175,13.292270628890982,6.521284444046136,-0.17161126906749033,0.08063431563089071,10.242634773254395,2.0084985691736073 +WA,9.3,1.9,14.191340763191679,3.429843009071,104.56017409766304,0.3410985566238413,11.36195810226469,1.0626012254042743,15.656048955108263,5.171935724813351,-2.890331940537185,1.4107232418130056,14.172506332397461,4.891340763191678 +WI,7.3,1.7,5.888274576437183,1.672271817496593,76.2063037717102,0.33178902497349727,7.594207048513189,0.9840981041263285,5.041222234086362,2.4212066330916575,-3.2429978446197953,1.3338005589292077,5.814634799957275,-1.4117254235628165 +WV,11.3,2.4,16.406165852468614,4.6685814591830095,78.48511051927737,0.3651987935901132,11.229932548243433,1.9972605412849338,19.384033788062002,7.229452995913754,-11.847910332700181,4.606019524846844,16.38048553466797,5.106165852468614 +WY,6.5,1.4,7.401438055757387,2.4967406866678012,75.3355320006355,0.3319623870118944,5.339602776175029,1.469142581544115,8.426008750173787,3.689705821181645,-1.6214124288534664,0.994557781496175,7.408247947692871,0.9014380557573869 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acs_eval_fill_minus1.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_eval_fill_minus1.csv new file mode 100644 index 0000000000..45270d4260 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_eval_fill_minus1.csv @@ -0,0 +1,52 @@ +state,census,moe,acs_local,se,kish_src,acs_share,acs_only,acs_only_se,donor_only,donor_only_se,delta,delta_se,stored_2301,gap +AK,10.5,2.1,12.280018990905361,3.7429945829727433,81.68256219816811,0.41906561091719086,14.877056011665996,3.8674701569110397,10.406607937726202,5.820215767713671,-1.7128711765052902,1.2581818899101276,12.269848823547363,1.7800189909053614 +AL,15.5,2.4,15.097029105403672,3.714754421094721,114.89369341824126,0.3080806998135229,15.013489562072616,1.3201238751499236,15.134225525513061,5.34267960480369,-3.7065665355345523,1.8243214373931491,14.110982894897461,-0.4029708945963275 +AR,13.3,2.7,6.865179131445666,1.5082223057994428,115.11649934358303,0.3446122143394325,10.614289507353144,1.4069716796086178,4.893843600463475,2.1126039715893956,-1.9729223774049145,0.8486357725649586,6.774383068084717,-6.434820868554334 +AZ,13.3,2.3,17.2274257709247,4.036185043556269,74.97248693960735,0.32823023017732,15.422829288753853,1.1361190125873954,18.10916106972576,5.964356353114199,-6.409766223213803,3.1723381851552177,17.127504348754883,3.9274257709246996 +CA,17.9,1.0,19.81299229330585,1.9590157540054765,385.6580886961881,0.2837607789085938,17.18181747772617,0.44765749055376786,20.855415261955702,2.732515975286605,-4.3311474346083285,1.008919083209612,20.379192352294922,1.9129922933058516 +CO,7.7,1.8,9.444477925729958,2.7918367533710695,65.42288079603081,0.3167165607859737,8.126498611394895,0.714650612194822,10.055389666988338,4.092871284920891,-0.7445325358294997,0.2448312330320677,9.367508888244629,1.7444779257299574 +CT,12.8,3.2,12.639491386601781,2.976592910506625,100.20771420344856,0.35243678570098613,14.997664995927149,1.6303966945262747,11.356053555910302,4.498691455689171,-2.0892910893802488,0.6399943235425594,12.430046081542969,-0.16050861339821942 +DC,20.3,3.7,21.17762088880096,5.263356667774975,47.067422820631876,0.4034754527762713,22.09693661968139,5.492706307713332,20.5558169203178,7.985315315053287,-8.648974183112678,4.339825412853922,20.46465492248535,0.8776208888009585 +DE,8.7,2.6,22.214556265883786,6.8988397316513765,50.95816913382481,0.30803265271757674,14.964556458685824,2.865571367630918,25.4419291781805,9.750038330015922,-2.9691945909874917,1.6834766244883417,22.213157653808594,13.514556265883787 +FL,18.4,1.8,22.716581875939795,3.450752003739791,135.20425539702788,0.31737704011827417,13.309764442599114,0.5823985920811567,27.090164438184587,5.105259969012908,-3.529584484380603,1.1124732966522155,22.613277435302734,4.3165818759397965 +GA,15.1,2.2,17.43337014267132,2.957265204862554,121.17506625331394,0.3146201235481187,12.365941406152075,0.7861697616877288,19.75954736195083,4.3244730263696685,-3.4609575448229744,1.308112138441585,17.39934539794922,2.3333701426713187 +HI,13.0,2.6,5.857583818085909,1.9889760415112085,118.52750117470644,0.37760164062764257,5.072886842676986,0.8403045589641391,6.333650087940408,3.1596897479879456,-1.5974204310103088,0.7041621558092247,5.165446758270264,-7.142416181914091 +IA,8.2,1.9,5.3913265527436955,1.7684275375401726,74.5874438402306,0.3464490034124007,5.438172692878637,0.8378005928894581,5.366493297728849,2.6722934528230895,-0.7506708887596472,0.20700191879052138,5.389122486114502,-2.8086734472563037 +ID,6.5,1.3,6.8832216559761825,1.652010165863833,88.40879016819349,0.33214753479536296,9.519825758051493,1.536874895172609,5.571941697658865,2.305972755027926,-1.7885081332636041,0.9816030370166006,6.954473495483398,0.3832216559761825 +IL,12.4,1.6,13.732748462967361,3.3490960514359984,93.91544229009794,0.2965816587151526,9.11322317159108,0.7046820523010107,15.680474862723223,4.780003805114391,-4.427158137239671,2.0181302276137845,18.092145919799805,1.332748462967361 +IN,10.6,2.2,9.223448046626508,2.154468976525361,120.14005678566079,0.35487947569914285,9.880223739963972,0.8067320680282937,8.862157086373566,3.307091171465403,-2.170078429848301,1.19712258605729,9.129535675048828,-1.3765519533734913 +KS,9.7,2.5,11.586384567718781,4.696788420846965,87.66666433303108,0.3334748697513686,8.619343508755703,1.157438878904149,13.070850172662428,6.970213903172144,-5.5529596017194836,4.512273328741079,10.451759338378906,1.8863845677187818 +KY,13.3,2.9,9.689846323973743,2.9483317956973827,79.96088420874483,0.3957257386758641,7.453986059465105,0.6847411421861506,11.154061352444216,4.895395778032309,-2.5243584152065885,1.1998687175740188,9.635833740234375,-3.6101536760262576 +LA,20.7,3.0,11.730880540483419,2.2898751366337846,125.90331436963336,0.3111933330719865,14.302598248238658,1.3818096828258386,10.569014020279953,3.250604115565913,-1.6161803656670206,0.3522690221840859,11.565276145935059,-8.96911945951658 +MA,12.8,2.0,21.445487004357428,4.583912196904784,102.5908356155141,0.32989952283900936,15.29427219951415,1.1885725905269742,24.473813200445946,6.714566475961021,-3.438875768601351,1.6663025426707383,20.928058624267578,8.645487004357427 +MD,10.7,2.5,17.594849581875806,4.219468499518609,61.88106431360571,0.32215088761216787,11.384224840576135,1.1754050446097233,20.546477365215054,6.250901315946282,-3.413791655908443,2.109547341096508,17.483667373657227,6.894849581875807 +ME,6.5,2.3,7.341376743429005,3.023967157684075,38.50834478575946,0.3333179546821343,4.66433020068298,1.0427753176758428,8.679807385867475,4.590385414016676,-2.6266704709698754,1.5727339170258277,7.270956039428711,0.8413767434290049 +MI,10.3,1.9,9.518321082342105,2.7161230473664943,91.52893167205437,0.3203877234279062,6.846850836223199,0.5731837064265984,10.777724862798427,4.013116917840977,-3.506682134099301,1.645038820193314,9.475631713867188,-0.7816789176578958 +MN,6.9,1.9,5.148035849588164,1.6628146141935474,52.54399261696906,0.34048793553809076,5.546916997173596,0.7187904123890178,4.942104486411001,2.4835678014049756,-0.9536367002109238,0.5435043713052599,5.14799690246582,-1.751964150411836 +MO,9.7,2.3,16.712115012858845,3.972621557470334,64.86277090035392,0.33222332397483334,10.966752143597944,0.998952501067569,19.57047113459243,5.8720546862765035,-8.959376509915272,3.695574848895399,16.677257537841797,7.012115012858846 +MS,19.1,2.6,13.834987455238846,2.905001549407161,120.09612336052896,0.34971731263512185,15.918161912032344,1.681247230773782,12.714671342054093,4.372497038093584,-3.394959085138506,1.561580138172457,12.927408218383789,-5.265012544761156 +MT,9.3,2.3,4.762273156353108,1.3444919982053272,51.16610302382995,0.32933782545962187,10.54391779607155,2.746637529267138,1.923117549388858,1.1550900948238008,-0.6722671920587023,0.23826363983213664,4.747105598449707,-4.537726843646893 +NC,14.4,2.2,11.995112092574214,2.5342962431195852,123.95133566758639,0.3136719210648219,10.355041646555073,0.7418068425966107,12.744672052706704,3.6836405937100336,-5.352585782229246,1.8840570016606637,11.701009750366211,-2.4048879074257865 +ND,10.3,2.1,10.77332600550937,3.453878669263689,67.67907793489668,0.33186741866405767,5.077876834056866,1.4567092582961796,13.602306461578337,5.152722089063701,-1.2256245427537,0.5560134505331789,10.772493362426758,0.4733260055093691 +NE,7.1,1.9,9.449340085155248,4.219964071949956,79.73182955023789,0.3063484897355067,6.616695179849248,1.4327432632288672,10.70036668259837,6.024229239646368,-2.773364941208342,2.0470255282972625,9.424169540405273,2.349340085155248 +NH,7.5,2.4,7.341353766570573,3.0325569332572875,73.11100560293525,0.3519654122706294,5.426856408706541,1.0410016798293962,8.381169950167626,4.65576880909591,-1.7440078720187737,1.1478460185223052,7.5636773109436035,-0.15864623342942696 +NJ,13.3,1.9,9.557043381747203,1.9162624371592416,117.661096080773,0.33625390236036024,11.961959528060447,0.7749380283485001,8.33871239355312,2.8245204958290597,-1.8300351640183579,0.5244118016918777,9.367637634277344,-3.742956618252798 +NM,10.9,2.1,14.01167154192929,3.7994548780123316,90.34932912736528,0.3715312357460946,14.845410948645391,2.5727440555716186,13.518790670697477,5.861090460434442,-3.660158217562636,1.1255688052699755,14.007346153259277,3.11167154192929 +NV,15.0,2.5,13.468276340728854,3.0753002518416257,85.62569767303911,0.3410867850150841,15.56302854546373,1.4699101327703195,12.383926719766048,4.583093785704573,-1.7376207562912138,0.629917069409643,13.599339485168457,-1.5317236592711456 +NY,16.2,1.9,16.438761395241823,2.6761162776778433,174.20366464173924,0.3282953526362707,14.640476182044296,0.8125413850408143,17.31767250673155,3.9709324760353133,-3.1739864748408753,0.8278323796866007,16.431594848632812,0.2387613952418235 +OH,12.3,2.1,9.090849449499077,1.8533750618063252,136.868774475337,0.3594694685405358,10.263074274729792,0.707324640545021,8.43299004352262,2.853453360507819,-3.8587554469843512,1.4539869880448621,9.078166961669922,-3.209150550500924 +OK,9.9,2.0,13.83283197089369,4.169261159568695,72.68188683082842,0.30082612879830045,7.473084378961515,0.6936697180268595,16.56917314011818,5.9636832440681475,-2.8990779051992153,1.2894681243110515,13.372641563415527,3.932831970893689 +OR,11.0,2.4,14.960178635932131,3.5949311943496207,80.00122144021869,0.3868748897063032,9.96236498527892,0.9391047234304888,18.113741542437342,5.78101162715257,-2.1027433074865645,1.412721803429275,14.899346351623535,3.960178635932131 +PA,11.1,2.0,13.904691968664487,2.87649779986758,152.97423864359848,0.346456113240414,11.128527656204925,0.9551151036763976,15.376389764171986,4.369408281439186,-2.1674883896829673,0.879027961867837,13.813882827758789,2.8046919686644873 +RI,8.4,2.3,13.60351363660979,4.009385868577048,47.716257082316176,0.2638155685183552,12.630687973641486,2.1865267072560863,13.952130836825097,5.411007448316621,-7.082426369729525,3.2725430726119247,10.114660263061523,5.20351363660979 +SC,11.1,2.1,10.810091607299103,2.4552497356178207,115.26644659001987,0.3736839049269087,12.129888503293133,1.220142342915903,10.022650789978407,3.846932271101733,-4.377230751356924,1.8470338585513792,9.70772647857666,-0.2899083927008963 +SD,7.8,2.2,6.7334030791646615,2.327494107437512,55.2407957270471,0.26912123840231045,6.7068360049000635,1.5212604403340164,6.743185500412182,3.1399701067480654,-3.8757962438048383,1.8528175080764355,6.721802234649658,-1.0665969208353383 +TN,10.0,1.7,16.56342989643172,3.0750103992829754,89.2695834668554,0.3282847810394231,18.32285828603685,1.3583296773440554,15.703551264338433,4.498916992179288,-5.4719950504883315,2.1036927030836683,15.603744506835938,6.563429896431721 +TX,16.1,1.3,14.56129472980773,1.7099791037316212,294.32648200901883,0.3083157384243811,15.448597880836138,0.5091761389700658,14.165782584436048,2.4589102342382105,-3.2431418088928776,0.9309326462236662,14.510196685791016,-1.5387052701922705 +UT,7.3,1.6,8.396840398155128,2.099223154592061,88.5556251779635,0.29356651846541537,5.3493391276149715,0.7200935582967108,9.66326443013613,3.000050993855462,-0.9210572651019494,0.40017105080632065,8.38582706451416,1.0968403981551278 +VA,12.1,2.4,15.480344613972704,3.640112088292969,135.12178712944925,0.3120242155444285,10.43654201641124,0.7417936207780743,17.76790848529483,5.242359875269632,-4.143535467007477,2.455084414660597,15.400092124938965,3.3803446139727047 +VT,8.3,2.5,10.308498569173608,4.103266497775551,68.58960036751176,0.3813777601649377,5.468605036993444,1.7524339067205175,13.292270628890982,6.521284444046136,-0.17161126906749033,0.08063431563089071,10.242634773254395,2.0084985691736073 +WA,9.3,1.9,14.191340763191679,3.429843009071,104.56017409766304,0.3410985566238413,11.36195810226469,1.0626012254042743,15.656048955108263,5.171935724813351,-2.8903319465027324,1.4107232418371332,14.172506332397461,4.891340763191678 +WI,7.3,1.7,5.888274576437183,1.672271817496593,76.2063037717102,0.33178902497349727,7.594207048513189,0.9840981041263285,5.041222234086362,2.4212066330916575,-3.2429978446197953,1.3338005589292077,5.814634799957275,-1.4117254235628165 +WV,11.3,2.4,16.406165852468614,4.6685814591830095,78.48511051927737,0.3651987935901132,11.229932548243433,1.9972605412849338,19.384033788062002,7.229452995913754,-11.847910332700181,4.606019524846844,16.38048553466797,5.106165852468614 +WY,6.5,1.4,7.401438055757387,2.4967406866678012,75.3355320006355,0.3319623870118944,5.339602776175029,1.469142581544115,8.426008750173787,3.689705821181645,-1.6214124288534664,0.994557781496175,7.408247947692871,0.9014380557573869 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acs_rerun_vs_deck.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_rerun_vs_deck.csv new file mode 100644 index 0000000000..3dcd974504 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_rerun_vs_deck.csv @@ -0,0 +1,52 @@ +,rerun,deck_99ee5b354,diff +AK,12.280018990905361,12.280018902222128,8.868323320143645e-08 +AL,15.097029105403669,15.097029269703253,-1.6429958371588782e-07 +AR,6.865179131445669,6.865179158322447,-2.687677813639766e-08 +AZ,17.2274257709247,17.22742595902717,-1.88102468712259e-07 +CA,20.374148310073988,20.374148222691655,8.738233248095639e-08 +CO,9.444477925729956,9.444477858941154,6.678880204447069e-08 +CT,12.63949138660178,12.639491351259352,3.534242765113049e-08 +DC,21.177620888800956,21.17762070511618,1.8368477583408094e-07 +DE,22.22042900143511,22.22042866679022,3.3464489135326403e-07 +FL,22.716581880178726,22.716581843023185,3.715554086625161e-08 +GA,17.433370142671322,17.43337031195012,-1.6927879897821185e-07 +HI,5.857583818085912,5.857583743619603,7.446630867491422e-08 +IA,5.3913265527436955,5.3913265972729825,-4.452928692444402e-08 +ID,6.883221655976185,6.8832216762626315,-2.0286446300588068e-08 +IL,13.732748462967361,13.732748385262012,7.770534971029974e-08 +IN,9.223448046626508,9.22344812166144,-7.503493115734727e-08 +KS,11.586384567718785,11.586384534741017,3.297776807187347e-08 +KY,9.689846323973745,9.689846346880431,-2.290668632554116e-08 +LA,11.730880540483417,11.730880622678743,-8.219532610098668e-08 +MA,21.445487004357428,21.445486995867174,8.490253833315364e-09 +MD,17.594849581875803,17.594849698931508,-1.1705570557296596e-07 +ME,7.341376743429007,7.341376635830637,1.0759836932550115e-07 +MI,9.518321082342103,9.51832100478657,7.755553355082156e-08 +MN,5.148035849588165,5.148035850741653,-1.153487971805589e-09 +MO,16.712121944356173,16.71212178070164,1.6365453348043957e-07 +MS,13.834987455238842,13.834987349236789,1.0600205335720148e-07 +MT,4.762273156353108,4.762273171782485,-1.5429376887254875e-08 +NC,11.995112092574217,11.995112136195859,-4.362164141014091e-08 +ND,10.773326005509372,10.773326006109645,-6.002736085974902e-10 +NE,9.44934008515525,9.449340077906502,7.248747380117493e-09 +NH,7.341353766570573,7.341353758564617,8.005955898227057e-09 +NJ,9.557043381747203,9.557043380838682,9.085212582249369e-10 +NM,14.011671541929294,14.011671453444666,8.84846276250073e-08 +NV,13.468276340728856,13.468276185314497,1.5541435871568865e-07 +NY,16.438761395241823,16.438761323718364,7.152345915528713e-08 +OH,9.090849449499078,9.090849497593641,-4.809456299881276e-08 +OK,13.832831970893688,13.832832136918386,-1.660246979895419e-07 +OR,14.960178635932131,14.960178605148503,3.0783628091057835e-08 +PA,13.904691968664485,13.904691983293437,-1.4628952271777962e-08 +RI,13.603513636609787,13.603513442810936,1.9379885074499725e-07 +SC,10.810091607299103,10.81009163434252,-2.704341639514496e-08 +SD,6.733403079164661,6.733403277773982,-1.9860932098936246e-07 +TN,16.56342989643172,16.563429876852265,1.9579456278506768e-08 +TX,14.561294729807733,14.561294779369085,-4.956135235545389e-08 +UT,8.39684039815513,8.396840445914263,-4.775913353682881e-08 +VA,15.480344613972706,15.480344609122307,4.850399193401245e-09 +VT,10.308498569173604,10.308498340888855,2.2828474932623521e-07 +WA,14.19134076319168,14.191340913009428,-1.4981774754119215e-07 +WI,5.888274576437182,5.88827454088196,3.5555222765992767e-08 +WV,16.406165852468614,16.406165846886925,5.58168977704554e-09 +WY,7.4014380557573896,7.4014381737328545,-1.1797546495273536e-07 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acs_solves.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_solves.csv new file mode 100644 index 0000000000..88c35d0623 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_solves.csv @@ -0,0 +1,12 @@ +run,mean_gap,mad,beyond,corr,med_se,med_delta,med_delta_se,acs_share,DE,DC,TN,MD,LA,MT,HI,MA +dup_release_repro,0.5467185501665852,2.790706365878592,27,0.5567036993418202,2.8184831455867525,-2.7756494216725773,1.2969962750907356,0.3481740564228461,19.728229566758934,19.40304497242515,16.043549040971147,17.176587822918897,12.027706493180412,4.534327158576392,5.722639757413111,19.183838317977454 +proj_chi_s050_0.03,0.28109115786141503,2.7371368623311616,21,0.5743155991110539,2.6074687904558633,-2.7423515749411007,1.185588990067002,0.35381870008679583,19.25863706183765,20.27839942917138,15.505442086850039,17.29785999996839,12.009270456475054,4.850919824134285,5.84242605135861,19.48690654141444 +soft_chi_s050_0.1,0.039691080382381796,2.5883762677171185,21,0.5853130891995929,2.4699320361689416,-2.8643936217960073,1.1638352769950655,0.36703387978463625,18.94608758467959,20.17727139468469,15.61138420080497,16.927392662743056,11.961887482184487,4.264553919675482,5.931090315761128,19.48056369601165 +soft_chi_s700_0,0.2740814485041922,2.5251989743656953,24,0.6281246468849466,2.0877454471177903,-2.7789980387905118,0.9726157164287281,0.5323355514970661,19.890168277677482,21.656603520349034,15.708753888451223,17.01329819148205,12.659494932239813,5.41516099491029,5.827740027731627,19.402471728689115 +soft_chi_s700_0.03,-0.02486139515066335,2.4014848480545887,23,0.644771997267838,1.8594830396623332,-2.79999001149452,0.8816671070254242,0.5383162332537033,19.391176225174547,21.3545841952864,14.861625854049299,16.39005279126511,12.679167173634717,5.263917143048904,6.0828375088813775,18.774519297731846 +soft_chi_s700_0.1,-0.2247407836102727,2.325204795203555,20,0.6562167887393887,1.8729659228708382,-2.7720868941844845,0.8322699529518508,0.5550259489828211,18.37751722564939,21.484361595602966,14.77507615043668,15.960596320168857,12.534100659393891,5.127223108726691,6.230713167299212,18.142961948312763 +soft_chi_s900_0,-0.14548266377558539,2.273805918325192,24,0.7241018305320078,1.1751406139019414,-3.116503795492548,0.5905712018478149,0.7881426593725687,16.552998513067905,25.254609984652674,14.983840708120976,14.789207931718328,12.887580827632778,6.656828980913233,6.2263335410973815,17.719514820330552 +soft_chi_s900_0.03,-0.45418542271817663,2.16191101122093,22,0.7460768311626631,1.087381605704914,-2.981292825627254,0.5631251504333945,0.8010793832198903,16.20934989465916,24.471418485651192,14.345915241704857,14.628241020762575,13.472252578365584,6.425878798418147,6.440864594444196,16.636697208774066 +soft_chi_s900_0.1,-0.7002964017829656,2.127797527311455,21,0.745456137911339,1.0073573546132972,-2.8858168495464054,0.5421863929032062,0.8173361826685147,15.801473441238617,23.776175717795308,14.456171557236855,14.22147052432781,12.974062901653799,6.241481658245595,6.404087629779315,15.499720474386635 +soft_chi_s964_0,-0.4237154274980539,2.233458628416352,23,0.7538515130359602,0.9191862374643311,-3.0378166555809347,0.5240750345547482,0.9130730706856416,14.943817251932101,26.635829758432187,14.49617354576192,13.399849982968556,12.918120474714872,7.208015099913618,6.2708673010172244,16.406922667181373 +soft_chi_s964_0.03,-0.6449044440631073,2.1397282992936164,22,0.7720328899338983,0.8719371038082558,-3.1063670952784452,0.4717886030660438,0.9201088941650787,15.020859861735408,25.732826885357802,14.182538067759129,13.645269605994729,13.626317180920186,7.0742738192143,6.495613719807099,15.594008303464898 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acs_solves_fill_minus1.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_solves_fill_minus1.csv new file mode 100644 index 0000000000..eb2a138c3c --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_solves_fill_minus1.csv @@ -0,0 +1,12 @@ +run,mean_gap,mad,beyond,corr,med_se,med_delta,med_delta_se,acs_share,DE,DC,TN,MD,LA,MT,HI,MA +dup_release_repro,0.544647278204183,2.7886350939161892,27,0.5563910628408775,2.8184831455867525,-2.994076890617613,1.2969962750907356,0.3481740564228461,19.72096757153362,19.40304497242515,16.043549040971147,17.176587822918897,12.027706493180412,4.534327158576392,5.722639757413111,19.183838317977454 +proj_chi_s050_0.03,0.27806832715569085,2.734114031625438,21,0.5737793903816584,2.6074687904558633,-2.935075411873965,1.208306785739919,0.35381870008679583,19.25305735633003,20.27839942917138,15.505442086850039,17.29785999996839,12.009270456475054,4.850919824134285,5.84242605135861,19.48690654141444 +soft_chi_s050_0.1,0.03666643819765543,2.585351625532392,20,0.5849139132710077,2.4699320361689416,-2.9684169114554586,1.1638352769950655,0.36703387978463625,18.936399489435015,20.17727139468469,15.61138420080497,16.927392662743056,11.961887482184487,4.264553919675482,5.931090315761128,19.48056369601165 +soft_chi_s700_0,0.2722806136794624,2.5233981395409657,24,0.6278832481244133,2.0877454471177903,-2.7789980387905118,0.9726157164287281,0.5323355514970661,19.88375465080892,21.656603520349034,15.708753888451223,17.01329819148205,12.659494932239813,5.41516099491029,5.827740027731627,19.402471728689115 +soft_chi_s700_0.03,-0.026580847142335953,2.4029499593356385,23,0.6445210236966457,1.8594830396623332,-2.7935298326396705,0.8816671070254242,0.5383162332537033,19.3847160463197,21.3545841952864,14.861625854049299,16.39005279126511,12.679167173634717,5.263917143048904,6.0828375088813775,18.774519297731846 +soft_chi_s700_0.1,-0.2268683703569958,2.3270703876421392,20,0.6559213735996077,1.8729659228708382,-2.810431756156195,0.8322699529518508,0.5550259489828211,18.370862852135303,21.484361595602966,14.77507615043668,15.960596320168857,12.534100659393891,5.127223108726691,6.230713167299212,18.142961948312763 +soft_chi_s900_0,-0.1458447478736399,2.2741066175605353,24,0.7240547027895161,1.1751406139019414,-3.1618756258319074,0.5905712018478149,0.7881426593725687,16.551442408397687,25.254609984652674,14.983840708120976,14.789207931718328,12.887580827632778,6.656828980913233,6.2263335410973815,17.719514820330552 +soft_chi_s900_0.03,-0.4548573249034494,2.162521439016692,22,0.7459660446918597,1.087381605704914,-3.0133436473419537,0.5631251504333945,0.8010793832198903,16.207791050183783,24.471418485651192,14.345915241704857,14.628241020762575,13.472252578365584,6.425878798418147,6.440864594444196,16.636697208774066 +soft_chi_s900_0.1,-0.7011707000588694,2.1286033403021016,21,0.7453267387500889,1.0073573546132972,-2.8858168495464054,0.5421863929032062,0.8173361826685147,15.799735925878519,23.776175717795308,14.456171557236855,14.22147052432781,12.974062901653799,6.241481658245595,6.404087629779315,15.499720474386635 +soft_chi_s964_0,-0.42384078940653297,2.2335587346009715,23,0.7538343494808044,0.9191862374643311,-3.037816703365899,0.5240750345547482,0.9130730706856416,14.94317731051859,26.635829758432187,14.49617354576192,13.399849982968556,12.918120474714872,7.208015099913618,6.2708673010172244,16.406922667181373 +soft_chi_s964_0.03,-0.6451740708461082,2.139972983678509,22,0.7719873950319354,0.8719371038082558,-3.108520441224063,0.4717886030660438,0.9201088941650787,15.020227309790263,25.732826885357802,14.182538067759129,13.645269605994729,13.626317180920186,7.0742738192143,6.495613719807099,15.594008303464898 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acs_stored.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_stored.csv new file mode 100644 index 0000000000..a6398d58b8 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acs_stored.csv @@ -0,0 +1,52 @@ +state,o1017@2.30.1 2025,buildp@1.825.2 2025,o1017@1.825.2 2025,o1017@2.30.1 2024,buildp@1.825.2 2024,o1017@2.2.1 2024,census,moe,default,default_se,gap_acs +AK,12.269848823547363,10.207805633544922,12.292646408081055,12.254180908203125,9.327346801757812,10.34885311126709,10.5,2.1,11.644427030114803,6.332772219323601,1.7698488235473633 +AL,14.110982894897461,15.13514518737793,15.279952049255371,14.049397468566895,15.275094985961914,14.755683898925781,15.5,2.4,16.987156204496586,4.77804546692084,-1.389017105102539 +AR,6.774383068084717,6.269811153411865,5.93632698059082,5.7081403732299805,5.191522121429443,5.704855918884277,13.3,2.7,8.128457681954233,3.501990871084489,-6.525616931915284 +AZ,17.127504348754883,16.236642837524414,18.706769943237305,13.041116714477539,16.75157356262207,13.10439395904541,13.3,2.3,16.951186290817823,4.931830911917693,3.827504348754882 +CA,20.379192352294922,17.045089721679688,17.0638427734375,18.897056579589844,17.09000015258789,18.94719886779785,17.9,1.0,24.416506507457978,2.653037840146489,2.4791923522949233 +CO,9.367508888244629,7.787666320800781,9.107039451599121,8.95353889465332,7.733107566833496,8.981779098510742,7.7,1.8,10.352503583390458,3.820461090793149,1.6675088882446287 +CT,12.430046081542969,11.59237003326416,12.10657787322998,12.274319648742676,12.140087127685547,12.299995422363281,12.8,3.2,13.371307251776662,5.002325263747212,-0.36995391845703196 +DC,20.46465492248535,10.765353202819824,10.287036895751953,20.691083908081055,10.659543991088867,20.640901565551758,20.3,3.7,34.36530331852773,10.601939242811653,0.16465492248535085 +DE,22.213157653808594,17.11366844177246,18.58260154724121,18.741989135742188,17.239473342895508,18.724576950073242,8.7,2.6,22.42918607516834,6.87057378619714,13.513157653808594 +FL,22.613277435302734,20.025964736938477,22.18424415588379,20.395206451416016,19.656354904174805,21.2016658782959,18.4,1.8,28.15649904995264,3.962926881590984,4.213277435302736 +GA,17.39934539794922,13.268603324890137,13.112616539001465,16.163633346557617,13.66926383972168,17.02637481689453,15.1,2.2,18.428986886706188,3.973453086314512,2.299345397949219 +HI,5.165446758270264,5.757835388183594,6.0647125244140625,5.838687896728516,7.513661861419678,5.963184833526611,13.0,2.6,7.019040434276882,2.7805868848504707,-7.834553241729736 +IA,5.389122486114502,7.0783162117004395,5.240716457366943,5.374711036682129,7.199353218078613,5.473372459411621,8.2,1.9,8.808982597327754,3.639254429438333,-2.8108775138854973 +ID,6.954473495483398,5.922501087188721,5.827974319458008,6.925483703613281,6.857194900512695,6.9221510887146,6.5,1.3,6.9578273141402125,2.7396037844431986,0.45447349548339844 +IL,18.092145919799805,16.69071388244629,18.319591522216797,13.41452407836914,18.113983154296875,13.453118324279785,12.4,1.6,14.678691537509486,3.8382020965079566,5.692145919799804 +IN,9.129535675048828,10.376998901367188,8.87652587890625,9.099635124206543,10.459083557128906,8.946839332580566,10.6,2.2,12.734348293509468,3.915265266967416,-1.4704643249511715 +KS,10.451759338378906,8.720693588256836,10.918420791625977,10.41631031036377,8.979998588562012,11.052299499511719,9.7,2.5,9.659862114476377,4.696231456905677,0.751759338378907 +KY,9.635833740234375,10.870016098022461,9.865987777709961,9.526994705200195,10.89116382598877,9.456998825073242,13.3,2.9,18.537173560636017,6.281260601560727,-3.6641662597656257 +LA,11.565276145935059,12.422067642211914,11.34785270690918,11.620853424072266,12.927974700927734,11.645283699035645,20.7,3.0,12.087426776757605,3.536744221066976,-9.13472385406494 +MA,20.928058624267578,17.66620445251465,20.199460983276367,20.365575790405273,18.05204200744629,19.529817581176758,12.8,2.0,20.202673733449153,5.082037498794953,8.128058624267577 +MD,17.483667373657227,15.555747985839844,15.025901794433594,9.866395950317383,10.97234058380127,9.896873474121094,10.7,2.5,23.165434057221027,6.042028256286184,6.783667373657227 +ME,7.270956039428711,9.798665046691895,7.220693588256836,7.217267036437988,10.030389785766602,7.214400291442871,6.5,2.3,12.449100804293858,6.13486277739015,0.7709560394287109 +MI,9.475631713867188,7.770370006561279,8.121955871582031,7.022150039672852,6.853955268859863,7.208935737609863,10.3,1.9,14.518361806845276,4.000674369632836,-0.8243682861328132 +MN,5.14799690246582,4.849502086639404,4.41375732421875,5.100409507751465,4.900975704193115,5.099771976470947,6.9,1.9,8.43142834945164,3.7306098701724806,-1.75200309753418 +MO,16.677257537841797,12.789344787597656,12.240023612976074,12.134055137634277,12.436325073242188,12.22953987121582,9.7,2.3,18.479794346249818,5.195454214849073,6.977257537841798 +MS,12.927408218383789,12.917068481445312,13.397915840148926,12.632619857788086,11.891935348510742,13.609383583068848,19.1,2.6,12.942210983876368,3.985885849068236,-6.172591781616212 +MT,4.747105598449707,4.57055139541626,4.45315408706665,4.695467948913574,4.609851837158203,4.77234411239624,9.3,2.3,2.5309435706442085,1.5861244617479786,-4.552894401550294 +NC,11.701009750366211,9.820626258850098,10.860300064086914,10.867331504821777,10.01740837097168,12.393776893615723,14.4,2.2,18.100974606703634,4.667944264996081,-2.6989902496337894 +ND,10.772493362426758,10.286600112915039,10.15654182434082,10.372590065002441,10.235039710998535,10.346437454223633,10.3,2.1,11.130475374010498,4.0410378809574645,0.4724933624267571 +NE,9.424169540405273,8.083951950073242,7.396210670471191,9.418564796447754,9.6867094039917,9.423369407653809,7.1,1.9,10.711871739273764,4.344057457416736,2.324169540405274 +NH,7.5636773109436035,7.637781620025635,6.746689319610596,6.965229511260986,7.666688442230225,7.029958248138428,7.5,2.4,10.516178236344569,4.614807837439194,0.06367731094360352 +NJ,9.367637634277344,9.402259826660156,8.575506210327148,8.468988418579102,9.474333763122559,8.581535339355469,13.3,1.9,10.924964213914969,3.6050731998973897,-3.932362365722657 +NM,14.007346153259277,13.921367645263672,13.76626968383789,14.008567810058594,14.147199630737305,13.995532989501953,10.9,2.1,10.15133656941352,3.9062252843191314,3.107346153259277 +NV,13.599339485168457,13.569028854370117,12.644025802612305,12.875255584716797,13.623827934265137,12.856012344360352,15.0,2.5,19.07006538200538,5.8055135948679,-1.400660514831543 +NY,16.431594848632812,17.031265258789062,18.11141586303711,15.968120574951172,17.340425491333008,16.104650497436523,16.2,1.9,17.72711706952501,3.5698850096921197,0.2315948486328132 +OH,9.078166961669922,8.41537857055664,8.538422584533691,7.3885650634765625,8.433159828186035,7.44478178024292,12.3,2.1,9.813281011698678,2.909392463247397,-3.221833038330079 +OK,13.372641563415527,10.870774269104004,12.022736549377441,11.693496704101562,10.811004638671875,11.924123764038086,9.9,2.0,17.214397377076793,4.784835016565054,3.472641563415527 +OR,14.899346351623535,13.189056396484375,13.788415908813477,10.653480529785156,10.818109512329102,10.726090431213379,11.0,2.4,16.287025373398983,5.206864576296931,3.899346351623535 +PA,13.813882827758789,11.623380661010742,11.67545223236084,13.587095260620117,11.587688446044922,13.592569351196289,11.1,2.0,14.135315176005452,3.248356681256722,2.7138828277587894 +RI,10.114660263061523,10.603348731994629,8.362356185913086,9.554133415222168,14.910812377929688,9.554133415222168,8.4,2.3,17.87488341023184,7.039949763613315,1.714660263061523 +SC,9.70772647857666,9.443751335144043,9.017725944519043,9.411684036254883,9.619269371032715,9.078572273254395,11.1,2.1,9.884637709168972,3.5625308459596647,-1.3922735214233395 +SD,6.721802234649658,8.601188659667969,5.7997145652771,6.496435165405273,9.07537841796875,6.496435165405273,7.8,2.2,11.338984093590906,4.7545850659567925,-1.0781977653503416 +TN,15.603744506835938,17.399497985839844,16.838436126708984,14.38286304473877,16.32317543029785,15.223307609558105,10.0,1.7,23.237083981929004,5.143819316231732,5.6037445068359375 +TX,14.510196685791016,14.051313400268555,14.439839363098145,13.560338020324707,14.026515007019043,14.60934829711914,16.1,1.3,19.24437088161237,2.651235362434403,-1.5898033142089858 +UT,8.38582706451416,8.811441421508789,7.957401752471924,8.195793151855469,8.99677562713623,8.194806098937988,7.3,1.6,13.21129757366149,3.6996600431023254,1.0858270645141603 +VA,15.400092124938965,15.295173645019531,15.264839172363281,13.884775161743164,15.330557823181152,13.92672348022461,12.1,2.4,18.12834310047842,4.435237116964007,3.300092124938965 +VT,10.242634773254395,10.431380271911621,9.690251350402832,10.24825668334961,10.436868667602539,10.24096393585205,8.3,2.5,17.67870021257423,7.094454518557269,1.9426347732543938 +WA,14.172506332397461,10.550259590148926,13.212450981140137,14.022198677062988,11.360112190246582,14.030243873596191,9.3,1.9,14.206930055854658,4.267283147442617,4.87250633239746 +WI,5.814634799957275,6.0491108894348145,5.163439750671387,5.054064750671387,6.070775032043457,5.064352035522461,7.3,1.7,7.034634654513513,3.08294960963598,-1.4853652000427244 +WV,16.38048553466797,14.855488777160645,13.71448040008545,14.11241340637207,14.771713256835938,14.191621780395508,11.3,2.4,17.93170541550054,5.962326417829841,5.080485534667968 +WY,7.408247947692871,7.815789222717285,7.960083484649658,7.411695957183838,8.006929397583008,7.983084678649902,6.5,1.4,8.787559151426471,3.416415435764844,0.9082479476928711 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_eval.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_eval.csv new file mode 100644 index 0000000000..da88416fff --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_eval.csv @@ -0,0 +1,52 @@ +state,census,moe,acs_local,se,kish_src,acs_share,acs_only,acs_only_se,donor_only,donor_only_se,delta,delta_se,stored_2301,gap +AK,10.5,2.1,12.321393723762833,3.743008462683068,81.68256219816811,0.41906561091719086,14.975786930595175,3.8676548692424246,10.406607937726202,5.820215767713671,-1.6307444930554984,1.2526270029249,12.269848823547363,1.8213937237628333 +AL,15.5,2.4,15.059623085010573,3.71513486095829,114.89369341824126,0.3080806998135229,14.892073453526683,1.3194281070236962,15.13422543778082,5.3426796061957385,-3.8463891050569563,1.8256898292611363,14.110982894897461,-0.440376914989427 +AR,13.3,2.7,6.68559611243325,1.412017057266769,115.11649934358303,0.3446122143394325,11.042644416698813,1.42850530885576,4.394598176602837,1.936397291167434,-2.139452870894872,0.8489418874274481,6.774383068084717,-6.614403887566751 +AZ,13.3,2.3,16.387800058721087,4.013061222603815,74.97248693960735,0.32823023017732,15.018313873111348,1.1326133634347828,17.056938186276298,5.934075982139015,-7.5190660188862335,3.269651128358294,17.127504348754883,3.0878000587210863 +CA,17.9,1.0,20.057629055811717,2.0096069375452217,385.6580886961881,0.2837607789085938,16.420939875952424,0.4373798484726286,21.498418283680085,2.802154589511623,-4.676621516954708,1.1062654153073042,20.379192352294922,2.157629055811718 +CO,7.7,1.8,9.110107226754993,2.6867568457632443,65.42288079603081,0.3167165607859737,7.9850533379350015,0.7117317734873981,9.631593886487048,3.9361017947397423,-0.7210506812387649,0.24003297322379327,9.367508888244629,1.4101072267549926 +CT,12.8,3.2,12.142036383928177,2.9672756914200895,100.20771420344856,0.35243678570098613,14.00938323881125,1.6105276066320198,11.125731398111077,4.491962098359044,-1.6374593493254843,0.5192344236356785,12.430046081542969,-0.6579636160718234 +DC,20.3,3.7,20.063349097499845,5.20282053054896,47.067422820631876,0.4034754527762713,19.335252399157124,5.356380553227544,20.5558169203178,7.985315315053287,-7.870994797687709,4.297309466732037,20.46465492248535,-0.23665090250015552 +DE,8.7,2.6,21.36935320860768,6.899937599119231,50.95816913382481,0.30803265271757674,14.964556458685824,2.865571367630918,24.22047984159622,9.76181965518483,-1.7668336978719885,1.0539991095587489,22.213157653808594,12.669353208607681 +FL,18.4,1.8,21.681890877485966,3.3801514517829854,135.20425539702788,0.31737704011827417,12.769262957482017,0.5701023800605056,25.82570618281418,4.994668761120783,-6.273629328651554,1.7434241849879868,22.613277435302734,3.281890877485967 +GA,15.1,2.2,17.239208888854364,2.956386357383339,121.17506625331394,0.3146201235481187,11.748828880220028,0.7688862484597994,19.759539724339476,4.324472924638935,-2.3533363943270484,0.8661018186166106,17.39934539794922,2.1392088888543643 +HI,13.0,2.6,5.5836079655769995,1.9850974448778431,118.52750117470644,0.37760164062764257,4.347321396550311,0.7711046293327893,6.33364824078138,3.159689737354891,-1.3864993132186871,0.6926717710178918,5.165446758270264,-7.4163920344230005 +IA,8.2,1.9,5.330152234800179,1.7664517911964994,74.5874438402306,0.3464490034124007,5.261597365688324,0.8275805028634736,5.366493340860581,2.672293454377221,-0.8003837200569238,0.2520854266053152,5.389122486114502,-2.86984776519982 +ID,6.5,1.3,6.012080047447186,1.42519466267205,88.40879016819349,0.33214753479536296,9.443553261930685,1.5355785927140133,4.305482515374321,1.9269207054839907,-0.9873224143738846,0.5029521938345398,6.954473495483398,-0.4879199525528142 +IL,12.4,1.6,12.71448215138427,3.1317881946460764,93.91544229009794,0.2965816587151526,8.568452112115834,0.6881257126289709,14.462569162995395,4.474926628051286,-3.438977258218232,1.535198385076879,18.092145919799805,0.3144821513842704 +IN,10.6,2.2,9.211095507958051,2.1542988135484107,120.14005678566079,0.35487947569914285,9.845417850190314,0.8064774659615725,8.862156090041381,3.3070911534768737,-2.1850239178494246,1.197219847485084,9.129535675048828,-1.3889044920419487 +KS,9.7,2.5,10.902563094311668,4.684481608328661,87.66666433303108,0.3334748697513686,8.436703092478703,1.1318599589725764,12.136278532212144,6.9611728444568906,-5.442133325378929,4.5153839474310145,10.451759338378906,1.2025630943116692 +KY,13.3,2.9,9.654856568587451,2.9479167492889964,79.96088420874483,0.3957257386758641,7.365566854024051,0.681608750432868,11.154061352444216,4.895395778032309,-1.572017852634899,0.7043394136690122,9.635833740234375,-3.6451434314125493 +LA,20.7,3.0,10.577721322368049,2.169661638275234,125.90331436963336,0.3111933330719865,14.035915825132383,1.379637552034913,9.01535683695153,3.059664339475643,-2.067415066350923,0.6135239140696926,11.565276145935059,-10.12227867763195 +MA,12.8,2.0,20.79441634009795,4.5906754055484145,102.5908356155141,0.32989952283900936,14.581028749350434,1.1815662741599873,23.85335103909379,6.719603254416517,-2.589970513662729,1.4597746700823568,20.928058624267578,7.994416340097949 +MD,10.7,2.5,17.433348552027496,4.218598298707564,61.88106431360571,0.32215088761216787,10.882903843821252,1.1661503288439126,20.546477327204965,6.250901315095014,-3.666427532075165,2.13973279189599,17.483667373657227,6.733348552027497 +ME,6.5,2.3,7.234934576863685,3.0188402223230515,38.50834478575946,0.3333179546821343,4.3449891810992485,0.9941392526276736,8.679807279262587,4.590385407059264,-2.565320115416996,1.5680089534063912,7.270956039428711,0.7349345768636848 +MI,10.3,1.9,8.256835401770765,2.6392600139180917,91.52893167205437,0.3203877234279062,6.374426473590426,0.5284478115219912,9.144254201946136,3.8895688869749265,-3.336115884875737,1.6644124793370634,9.475631713867188,-2.043164598229236 +MN,6.9,1.9,5.0987592257530725,1.6601981302059463,52.54399261696906,0.34048793553809076,5.402193447224024,0.7088069591670008,4.942104484759751,2.483567801299805,-0.9797767030266743,0.5434868879537157,5.14799690246582,-1.8012407742469279 +MO,9.7,2.3,16.636928522513124,3.9740671236607716,64.86277090035392,0.33222332397483334,10.740424063041209,0.9951810542894202,19.570478587511733,5.872054578821153,-8.249436108814832,3.604790228487778,16.677257537841797,6.936928522513124 +MS,19.1,2.6,12.989889728210732,2.8237984652354777,120.09612336052896,0.34971731263512185,15.700236078466064,1.6775597911491218,11.532285119724733,4.2438683774562,-3.5702908131062463,1.5687673395260167,12.927408218383789,-6.110110271789269 +MT,9.3,2.3,4.617522603187462,1.3314483779387705,51.16610302382995,0.32933782545962187,10.14388019073906,2.7341405641298953,1.9037291917074668,1.1533784757098104,-0.658785490050027,0.21640067376200778,4.747105598449707,-4.682477396812539 +NC,14.4,2.2,11.383821595734682,2.483166642776731,123.95133566758639,0.3136719210648219,10.238524145357312,0.739669148907255,11.907255886821646,3.607282095198393,-4.358745519022859,1.7490356067882917,11.701009750366211,-3.016178404265318 +ND,10.3,2.1,10.66569031081114,3.4523999116526567,67.67907793489668,0.33186741866405767,4.753541889405907,1.4266527330488992,13.602307219160961,5.152722104643105,-1.1179888480554707,0.5457878168721912,10.772493362426758,0.36569031081113934 +NE,7.1,1.9,9.500128835226924,4.219029473139932,79.73182955023789,0.3063484897355067,6.782482728016978,1.4360419013860366,10.700366661079695,6.024229240183856,-2.946461820354273,2.0492057662795946,9.424169540405273,2.4001288352269246 +NH,7.5,2.4,7.202220806202033,3.0310963062993195,73.11100560293525,0.3519654122706294,5.031553444271825,1.0025476199774568,8.381169966340414,4.655768809209172,-3.3534156039365173,1.9814280611120851,7.5636773109436035,-0.29777919379796725 +NJ,13.3,1.9,10.344787674648451,2.1644162242310285,117.661096080773,0.33625390236036024,11.51591545214037,0.7799682979651915,9.751494114438215,3.2241722472278846,-2.8593643674379603,1.1905636785120477,9.367637634277344,-2.9552123253515497 +NM,10.9,2.1,15.651364184838581,3.9665352308487023,90.34932912736528,0.3715312357460946,16.15041492874158,2.7362366212931093,15.356340867645713,6.108821740813408,-4.164950423749191,1.2735921049447836,14.007346153259277,4.751364184838581 +NV,15.0,2.5,13.340620434521295,3.0735370383923444,85.62569767303911,0.3410867850150841,15.18876643034991,1.4799985740382124,12.383926652062984,4.583093784184722,-3.021046541778796,1.423365969177887,13.599339485168457,-1.6593795654787051 +NY,16.2,1.9,15.066423654405913,2.6438820237960234,174.20366464173924,0.3282953526362707,13.13919751949797,0.6933476291376823,16.008354584990695,3.925321020419153,-3.487047643850731,1.0515589995272907,16.431594848632812,-1.1335763455940864 +OH,12.3,2.1,7.433844095393124,1.4405859525265752,136.868774475337,0.3594694685405358,10.082734325411032,0.6687530286491925,5.947271455308107,2.170314537212024,-2.928940142017165,1.0203937884894951,9.078166961669922,-4.8661559046068765 +OK,9.9,2.0,13.731178131074726,4.169544904780285,72.68188683082842,0.30082612879830045,7.135168863816389,0.6797946636539011,16.569173106454205,5.963683235099995,-2.8397798701523342,1.2880625069038996,13.372641563415527,3.8311781310747257 +OR,11.0,2.4,15.223837236720705,3.6042301094674607,80.00122144021869,0.3868748897063032,9.686660958198624,0.9417384902858613,18.71773175526594,5.796223839892173,-2.7272856941109396,1.5228600560370165,14.899346351623535,4.223837236720705 +PA,11.1,2.0,13.637911018385992,2.8762102777615794,152.97423864359848,0.346456113240414,10.358501019361265,0.9133835774870138,15.376388976794027,4.369408282978113,-2.9937367590760533,1.2888295334644613,13.813882827758789,2.5379110183859925 +RI,8.4,2.3,13.35977181953176,4.002107274233144,47.716257082316176,0.2638155685183552,11.706778067766948,2.1389775521649073,13.952130836825097,5.411007448316621,-6.84669058579203,3.2677596335297556,10.114660263061523,4.95977181953176 +SC,11.1,2.1,10.59473085687635,2.4520723216335494,115.26644659001987,0.3736839049269087,11.553570544719635,1.2024288422176759,10.022650781702227,3.8469322710165352,-4.215562341759114,1.8449298835111687,9.70772647857666,-0.50526914312365 +SD,7.8,2.2,6.726459502632879,2.3272798467048927,55.2407957270471,0.26912123840231045,6.7068360049000635,1.5212604403340164,6.733685188053119,3.1395687931209575,-2.8265226711597813,1.3326039354240053,6.721802234649658,-1.0735404973671212 +TN,10.0,1.7,16.42325489667534,3.0669705013054744,89.2695834668554,0.3282847810394231,17.970609097212844,1.351825751368199,15.667022462787758,4.491841348158154,-5.76581519722165,2.1743474156596263,15.603744506835938,6.423254896675338 +TX,16.1,1.3,14.045259064593418,1.685678655696754,294.32648200901883,0.3083157384243811,15.264531260011097,0.5128349830310771,13.501772927704614,2.4211407892896815,-3.2244875827786235,0.9149244698195667,14.510196685791016,-2.054740935406583 +UT,7.3,1.6,8.359499249071256,2.0982139808994016,88.5556251779635,0.29356651846541537,5.222133569445866,0.7089311662182424,9.663267464756284,3.0000511031115513,-0.9081758638145613,0.3983449311640624,8.38582706451416,1.0594992490712558 +VA,12.1,2.4,14.131721562535965,3.4974094202644177,135.12178712944925,0.3120242155444285,10.222161875261767,0.7379258638542938,15.904861434764465,5.046324742621825,-5.554490672166786,2.688354693364075,15.400092124938965,2.0317215625359655 +VT,8.3,2.5,10.308498555295754,4.103266497917791,68.58960036751176,0.3813777601649377,5.468605036993444,1.7524339067205175,13.292270606457496,6.521284444131556,-0.8198424878811376,0.5644160471313165,10.242634773254395,2.0084985552957537 +WA,9.3,1.9,14.144094797845291,3.5056242790878342,104.56017409766304,0.3410985566238413,10.824512336178158,1.0575867773948409,15.862568474980742,5.285650433207835,-2.9942657552951486,1.4429429994522533,14.172506332397461,4.84409479784529 +WI,7.3,1.7,4.205482205184001,1.1851299579185464,76.2063037717102,0.33178902497349727,7.339248739090038,0.9754240295726758,2.64946265202114,1.6371265070652459,-1.7747855262614267,0.6565398320278055,5.814634799957275,-3.0945177948159985 +WV,11.3,2.4,15.269485131709581,4.591939630665602,78.48511051927737,0.3651987935901132,11.56747752398947,2.007798430035103,17.39923645944705,7.11376741088013,-11.015327195012814,4.533782788353134,16.38048553466797,3.9694851317095807 +WY,6.5,1.4,7.519438350406651,2.499776130679871,75.3355320006355,0.3319623870118944,5.695065621563699,1.4991725822046913,8.426008750173787,3.689705821181645,-1.7394127235027295,1.0005790489928068,7.408247947692871,1.0194383504066513 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_eval_fill_minus1.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_eval_fill_minus1.csv new file mode 100644 index 0000000000..74780e6169 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_eval_fill_minus1.csv @@ -0,0 +1,52 @@ +state,census,moe,acs_local,se,kish_src,acs_share,acs_only,acs_only_se,donor_only,donor_only_se,delta,delta_se,stored_2301,gap +AK,10.5,2.1,12.321393723762833,3.743008462683068,81.68256219816811,0.41906561091719086,14.975786930595175,3.8676548692424246,10.406607937726202,5.820215767713671,,,12.269848823547363,1.8213937237628333 +AL,15.5,2.4,15.059623085010573,3.71513486095829,114.89369341824126,0.3080806998135229,14.892073453526683,1.3194281070236962,15.13422543778082,5.3426796061957385,,,14.110982894897461,-0.440376914989427 +AR,13.3,2.7,6.68559611243325,1.412017057266769,115.11649934358303,0.3446122143394325,11.042644416698813,1.42850530885576,4.394598176602837,1.936397291167434,-2.139452870894872,0.8489418874274481,6.774383068084717,-6.614403887566751 +AZ,13.3,2.3,16.387800058721087,4.013061222603815,74.97248693960735,0.32823023017732,15.018313873111348,1.1326133634347828,17.056938186276298,5.934075982139015,,,17.127504348754883,3.0878000587210863 +CA,17.9,1.0,19.49647303904357,1.9618571163684015,385.6580886961881,0.2837607789085938,16.420939875952424,0.4373798484726286,20.714942595329678,2.73651623800518,,,20.379192352294922,1.5964730390435697 +CO,7.7,1.8,9.110107226754993,2.6867568457632443,65.42288079603081,0.3167165607859737,7.9850533379350015,0.7117317734873981,9.631593886487048,3.9361017947397423,,,9.367508888244629,1.4101072267549926 +CT,12.8,3.2,12.142036383928177,2.9672756914200895,100.20771420344856,0.35243678570098613,14.00938323881125,1.6105276066320198,11.125731398111077,4.491962098359044,,,12.430046081542969,-0.6579636160718234 +DC,20.3,3.7,20.063349097499845,5.20282053054896,47.067422820631876,0.4034754527762713,19.335252399157124,5.356380553227544,20.5558169203178,7.985315315053287,-7.870994797687709,4.297309466732037,20.46465492248535,-0.23665090250015552 +DE,8.7,2.6,21.36348047305636,6.900153737516051,50.95816913382481,0.30803265271757674,14.964556458685824,2.865571367630918,24.211992829059593,9.76218621056253,-1.7609609623206675,1.0538508926782648,22.213157653808594,12.66348047305636 +FL,18.4,1.8,21.68189087324703,3.3801514517694407,135.20425539702788,0.31737704011827417,12.769262957482017,0.5701023800605056,25.825706176604402,4.994668761011213,-6.273629324412617,1.7434241849543939,22.613277435302734,3.2818908732470327 +GA,15.1,2.2,17.239208888854364,2.956386357383339,121.17506625331394,0.3146201235481187,11.748828880220028,0.7688862484597994,19.759539724339476,4.324472924638935,,,17.39934539794922,2.1392088888543643 +HI,13.0,2.6,5.5836079655769995,1.9850974448778431,118.52750117470644,0.37760164062764257,4.347321396550311,0.7711046293327893,6.33364824078138,3.159689737354891,-1.3864993132186871,0.6926717710178918,5.165446758270264,-7.4163920344230005 +IA,8.2,1.9,5.330152234800179,1.7664517911964994,74.5874438402306,0.3464490034124007,5.261597365688324,0.8275805028634736,5.366493340860581,2.672293454377221,,,5.389122486114502,-2.86984776519982 +ID,6.5,1.3,6.012080047447186,1.42519466267205,88.40879016819349,0.33214753479536296,9.443553261930685,1.5355785927140133,4.305482515374321,1.9269207054839907,,,6.954473495483398,-0.4879199525528142 +IL,12.4,1.6,12.71448215138427,3.1317881946460764,93.91544229009794,0.2965816587151526,8.568452112115834,0.6881257126289709,14.462569162995395,4.474926628051286,,,18.092145919799805,0.3144821513842704 +IN,10.6,2.2,9.211095507958051,2.1542988135484107,120.14005678566079,0.35487947569914285,9.845417850190314,0.8064774659615725,8.862156090041381,3.3070911534768737,,,9.129535675048828,-1.3889044920419487 +KS,9.7,2.5,10.902563094311668,4.684481608328661,87.66666433303108,0.3334748697513686,8.436703092478703,1.1318599589725764,12.136278532212144,6.9611728444568906,,,10.451759338378906,1.2025630943116692 +KY,13.3,2.9,9.654856568587451,2.9479167492889964,79.96088420874483,0.3957257386758641,7.365566854024051,0.681608750432868,11.154061352444216,4.895395778032309,,,9.635833740234375,-3.6451434314125493 +LA,20.7,3.0,10.577721322368049,2.169661638275234,125.90331436963336,0.3111933330719865,14.035915825132383,1.379637552034913,9.01535683695153,3.059664339475643,-2.067415066350923,0.6135239140696926,11.565276145935059,-10.12227867763195 +MA,12.8,2.0,20.79441634009795,4.5906754055484145,102.5908356155141,0.32989952283900936,14.581028749350434,1.1815662741599873,23.85335103909379,6.719603254416517,-2.589970589476747,1.4597746702238246,20.928058624267578,7.994416340097949 +MD,10.7,2.5,17.433348552027496,4.218598298707564,61.88106431360571,0.32215088761216787,10.882903843821252,1.1661503288439126,20.546477327204965,6.250901315095014,-3.666427532075165,2.13973279189599,17.483667373657227,6.733348552027497 +ME,6.5,2.3,7.234934576863685,3.0188402223230515,38.50834478575946,0.3333179546821343,4.3449891810992485,0.9941392526276736,8.679807279262587,4.590385407059264,-2.565320115416996,1.5680089534063912,7.270956039428711,0.7349345768636848 +MI,10.3,1.9,8.256835401770765,2.6392600139180917,91.52893167205437,0.3203877234279062,6.374426473590426,0.5284478115219912,9.144254201946136,3.8895688869749265,,,9.475631713867188,-2.043164598229236 +MN,6.9,1.9,5.0987592257530725,1.6601981302059463,52.54399261696906,0.34048793553809076,5.402193447224024,0.7088069591670008,4.942104484759751,2.483567801299805,,,5.14799690246582,-1.8012407742469279 +MO,9.7,2.3,16.636921591015795,3.9740672672287634,64.86277090035392,0.33222332397483334,10.740424063041209,0.9951810542894202,19.57046820754853,5.872054728479625,-8.24943192084599,3.6047902663083464,16.677257537841797,6.936921591015796 +MS,19.1,2.6,12.989889728210732,2.8237984652354777,120.09612336052896,0.34971731263512185,15.700236078466064,1.6775597911491218,11.532285119724733,4.2438683774562,-3.5702908131062463,1.5687673395260167,12.927408218383789,-6.110110271789269 +MT,9.3,2.3,4.617522603187462,1.3314483779387705,51.16610302382995,0.32933782545962187,10.14388019073906,2.7341405641298953,1.9037291917074668,1.1533784757098104,-0.6587857198038035,0.21640068702766152,4.747105598449707,-4.682477396812539 +NC,14.4,2.2,11.383821595734682,2.483166642776731,123.95133566758639,0.3136719210648219,10.238524145357312,0.739669148907255,11.907255886821646,3.607282095198393,,,11.701009750366211,-3.016178404265318 +ND,10.3,2.1,10.66569031081114,3.4523999116526567,67.67907793489668,0.33186741866405767,4.753541889405907,1.4266527330488992,13.602307219160961,5.152722104643105,,,10.772493362426758,0.36569031081113934 +NE,7.1,1.9,9.500128835226924,4.219029473139932,79.73182955023789,0.3063484897355067,6.782482728016978,1.4360419013860366,10.700366661079695,6.024229240183856,,,9.424169540405273,2.4001288352269246 +NH,7.5,2.4,7.202220806202033,3.0310963062993195,73.11100560293525,0.3519654122706294,5.031553444271825,1.0025476199774568,8.381169966340414,4.655768809209172,,,7.5636773109436035,-0.29777919379796725 +NJ,13.3,1.9,10.344787674648451,2.1644162242310285,117.661096080773,0.33625390236036024,11.51591545214037,0.7799682979651915,9.751494114438215,3.2241722472278846,,,9.367637634277344,-2.9552123253515497 +NM,10.9,2.1,15.651364184838581,3.9665352308487023,90.34932912736528,0.3715312357460946,16.15041492874158,2.7362366212931093,15.356340867645713,6.108821740813408,,,14.007346153259277,4.751364184838581 +NV,15.0,2.5,13.340620434521295,3.0735370383923444,85.62569767303911,0.3410867850150841,15.18876643034991,1.4799985740382124,12.383926652062984,4.583093784184722,,,13.599339485168457,-1.6593795654787051 +NY,16.2,1.9,15.066423654405913,2.6438820237960234,174.20366464173924,0.3282953526362707,13.13919751949797,0.6933476291376823,16.008354584990695,3.925321020419153,,,16.431594848632812,-1.1335763455940864 +OH,12.3,2.1,7.433844095393124,1.4405859525265752,136.868774475337,0.3594694685405358,10.082734325411032,0.6687530286491925,5.947271455308107,2.170314537212024,,,9.078166961669922,-4.8661559046068765 +OK,9.9,2.0,13.731178131074726,4.169544904780285,72.68188683082842,0.30082612879830045,7.135168863816389,0.6797946636539011,16.569173106454205,5.963683235099995,,,13.372641563415527,3.8311781310747257 +OR,11.0,2.4,15.223837236720705,3.6042301094674607,80.00122144021869,0.3868748897063032,9.686660958198624,0.9417384902858613,18.71773175526594,5.796223839892173,,,14.899346351623535,4.223837236720705 +PA,11.1,2.0,13.637911018385992,2.8762102777615794,152.97423864359848,0.346456113240414,10.358501019361265,0.9133835774870138,15.376388976794027,4.369408282978113,,,13.813882827758789,2.5379110183859925 +RI,8.4,2.3,13.35977181953176,4.002107274233144,47.716257082316176,0.2638155685183552,11.706778067766948,2.1389775521649073,13.952130836825097,5.411007448316621,-6.84669058579203,3.2677596335297556,10.114660263061523,4.95977181953176 +SC,11.1,2.1,10.59473085687635,2.4520723216335494,115.26644659001987,0.3736839049269087,11.553570544719635,1.2024288422176759,10.022650781702227,3.8469322710165352,,,9.70772647857666,-0.50526914312365 +SD,7.8,2.2,6.726459502632879,2.3272798467048927,55.2407957270471,0.26912123840231045,6.7068360049000635,1.5212604403340164,6.733685188053119,3.1395687931209575,,,6.721802234649658,-1.0735404973671212 +TN,10.0,1.7,16.42325489667534,3.0669705013054744,89.2695834668554,0.3282847810394231,17.970609097212844,1.351825751368199,15.667022462787758,4.491841348158154,-5.76581519722165,2.1743474156596263,15.603744506835938,6.423254896675338 +TX,16.1,1.3,14.045259064593418,1.685678655696754,294.32648200901883,0.3083157384243811,15.264531260011097,0.5128349830310771,13.501772927704614,2.4211407892896815,,,14.510196685791016,-2.054740935406583 +UT,7.3,1.6,8.359499249071256,2.0982139808994016,88.5556251779635,0.29356651846541537,5.222133569445866,0.7089311662182424,9.663267464756284,3.0000511031115513,,,8.38582706451416,1.0594992490712558 +VA,12.1,2.4,14.131721562535965,3.4974094202644177,135.12178712944925,0.3120242155444285,10.222161875261767,0.7379258638542938,15.904861434764465,5.046324742621825,,,15.400092124938965,2.0317215625359655 +VT,8.3,2.5,10.308498555295754,4.103266497917791,68.58960036751176,0.3813777601649377,5.468605036993444,1.7524339067205175,13.292270606457496,6.521284444131556,-0.8198424878811376,0.5644160471313165,10.242634773254395,2.0084985552957537 +WA,9.3,1.9,14.144094797845291,3.5056242790878342,104.56017409766304,0.3410985566238413,10.824512336178158,1.0575867773948409,15.862568474980742,5.285650433207835,,,14.172506332397461,4.84409479784529 +WI,7.3,1.7,4.205482205184001,1.1851299579185464,76.2063037717102,0.33178902497349727,7.339248739090038,0.9754240295726758,2.64946265202114,1.6371265070652459,,,5.814634799957275,-3.0945177948159985 +WV,11.3,2.4,15.269485131709581,4.591939630665602,78.48511051927737,0.3651987935901132,11.56747752398947,2.007798430035103,17.39923645944705,7.11376741088013,,,16.38048553466797,3.9694851317095807 +WY,6.5,1.4,7.519438350406651,2.499776130679871,75.3355320006355,0.3319623870118944,5.695065621563699,1.4991725822046913,8.426008750173787,3.689705821181645,,,7.408247947692871,1.0194383504066513 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_reform.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_reform.csv new file mode 100644 index 0000000000..1f6c6496bd --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_reform.csv @@ -0,0 +1,52 @@ +state,ctc_effect_published,ctc_effect_se_published,ctc_effect_corrected_rent,ctc_effect_se_corrected_rent,corrected_minus_published +AK,-1.7128711765052902,1.2581818899101276,-1.6307444930554984,1.2526270029249,0.08212668344979179 +AL,-3.7065665355345523,1.8243214373931491,-3.8463891050569563,1.8256898292611363,-0.13982256952240402 +AR,-1.9729223774049145,0.8486357725649586,-2.139452870894872,0.8489418874274481,-0.16653049348995763 +AZ,-6.409766223213803,3.1723381851552177,-7.5190660188862335,3.269651128358294,-1.1092997956724302 +CA,-4.892303451376475,1.1413048285214231,-4.676621516954708,1.1062654153073042,0.21568193442176664 +CO,-0.7445325358294997,0.2448312330320677,-0.7210506812387649,0.24003297322379327,0.02348185459073482 +CT,-2.0892910893802488,0.6399943235425594,-1.6374593493254843,0.5192344236356785,0.45183174005476445 +DC,-8.648974183112678,4.339825412853922,-7.870994797687709,4.297309466732037,0.7779793854249686 +DE,-2.975067326538812,1.6835912146641878,-1.7668336978719885,1.0539991095587489,1.2082336286668236 +FL,-3.5295844886195393,1.1124732966960185,-6.273629328651554,1.7434241849879868,-2.7440448400320143 +GA,-3.4609575448229744,1.308112138441585,-2.3533363943270484,0.8661018186166106,1.107621150495926 +HI,-1.5974204310103088,0.7041621558092247,-1.3864993132186871,0.6926717710178918,0.2109211177916217 +IA,-0.7506708887596472,0.20700191879052138,-0.8003837200569238,0.2520854266053152,-0.04971283129727666 +ID,-1.7885081332636041,0.9816030370166006,-0.9873224143738846,0.5029521938345398,0.8011857188897196 +IL,-4.427158137239671,2.0181302276137845,-3.438977258218232,1.535198385076879,0.9881808790214386 +IN,-2.170078429848301,1.19712258605729,-2.1850239178494246,1.197219847485084,-0.014945488001123497 +KS,-5.5529596017194836,4.512273328741079,-5.442133325378929,4.5153839474310145,0.11082627634055431 +KY,-2.5243584152065885,1.1998687175740188,-1.572017852634899,0.7043394136690122,0.9523405625716896 +LA,-1.6161803656670206,0.3522690221840859,-2.067415066350923,0.6135239140696926,-0.45123470068390237 +MA,-3.438875692787333,1.6663025424800213,-2.589970513662729,1.4597746700823568,0.8489051791246043 +MD,-3.413791655908443,2.109547341096508,-3.666427532075165,2.13973279189599,-0.252635876166722 +ME,-2.6266704709698754,1.5727339170258277,-2.565320115416996,1.5680089534063912,0.0613503555528796 +MI,-3.506682134099301,1.645038820193314,-3.336115884875737,1.6644124793370634,0.170566249223564 +MN,-0.9536367002109238,0.5435043713052599,-0.9797767030266743,0.5434868879537157,-0.026140002815750463 +MO,-8.959380697884113,3.695574799852117,-8.249436108814832,3.604790228487778,0.7099445890692806 +MS,-3.394959085138506,1.561580138172457,-3.5702908131062463,1.5687673395260167,-0.17533172796774021 +MT,-0.6722669623049259,0.2382636276211245,-0.658785490050027,0.21640067376200778,0.01348147225489893 +NC,-5.352585782229246,1.8840570016606637,-4.358745519022859,1.7490356067882917,0.993840263206387 +ND,-1.2256245427537,0.5560134505331789,-1.1179888480554707,0.5457878168721912,0.10763569469822931 +NE,-2.773364941208342,2.0470255282972625,-2.946461820354273,2.0492057662795946,-0.1730968791459313 +NH,-1.7440078720187737,1.1478460185223052,-3.3534156039365173,1.9814280611120851,-1.6094077319177436 +NJ,-1.8300351640183579,0.5244118016918777,-2.8593643674379603,1.1905636785120477,-1.0293292034196024 +NM,-3.660158217562636,1.1255688052699755,-4.164950423749191,1.2735921049447836,-0.5047922061865555 +NV,-1.7376207562912138,0.629917069409643,-3.021046541778796,1.423365969177887,-1.2834257854875823 +NY,-3.1739864748408753,0.8278323796866007,-3.487047643850731,1.0515589995272907,-0.3130611690098557 +OH,-3.8587554469843512,1.4539869880448621,-2.928940142017165,1.0203937884894951,0.9298153049671862 +OK,-2.8990779051992153,1.2894681243110515,-2.8397798701523342,1.2880625069038996,0.059298035046881026 +OR,-2.1027433074865645,1.412721803429275,-2.7272856941109396,1.5228600560370165,-0.6245423866243751 +PA,-2.1674883896829673,0.879027961867837,-2.9937367590760533,1.2888295334644613,-0.826248369393086 +RI,-7.082426369729525,3.2725430726119247,-6.84669058579203,3.2677596335297556,0.2357357839374954 +SC,-4.377230751356924,1.8470338585513792,-4.215562341759114,1.8449298835111687,0.16166840959781048 +SD,-2.5428566716304988,1.2967713260749396,-2.8265226711597813,1.3326039354240053,-0.2836659995292825 +TN,-5.4719950504883315,2.1036927030836683,-5.76581519722165,2.1743474156596263,-0.29382014673331813 +TX,-3.2431418088928776,0.9309326462236662,-3.2244875827786235,0.9149244698195667,0.018654226114254158 +UT,-0.9210572651019494,0.40017105080632065,-0.9081758638145613,0.3983449311640624,0.012881401287388128 +VA,-4.143535467007477,2.455084414660597,-5.554490672166786,2.688354693364075,-1.4109552051593086 +VT,-0.17161126906749033,0.08063431563089071,-0.8198424878811376,0.5644160471313165,-0.6482312188136472 +WA,-2.890331940537185,1.4107232418130056,-2.9942657552951486,1.4429429994522533,-0.10393381475796382 +WI,-3.2429978446197953,1.3338005589292077,-1.7747855262614267,0.6565398320278055,1.4682123183583686 +WV,-11.847910332700181,4.606019524846844,-11.015327195012814,4.533782788353134,0.8325831376873669 +WY,-1.6214124288534664,0.994557781496175,-1.7394127235027295,1.0005790489928068,-0.1180002946492631 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_reform_fill_minus1.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_reform_fill_minus1.csv new file mode 100644 index 0000000000..196935a43b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_reform_fill_minus1.csv @@ -0,0 +1,16 @@ +state,ctc_effect_published,ctc_effect_se_published,ctc_effect_corrected_rent,ctc_effect_se_corrected_rent,corrected_minus_published +AR,-1.9729223774049145,0.8486357725649586,-2.139452870894872,0.8489418874274481,-0.16653049348995763 +DC,-8.648974183112678,4.339825412853922,-7.870994797687709,4.297309466732037,0.7779793854249686 +DE,-2.9691945909874917,1.6834766244883417,-1.7609609623206675,1.0538508926782648,1.2082336286668243 +FL,-3.529584484380603,1.1124732966522155,-6.273629324412617,1.7434241849543939,-2.7440448400320143 +HI,-1.5974204310103088,0.7041621558092247,-1.3864993132186871,0.6926717710178918,0.2109211177916217 +LA,-1.6161803656670206,0.3522690221840859,-2.067415066350923,0.6135239140696926,-0.45123470068390237 +MA,-3.438875768601351,1.6663025426707383,-2.589970589476747,1.4597746702238246,0.8489051791246038 +MD,-3.413791655908443,2.109547341096508,-3.666427532075165,2.13973279189599,-0.252635876166722 +ME,-2.6266704709698754,1.5727339170258277,-2.565320115416996,1.5680089534063912,0.0613503555528796 +MO,-8.959376509915272,3.695574848895399,-8.24943192084599,3.6047902663083464,0.7099445890692824 +MS,-3.394959085138506,1.561580138172457,-3.5702908131062463,1.5687673395260167,-0.17533172796774021 +MT,-0.6722671920587023,0.23826363983213664,-0.6587857198038035,0.21640068702766152,0.013481472254898819 +RI,-7.082426369729525,3.2725430726119247,-6.84669058579203,3.2677596335297556,0.2357357839374954 +TN,-5.4719950504883315,2.1036927030836683,-5.76581519722165,2.1743474156596263,-0.29382014673331813 +VT,-0.17161126906749033,0.08063431563089071,-0.8198424878811376,0.5644160471313165,-0.6482312188136472 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_solves.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_solves.csv new file mode 100644 index 0000000000..fcaf757022 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_solves.csv @@ -0,0 +1,12 @@ +run,mean_gap,mad,beyond,corr,med_se,med_delta,med_delta_se,acs_share,DE,DC,TN,MD,LA,MT,HI,MA +dup_release_repro,0.16679006146150974,2.8805283578657326,26,0.520750196848857,2.8131967154228144,-2.921340382290252,1.278735840980016,0.3481740564228461,19.01770695590635,18.264029155223753,15.815895611578442,17.00087539326369,11.026638688928166,4.395263513849296,5.366033904684012,18.391250624530855 +proj_chi_s050_0.03,-0.04790115551441612,2.8479447653156003,24,0.5399255242549041,2.6185470876334023,-2.6710880283585174,1.157263905754884,0.35381870008679583,18.658697910157443,19.22251450220031,15.20116770075214,17.12435546653622,10.978118011917076,4.706749920569699,5.5226938114629585,19.05416501157363 +soft_chi_s050_0.1,-0.285120503294896,2.698097489267969,23,0.5527724077689338,2.4930566590515215,-2.8049950239336585,1.1258744145110413,0.36703387978463625,18.22902304081688,18.87468437048897,15.22343160103723,16.750802371268357,11.041182497223607,4.197386843784524,5.600783666145576,19.0898877180207 +soft_chi_s700_0,-0.09063052571553228,2.5558741008787216,25,0.5945532430111595,2.0071287637313175,-2.8246357377249103,0.965909173256904,0.5323355514970661,19.3705586844898,20.1506881234464,15.510926025059696,16.75356217154926,11.508350076539335,5.31058340265146,5.299461689742384,18.598756395092067 +soft_chi_s700_0.03,-0.3474471089650488,2.4642426835574915,24,0.6157829234925023,1.8404570230874595,-2.82121630452987,0.9252892822374159,0.5383162332537033,18.874195053479934,19.884284419829086,14.539619686401428,16.133805504277344,11.864488002505711,5.183291978929374,5.57460030335686,18.289204391811964 +soft_chi_s700_0.1,-0.5440023304190568,2.424066847777223,21,0.628414000344372,1.8761451309974668,-2.794378161767278,0.8815161022337413,0.5550259489828211,17.844203609103612,19.97895900597697,14.410949721304988,15.695055654568485,11.787298649888283,5.063141838936079,5.742688008531674,17.714678347057735 +soft_chi_s900_0,-0.4894974056613972,2.2698622592733524,22,0.7069604102510532,1.1699043997935354,-3.0578332949820757,0.6338207101820621,0.7881426593725687,16.299265230088853,23.404550734238775,14.620544855172495,14.357091615000172,12.322483147860545,6.599965335193645,5.462347511867982,17.05436499241893 +soft_chi_s900_0.03,-0.775354910257962,2.2338371784623607,23,0.7301545347890834,1.0681072947623282,-2.930103463522821,0.5614707689923435,0.8010793832198903,15.959780248379547,22.663002485998664,13.984234626292814,14.236688507906479,12.997697567195463,6.356789549057919,5.7284856768958745,16.12167486720437 +soft_chi_s900_0.1,-1.0184281715510457,2.201985625436748,25,0.7300531635133293,0.9855704097592791,-2.846354722828257,0.5412869220630302,0.8173361826685147,15.549054430016238,21.95311398406457,14.056083521457458,13.795253491871517,12.527441621132631,6.1711300712092045,5.730222328877324,14.991445238160638 +soft_chi_s964_0,-0.7636699331511788,2.2413973776187657,21,0.7443766217561083,0.9199117098312307,-3.087883147736494,0.5257150310987992,0.9130730706856416,14.83186862308455,24.64042114992082,14.079795144858076,12.901114422537784,12.559100453333539,7.204443327333171,5.432189772145475,15.790087705871422 +soft_chi_s964_0.03,-0.9746935206783962,2.2024968176005353,22,0.7623450007176024,0.8573150404361539,-2.966362917269114,0.48475470851834424,0.9201088941650787,14.911515578355269,23.75088218085383,13.772862252678022,13.180510927310312,13.309275794355951,7.046273291735259,5.7176987513529625,15.06874085201589 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_solves_fill_minus1.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_solves_fill_minus1.csv new file mode 100644 index 0000000000..df0b2886cc --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/acsrent_solves_fill_minus1.csv @@ -0,0 +1,12 @@ +run,mean_gap,mad,beyond,corr,med_se,med_delta,med_delta_se,acs_share,DE,DC,TN,MD,LA,MT,HI,MA +dup_release_repro,0.16471878949910754,2.8784570859033294,25,0.5204181912988358,2.8131967154228144,,,0.3481740564228461,19.01044496068104,18.264029155223753,15.815895611578442,17.00087539326369,11.026638688928166,4.395263513849296,5.366033904684012,18.391250624530855 +proj_chi_s050_0.03,-0.05092398622014013,2.8449219346098764,24,0.5393663326162758,2.6185470876334023,,,0.35381870008679583,18.65311820464982,19.22251450220031,15.20116770075214,17.12435546653622,10.978118011917076,4.706749920569699,5.5226938114629585,19.05416501157363 +soft_chi_s050_0.1,-0.2881451454796224,2.695072847083243,23,0.5523490782633917,2.4930566590515215,,,0.36703387978463625,18.219334945572307,18.87468437048897,15.22343160103723,16.750802371268357,11.041182497223607,4.197386843784524,5.600783666145576,19.0898877180207 +soft_chi_s700_0,-0.09243136054026196,2.5540732660539924,25,0.5942995177277677,2.0071287637313175,,,0.5323355514970661,19.36414505762124,20.1506881234464,15.510926025059696,16.75356217154926,11.508350076539335,5.31058340265146,5.299461689742384,18.598756395092067 +soft_chi_s700_0.03,-0.34916656095672133,2.465707794838541,24,0.6155211035405689,1.8404570230874595,,,0.5383162332537033,18.86773487462509,19.884284419829086,14.539619686401428,16.133805504277344,11.864488002505711,5.183291978929374,5.57460030335686,18.289204391811964 +soft_chi_s700_0.1,-0.5461299171657797,2.425932440215807,21,0.6281060966915968,1.8761451309974668,,,0.5550259489828211,17.83754923558953,19.97895900597697,14.410949721304988,15.695055654568485,11.787298649888283,5.063141838936079,5.742688008531674,17.714678347057735 +soft_chi_s900_0,-0.4898594897594518,2.270162958508696,22,0.7069119781335766,1.1699043997935354,,,0.7881426593725687,16.297709125418635,23.404550734238775,14.620544855172495,14.357091615000172,12.322483147860545,6.599965335193645,5.462347511867982,17.05436499241893 +soft_chi_s900_0.03,-0.7760268124432347,2.2344476062581227,23,0.730041522365349,1.0681072947623282,,,0.8010793832198903,15.958221403904174,22.663002485998664,13.984234626292814,14.236688507906479,12.997697567195463,6.356789549057919,5.7284856768958745,16.12167486720437 +soft_chi_s900_0.1,-1.0193024698269493,2.202791438427394,25,0.7299229819712859,0.9855704097592791,,,0.8173361826685147,15.547316914656143,21.95311398406457,14.056083521457458,13.795253491871517,12.527441621132631,6.1711300712092045,5.730222328877324,14.991445238160638 +soft_chi_s964_0,-0.7637952950596579,2.2414974839062483,21,0.744359093174314,0.9199117098312307,,,0.9130730706856416,14.831228681671039,24.64042114992082,14.079795144858076,12.901114422537784,12.559100453333539,7.204443327333171,5.432189772145475,15.790087705871422 +soft_chi_s964_0.03,-0.9749631474613972,2.202741501985428,22,0.7622988995188572,0.8573150404361539,,,0.9201088941650787,14.91088302641012,23.75088218085383,13.772862252678022,13.180510927310312,13.309275794355951,7.046273291735259,5.7176987513529625,15.06874085201589 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/asec_state_raw.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/asec_state_raw.csv new file mode 100644 index 0000000000..fa1ba26c31 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/asec_state_raw.csv @@ -0,0 +1,52 @@ +state,2022,2023,2024,2025,avg_23_25,avg_22_24,pool_23_25,census,moe,model +AK,11.742250772539032,9.144475754994634,11.025094000726003,11.025703481756025,10.39842441249222,10.63727350941989,10.385123619199785,10.5,2.1,11.644426986408602 +AL,14.229576948317568,14.318475868598759,15.016964751309011,16.632061192463205,15.32250060412366,14.52167252274178,15.322411977437005,15.5,2.4,16.98715636912008 +AR,15.56371895090868,16.06069459922046,11.889816160137775,11.027554596598085,12.992688451985442,14.504743236755639,12.982343687268106,13.3,2.7,8.12845772011748 +AZ,15.705949190547415,15.47399930545391,12.050024488012602,13.30550603120295,13.60984327488982,14.40999099467131,13.596540158768349,13.3,2.3,16.951186258024865 +CA,16.797673426558703,19.17209405631504,18.58671422998794,16.571646396383798,18.11015156089559,18.185493904287227,18.11753998735953,17.9,1.0,24.41650645326989 +CO,7.418904011848927,8.01198022196501,7.911591452421268,8.813192984945081,8.245588219777119,7.780825228745068,8.25493107344393,7.7,1.8,10.352503836811634 +CT,11.09204254393255,10.775491259930428,13.112711275489447,12.544795000477727,12.144332511965866,11.660081693117474,12.128226284317284,12.8,3.2,13.371307682492237 +DC,16.188639739636187,20.438683106933492,19.309717509072826,21.122187439973132,20.290196018659817,18.645680118547503,20.276901862896366,20.3,3.7,34.365303438733925 +DE,10.292227370260731,8.679114087435847,11.644346527904931,6.173279214261751,8.832246609867509,10.205229328533838,8.872106183604838,8.7,2.6,22.429186288025384 +FL,17.351784629326648,18.17132295896659,17.18946553871046,19.86717949927365,18.409322665650233,17.570857709001235,18.399935594213357,18.4,1.8,28.15649890233655 +GA,11.190840796560298,13.026194930319038,17.952423338613258,15.30977257103377,15.42946361332202,14.056486355164198,15.44261441868672,15.1,2.2,18.428986738455304 +HI,11.236523127053816,11.133359537059551,14.115113228415273,13.79161921290518,13.013363992793336,12.161665297509549,13.004127297545235,13.0,2.6,7.019040438905304 +IA,6.141884485533542,5.985968986973003,7.963696275897187,9.44595300849348,7.798539423787891,6.697183249467911,7.804448044048466,8.2,1.9,8.80898267607782 +ID,5.793933570208933,5.750195039392725,5.769906704612402,7.852948622049597,6.457683455351575,5.77134510473802,6.464289199062273,6.5,1.3,6.957827284586571 +IL,8.869315393324918,13.986610693141118,10.267437389020227,13.784916298211357,12.679654793457567,11.04112115849542,12.680881653752552,12.4,1.6,14.678691391590323 +IN,8.486349562170021,8.941014008789727,10.25193775759754,12.445588729989966,10.546180165459077,9.226433776185763,10.524294715881606,10.6,2.2,12.73434830167166 +KS,9.686172497871633,10.61046214819598,7.059655174746284,9.937126739271402,9.202414687404556,9.118763273604634,9.202456329866736,9.7,2.5,9.659862214627816 +KY,13.169719094264696,14.398548223011026,17.390413836868824,6.26047230746556,12.683144789115138,14.986227051381514,12.761043767437215,13.3,2.9,18.5371736654285 +LA,12.175301416022457,22.514100103949275,22.231770503344162,16.84846255175197,20.531444386348472,18.973724007771963,20.550920660901287,20.7,3.0,12.087426626104243 +MA,11.215350830223118,12.485048538166401,11.164326031764508,14.097617736647443,12.58233076885945,11.621575133384676,12.57030649429523,12.8,2.0,20.202673816573878 +MD,13.204340415705378,13.389209312722102,10.032601265511571,8.241112555938752,10.554307711390809,12.208716997979684,10.582646934483131,10.7,2.5,23.16543402488221 +ME,3.083438652479766,6.725107844065107,5.857540549132934,8.851318598109833,7.144655663769292,5.222029015225935,7.142742518069979,6.5,2.3,12.449100684445808 +MI,9.37996431754811,11.317440580932518,9.765980398916605,9.049338094232729,10.044253024693951,10.154461765799077,10.061054933693407,10.3,1.9,14.518361699859508 +MN,5.457814657034463,7.084824769433547,7.196297633315432,7.267773534901452,7.182965312550144,6.579645686594481,7.182539055028663,6.9,1.9,8.431428192061507 +MO,11.95013122874995,9.952076556218547,10.59910488153741,8.688815349141722,9.746665595632559,10.833770888835303,9.746914211771577,9.7,2.3,18.479794697686096 +MS,17.605421705282417,15.893703615893632,18.318707841001032,22.774803026779637,18.995738161224768,17.272611054059027,18.954429752161147,19.1,2.6,12.942211004413902 +MT,6.777162781365585,10.19741392086936,7.213076993339979,9.70772867632419,9.039406530177844,8.062551231858308,9.068761468913076,9.3,2.3,2.5309436062772113 +NC,13.324659470471722,14.699469455156626,17.356035377162865,10.418332949140346,14.157945927153278,15.126721434263738,14.118056875722063,14.4,2.2,18.100974612766848 +ND,8.388637081588247,10.055765354425745,9.338429159017437,11.265900435399093,10.220031649614091,9.260943865010477,10.214409181082498,10.3,2.1,11.13047533590008 +NE,3.1932324935435874,8.414169251220617,8.707921090634455,5.345986399696482,7.489358913850517,6.7717742784662205,7.489798128391237,7.1,1.9,10.711871752578398 +NH,7.320679331841904,6.614574450154254,7.03260131541967,9.398691240045057,7.68195566853966,6.989285032471943,7.67563173189731,7.5,2.4,10.516178219256554 +NJ,13.967164894827434,12.626945926755496,15.490552338958738,11.14956652402791,13.089021596580714,14.028221053513889,13.096360568763007,13.3,1.9,10.924964312878116 +NM,11.6979273944023,8.784244517059783,11.641225207085279,13.45302247185058,11.292830731998547,10.707799039515786,11.242245228179504,10.9,2.1,10.15133671821333 +NV,14.51908925947071,19.62339447401711,11.004034562220706,14.3553915017646,14.99427351266747,15.048839431902843,14.97184761208205,15.0,2.5,19.070065323872694 +NY,16.44139146054365,15.638020012052639,14.344625859330986,18.507636978263662,16.163427616549097,15.474679110642427,16.15246416949128,16.2,1.9,17.727116992316713 +OH,5.786530397682931,14.153140654790734,9.886769293543354,12.81628040248174,12.285396783605277,9.942146782005672,12.279728784240971,12.3,2.1,9.813281022726176 +OK,13.048873023290255,9.773404030224372,10.822268179617504,10.571354856634418,10.389009022158765,11.214848411044043,10.388497167772895,9.9,2.0,17.21439734214549 +OR,10.327881492942787,10.527951224062168,12.4021259088159,10.085066706225799,11.005047946367958,11.085986208606952,10.999692551222667,11.0,2.4,16.2870253593211 +PA,9.704181677852835,14.726636465084285,8.39479133772251,9.486669664796132,10.869365822534307,10.941869826886544,10.882032377190491,11.1,2.0,14.135315201475251 +RI,7.01041798662941,6.156053644150039,11.063033344659317,7.415471092052738,8.211519360287364,8.076501658479588,8.233995656353272,8.4,2.3,17.87488315880047 +SC,14.095160182455789,10.239715887677772,14.271926361435797,9.577141338269175,11.362927862460916,12.868934143856452,11.37050563532496,11.1,2.1,9.884637976608813 +SD,7.253537952232686,4.868533464031931,9.653581165563185,8.038212493057983,7.520109040884367,7.258550860609268,7.518589948567328,7.8,2.2,11.33898407217388 +TN,7.545471553294831,8.191660258163987,9.302263227188401,12.657729769705965,10.050551085019451,8.346465012882406,10.050138704007582,10.0,1.7,23.237084061349254 +TX,15.65193745542604,15.326328304892062,16.49576280914009,16.494264428002662,16.105451847344938,15.824676189819398,16.105566154682876,16.1,1.3,19.24437100079317 +UT,5.364840417906747,5.738086271838058,6.39537574792533,8.818593352281523,6.984018457348303,5.832767479223378,6.988548792784237,7.3,1.6,13.211297432608319 +VA,9.697885061135517,15.387709620612222,11.359903992243673,12.638677321841921,13.128763644899271,12.148499557997136,13.123103620502038,12.1,2.4,18.12834306934188 +VT,9.00383319494905,6.910725322922523,9.625846154270423,9.334086057612687,8.623552511601877,8.513468224047331,8.616956653577393,8.3,2.5,17.678699918725112 +WA,11.320871417892958,9.55640308008236,8.704467919999432,10.300584612419458,9.520485204167082,9.860580805991583,9.520845779763503,9.3,1.9,14.206930139564697 +WI,5.529717351086974,8.394920719261709,5.627888668819814,7.887953197634016,7.303587528571846,6.517508913056166,7.322539660055865,7.3,1.7,7.034634564819478 +WV,9.056608472111039,11.373729523079849,10.470098272081291,10.990472100104546,10.944766631755229,10.30014542242406,10.947609311022028,11.3,2.4,17.93170551281414 +WY,5.911528861090066,6.777060710225308,5.526562270915909,7.224422330490823,6.50934843721068,6.071717280743761,6.513375640873973,6.5,1.4,8.787559212429837 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/blank_holders_state.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/blank_holders_state.csv new file mode 100644 index 0000000000..1e2e59d21b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/blank_holders_state.csv @@ -0,0 +1,52 @@ +fips,people,blank,weighted_share +1,56748.0,3079.0,0.7176 +2,9370.0,2444.0,0.6062 +4,79224.0,3548.0,0.6817 +5,35086.0,2839.0,0.686 +6,401287.0,7866.0,0.7411 +8,66055.0,3274.0,0.6704 +9,40478.0,2577.0,0.6801 +10,12908.0,3039.0,0.6502 +11,7874.0,1334.0,0.6567 +12,217666.0,4651.0,0.7059 +13,115511.0,3706.0,0.7364 +15,18005.0,2900.0,0.662 +16,23270.0,2409.0,0.6698 +17,133658.0,4747.0,0.7091 +18,74477.0,3407.0,0.67 +19,36585.0,2835.0,0.6805 +20,33345.0,2661.0,0.6642 +21,50199.0,2290.0,0.6605 +22,48843.0,2865.0,0.7128 +23,16895.0,2089.0,0.6454 +24,66021.0,3268.0,0.685 +25,78948.0,4418.0,0.6864 +26,106828.0,4137.0,0.7049 +27,63309.0,3439.0,0.6536 +28,32515.0,2580.0,0.6918 +29,68492.0,2892.0,0.6733 +30,13380.0,1945.0,0.6606 +31,23250.0,2713.0,0.6862 +32,34405.0,2936.0,0.6801 +33,16742.0,2374.0,0.6773 +34,99281.0,4909.0,0.6934 +35,23353.0,2622.0,0.6692 +36,216135.0,6263.0,0.7075 +37,117941.0,3790.0,0.7089 +38,10248.0,1850.0,0.6741 +39,126353.0,4315.0,0.6806 +40,41817.0,2623.0,0.722 +41,47727.0,3349.0,0.6537 +42,140057.0,5755.0,0.6772 +44,12490.0,2256.0,0.6983 +45,59791.0,2744.0,0.6558 +46,11897.0,2288.0,0.686 +47,78064.0,3193.0,0.7062 +48,297905.0,5782.0,0.721 +49,39652.0,2901.0,0.7023 +50,8178.0,1245.0,0.6513 +51,93495.0,4116.0,0.7027 +53,86629.0,3743.0,0.6478 +54,20874.0,2421.0,0.6796 +55,66235.0,3325.0,0.6763 +56,7767.0,1569.0,0.6957 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/calibration_step.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/calibration_step.csv new file mode 100644 index 0000000000..caf0e6faaa --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/calibration_step.csv @@ -0,0 +1,7 @@ +file,flag,state_mean,sd,mad,lo,hi,nat0,nat1 +dense,E,2.7446254558356746,2.311749768033538,2.950206190174111,-1.8586691016087276,8.77288577640143,13.026570368816854,16.310518582644047 +dense,P24,3.3275919093191497,2.577445198834858,3.4591933544584097,-1.23633359047282,10.220851602573347,12.63757118670643,16.62485941023528 +dense,P25,3.618045475172117,2.7730276620413616,3.728954384484352,-2.0617749572391553,10.746199826624167,13.85927993180634,18.189540502544496 +default,E,1.579289632318173,4.890845231348732,3.0660636493881506,-4.980252557301684,27.594920024129348,15.0620764477773,16.502406199878294 +default,P24,-0.04760032894573479,3.867933516069185,2.9057038622883824,-9.95904891623367,10.034501005574803,15.347836112351281,15.688595607597467 +default,P25,-0.030965633449412864,3.9801525261120236,2.991129896216945,-10.30849681189191,8.35697210640871,16.69840528239648,17.16724469444985 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/census_child_spm.json b/docs/evidence/us-state-child-spm-2026-11/outputs/census_child_spm.json new file mode 100644 index 0000000000..472b1ec7ac --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/census_child_spm.json @@ -0,0 +1,260 @@ +{ + "source": "U.S. Census Bureau, Poverty in the United States: 2025 (P60-290), Table 18: SPM percent and margin of error for people under 18, three-year average 2023 to 2025", + "rows": [ + { + "state": "AK", + "rate": 10.5, + "moe": 2.1 + }, + { + "state": "AL", + "rate": 15.5, + "moe": 2.4 + }, + { + "state": "AR", + "rate": 13.3, + "moe": 2.7 + }, + { + "state": "AZ", + "rate": 13.3, + "moe": 2.3 + }, + { + "state": "CA", + "rate": 17.9, + "moe": 1.0 + }, + { + "state": "CO", + "rate": 7.7, + "moe": 1.8 + }, + { + "state": "CT", + "rate": 12.8, + "moe": 3.2 + }, + { + "state": "DC", + "rate": 20.3, + "moe": 3.7 + }, + { + "state": "DE", + "rate": 8.7, + "moe": 2.6 + }, + { + "state": "FL", + "rate": 18.4, + "moe": 1.8 + }, + { + "state": "GA", + "rate": 15.1, + "moe": 2.2 + }, + { + "state": "HI", + "rate": 13.0, + "moe": 2.6 + }, + { + "state": "IA", + "rate": 8.2, + "moe": 1.9 + }, + { + "state": "ID", + "rate": 6.5, + "moe": 1.3 + }, + { + "state": "IL", + "rate": 12.4, + "moe": 1.6 + }, + { + "state": "IN", + "rate": 10.6, + "moe": 2.2 + }, + { + "state": "KS", + "rate": 9.7, + "moe": 2.5 + }, + { + "state": "KY", + "rate": 13.3, + "moe": 2.9 + }, + { + "state": "LA", + "rate": 20.7, + "moe": 3.0 + }, + { + "state": "MA", + "rate": 12.8, + "moe": 2.0 + }, + { + "state": "MD", + "rate": 10.7, + "moe": 2.5 + }, + { + "state": "ME", + "rate": 6.5, + "moe": 2.3 + }, + { + "state": "MI", + "rate": 10.3, + "moe": 1.9 + }, + { + "state": "MN", + "rate": 6.9, + "moe": 1.9 + }, + { + "state": "MO", + "rate": 9.7, + "moe": 2.3 + }, + { + "state": "MS", + "rate": 19.1, + "moe": 2.6 + }, + { + "state": "MT", + "rate": 9.3, + "moe": 2.3 + }, + { + "state": "NC", + "rate": 14.4, + "moe": 2.2 + }, + { + "state": "ND", + "rate": 10.3, + "moe": 2.1 + }, + { + "state": "NE", + "rate": 7.1, + "moe": 1.9 + }, + { + "state": "NH", + "rate": 7.5, + "moe": 2.4 + }, + { + "state": "NJ", + "rate": 13.3, + "moe": 1.9 + }, + { + "state": "NM", + "rate": 10.9, + "moe": 2.1 + }, + { + "state": "NV", + "rate": 15.0, + "moe": 2.5 + }, + { + "state": "NY", + "rate": 16.2, + "moe": 1.9 + }, + { + "state": "OH", + "rate": 12.3, + "moe": 2.1 + }, + { + "state": "OK", + "rate": 9.9, + "moe": 2.0 + }, + { + "state": "OR", + "rate": 11.0, + "moe": 2.4 + }, + { + "state": "PA", + "rate": 11.1, + "moe": 2.0 + }, + { + "state": "RI", + "rate": 8.4, + "moe": 2.3 + }, + { + "state": "SC", + "rate": 11.1, + "moe": 2.1 + }, + { + "state": "SD", + "rate": 7.8, + "moe": 2.2 + }, + { + "state": "TN", + "rate": 10.0, + "moe": 1.7 + }, + { + "state": "TX", + "rate": 16.1, + "moe": 1.3 + }, + { + "state": "UT", + "rate": 7.3, + "moe": 1.6 + }, + { + "state": "VA", + "rate": 12.1, + "moe": 2.4 + }, + { + "state": "VT", + "rate": 8.3, + "moe": 2.5 + }, + { + "state": "WA", + "rate": 9.3, + "moe": 1.9 + }, + { + "state": "WI", + "rate": 7.3, + "moe": 1.7 + }, + { + "state": "WV", + "rate": 11.3, + "moe": 2.4 + }, + { + "state": "WY", + "rate": 6.5, + "moe": 1.4 + } + ] +} \ No newline at end of file diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/census_flags_by_file.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/census_flags_by_file.csv new file mode 100644 index 0000000000..d795daa69e --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/census_flags_by_file.csv @@ -0,0 +1,54 @@ +,dense_0fb05b6,dense_0fb05b6,dense_0fb05b6,dense_0fb05b6,dense_0fb05b6,dense_b5db384,dense_b5db384,dense_b5db384,dense_b5db384,dense_b5db384,sparse_buildp,sparse_buildp,sparse_buildp,sparse_buildp,sparse_buildp +,D,E,kish,records,pool,D,E,kish,records,pool,D,E,kish,records,pool +state,,,,,,,,,,,,,,, +AK,11.131780918645298,16.409248822192428,1280.7510750009108,3711.0,10.63727350941989,11.131780918645298,16.194556293612283,1169.3861887465123,3711.0,10.63727350941989,11.254415609256204,9.02435136344812,133.09802879677864,826.0,10.63727350941989 +AL,14.349346237703015,15.89226777693915,2088.615780083505,7443.0,14.52167252274178,14.349346237703015,16.81316469985187,1976.4790585338922,7443.0,14.52167252274178,17.20573894774863,16.607525526139906,236.55107319475567,1061.0,14.52167252274178 +AR,14.276444444479772,12.825540195637286,1892.8420311303146,6430.0,14.504743236755639,14.276444444479772,12.912154401478993,1716.7022179354965,6430.0,14.504743236755639,12.289322385665908,11.984027385304842,205.8083941145262,952.0,14.504743236755639 +AZ,14.948852037802352,17.901579761568623,1674.6315963913416,5956.0,14.40999099467131,14.948852037802352,18.674716085081368,1540.5216061069773,5956.0,14.40999099467131,21.57817380236772,22.489854894589172,189.9592184041849,1164.0,14.40999099467131 +CA,18.235503457287603,20.114380150638027,7670.714505093112,32227.0,18.185493904287227,18.235503457287603,20.714954017464414,7204.835794233725,32227.0,18.185493904287227,14.206351955773922,17.979249773877193,964.8602100502725,2659.0,18.185493904287227 +CO,7.9968313639306,14.063894907340558,1247.343333114155,4699.0,7.780825228745068,7.9968313639306,14.486536550855025,1161.2219460807694,4699.0,7.780825228745068,10.429439428326544,10.858414646733081,145.44069869412928,1164.0,7.780825228745068 +CT,11.70149208575182,13.970654873990696,1120.6475629790366,3950.0,11.660081693117474,11.70149208575182,15.630098846008295,1046.5621029311478,3950.0,11.660081693117474,12.712232820324143,13.003823363877945,135.72407292141725,908.0,11.660081693117474 +DC,17.419199318491437,26.462166367099112,1651.4730071307958,6010.0,18.645680118547503,17.419199318491437,26.19208509489287,1504.3875662957523,6010.0,18.645680118547503,25.107467339097344,52.70238736322671,175.55582471377855,551.0,18.645680118547503 +DE,10.325839764433509,14.390692389077309,1173.359368474098,3840.0,10.205229328533838,10.325839764433509,15.1446114450492,1075.229082564426,3840.0,10.205229328533838,13.714216479420605,12.957297100970527,138.95841520788005,1068.0,10.205229328533838 +FL,17.60076643715988,23.71904357503944,4246.633594761431,17540.0,17.570857709001235,17.60076643715988,24.111702712389313,4042.4659346065437,17540.0,17.570857709001235,29.92687351127549,30.877687609630772,561.2687931315957,1642.0,17.570857709001235 +GA,14.034036177358722,16.962398846163925,1957.9603812073149,8027.0,14.056486355164198,14.034036177358722,17.623853759390897,1841.1834632880982,8027.0,14.056486355164198,19.172565110812638,14.400959324173607,256.7233154812113,1215.0,14.056486355164198 +HI,12.575145854583731,11.59818316645407,1631.012338914187,5519.0,12.161665297509549,12.575145854583731,11.774189166659875,1518.9808324226597,5519.0,12.161665297509549,12.015548988928826,17.244110656462933,197.42767354447827,838.0,12.161665297509549 +IA,7.256733570877532,8.362354924864498,1247.6072581662174,4021.0,6.697183249467911,7.256733570877532,8.997492557025778,1092.60631025202,4021.0,6.697183249467911,10.242234105123705,13.196425186307861,138.47468958011123,973.0,6.697183249467911 +ID,5.723320669313954,6.387720650162759,1772.2180493196815,5683.0,5.77134510473802,5.723320669313954,6.956496379813835,1630.6139168055572,5683.0,5.77134510473802,7.336601852578505,8.131051782451717,185.13141307532993,746.0,5.77134510473802 +IL,11.558174183427155,14.208662996819802,2444.5012885319684,9485.0,11.04112115849542,11.558174183427155,13.097726188757402,2296.1455316721667,9485.0,11.04112115849542,13.743942334352646,14.16498918846737,276.79640609431533,1668.0,11.04112115849542 +IN,8.844078013025944,11.004940336297551,1642.6182505302718,5514.0,9.226433776185763,8.844078013025944,11.12617544900566,1539.927083172241,5514.0,9.226433776185763,10.788234383701989,10.352642869057032,177.01966696059426,1141.0,9.226433776185763 +KS,9.599689002818245,10.934496514861085,1248.8827111978544,4349.0,9.118763273604634,9.599689002818245,11.020574580945842,1156.809988161519,4349.0,9.118763273604634,14.94322355814495,9.962971000843263,148.6054105840971,921.0,9.118763273604634 +KY,14.932039244810197,14.87288599780986,1174.4216390639226,3703.0,14.986227051381514,14.932039244810197,14.81804989436489,1086.0873481475237,3703.0,14.986227051381514,13.828225052270895,18.59272575763501,129.52044465545663,776.0,14.986227051381514 +LA,18.621449668093963,20.221036114520672,2197.0911544184887,8125.0,18.973724007771963,18.621449668093963,20.921902545827148,2060.762243627255,8125.0,18.973724007771963,22.085137122858203,20.19458093390622,260.90086270703296,1000.0,18.973724007771963 +MA,11.53687151947103,14.672277207145926,2252.8350178139995,7841.0,11.621575133384676,11.53687151947103,15.659158722663257,2084.820714422103,7841.0,11.621575133384676,14.675608124097286,15.432276127472935,254.60923423077767,1522.0,11.621575133384676 +MD,12.068845221556595,15.540937920348599,1046.836285937356,4246.0,12.208716997979684,12.068845221556595,15.766838509318848,978.9039968370985,4246.0,12.208716997979684,16.713304998145034,23.306342504048914,142.9724839367435,1091.0,12.208716997979684 +ME,5.156870749210488,5.606472024619577,866.6710044577735,2628.0,5.222029015225935,5.156870749210488,5.62705909525707,794.2344728611527,2628.0,5.222029015225935,6.088127903206732,5.727408884425186,98.94461640482403,785.0,5.222029015225935 +MI,9.701134578974726,11.011631346347086,2193.0928548546135,7650.0,10.154461765799077,9.701134578974726,11.830697098340064,2043.9166761025806,7650.0,10.154461765799077,12.622334376667203,17.304622119910075,244.58681076309966,1478.0,10.154461765799077 +MN,7.227378314093075,8.234486675040504,1348.4281791255778,4530.0,6.579645686594481,7.227378314093075,8.20760623793026,1259.5070972476221,4530.0,6.579645686594481,9.051686772833191,12.552582952572417,151.41085939244604,1166.0,6.579645686594481 +MO,11.02176183080613,15.00740740105141,1473.9613604695558,5025.0,10.833770888835303,11.02176183080613,15.117478696997525,1349.687665254501,5025.0,10.833770888835303,15.16556753403146,15.310910601606182,158.23194083624088,1013.0,10.833770888835303 +MS,16.552249744335537,14.925509597093173,1783.4174259286635,6379.0,17.272611054059027,16.552249744335537,15.841985521987509,1647.8291875973648,6379.0,17.272611054059027,16.53300114339551,11.967844917314173,217.18543432971407,882.0,17.272611054059027 +MT,7.589720944518802,10.715414328134916,1670.3485766525316,5670.0,8.062551231858308,7.589720944518802,11.255244273164978,1553.3789131849069,5670.0,8.062551231858308,13.034331765361454,17.49391920500919,189.76250275414372,744.0,8.062551231858308 +NC,15.12505841909942,17.292650725444584,2377.7048588391494,8922.0,15.126721434263738,15.12505841909942,18.817700694339482,2143.7949464360154,8922.0,15.126721434263738,16.893222194580012,15.75593178546281,278.9726584586971,1337.0,15.126721434263738 +ND,9.489454591563454,7.4930715915659345,1488.6629336263418,4470.0,9.260943865010477,9.489454591563454,7.63078548995473,1369.1397640143823,4470.0,9.260943865010477,10.488822804193942,5.963289575658017,154.69431792442464,682.0,9.260943865010477 +NE,6.977099490263862,9.874967574503078,1294.0893462688755,4209.0,6.7717742784662205,6.977099490263862,9.417314380262143,1199.1505396928244,4209.0,6.7717742784662205,7.595127929561856,8.837638979188856,145.9510960348787,884.0,6.7717742784662205 +NH,7.365400934971398,7.55989048122407,1320.788056304331,3866.0,6.989285032471943,7.365400934971398,7.493675599383199,1184.8552463634048,3866.0,6.989285032471943,7.264752309850339,9.200421541459052,140.868912806551,840.0,6.989285032471943 +NJ,13.522145840019196,15.27964206272619,1765.52782718692,6618.0,14.028221053513889,13.522145840019196,15.826171775172057,1617.174530250633,6618.0,14.028221053513889,15.111919351810663,14.122366700093778,214.92794357369306,1651.0,14.028221053513889 +NM,11.093335147719058,13.19145891647553,1977.8572109994464,6404.0,10.707799039515786,11.093335147719058,12.969735825865722,1859.4603873883643,6404.0,10.707799039515786,8.458222023113725,9.179683456657028,197.21158124194926,902.0,10.707799039515786 +NV,15.751080999100939,15.27740236267875,1322.7437263497548,5019.0,15.048839431902843,15.751080999100939,15.356941678797515,1250.4594868742392,5019.0,15.048839431902843,16.612958155740255,19.623393902835147,153.2144587425425,952.0,15.048839431902843 +NY,15.311217986494224,17.727448686251858,3452.9544751004355,13712.0,15.474679110642427,15.311217986494224,18.324898381557144,3177.6667317192346,13712.0,15.474679110642427,21.247277713032837,16.35358569469746,431.19504540166105,2166.0,15.474679110642427 +OH,10.081949077315661,14.184989972902537,2566.9987490775793,8451.0,9.942146782005672,10.081949077315661,15.005100188964308,2383.770343011138,8451.0,9.942146782005672,12.125989312775257,9.176284846402721,259.8938711628161,1531.0,9.942146782005672 +OK,11.03247567487848,15.070765045769477,1546.6536933581347,5430.0,11.214848411044043,11.03247567487848,15.331135386083364,1454.7419122591948,5430.0,11.214848411044043,12.51777978580922,14.082912185032026,184.8895033261389,918.0,11.214848411044043 +OR,11.364423373050506,18.88326041399511,1625.0005321736894,5323.0,11.085986208606952,11.364423373050506,19.693949406262277,1485.3375012702109,5323.0,11.085986208606952,14.735407120410818,19.66425090664921,174.20405252731825,1152.0,11.085986208606952 +PA,10.84828598731419,12.91824315099976,2731.3710260837947,9463.0,10.941869826886544,10.84828598731419,14.39710192949929,2547.921210136899,9463.0,10.941869826886544,13.21552692251402,12.767784123857522,313.9407214900252,1999.0,10.941869826886544 +RI,7.78932858171827,9.924885410509757,942.3827269013855,3058.0,8.076501658479588,7.78932858171827,9.727133622169012,899.3144720449286,3058.0,8.076501658479588,8.976898416653533,19.332812444582338,115.36121502541874,804.0,8.076501658479588 +SC,12.417047923341366,13.481802309422688,1750.8930522887995,6283.0,12.868934143856452,12.417047923341366,14.939913919997874,1623.6836827846898,6283.0,12.868934143856452,13.126431926501269,16.06576164992219,198.57355826188999,955.0,12.868934143856452 +SD,7.191863420735705,7.15230122109354,1190.7247275915206,3801.0,7.258550860609268,7.191863420735705,7.1943546633170445,1094.5389160969194,3801.0,7.258550860609268,7.545697095129558,8.96203665111507,140.02483771729896,866.0,7.258550860609268 +TN,8.00160073661006,13.762351891967059,1887.2577326243,6467.0,8.346465012882406,8.00160073661006,14.058012515615667,1763.3304502796598,6467.0,8.346465012882406,12.572049003889626,11.157478600297567,213.4611164306311,1082.0,8.346465012882406 +TX,15.749270231375428,17.92155587074783,5696.62738654864,22333.0,15.824676189819398,15.749270231375428,18.32664253946711,5273.815930090872,22333.0,15.824676189819398,17.729657601322774,19.423503557645418,671.2372643331317,1875.0,15.824676189819398 +UT,5.7300090983360175,6.036792178440205,1403.311640884394,5183.0,5.832767479223378,5.7300090983360175,5.937223674095712,1311.4449701092092,5183.0,5.832767479223378,7.393320952153151,9.803531004406727,182.57153743556984,861.0,5.832767479223378 +VA,12.238309974172203,16.221242815876778,1784.5979885078273,6658.0,12.148499557997136,12.238309974172203,16.87925749863849,1661.048991339211,6658.0,12.148499557997136,18.80234608766441,21.462234707033442,215.49254181633236,1394.0,12.148499557997136 +VT,8.966681400257917,9.305865072985394,1476.0710716066164,4378.0,8.513468224047331,8.966681400257917,9.348212080687897,1395.3472366116268,4378.0,8.513468224047331,10.197888340394693,17.300133702601787,155.57089695495154,496.0,8.513468224047331 +WA,9.664098361618834,13.317556355939717,2080.2513104113555,6795.0,9.860580805991583,9.664098361618834,14.29671944784773,1919.3611344178046,6795.0,9.860580805991583,11.108326891761418,12.49154024058394,217.79313599494608,1305.0,9.860580805991583 +WI,6.386789538126811,9.578233382949508,1424.2270842686853,4901.0,6.517508913056166,6.386789538126811,9.30739167909626,1320.9299173458971,4901.0,6.517508913056166,10.404423491398967,9.74414537106952,168.6388492204826,1232.0,6.517508913056166 +WV,10.171742192049425,13.203687634416458,2287.5784883828014,6601.0,10.30014542242406,10.171742192049425,14.149743438058252,2099.7713929818706,6601.0,10.30014542242406,10.969674553034984,14.862075940319261,220.39920666393735,845.0,10.30014542242406 +WY,6.107100782375785,8.952917711254516,1109.6668807220467,4386.0,6.071717280743761,6.107100782375785,9.390998723821976,1052.0330115644163,4386.0,6.071717280743761,5.77544618818918,8.723064218446835,157.0853280537897,557.0,6.071717280743761 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/cf_state.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/cf_state.csv new file mode 100644 index 0000000000..339b956af2 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/cf_state.csv @@ -0,0 +1,52 @@ +state,census,base,aged,reform,aged_d,aged_se,ref_d,ref_se +AK,10.5,11.644427030114803,11.643429227455554,9.356088951412733,-0.0009978026592492029,0.000960112910447603,-2.28833807870207,2.261766560795337 +AL,15.5,16.987156204496586,16.51390629450606,11.188350089286738,-0.47324990999052474,0.4745377880034005,-5.798806115209848,3.0493082322103064 +AR,13.3,8.128457681954234,8.128457681954234,6.529882948085271,0.0,0.0,-1.598574733868963,1.583121738634196 +AZ,13.3,16.95118629081782,16.951148278389134,14.06926985806545,-3.8012428685618715e-05,3.6534290498381e-05,-2.8819164327523694,2.036349348806637 +CA,17.9,24.416506507457978,23.488632416049214,18.74096668707447,-0.9278740914087642,0.6168570408154611,-5.675539820383509,1.790537707557314 +CO,7.7,10.352503583390458,10.189434110455789,10.189348659243352,-0.16306947293466934,0.1646424584938923,-0.16315492414710597,0.16464405504737262 +CT,12.8,13.37130725177666,13.37124987856117,12.920574476673922,-5.737321549048602e-05,5.7139429159669644e-05,-0.4507327751027379,0.4533885432420388 +DC,20.3,34.36530331852772,26.869737056411758,18.97730178311427,-7.495566262115965,7.069346336014555,-15.388001535413451,8.308628706330074 +DE,8.7,22.42918607516834,22.42918470264657,15.410643123303826,-1.3725217691273883e-06,1.3893715902063216e-06,-7.018542951864513,3.691136821579667 +FL,18.4,28.15649904995264,27.680820883074595,24.737234071015024,-0.4756781668780441,0.46410585220491035,-3.4192649789376155,1.6791050313837301 +GA,15.1,18.428986886706188,17.93430455389714,14.403377453853569,-0.49468233280904883,0.4957793744725546,-4.025609432852619,1.9452189916221743 +HI,13.0,7.019040434276882,7.605855751607297,6.534674738334569,0.5868153173304149,0.5893147470369712,-0.48436569594231305,0.48691397019613786 +IA,8.2,8.808982597327754,8.808982214230436,7.9476401538571375,-3.830973174245855e-07,3.876012088235121e-07,-0.8613424434706163,0.8639629226028857 +ID,6.5,6.9578273141402125,6.95782715756334,5.019753077926579,-1.5657687235659523e-07,1.5797305884850147e-07,-1.9380742362136338,1.368717767880322 +IL,12.4,14.678691537509486,13.327169247963777,11.612004476965458,-1.3515222895457093,1.068071685247731,-3.0666870605440284,1.5491895823967223 +IN,10.6,12.734348293509466,12.191554621759558,9.793373408043927,-0.5427936717499087,0.5446883906476108,-2.9409748854655398,2.168107456504604 +KS,9.7,9.659862114476377,9.505860330849227,5.497535642161538,-0.1540017836271499,0.15525522028604014,-4.162326472314839,4.029466247367279 +KY,13.3,18.537173560636017,13.411581508246579,16.038957259321528,-5.125592052389438,4.920904725694563,-2.498216301314489,1.8669970965168168 +LA,20.7,12.087426776757606,11.778797395923913,10.390391777462405,-0.3086293808336933,0.30996814766262515,-1.6970349992952016,1.244061882460288 +MA,12.8,20.202673733449153,20.20264664134427,15.808287284959627,-2.7092104883053025e-05,2.419099874498959e-05,-4.394386448489525,3.0137922324180977 +MD,10.7,23.165434057221024,16.919395060679516,16.896225947393066,-6.2460389965415075,5.128839418273168,-6.269208109827957,5.131061227001518 +ME,6.5,12.449100804293858,12.449100804293858,7.215819954175362,0.0,0.0,-5.233280850118496,3.6852097488984494 +MI,10.3,14.518361806845276,13.40354729076479,9.243604901831914,-1.1148145160804859,0.7957684239996845,-5.274756905013362,2.1903792925304875 +MN,6.9,8.431428349451641,8.431428281153337,6.925550944312631,-6.82983039013152e-08,6.91212479406765e-08,-1.5058774051390102,1.50139588130885 +MO,9.7,18.479794346249815,18.479794346249815,9.929624274519105,0.0,0.0,-8.55017007173071,4.440221636189807 +MS,19.1,12.942210983876368,12.942210983876368,8.533672553872645,0.0,0.0,-4.408538430003723,3.089441890755916 +MT,9.3,2.530943570644209,2.530943570644209,2.4569410164102665,0.0,0.0,-0.07400255423394242,0.05399142126716014 +NC,14.4,18.100974606703634,17.024415267618977,8.524184625853266,-1.0765593390846568,0.7628958393434667,-9.576789980850368,3.1899493361318587 +ND,10.3,11.130475374010498,11.13047508895545,10.65836939200694,-2.85055048010463e-07,2.8883174137525173e-07,-0.47210598200355847,0.47603655627215385 +NE,7.1,10.711871739273763,9.767844556134538,5.476826329567906,-0.9440271831392248,0.9454923910734041,-5.235045409705856,3.0986534454180514 +NH,7.5,10.516178236344569,8.192359417034215,5.897617165025005,-2.323818819310354,1.7666061872879941,-4.618561071319564,2.709970775165079 +NJ,13.3,10.924964213914967,10.924957632719114,10.92484182128186,-6.581195853172517e-06,5.499263006833095e-06,-0.00012239263310753756,7.640475118836059e-05 +NM,10.9,10.15133656941352,10.150137300289675,8.902278712657822,-0.001199269123844715,0.0012108380992284663,-1.249057856755698,1.2442989269141707 +NV,15.0,19.07006538200538,19.070049756566235,14.558931641350906,-1.562543914701564e-05,1.1083686563102814e-05,-4.511133740654476,2.5801182549647783 +NY,16.2,17.72711706952501,17.43521603789165,14.542075331228029,-0.2919010316333619,0.2911424525029866,-3.1850417382969827,1.5842817878176936 +OH,12.3,9.813281011698676,9.438895521371638,7.20050903246034,-0.37438549032703783,0.3757610752203432,-2.612771979238336,1.9150486506010898 +OK,9.9,17.214397377076793,16.537103292883643,11.286918819658391,-0.6772940841931501,0.679246301289913,-5.927478557418402,2.5537495322141823 +OR,11.0,16.287025373398983,16.287025124729947,12.998719745100383,-2.486690355851806e-07,2.515283613852294e-07,-3.2883056282986,3.217098292413338 +PA,11.1,14.135315176005454,13.59675161302163,11.680181152053198,-0.5385635629838248,0.5386120666081763,-2.4551340239522563,1.4519790372745882 +RI,8.4,17.874883410231842,17.874883410231842,10.689761970551206,0.0,0.0,-7.1851214396806355,4.6435424225791495 +SC,11.1,9.884637709168972,9.884627090365557,5.854587409432078,-1.0618803415241018e-05,1.0690055018428396e-05,-4.030050299736894,2.0589147357202022 +SD,7.8,11.338984093590906,8.831151821846257,8.573140226226952,-2.5078322717446486,2.4759245403722248,-2.7658438673639534,2.0935114378530892 +TN,10.0,23.237083981929008,19.828560194551294,15.311922644897072,-3.408523787377714,2.496303660129884,-7.925161337031936,3.631677276792304 +TX,16.1,19.24437088161237,17.378727592360132,13.742161117124438,-1.8656432892522368,1.0237587765303886,-5.502209764487931,1.8033144100229541 +UT,7.3,13.211297573661492,13.2112969780398,11.93803500097427,-5.956216924118962e-07,5.496529191364889e-07,-1.273262572687221,1.2668590582628771 +VA,12.1,18.12834310047842,18.12832191713219,16.20727280810839,-2.1183346230913003e-05,2.0581119195468716e-05,-1.9210702923700325,1.8969955166459491 +VT,8.3,17.678700212574228,17.67870002324115,14.293245513016384,-1.89333078992604e-07,1.9220175809913354e-07,-3.385454699557844,2.4513588355580507 +WA,9.3,14.206930055854658,13.745158693529802,12.144826817691069,-0.46177136232485516,0.46363601457792836,-2.062103238163589,1.5064467653404392 +WI,7.3,7.034634654513512,6.225068687077606,3.664659065878091,-0.8095659674359066,0.8120373590228037,-3.3699755886354215,2.6397463077510985 +WV,11.3,17.93170541550054,17.298223741260962,6.787849956747667,-0.6334816742395795,0.6361094102083887,-11.143855458752874,5.3061060417418116 +WY,6.5,8.787559151426473,8.787354254712252,8.278877229830464,-0.00020489671422119216,0.00020726293128274842,-0.5086819215960094,0.5117664587615717 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/chi_eval.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/chi_eval.csv new file mode 100644 index 0000000000..54b1acba47 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/chi_eval.csv @@ -0,0 +1,8 @@ +,kish,natE,natP25,kids_m,med_se,mean_gap,sd_gap,mad,corr,tau +published,9174.432030037513,16.502406199878294,17.16724469444985,76.68300544760096,4.0410378809574645,3.2368029908027895,5.110599853784951,4.798497276265718,0.5168815743952837,2.731850116733383 +initial,42354.89991775766,15.0620764477773,16.69840528239648,81.55663372127822,2.2024435353488827,3.2677686242522026,4.012696814911332,4.20659998326037,0.6516693967552849,2.7380054458133998 +l0.003,13981.181825100262,16.089572612479138,16.734270656393615,76.48069635725693,3.7208685795405003,3.0694873446398083,4.9187459259366,4.787101242487701,0.45282373076295457,2.7316659778557324 +l0.01,19725.072361575498,16.40326201771537,17.297121852237392,75.79766898059314,3.2774313352695215,3.4223451602722323,4.705581483315894,4.941355623094533,0.5190948288703109,3.1381804770359394 +l0.03,26321.55088467229,17.337614337387453,18.9197921050442,75.76725252787328,2.776073997161351,4.770693507293791,4.739880915173033,5.657886610058391,0.5658419883378385,3.4324687116868646 +l0.1,37346.284503486124,17.736224548692643,19.820694251379123,84.62530263971136,2.4977027911193157,5.175052017193905,4.299931397428465,5.659113316978163,0.6757311127900032,3.009051999783622 +l0.3,40984.23285762958,16.898280271659456,18.795789830547022,84.86742884423965,2.3784240957673113,4.5520291736025085,4.1636740756618895,5.070038506807206,0.6940762651236411,2.813210954269435 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dash_swing.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dash_swing.csv new file mode 100644 index 0000000000..7b69566383 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dash_swing.csv @@ -0,0 +1,52 @@ +,p24,p25,o24,o25,o25_18252,o24_221 +AK,-4.189894676208496,-5.673839092254639,-4.373375415802002,-1.7095413208007812,-6.640180587768555,-4.373375415802002 +AL,-5.012664794921875,-4.470902442932129,-2.8875207901000977,-2.7333478927612305,-4.968289375305176,-3.838292121887207 +AR,-1.5955448150634766,-2.695366144180298,-1.4236054420471191,-1.9772796630859375,-2.3963615894317627,-1.4233779907226562 +AZ,-10.281723976135254,-9.662915229797363,-3.781346321105957,-6.3656511306762695,-11.923871517181396,-3.8333358764648438 +CA,-3.736156463623047,-3.880396842956543,-4.793203353881836,-5.535208702087402,-3.742342948913574,-4.8096923828125 +CO,-0.6606168746948242,-0.8275508880615234,-0.8121490478515625,-0.9536361694335938,-0.925776481628418,-0.7850923538208008 +CT,-1.7586374282836914,-1.7703189849853516,-2.002377510070801,-2.030771255493164,-1.9308042526245117,-2.0001754760742188 +DC,-1.3295745849609375,-2.9570493698120117,-8.179778099060059,-7.9533491134643555,-2.8667736053466797,-8.129595756530762 +DE,-2.33499813079834,-2.279691696166992,-5.36961555480957,-5.435258865356445,-2.457225799560547,-5.36961555480957 +FL,-3.865865707397461,-3.357553482055664,-5.740966796875,-3.9676551818847656,-6.100198745727539,-5.701401710510254 +GA,-3.080746650695801,-2.6071701049804688,-4.445429801940918,-3.4896020889282227,-2.86575984954834,-4.791293144226074 +HI,-3.5331966876983643,-2.710688829421997,-2.608574390411377,-2.785074472427368,-3.5598132610321045,-2.608574390411377 +IA,-1.2073469161987305,-1.085604190826416,-0.9085164070129395,-0.8048229217529297,-0.7547454833984375,-0.9023137092590332 +ID,-1.167829990386963,-1.0795774459838867,-1.1714277267456055,-1.901484489440918,-1.0411276817321777,-1.097053050994873 +IL,-7.139523506164551,-6.458962440490723,-4.282228469848633,-8.83888053894043,-8.613019943237305,-4.282962799072266 +IN,-3.4897637367248535,-3.511981964111328,-2.219841957092285,-2.1886167526245117,-3.0147900581359863,-2.1482343673706055 +KS,-4.764968395233154,-4.5028886795043945,-6.837752819061279,-5.541018486022949,-6.498903751373291,-6.973252773284912 +KY,-3.459348201751709,-3.3902740478515625,-2.6096558570861816,-2.5431671142578125,-3.135756015777588,-2.5220632553100586 +LA,-5.638120174407959,-4.8973894119262695,-3.1079702377319336,-1.4829511642456055,-4.254573822021484,-3.1211328506469727 +MA,-4.3399858474731445,-3.395580291748047,-3.340383529663086,-3.3914051055908203,-3.1008968353271484,-2.5382080078125 +MD,-0.8330593109130859,-7.321868896484375,-1.5074882507324219,-9.015921592712402,-6.742190361022949,-1.5407180786132812 +ME,-2.779177188873291,-2.7190308570861816,-2.5734190940856934,-2.655895233154297,-2.7348837852478027,-2.570552349090576 +MI,-2.7965292930603027,-4.478377103805542,-2.080575466156006,-3.4591875076293945,-4.55608344078064,-2.118161678314209 +MN,-0.5588521957397461,-0.5429868698120117,-1.079054832458496,-0.9754786491394043,-0.8658616542816162,-1.0532169342041016 +MO,-5.693965435028076,-6.024465084075928,-6.493651390075684,-8.944635391235352,-6.490201950073242,-6.476726531982422 +MS,-4.121949672698975,-4.28740119934082,-5.5541839599609375,-4.007966995239258,-4.833344459533691,-5.625495433807373 +MT,-0.7315001487731934,-0.6603364944458008,-0.8444640636444092,-0.768653154373169,-0.6661734580993652,-0.9424371719360352 +NC,-2.9216790199279785,-2.721771240234375,-4.820042610168457,-4.398758888244629,-3.844996452331543,-6.247556209564209 +ND,-1.095254898071289,-1.1478958129882812,-0.9279356002807617,-1.2256460189819336,-0.6770458221435547,-0.9017829895019531 +NE,-5.928585529327393,-4.526432991027832,-6.791402339935303,-6.594109296798706,-4.920290470123291,-6.791403293609619 +NH,-3.1012496948242188,-1.7489027976989746,-1.7163872718811035,-1.8274922370910645,-1.6276025772094727,-1.695164680480957 +NJ,-1.2045764923095703,-1.0750389099121094,-1.1831417083740234,-1.7260732650756836,-1.1427698135375977,-1.0962090492248535 +NM,-5.908068656921387,-5.670726776123047,-6.657066345214844,-5.910312652587891,-6.02302360534668,-6.644031524658203 +NV,-2.995401382446289,-2.899956703186035,-2.7631330490112305,-1.9952678680419922,-2.785487174987793,-2.719846725463867 +NY,-3.84584903717041,-3.301645278930664,-3.8091773986816406,-3.3273448944091797,-3.8251752853393555,-3.8059425354003906 +OH,-4.279670238494873,-3.564304828643799,-2.4238171577453613,-3.895282745361328,-3.468106746673584,-2.383358955383301 +OK,-0.9729490280151367,-1.6426286697387695,-1.3617620468139648,-2.4307985305786133,-1.3856840133666992,-1.3995094299316406 +OR,-0.7172441482543945,-3.117441177368164,-1.4312019348144531,-4.85249137878418,-3.511751174926758,-1.4312057495117188 +PA,-2.39363956451416,-1.8110342025756836,-3.553032875061035,-2.6409196853637695,-1.8544549942016602,-3.545027732849121 +RI,-10.134502410888672,-7.170621871948242,-7.31915807723999,-5.006382942199707,-5.057307720184326,-7.4494616985321045 +SC,-3.361548900604248,-3.2307605743408203,-3.2702345848083496,-3.384464740753174,-3.2846899032592773,-3.1891674995422363 +SD,-4.291806697845459,-3.8360729217529297,-1.7623538970947266,-2.543172836303711,-3.000764846801758,-1.7623538970947266 +TN,-4.139863014221191,-5.404635429382324,-4.014834403991699,-4.543438911437988,-5.95438289642334,-4.050980567932129 +TX,-3.4791202545166016,-3.509881019592285,-3.225029945373535,-3.6476917266845703,-3.0690717697143555,-3.3291406631469727 +UT,-1.6343493461608887,-2.336082935333252,-1.6495895385742188,-0.9567546844482422,-1.2125139236450195,-1.5026459693908691 +VA,-5.260139465332031,-5.2570648193359375,-2.962580680847168,-4.125798225402832,-5.877525329589844,-2.9812583923339844 +VT,-0.4380931854248047,-0.2148294448852539,-0.7923793792724609,-0.10500144958496094,-0.12960052490234375,-0.7923784255981445 +WA,-2.850407600402832,-1.7509937286376953,-3.2660112380981445,-2.919992446899414,-2.915656089782715,-3.282376289367676 +WI,-2.336136817932129,-2.9149160385131836,-2.6450157165527344,-3.169431209564209,-2.734252452850342,-2.645015239715576 +WV,-9.820388793945312,-9.350496768951416,-9.833352088928223,-11.881651878356934,-9.517368793487549,-9.776033878326416 +WY,-1.9863653182983398,-1.8889093399047852,-1.3712310791015625,-1.6214418411254883,-1.880359172821045,-1.4958949089050293 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dash_swing_fill_minus1.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dash_swing_fill_minus1.csv new file mode 100644 index 0000000000..7b69566383 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dash_swing_fill_minus1.csv @@ -0,0 +1,52 @@ +,p24,p25,o24,o25,o25_18252,o24_221 +AK,-4.189894676208496,-5.673839092254639,-4.373375415802002,-1.7095413208007812,-6.640180587768555,-4.373375415802002 +AL,-5.012664794921875,-4.470902442932129,-2.8875207901000977,-2.7333478927612305,-4.968289375305176,-3.838292121887207 +AR,-1.5955448150634766,-2.695366144180298,-1.4236054420471191,-1.9772796630859375,-2.3963615894317627,-1.4233779907226562 +AZ,-10.281723976135254,-9.662915229797363,-3.781346321105957,-6.3656511306762695,-11.923871517181396,-3.8333358764648438 +CA,-3.736156463623047,-3.880396842956543,-4.793203353881836,-5.535208702087402,-3.742342948913574,-4.8096923828125 +CO,-0.6606168746948242,-0.8275508880615234,-0.8121490478515625,-0.9536361694335938,-0.925776481628418,-0.7850923538208008 +CT,-1.7586374282836914,-1.7703189849853516,-2.002377510070801,-2.030771255493164,-1.9308042526245117,-2.0001754760742188 +DC,-1.3295745849609375,-2.9570493698120117,-8.179778099060059,-7.9533491134643555,-2.8667736053466797,-8.129595756530762 +DE,-2.33499813079834,-2.279691696166992,-5.36961555480957,-5.435258865356445,-2.457225799560547,-5.36961555480957 +FL,-3.865865707397461,-3.357553482055664,-5.740966796875,-3.9676551818847656,-6.100198745727539,-5.701401710510254 +GA,-3.080746650695801,-2.6071701049804688,-4.445429801940918,-3.4896020889282227,-2.86575984954834,-4.791293144226074 +HI,-3.5331966876983643,-2.710688829421997,-2.608574390411377,-2.785074472427368,-3.5598132610321045,-2.608574390411377 +IA,-1.2073469161987305,-1.085604190826416,-0.9085164070129395,-0.8048229217529297,-0.7547454833984375,-0.9023137092590332 +ID,-1.167829990386963,-1.0795774459838867,-1.1714277267456055,-1.901484489440918,-1.0411276817321777,-1.097053050994873 +IL,-7.139523506164551,-6.458962440490723,-4.282228469848633,-8.83888053894043,-8.613019943237305,-4.282962799072266 +IN,-3.4897637367248535,-3.511981964111328,-2.219841957092285,-2.1886167526245117,-3.0147900581359863,-2.1482343673706055 +KS,-4.764968395233154,-4.5028886795043945,-6.837752819061279,-5.541018486022949,-6.498903751373291,-6.973252773284912 +KY,-3.459348201751709,-3.3902740478515625,-2.6096558570861816,-2.5431671142578125,-3.135756015777588,-2.5220632553100586 +LA,-5.638120174407959,-4.8973894119262695,-3.1079702377319336,-1.4829511642456055,-4.254573822021484,-3.1211328506469727 +MA,-4.3399858474731445,-3.395580291748047,-3.340383529663086,-3.3914051055908203,-3.1008968353271484,-2.5382080078125 +MD,-0.8330593109130859,-7.321868896484375,-1.5074882507324219,-9.015921592712402,-6.742190361022949,-1.5407180786132812 +ME,-2.779177188873291,-2.7190308570861816,-2.5734190940856934,-2.655895233154297,-2.7348837852478027,-2.570552349090576 +MI,-2.7965292930603027,-4.478377103805542,-2.080575466156006,-3.4591875076293945,-4.55608344078064,-2.118161678314209 +MN,-0.5588521957397461,-0.5429868698120117,-1.079054832458496,-0.9754786491394043,-0.8658616542816162,-1.0532169342041016 +MO,-5.693965435028076,-6.024465084075928,-6.493651390075684,-8.944635391235352,-6.490201950073242,-6.476726531982422 +MS,-4.121949672698975,-4.28740119934082,-5.5541839599609375,-4.007966995239258,-4.833344459533691,-5.625495433807373 +MT,-0.7315001487731934,-0.6603364944458008,-0.8444640636444092,-0.768653154373169,-0.6661734580993652,-0.9424371719360352 +NC,-2.9216790199279785,-2.721771240234375,-4.820042610168457,-4.398758888244629,-3.844996452331543,-6.247556209564209 +ND,-1.095254898071289,-1.1478958129882812,-0.9279356002807617,-1.2256460189819336,-0.6770458221435547,-0.9017829895019531 +NE,-5.928585529327393,-4.526432991027832,-6.791402339935303,-6.594109296798706,-4.920290470123291,-6.791403293609619 +NH,-3.1012496948242188,-1.7489027976989746,-1.7163872718811035,-1.8274922370910645,-1.6276025772094727,-1.695164680480957 +NJ,-1.2045764923095703,-1.0750389099121094,-1.1831417083740234,-1.7260732650756836,-1.1427698135375977,-1.0962090492248535 +NM,-5.908068656921387,-5.670726776123047,-6.657066345214844,-5.910312652587891,-6.02302360534668,-6.644031524658203 +NV,-2.995401382446289,-2.899956703186035,-2.7631330490112305,-1.9952678680419922,-2.785487174987793,-2.719846725463867 +NY,-3.84584903717041,-3.301645278930664,-3.8091773986816406,-3.3273448944091797,-3.8251752853393555,-3.8059425354003906 +OH,-4.279670238494873,-3.564304828643799,-2.4238171577453613,-3.895282745361328,-3.468106746673584,-2.383358955383301 +OK,-0.9729490280151367,-1.6426286697387695,-1.3617620468139648,-2.4307985305786133,-1.3856840133666992,-1.3995094299316406 +OR,-0.7172441482543945,-3.117441177368164,-1.4312019348144531,-4.85249137878418,-3.511751174926758,-1.4312057495117188 +PA,-2.39363956451416,-1.8110342025756836,-3.553032875061035,-2.6409196853637695,-1.8544549942016602,-3.545027732849121 +RI,-10.134502410888672,-7.170621871948242,-7.31915807723999,-5.006382942199707,-5.057307720184326,-7.4494616985321045 +SC,-3.361548900604248,-3.2307605743408203,-3.2702345848083496,-3.384464740753174,-3.2846899032592773,-3.1891674995422363 +SD,-4.291806697845459,-3.8360729217529297,-1.7623538970947266,-2.543172836303711,-3.000764846801758,-1.7623538970947266 +TN,-4.139863014221191,-5.404635429382324,-4.014834403991699,-4.543438911437988,-5.95438289642334,-4.050980567932129 +TX,-3.4791202545166016,-3.509881019592285,-3.225029945373535,-3.6476917266845703,-3.0690717697143555,-3.3291406631469727 +UT,-1.6343493461608887,-2.336082935333252,-1.6495895385742188,-0.9567546844482422,-1.2125139236450195,-1.5026459693908691 +VA,-5.260139465332031,-5.2570648193359375,-2.962580680847168,-4.125798225402832,-5.877525329589844,-2.9812583923339844 +VT,-0.4380931854248047,-0.2148294448852539,-0.7923793792724609,-0.10500144958496094,-0.12960052490234375,-0.7923784255981445 +WA,-2.850407600402832,-1.7509937286376953,-3.2660112380981445,-2.919992446899414,-2.915656089782715,-3.282376289367676 +WI,-2.336136817932129,-2.9149160385131836,-2.6450157165527344,-3.169431209564209,-2.734252452850342,-2.645015239715576 +WV,-9.820388793945312,-9.350496768951416,-9.833352088928223,-11.881651878356934,-9.517368793487549,-9.776033878326416 +WY,-1.9863653182983398,-1.8889093399047852,-1.3712310791015625,-1.6214418411254883,-1.880359172821045,-1.4958949089050293 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/default_noise.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/default_noise.csv new file mode 100644 index 0000000000..5724828a11 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/default_noise.csv @@ -0,0 +1,52 @@ +state,model,se,clusters,boot,E,E_se,kish_units,kish_child,se_kish,top5_share,max_share,rate,moe,cse,gap,v,se_E,eb,eb_sd +AK,11.644427030114803,6.332772219323601,275,6.170486701013467,9.02435136344812,4.885226597501499,63.748837119203266,50.683170943904564,4.505511956055355,0.19423221737699323,0.05117110256604789,10.5,2.1,1.2765957446808511,1.1444270301148034,41.73370067717403,4.885226597501499,1.9175464315402309,2.5161255338574726 +AL,16.987156204496586,4.77804546692084,370,4.87593700931805,16.607525526139906,4.457521226817351,93.65080602332375,80.11303618156603,4.195477443277819,0.12846462653910432,0.03128785009369101,15.5,2.4,1.458966565349544,1.4871562044965856,24.958301922770634,4.457521226817351,1.9249041396913387,2.396895642823325 +AR,8.128457681954233,3.501990871084489,362,3.374601736545862,11.984027385304843,4.207918212883635,95.40156579863513,77.26925615612267,3.1087887556633698,0.12508251069460147,0.028531312452451954,13.3,2.7,1.6413373860182372,-5.171542318045768,14.957928475900278,4.207918212883635,-0.3498851244377801,2.2313399879951663 +AZ,16.951186290817823,4.931830911917693,392,5.04429499505136,22.489854894589172,7.45196258736064,73.65186969070464,58.621892301458054,4.900459997150592,0.16785520991848255,0.04382527920885634,13.3,2.3,1.398176291793313,3.6511862908178223,26.2778530866798,7.45196258736064,2.4086763651703227,2.410869741244434 +CA,24.416506507457978,2.653037840146489,959,2.636105151932288,17.9792497738772,2.3002033379485094,389.73613789462917,310.22219733081425,2.4390393588384507,0.04709966524994881,0.013179550394393388,17.9,1.0,0.60790273556231,6.516506507457979,7.408155517153288,2.3002033379485094,4.2943790358815965,1.9281440736488333 +CO,10.352503583390458,3.820461090793149,354,3.7031926383141713,10.85841464673308,5.163249629869176,61.08269892846661,49.549381249402316,4.3278545808931765,0.19780243468063882,0.046168833187365504,7.7,1.8,1.094224924012158,2.652503583390458,15.79325113059379,5.163249629869176,2.247283403538439,2.251244875053135 +CT,13.371307251776662,5.002325263747212,269,5.268242921633707,13.003823363877945,5.1976672703684255,57.005062496714245,52.95831553368593,4.676820838888071,0.15621614752149274,0.043138052035278214,12.8,3.2,1.9452887537993921,0.5713072517766609,28.807406379982012,5.1976672703684255,1.750349816252497,2.4346285278568662 +DC,34.36530331852773,10.601939242811653,145,10.82361623209995,52.70238736322671,11.23948871158529,48.28469823056736,28.828807980538993,8.84531878105965,0.32119708677987857,0.08696107137876122,20.3,3.7,2.2492401215805473,14.065303318527729,117.46019683279741,11.23948871158529,2.7732557872742154,2.648992182575729 +DE,22.42918607516834,6.87057378619714,319,6.727627935688211,12.957297100970527,6.403295665528966,49.22053959024031,45.32510287956483,6.195645091519167,0.19613879928573935,0.06210406102075545,8.7,2.6,1.580547112462006,13.72918607516834,49.70291332629128,6.403295665528966,3.5797585983287528,2.547294737325313 +FL,28.15649904995264,3.962926881590984,517,3.819927734482392,30.877687609630772,4.3268195304964685,204.65572110263983,150.56300605719844,3.665421578594129,0.08230334496942977,0.01961446418650838,18.4,1.8,1.094224924012158,9.756499049952641,16.902117653165856,4.3268195304964685,4.414513347881382,2.2753233660527505 +GA,18.428986886706188,3.973453086314512,421,3.975356708249677,14.400959324173607,4.2240528614966815,107.40193460095661,80.55440521824534,4.319903157093752,0.13444405503971948,0.04080603652542257,15.1,2.2,1.3373860182370823,3.328986886706188,17.576930790918357,4.2240528614966815,2.435265178857139,2.2888207572897574 +HI,7.019040434276882,2.7805868848504707,297,2.708565229091335,17.244110656462937,5.467568346396977,73.8681354911207,59.839501126761505,3.3024929707776116,0.14858269900164134,0.03845817438436234,13.0,2.6,1.580547112462006,-5.980959565723118,10.22979259891443,5.467568346396977,-1.3341888548897356,2.077265589987775 +IA,8.808982597327754,3.639254429438333,307,3.788580513657659,13.196425186307867,5.307155078469996,55.52320885797061,47.76461155498144,4.100962343393038,0.1865480342489132,0.05385757563487331,8.2,1.9,1.1550151975683889,0.6089825973277545,14.578232908800473,5.307155078469996,1.5659173877166617,2.221730200505174 +ID,6.9578273141402125,2.7396037844431986,308,2.7933256950589054,8.131051782451717,3.398010098890605,92.46790805538677,71.10906476146123,3.01727060089904,0.15102431900002034,0.03618082643769337,6.5,1.3,0.790273556231003,0.4578273141402125,8.129961189413493,3.398010098890605,1.2909881191335828,1.9725895805315508 +IL,14.678691537509486,3.8382020965079566,569,3.897080455583675,14.164989188467366,3.9458691449841883,105.04091701934067,82.93024363168735,3.8861177439886694,0.14473383337293894,0.03890983113331173,12.4,1.6,0.9726443768996961,2.278691537509486,15.677832417552672,3.9458691449841883,2.1276827055650673,2.248590341530365 +IN,12.734348293509468,3.915265266967416,397,4.1714586273409955,10.35264286905703,3.7170152103311205,85.7977094356774,68.160281661198,4.03779570703108,0.145623144623814,0.042892859785850786,10.6,2.2,1.3373860182370823,2.1343482935094684,17.117903472497467,3.7170152103311205,2.0796473813407728,2.279728818143474 +KS,9.659862114476377,4.696231456905677,313,4.610772577477521,9.962971000843263,4.638865158676821,60.13082056590417,55.562309121623045,3.963106060168454,0.1625448988489369,0.041621347413524086,9.7,2.5,1.519756838905775,-0.040137885523622074,24.364250746231292,4.638865158676821,1.5643338826677993,2.3901975720006843 +KY,18.537173560636017,6.281260601560727,272,6.259084176425292,18.59272575763501,5.9607061218880775,55.594811460142296,46.527965098235235,5.696976994805962,0.20171680634143896,0.05125574816823753,13.3,2.9,1.762917933130699,5.237173560636016,42.56211438367284,5.9607061218880775,2.5304129031195237,2.5198483117391564 +LA,12.087426776757605,3.536744221066976,365,3.386024308305543,20.194580933906224,4.886297374508776,106.16514531553632,82.628280973606,3.58614681488302,0.14415349259500945,0.0384313614455479,20.7,3.0,1.8237082066869301,-8.612573223242395,15.83447130838791,4.886297374508776,-1.3616576208224762,2.252185778740176 +MA,20.202673733449153,5.082037498794953,483,5.159606808657431,15.432276127472935,4.834691286253737,97.95418862733884,83.61518374552855,4.390925016947508,0.11277734692957907,0.026067279006202718,12.8,2.0,1.21580547112462,7.402673733449152,27.305288082774616,4.834691286253737,3.2035043185105425,2.4209652970344298 +MD,23.165434057221027,6.042028256286184,328,6.0609176334476915,23.306342504048914,7.644301328552849,55.0306328423584,45.03218404719873,6.286907011608641,0.20854957989909628,0.0529993892034269,10.7,2.5,1.519756838905775,12.465434057221028,38.81576629916153,7.644301328552849,3.7344771354052844,2.501900535126163 +ME,12.449100804293858,6.13486277739015,206,6.191957916264864,5.727408884425186,3.995284702465449,33.1152185167114,26.053480112368266,6.46794660302854,0.28916826922351135,0.09918609595025708,6.5,2.3,1.398176291793313,5.949100804293858,39.591438240340075,3.995284702465449,2.6732908155512205,2.5058622147197127 +MI,14.518361806845276,4.000674369632836,434,3.939856305851101,17.304622119910075,4.466847398810141,95.45588834362752,73.12746289970889,4.11959927188567,0.15066694809492948,0.03909548339184694,10.3,1.9,1.1550151975683889,4.218361806845275,17.339455518451036,4.466847398810141,2.706509369610683,2.2841636293574434 +MN,8.43142834945164,3.7306098701724806,381,3.8434528651633206,12.552582952572417,5.205129681507279,57.41306431441452,45.500650174527465,4.119220076581563,0.19564479033822102,0.04304348904430934,6.9,1.9,1.1550151975683889,1.5314283494516392,15.251510110042275,5.205129681507279,1.8835135779143228,2.238522973406886 +MO,18.479794346249818,5.195454214849073,326,5.172587441627019,15.310910601606178,5.385801713821571,70.00864242116391,50.03320419544817,5.487215819664648,0.1992520027252493,0.07069521514758342,9.7,2.3,1.398176291793313,8.779794346249819,28.9476414415259,5.385801713821571,3.434000652128179,2.435842845245955 +MS,12.942210983876368,3.985885849068236,321,4.035543649046535,11.967844917314173,3.4199699429054737,94.98469232700307,79.88648112699188,3.7555314958910575,0.11591565613463618,0.02682024452120574,19.1,2.6,1.580547112462006,-6.157789016123633,18.385415176514396,3.4199699429054737,-0.31564371017854187,2.303968759113046 +MT,2.5309435706442085,1.5861244617479786,213,1.664936313913927,17.493919205009192,8.6133534347748,74.05930053304587,52.10306918363349,2.17592017405911,0.1840901012855966,0.04348534335511726,9.3,2.3,1.398176291793313,-6.769056429355793,4.470687751088214,8.6133534347748,-3.4630241738398446,1.6720782972673776 +NC,18.100974606703634,4.667944264996081,449,4.755494968821379,15.75593178546281,4.228012087869523,107.2179877714125,84.33246704981973,4.192691844855072,0.1249171606340377,0.0334661255847847,14.4,2.2,1.3373860182370823,3.7009746067036335,23.578305022885846,4.228012087869523,2.4513349927675616,2.3809108701509687 +ND,11.130475374010498,4.0410378809574645,230,4.269886925408716,5.963289575658014,3.1942238429126566,60.78103291195482,44.25173305589728,4.727898486366507,0.22777119290750872,0.06484571330482254,10.3,2.1,1.2765957446808511,0.8304753740104971,17.95968385067045,3.1942238429126566,1.6960968735461133,2.29612469859813 +NE,10.711871739273764,4.344057457416736,330,4.622923969856289,8.837638979188856,3.682927837799346,67.67826119911027,51.290345812510424,4.318289237390328,0.18273118022255674,0.053159483820940795,7.1,1.9,1.1550151975683889,3.6118717392737647,20.2048952999519,3.682927837799346,2.475526550012298,2.334517149886991 +NH,10.516178236344569,4.614807837439194,244,4.644994564899235,9.200421541459054,4.80088414699402,50.91685631437766,42.66577443235297,4.696360370703935,0.21000816133572145,0.05895774367929081,7.5,2.4,1.458966565349544,3.016178236344569,23.42503481529806,4.80088414699402,2.287840807840974,2.379040393375113 +NJ,10.924964213914969,3.6050731998973897,518,3.4985090350623436,14.122366700093778,4.996143746436052,90.63484182608163,77.19060663380664,3.5506330174054304,0.11279753458059692,0.024701964743787854,13.3,1.9,1.1550151975683889,-2.375035786085032,14.330612883232348,4.996143746436052,0.5385042768327366,2.215259377645884 +NM,10.15133656941352,3.9062252843191314,327,3.977010919719209,9.17968345665703,4.037523674544619,74.88789094961987,59.144985462620426,3.926977919899776,0.16782700738241324,0.04591798806097022,10.9,2.1,1.2765957446808511,-0.7486634305864808,16.888292667191337,4.037523674544619,1.1963082059372567,2.2750381620902713 +NV,19.07006538200538,5.8055135948679,320,6.132664968392267,19.62339390283514,5.867883507743527,53.8189719639138,50.250231438792994,5.541937869539914,0.18013995987584386,0.05561232868980417,15.0,2.5,1.519756838905775,4.070065382005382,36.01364894959688,5.867883507743527,2.4015588766450193,2.4863506371339144 +NY,17.72711706952501,3.5698850096921197,669,3.660731763992116,16.353585694697465,3.5809831453243914,161.4744379901859,129.25975149615252,3.3590444891144924,0.08719741501659684,0.030392037402981874,16.2,1.9,1.1550151975683889,1.527117069525012,14.078139089038451,3.5809831453243914,1.8726353302374317,2.208488338457482 +OH,9.813281011698678,2.909392463247397,480,2.867236716065459,9.176284846402721,2.938347736066476,94.18129337404824,77.6802950561555,3.375382373959854,0.1314535345730297,0.03120412815851696,12.3,2.1,1.2765957446808511,-2.486718988301323,10.094261200538012,2.938347736066476,0.12492698509350153,2.071408192475008 +OK,17.214397377076793,4.784835016565054,309,4.71113255600303,14.082912185032024,4.386083548051616,75.74235127122593,60.08798706256565,4.870005946593579,0.15725939644814943,0.04683432032802124,9.9,2.0,1.21580547112462,7.3143973770767925,24.372829079363665,4.386083548051616,3.2885277452242647,2.390296209531971 +OR,16.287025373398983,5.206864576296931,366,5.246037490643189,19.664250906649208,6.664268153792332,61.385308231105604,48.04342769640842,5.327215691949326,0.18633095323347657,0.04681466573346644,11.0,2.4,1.458966565349544,5.287025373398983,29.24002215470366,6.664268153792332,2.7128200277930774,2.4383428673294776 +PA,14.135315176005452,3.248356681256722,623,3.440109385475408,12.767784123857526,3.539547978215054,119.95047632036783,95.79190114395048,3.559554460707664,0.1226662186815226,0.0374447586054056,11.1,2.0,1.21580547112462,3.0353151760054526,12.030004072281745,3.539547978215054,2.4308121601197157,2.146101766817567 +RI,17.87488341023184,7.039949763613315,218,7.112783142036048,19.33281244458234,8.0545158526458,43.968675446995185,39.305057429647746,6.111325151499424,0.21397513527135703,0.049623386945115075,8.4,2.3,1.398176291793313,9.474883410231838,51.515789617132064,8.0545158526458,2.9945884094134207,2.5531662922794784 +SC,9.884637709168972,3.5625308459596647,343,3.7951453311272516,16.065761649922194,5.287290470153665,82.27387151348555,65.43623808080012,3.6895264888701615,0.15339421777769296,0.03702599688546029,11.1,2.1,1.2765957446808511,-1.2153622908310275,14.321322723751342,5.287290470153665,0.9351450792696865,2.2150133710898867 +SD,11.338984093590906,4.7545850659567925,266,4.650975210752039,8.96203665111507,3.991951895048361,59.908756151183155,47.708909211681096,4.590433296626902,0.1775239978101076,0.03823858901471819,7.8,2.2,1.3373860182370823,3.538984093590906,24.394680511195396,3.991951895048361,2.4032510899943365,2.39054720876647 +TN,23.237083981929004,5.143819316231732,372,5.002203719639913,11.157478600297566,3.8488973208083026,98.05494750797263,74.04423436786264,4.908184983944115,0.13463596558353486,0.034477800825323195,10.0,1.7,1.033434650455927,13.237083981929004,27.526864334801648,3.8488973208083026,4.440660379050621,2.423059499345234 +TX,19.24437088161237,2.651235362434403,739,2.758475380463217,19.423503557645418,2.8065476454611633,296.2185581814811,223.47503857294353,2.637082708207148,0.06664215886078988,0.0179680867848099,16.1,1.3,0.790273556231003,3.1443708816123674,7.653581240700677,2.8065476454611633,2.5932231110700013,1.9438482251536329 +UT,13.21129757366149,3.6996600431023254,337,3.7993185253295163,9.803531004406727,3.9991252241495627,96.2499787464925,77.95828141247213,3.8350692177559416,0.1132693353110794,0.024101784191065928,7.3,1.6,0.9726443768996961,5.91129757366149,14.6335215184425,3.9991252241495627,3.3579767973872885,2.223152669553906 +VA,18.12834310047842,4.435237116964007,471,4.472316221707145,21.46223470703345,4.699151775310103,92.96168372450565,83.40381140900776,4.218449914258342,0.10882151728856482,0.024625783525523658,12.1,2.4,1.458966565349544,6.028343100478422,21.799911722503044,4.699151775310103,3.068928290971872,2.357900254838781 +VT,17.67870021257423,7.094454518557269,128,7.072170061550221,17.300133702601787,7.356953337151184,51.407008877146595,41.72119333812808,5.906128805650975,0.21517331214366198,0.06258083022891381,8.3,2.5,1.519756838905775,9.37870021257423,52.64094576527852,7.356953337151184,2.9650712101341568,2.556625989641898 +WA,14.206930055854658,4.267283147442617,410,4.1852444789254495,12.491540240583939,4.146824798916377,84.69243213256703,67.98896490960296,4.234060026519761,0.1397832513797281,0.03361894400680617,9.3,1.9,1.1550151975683889,4.906930055854657,19.543765567061712,4.146824798916377,2.8436757533191748,2.3239386686178296 +WI,7.034634654513513,3.08294960963598,356,3.177640058436483,9.744145371069523,5.124727394165319,63.91123916400042,51.500672411972296,3.563484828021995,0.17224256069516478,0.047070588357335706,7.3,1.7,1.033434650455927,-0.2653653454864866,10.572565472317606,5.124727394165319,1.0953159067671507,2.091616778863818 +WV,17.93170541550054,5.962326417829841,294,6.099167133706788,14.862075940319261,5.576408326391771,76.67986452201751,55.37824601115169,5.155002782179925,0.19033458896045133,0.044526712098936806,11.3,2.4,1.458966565349544,6.631705415500541,37.677919751559465,5.576408326391771,2.8123190604516104,2.4958305726071512 +WY,8.787559151426471,3.416415435764844,191,3.516390421576282,8.723064218446835,3.639362921005805,68.56604856255444,54.1274268532679,3.848154308199441,0.17625875748639,0.045756790106534245,6.5,1.4,0.8510638297872339,2.2875591514264713,12.396204072104403,3.639362921005805,2.1428935047140554,2.1583419507169372 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/default_noise_raw.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/default_noise_raw.csv new file mode 100644 index 0000000000..7a908171f8 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/default_noise_raw.csv @@ -0,0 +1,52 @@ +state,model,se,clusters,boot,E,E_se,kish_units,kish_child,se_kish,top5_share,max_share +AK,11.644427030114803,6.332772219323601,275,6.170486701013467,9.02435136344812,4.885226597501499,63.748837119203266,50.683170943904564,4.505511956055355,0.19423221737699323,0.05117110256604789 +AL,16.987156204496586,4.77804546692084,370,4.87593700931805,16.607525526139906,4.457521226817351,93.65080602332375,80.11303618156603,4.195477443277819,0.12846462653910432,0.03128785009369101 +AR,8.128457681954233,3.501990871084489,362,3.374601736545862,11.984027385304843,4.207918212883635,95.40156579863513,77.26925615612267,3.1087887556633698,0.12508251069460147,0.028531312452451954 +AZ,16.951186290817823,4.931830911917693,392,5.04429499505136,22.489854894589172,7.45196258736064,73.65186969070464,58.621892301458054,4.900459997150592,0.16785520991848255,0.04382527920885634 +CA,24.416506507457978,2.653037840146489,959,2.636105151932288,17.9792497738772,2.3002033379485094,389.73613789462917,310.22219733081425,2.4390393588384507,0.04709966524994881,0.013179550394393388 +CO,10.352503583390458,3.820461090793149,354,3.7031926383141713,10.85841464673308,5.163249629869176,61.08269892846661,49.549381249402316,4.3278545808931765,0.19780243468063882,0.046168833187365504 +CT,13.371307251776662,5.002325263747212,269,5.268242921633707,13.003823363877945,5.1976672703684255,57.005062496714245,52.95831553368593,4.676820838888071,0.15621614752149274,0.043138052035278214 +DC,34.36530331852773,10.601939242811653,145,10.82361623209995,52.70238736322671,11.23948871158529,48.28469823056736,28.828807980538993,8.84531878105965,0.32119708677987857,0.08696107137876122 +DE,22.42918607516834,6.87057378619714,319,6.727627935688211,12.957297100970527,6.403295665528966,49.22053959024031,45.32510287956483,6.195645091519167,0.19613879928573935,0.06210406102075545 +FL,28.15649904995264,3.962926881590984,517,3.819927734482392,30.877687609630772,4.3268195304964685,204.65572110263983,150.56300605719844,3.665421578594129,0.08230334496942977,0.01961446418650838 +GA,18.428986886706188,3.973453086314512,421,3.975356708249677,14.400959324173607,4.2240528614966815,107.40193460095661,80.55440521824534,4.319903157093752,0.13444405503971948,0.04080603652542257 +HI,7.019040434276882,2.7805868848504707,297,2.708565229091335,17.244110656462937,5.467568346396977,73.8681354911207,59.839501126761505,3.3024929707776116,0.14858269900164134,0.03845817438436234 +IA,8.808982597327754,3.639254429438333,307,3.788580513657659,13.196425186307867,5.307155078469996,55.52320885797061,47.76461155498144,4.100962343393038,0.1865480342489132,0.05385757563487331 +ID,6.9578273141402125,2.7396037844431986,308,2.7933256950589054,8.131051782451717,3.398010098890605,92.46790805538677,71.10906476146123,3.01727060089904,0.15102431900002034,0.03618082643769337 +IL,14.678691537509486,3.8382020965079566,569,3.897080455583675,14.164989188467366,3.9458691449841883,105.04091701934067,82.93024363168735,3.8861177439886694,0.14473383337293894,0.03890983113331173 +IN,12.734348293509468,3.915265266967416,397,4.1714586273409955,10.35264286905703,3.7170152103311205,85.7977094356774,68.160281661198,4.03779570703108,0.145623144623814,0.042892859785850786 +KS,9.659862114476377,4.696231456905677,313,4.610772577477521,9.962971000843263,4.638865158676821,60.13082056590417,55.562309121623045,3.963106060168454,0.1625448988489369,0.041621347413524086 +KY,18.537173560636017,6.281260601560727,272,6.259084176425292,18.59272575763501,5.9607061218880775,55.594811460142296,46.527965098235235,5.696976994805962,0.20171680634143896,0.05125574816823753 +LA,12.087426776757605,3.536744221066976,365,3.386024308305543,20.194580933906224,4.886297374508776,106.16514531553632,82.628280973606,3.58614681488302,0.14415349259500945,0.0384313614455479 +MA,20.202673733449153,5.082037498794953,483,5.159606808657431,15.432276127472935,4.834691286253737,97.95418862733884,83.61518374552855,4.390925016947508,0.11277734692957907,0.026067279006202718 +MD,23.165434057221027,6.042028256286184,328,6.0609176334476915,23.306342504048914,7.644301328552849,55.0306328423584,45.03218404719873,6.286907011608641,0.20854957989909628,0.0529993892034269 +ME,12.449100804293858,6.13486277739015,206,6.191957916264864,5.727408884425186,3.995284702465449,33.1152185167114,26.053480112368266,6.46794660302854,0.28916826922351135,0.09918609595025708 +MI,14.518361806845276,4.000674369632836,434,3.939856305851101,17.304622119910075,4.466847398810141,95.45588834362752,73.12746289970889,4.11959927188567,0.15066694809492948,0.03909548339184694 +MN,8.43142834945164,3.7306098701724806,381,3.8434528651633206,12.552582952572417,5.205129681507279,57.41306431441452,45.500650174527465,4.119220076581563,0.19564479033822102,0.04304348904430934 +MO,18.479794346249818,5.195454214849073,326,5.172587441627019,15.310910601606178,5.385801713821571,70.00864242116391,50.03320419544817,5.487215819664648,0.1992520027252493,0.07069521514758342 +MS,12.942210983876368,3.985885849068236,321,4.035543649046535,11.967844917314173,3.4199699429054737,94.98469232700307,79.88648112699188,3.7555314958910575,0.11591565613463618,0.02682024452120574 +MT,2.5309435706442085,1.5861244617479786,213,1.664936313913927,17.493919205009192,8.6133534347748,74.05930053304587,52.10306918363349,2.17592017405911,0.1840901012855966,0.04348534335511726 +NC,18.100974606703634,4.667944264996081,449,4.755494968821379,15.75593178546281,4.228012087869523,107.2179877714125,84.33246704981973,4.192691844855072,0.1249171606340377,0.0334661255847847 +ND,11.130475374010498,4.0410378809574645,230,4.269886925408716,5.963289575658014,3.1942238429126566,60.78103291195482,44.25173305589728,4.727898486366507,0.22777119290750872,0.06484571330482254 +NE,10.711871739273764,4.344057457416736,330,4.622923969856289,8.837638979188856,3.682927837799346,67.67826119911027,51.290345812510424,4.318289237390328,0.18273118022255674,0.053159483820940795 +NH,10.516178236344569,4.614807837439194,244,4.644994564899235,9.200421541459054,4.80088414699402,50.91685631437766,42.66577443235297,4.696360370703935,0.21000816133572145,0.05895774367929081 +NJ,10.924964213914969,3.6050731998973897,518,3.4985090350623436,14.122366700093778,4.996143746436052,90.63484182608163,77.19060663380664,3.5506330174054304,0.11279753458059692,0.024701964743787854 +NM,10.15133656941352,3.9062252843191314,327,3.977010919719209,9.17968345665703,4.037523674544619,74.88789094961987,59.144985462620426,3.926977919899776,0.16782700738241324,0.04591798806097022 +NV,19.07006538200538,5.8055135948679,320,6.132664968392267,19.62339390283514,5.867883507743527,53.8189719639138,50.250231438792994,5.541937869539914,0.18013995987584386,0.05561232868980417 +NY,17.72711706952501,3.5698850096921197,669,3.660731763992116,16.353585694697465,3.5809831453243914,161.4744379901859,129.25975149615252,3.3590444891144924,0.08719741501659684,0.030392037402981874 +OH,9.813281011698678,2.909392463247397,480,2.867236716065459,9.176284846402721,2.938347736066476,94.18129337404824,77.6802950561555,3.375382373959854,0.1314535345730297,0.03120412815851696 +OK,17.214397377076793,4.784835016565054,309,4.71113255600303,14.082912185032024,4.386083548051616,75.74235127122593,60.08798706256565,4.870005946593579,0.15725939644814943,0.04683432032802124 +OR,16.287025373398983,5.206864576296931,366,5.246037490643189,19.664250906649208,6.664268153792332,61.385308231105604,48.04342769640842,5.327215691949326,0.18633095323347657,0.04681466573346644 +PA,14.135315176005452,3.248356681256722,623,3.440109385475408,12.767784123857526,3.539547978215054,119.95047632036783,95.79190114395048,3.559554460707664,0.1226662186815226,0.0374447586054056 +RI,17.87488341023184,7.039949763613315,218,7.112783142036048,19.33281244458234,8.0545158526458,43.968675446995185,39.305057429647746,6.111325151499424,0.21397513527135703,0.049623386945115075 +SC,9.884637709168972,3.5625308459596647,343,3.7951453311272516,16.065761649922194,5.287290470153665,82.27387151348555,65.43623808080012,3.6895264888701615,0.15339421777769296,0.03702599688546029 +SD,11.338984093590906,4.7545850659567925,266,4.650975210752039,8.96203665111507,3.991951895048361,59.908756151183155,47.708909211681096,4.590433296626902,0.1775239978101076,0.03823858901471819 +TN,23.237083981929004,5.143819316231732,372,5.002203719639913,11.157478600297566,3.8488973208083026,98.05494750797263,74.04423436786264,4.908184983944115,0.13463596558353486,0.034477800825323195 +TX,19.24437088161237,2.651235362434403,739,2.758475380463217,19.423503557645418,2.8065476454611633,296.2185581814811,223.47503857294353,2.637082708207148,0.06664215886078988,0.0179680867848099 +UT,13.21129757366149,3.6996600431023254,337,3.7993185253295163,9.803531004406727,3.9991252241495627,96.2499787464925,77.95828141247213,3.8350692177559416,0.1132693353110794,0.024101784191065928 +VA,18.12834310047842,4.435237116964007,471,4.472316221707145,21.46223470703345,4.699151775310103,92.96168372450565,83.40381140900776,4.218449914258342,0.10882151728856482,0.024625783525523658 +VT,17.67870021257423,7.094454518557269,128,7.072170061550221,17.300133702601787,7.356953337151184,51.407008877146595,41.72119333812808,5.906128805650975,0.21517331214366198,0.06258083022891381 +WA,14.206930055854658,4.267283147442617,410,4.1852444789254495,12.491540240583939,4.146824798916377,84.69243213256703,67.98896490960296,4.234060026519761,0.1397832513797281,0.03361894400680617 +WI,7.034634654513513,3.08294960963598,356,3.177640058436483,9.744145371069523,5.124727394165319,63.91123916400042,51.500672411972296,3.563484828021995,0.17224256069516478,0.047070588357335706 +WV,17.93170541550054,5.962326417829841,294,6.099167133706788,14.862075940319261,5.576408326391771,76.67986452201751,55.37824601115169,5.155002782179925,0.19033458896045133,0.044526712098936806 +WY,8.787559151426471,3.416415435764844,191,3.516390421576282,8.723064218446835,3.639362921005805,68.56604856255444,54.1274268532679,3.848154308199441,0.17625875748639,0.045756790106534245 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/default_paired.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/default_paired.csv new file mode 100644 index 0000000000..87b72d2e1f --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/default_paired.csv @@ -0,0 +1,53 @@ +state,n,snap_c,snap_p,house_c,house_p,lunch_c,lunch_p,wic_c,wic_p,eng_c,eng_p,eitc_c,eitc_p,actc_c,actc_p,sttax_c,sttax_p,exp_c,exp_p,geo_ratio +AK,151,949.3729283004988,5621.295014456027,1830.8700812739703,33.33994012213777,1020.3183956393424,3050.0791021437135,39.66292970226499,715.6650292522562,301.6410271044397,301.6410271044397,1820.3406252855111,1863.0119987990872,2103.78106783166,2117.41365895268,0.0,0.0,7682.537326131264,7264.850233188141,0.9817828191653676 +AL,197,1633.5970719022148,6232.626682527898,5.532494118724164,0.003472706792504948,1259.8802430526093,1822.1067936188565,242.14087991855737,653.8365371831013,0.01214077986187485,0.01214077986187485,3579.35744076113,3766.0493295051165,2387.305908051451,2498.0952914192,892.5897831599661,984.4108389600456,7791.684130257503,7311.631795074401,1.0062974228313188 +AR,203,2074.097731073239,2224.3523089902455,175.53381535687726,177.49133080438708,1511.7937665853162,2057.323664672746,346.79279101108295,419.91417087559114,0.0026444555152636885,0.0026444555152636885,3722.9010282643158,3898.5926392954307,2342.9698198552906,2426.805157986369,585.6059595260186,561.3510600546518,5582.648495587591,5025.886418335295,1.0018672113325457 +AZ,202,2527.520648996794,4879.129732300132,813.5631652434174,344.32812959184946,1328.172016500401,1708.278690411686,316.5027715696383,610.8907744475467,4.60093604810759e-06,4.60093604810759e-06,3341.0591737729524,2701.9813894328,2258.444132174478,2380.3992681816467,7.237598547152557,199.77317408793007,4548.111814513874,3974.505415084967,1.0212953905042006 +CA,326,1583.1292294354487,3824.900940790037,1250.8019672598791,344.62467640812565,1291.8507603936928,2047.468685391086,183.92227200735974,372.1481436619907,51.84844220705737,51.84844220705737,2691.5210314820924,2000.7462928738305,1489.4471956038085,1587.5007649398663,-337.97439343193065,-159.687118361219,7174.626560461107,6537.578136419894,1.0340036189704742 +CO,181,3763.5311224050047,6704.096261638298,1814.970995433759,34.80183632018428,1614.7981885239747,2413.18552758463,184.55403948408764,558.8017859017286,204.86100442355027,204.86100442355027,3712.0724049066703,3842.9792702657073,2414.6602121481005,2452.503800456776,-4646.8578958486605,-8959.070947099843,6044.082481105889,5018.136107173503,1.0472930138688659 +CT,147,1813.3168305806917,3697.172498134421,2378.199844881395,0.6091909443546775,1146.6165841658915,1475.9218781534664,120.03520758249238,173.31725795181973,356.08419351320987,356.08419351320987,2674.0709390660486,2776.116330447348,1285.8612055427127,1560.018800006731,110.74163070305849,126.54036871363843,13728.567864501554,13461.495944108101,1.016603608446411 +DC,81,2343.5607584508157,6485.3825674534455,4839.176107394211,1927.3783019596683,359.2272816319612,1960.4473854988544,224.98611416106831,1194.542719112103,50.78762682979098,50.78762682979098,2457.4511958843086,1774.0675367433232,2043.036498880869,2113.133462950159,-765.9509372102724,-1092.4025287712263,5457.327844104755,4862.831005965879,0.9851049788579949 +DE,172,4209.582797040339,4884.66657941051,1112.65139077276,649.6374086836653,2016.6486386995468,2240.385820910001,108.68260675625265,230.16409573368477,15.653245316386172,15.653245316386172,2985.0448557510726,3146.132835947715,2268.016233382865,2352.7194400588546,488.8502927185603,723.1367977141093,6120.978551236069,5777.149608785021,1.001032559292028 +FL,242,1957.6783812478347,5988.717662852995,272.45240732027213,0.00520379740557326,1094.9449457750786,1741.8599484951535,263.20247861382325,847.0579462390215,24.913041465382737,24.913041465382737,3764.6519721853706,3610.035178923789,1938.522838642584,2062.6568183769486,0.0,0.0,6749.070789815816,6131.371884903824,1.0278933270988164 +GA,227,1994.6004698890008,4042.2549156565847,77.04701110560546,7.094675762614614e-05,1040.0606801418933,1294.8621806811532,84.9742405905925,785.3204598093215,3.5684693699345997,3.5684693699345997,3727.2861351323377,4022.309555919561,1872.2594319270713,1975.4682793911038,1364.9356465999458,1237.5747089596493,6931.958016179198,6407.833365980652,1.0529073965851101 +HI,149,3689.0127146446557,15134.43760528871,4916.200064388073,1822.7637879807162,1069.8888131495173,1559.2540387752683,928.6028244527232,1017.0968258239127,6.938278363861172e-05,6.938278363861172e-05,1933.0078714115814,2338.531585340746,2307.0294293394268,2395.9810445305934,1207.2301863425296,781.7438505264256,3600.0861217013153,2845.3793772056033,0.9735680387851162 +IA,184,1644.1517296987208,2698.695034415145,0.001173456464769393,0.000583505143329911,937.3761399734423,1374.0481265737615,153.9760825525614,730.7973682765044,78.7704738717524,78.7704738717524,2888.9078168089654,2740.4366343620227,1920.4676167505477,2033.5652072245741,739.1686592428894,521.5770930912737,9425.632153861117,9020.186701831502,1.001472369806956 +ID,153,732.0262085361078,1915.5271068644488,432.4338899649257,0.0,688.7781667505074,644.9347609173578,231.5836469962159,397.35211951904574,0.5948514701804839,0.5948514701804839,1335.9463025542302,1712.2518050649933,1634.4060743849534,1944.4531647824115,170.52319602244148,63.36930056726149,8449.97308305158,7531.697143442515,1.0163880938306795 +IL,272,4498.160086658185,6077.6517116200675,2207.5947306555254,216.61630359776547,1099.3495609716701,1504.3180511121154,148.15272792794357,878.2668644269899,197.69365949312876,197.69365949312876,3708.76295185782,3697.2780220147415,2129.9047690089924,2173.171630718861,500.76603233413107,368.83501706864257,6350.620439534459,5944.597053658848,1.0031628578061418 +IN,220,2365.02001827323,3885.4547292810366,344.86777143968004,0.006413196970978574,1626.917300007358,2112.684291215449,148.05562785789792,360.67022820906993,68.14024858965213,68.14024858965213,2631.9031324558528,2172.9154952407503,2826.350271646488,2826.21804648505,1573.6753955919992,1029.2316859561975,9991.865180290804,9419.708658439484,0.9937924050056054 +KS,167,370.5357447599507,1341.4445803073233,411.0098211942236,0.0006343370997989951,1012.5502357113669,1315.8548470237413,112.99449946837561,551.9004676833105,181.1026096895117,181.1026096895117,2016.3103149344904,2095.5753786000064,2586.522052427468,2668.9040317130502,940.2775703353541,910.3539486325789,9685.233723741945,9113.72401598848,1.011918373409981 +KY,149,3481.077389371535,4471.933720030508,0.001054126493097597,0.0002474114498599381,1394.8623016716922,1811.3491170282884,274.6010822414309,1010.072056658684,34.47374822456829,34.47374822456829,3108.54954809032,2549.8598280354095,2641.9273740389676,2042.42538684623,1616.8684977246041,1063.395830289345,5373.83785347123,4644.060183759894,1.0071061156548928 +LA,192,1286.2410533786044,4662.639323226623,1242.8034246457923,217.15302833266477,1586.1311289841933,1841.8318818953985,139.88474121926984,314.1056749851096,64.1098377447884,64.1098377447884,3278.042314391667,4172.836745876652,1939.8112264348827,2117.624700385244,5.384690198809109,489.09038801086615,6472.17789150685,6311.8989221941565,1.0135623962271878 +MA,214,2732.3861213389164,6152.979164513513,3294.483789765955,642.5145691080893,1234.0730824916236,1731.0268838737215,338.19102349428596,668.8406465856551,253.40168306803915,253.40168306803915,3883.898126777957,2673.875865815249,2043.6464231992038,1820.1889208985936,-545.8959234811641,-810.5218873629891,4168.9191688586925,3916.9812262925793,0.9810086053990609 +MD,177,838.3778277668763,4987.003146772719,121.30015468869836,0.0019120371462404944,846.2329214437605,1380.2595329100027,287.4127821242828,455.9047528314771,67.67018794426026,67.67018794426026,2630.242311393635,1754.632879105155,1887.768087298562,1710.1273346681544,926.7160895648012,404.87297308575165,8915.200690841484,8485.538393993344,0.9892481709982173 +ME,130,4267.011751060322,2532.0593773490937,1416.5144381190712,72.36452543549342,1372.3095269080827,1946.9951980330075,173.86944674679134,577.0454494127285,221.46701052651085,221.46701052651085,2349.2506722485236,2512.833627046639,1353.4541017047518,1316.362016893408,-588.0197078672506,-472.6002060557215,6880.799229865373,5837.959936931795,1.027065681068397 +MI,215,3195.031144944672,4423.960546288415,853.1379025537725,2.7307164391993848e-05,832.5610232189314,1887.190563160893,178.25213063153706,654.560599288815,174.31279396176686,174.31279396176686,2677.4725293225597,3049.9670051714797,2032.912455520452,2052.0858727226946,840.8549693673035,-376.3455640888013,5992.721031656976,5034.676947531328,1.0044439537594871 +MN,197,1518.5845076772987,2311.5818370907846,1118.47017993156,0.007072734216808725,1186.3022804350207,1756.7879781913352,775.6714276753149,1073.0222292201795,180.79732117507226,180.79732117507226,3377.5090407577563,3120.0226787431066,2426.8706166768084,2601.8354684924293,-2401.3882564335704,-3063.96263098211,9958.109162947489,9584.455470727822,0.9438518580646132 +MO,166,1226.0743437213887,6558.967291034683,148.54846907579002,0.0,639.6817786208165,3262.0058653452743,32.64289673380106,637.6739775859232,115.59042080805773,115.59042080805773,2623.4942075108006,3233.9125229582337,3161.148612630388,3470.5366493833308,720.3641746673154,566.7746424257142,6139.8478262300305,5566.978718983585,1.0124940669840976 +MS,179,1374.290157289659,3156.9898125796353,400.61336998043646,21.800800914397954,873.641143170056,1283.8972630900714,33.51248800510692,401.7641809728301,40.25011718869057,40.25011718869057,3785.984181903916,4099.885151948632,2113.518789069628,2193.935993360339,436.55981121557863,295.73745036504374,6489.462011449377,5992.727562475621,0.9930133447225208 +MT,103,1915.5634968438849,3897.694679452159,238.00358844010373,1.6562497161466328e-05,1700.7492530985337,2261.4011999968384,290.0920793483821,837.9701856527056,39.955324077263406,39.955324077263406,2759.4019266056334,2871.7879387455837,2739.624651324462,2779.564361261671,5964.956775606566,5727.315430310377,8045.101101722996,7058.6884156549895,1.0010320703812872 +NC,222,2971.144506885167,4218.169553228629,408.55052238677706,178.0832341173512,897.8920741984316,1391.224338649364,168.29321116702138,699.520930713526,40.47118561363704,40.47118561363704,3856.2034968201374,4141.826116868694,2140.0449557137254,2232.924618303574,981.5882031256008,1319.0331107026936,7352.663364863712,7034.199144746266,1.0562661446685475 +ND,88,29.40681703871359,4169.635759304228,1316.3040890350262,0.005296478289126945,1678.082030747161,1669.9964974794234,170.2302280429051,619.3647922833923,11.502711582865633,11.502711582865633,3437.634668499672,3700.7522730179217,1720.7785022755527,2067.94682010395,3.005414850959374e-05,0.0,5624.345434161636,5084.211929052904,0.9861815516214147 +NE,180,644.8662396592495,907.0917072451595,0.0007473654065155958,0.0,604.2667655002338,207.44967456757345,211.8672735672333,965.8796733028745,25.97977770069509,25.97977770069509,2001.5669389535528,2065.323646576417,1721.2561038169347,1709.7183413814346,934.3728972497724,-909.4323259004756,9487.948325808084,9075.891439511104,1.0099001191837844 +NH,140,2065.686156425687,2111.586812088655,954.8155200838796,8.087301682510194e-05,452.9860726139359,1277.3276226129256,315.4358785465132,981.8513911305159,272.1314505058321,272.1314505058321,2767.937126496294,2992.5782295927065,1865.0262655988597,1899.0003544582632,0.000732964346665196,0.00023587480724492876,6020.778516663803,5540.825322894348,1.0175542585417945 +NJ,299,2376.8893162603977,3506.8634796866936,456.8514861628147,32.85816801742298,1060.9725547161613,1121.3540108971633,200.16466227748427,461.3967718084233,306.23377229194,306.23377229194,3417.2251097046696,2724.72779796565,1796.6675582687228,1842.2024923469176,-931.0968833926988,-883.7943200210623,5632.007530982579,5425.259130451283,0.9978516643274088 +NM,172,5394.472971001547,7639.79131389196,1943.622459064218,545.4553909883741,1698.9870873832026,2149.67881903771,476.588204500585,1011.521895260445,59.43106763560419,59.43106763560419,4225.599241705035,4267.836842881804,2651.374090776496,2949.0965132732927,-3186.8593112144413,-2715.482736440503,3911.2263742458026,3155.5018389978204,1.0263668587431074 +NV,180,1260.2772091315646,4720.94962032173,35.27937226180029,22.920516688799005,1104.4598915694041,2217.3838764623697,38.01109433484309,304.9974459951073,0.00020591773389149598,0.00020591773389149598,2227.6189042110127,2251.5300788535146,1515.7782180894148,1618.6889371592458,0.0,0.0,6432.029184833849,6103.083228569152,1.0019554771895172 +NY,327,2792.102073293907,7401.607785139724,1060.3370991085826,798.8941304685698,1109.23899920035,1942.886544651506,76.25583011406817,310.81383940386564,206.07161613957368,206.07161613957368,3171.356401432766,3008.1461868229676,2093.591023423997,2310.257909882274,-608.2545368021761,-403.2439420101178,3624.043410457888,3082.58356514122,1.0062490790424523 +OH,249,2991.6570461532237,5766.241265458086,514.9970939593516,0.00036956396059476784,740.0368207488597,1361.6384869916867,210.68361147529467,890.971337923526,185.56347685173964,185.56347685173964,3672.052603494,4162.463285768361,1898.2123466736748,2061.578021599799,138.1520529877409,130.85910593027978,5493.627422099002,5362.0694600795105,0.9964287093714271 +OK,156,3401.149307228062,5123.565448071635,363.5629552165434,267.4104273666336,1005.0839726860738,1377.908357466366,215.3920260566176,634.1199200294815,98.38800526249287,98.38800526249287,3558.0999168625476,3468.4475603949463,2044.8782786313059,2124.863821140808,670.9699351537855,573.4912121806369,8712.430503050491,8377.407308114087,0.9882482514314679 +OR,198,2095.467086350566,4253.334827736172,0.0002489569293866382,0.0,1328.1084049893411,2051.68140094757,239.8285355082549,639.8826409675112,112.35973035554841,112.35973035554841,1501.727307847,1590.9530867072442,1762.690082926532,1762.629844620607,1714.4983966252091,2552.4816331693273,5465.604859010726,4888.897551978182,1.0055658955219668 +PA,309,4752.5189859489765,5633.283502347526,180.75369410834818,0.0001024033484644392,1408.135415063136,1762.8837742597495,151.78287109533775,850.3945870209055,291.9107318225202,291.9107318225202,2207.009633389998,2150.004908620536,2582.5686716530254,2646.3935174880367,986.5109135011093,793.451696904316,6479.333532319634,5851.467537070428,1.0078707324604699 +RI,127,2048.1291651734546,2429.0981560662844,237.89775662220433,241.62927657431044,671.4339699833174,476.9193571408954,197.79100755972243,589.2028464920414,160.15859679385986,160.15859679385986,2493.4498500976565,2345.8335082557387,1581.2538241495179,1318.6487020809602,283.86024497623,804.9825097332007,8326.797085820624,7861.070146322111,1.0023378135398153 +SC,178,3211.250428061471,2988.6862185229106,59.13884020256115,0.006496558733858669,855.1629408672594,1231.4239862224497,129.5948023343363,492.07504040051487,0.0021049390392170004,0.0021049390392170004,3600.6684011387265,4037.8647360761765,2284.5790294103044,2328.458921355552,222.65574023163626,111.42116184107316,6583.004330564551,5968.7052806565525,1.008211162294826 +SD,141,750.701756572193,2299.6214687806673,286.5895911330959,0.0010878450102876304,547.9398772962172,1162.2522077210208,17.78683469972483,797.8113028165976,56.38755654964443,56.38755654964443,2182.572147675297,2870.447973555372,2815.060220660177,2772.0306089528513,0.0,0.0,14511.115690796303,13776.957871007637,0.990792403266794 +TN,212,1153.5253576532264,3675.3144447020527,1118.7586901665866,0.0,1318.674501558271,1605.7999830382023,95.58915213823504,278.78969386434323,56.22854608661109,56.22854608661109,2608.6140590811324,3172.239617831927,1739.3039083157257,2093.2492585279288,0.0,0.0,10637.5383107406,9843.188772150299,1.0073982220441433 +TX,310,1293.3444186208865,4372.130641825858,441.65536882938574,153.88077120321643,1045.2486937689443,1593.1634616586693,56.53866425175835,547.8711976507012,26.18351904884464,26.18351904884464,4105.254129299648,3943.604422245849,2283.0405187018646,2337.410596662051,0.0,0.0,7512.416150045178,7068.814887308051,1.026627186470972 +UT,177,1491.3779536905256,2796.7486344130534,1233.827169564572,0.2001610147361343,1182.3500416397198,964.1883334601384,328.53113896608346,943.8914746019698,0.01748509216533539,0.01748509216533539,1790.0621510242102,1845.214585128984,2193.6028654711854,2457.5811149818624,1371.0647833133817,1131.582531708584,21024.103594091386,20418.348748552286,1.028237013036623 +VA,223,2042.0058771602373,5629.9430589888525,406.40723540969924,0.0001221744675438873,776.1079171753717,1464.6390572125927,54.190705178634204,723.1485588905646,118.39086463243677,118.39086463243677,2720.9259816724298,2333.4885131105793,1837.8983002751959,1709.136650272018,243.84942569998805,400.9912306865783,4478.253176953143,3724.0998904375383,1.0002773725423069 +VT,63,129.82656605104708,2231.2174361965604,485.81711596213154,0.0,1404.8726024323664,1809.4428676523996,336.4115001925712,735.8656928442729,48.13730811733455,48.13730811733455,2278.940196687821,1251.2908842598144,831.1067610849013,794.127637647965,-531.0537708199116,-222.0043028136918,9294.676070757456,7605.057974140194,1.0122717805043868 +WA,188,1860.9849817190022,4473.033426846725,1964.0311020781774,0.003024975706003034,1662.9428886928808,2315.8045487358095,217.40886677275876,754.5341409799495,35.035551425600815,35.035551425600815,2755.9263268760606,1251.9456083623006,2175.3859246661495,2110.1692290557025,-182.30265627769685,-353.06022936170734,4135.158387789271,3316.15413006836,1.023313678670043 +WI,196,4397.518845056771,4806.647485695107,1471.2743967016224,52.92942535813691,1017.9707644115039,1770.5543647559348,272.50693001091133,533.5562885954528,320.7822361867115,320.7822361867115,2768.724936008046,2633.676296774597,1810.749780352466,1804.1517155322856,-200.9950560918322,-117.96240267851671,4043.632403956318,3942.501775669759,0.9918237732947764 +WV,172,3259.657506758474,9100.276631459832,1158.998624739075,0.0,2022.00058506202,2519.0017991813133,112.79527050494193,1138.3632255528596,527.944563838932,527.944563838932,3601.0373357044714,4018.2039789225164,2486.2750063371764,2598.007000693421,482.3328343423386,341.2380783582885,4916.72911869662,3273.584074468357,1.0014884049831165 +WY,86,61.72311017130472,185.04427596816055,0.012267118709900923,0.009350974449621928,776.1611591515241,1073.8968857303662,106.79019495290314,407.7410194905827,0.0028421667660806036,0.0028421667660806036,1104.3022594118704,1712.1484593357422,1095.4073692458164,1237.004448770852,0.0,0.0,8599.807762232542,8351.101178319219,0.9855135669216282 +US,9589,2249.906932822062,4790.034463743288,786.9696319503663,157.7864056458493,1135.028699866291,1727.469583930558,180.51024739827332,611.8596230676515,103.42438620107336,103.42438620107336,3182.004127725925,3037.383431459737,2062.406374828032,2134.3758803833375,148.30581127833102,31.017773745187817,6896.711131637543,6356.107844503804,1.0127405915871852 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/default_rentfix_states.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/default_rentfix_states.csv new file mode 100644 index 0000000000..f00c83ae25 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/default_rentfix_states.csv @@ -0,0 +1,52 @@ +state,census,was,fix,moe,step +AK,10.5,11.644427030114807,11.644427030114807,2.1,0.0 +AL,15.5,16.987156204496582,16.987156172693346,2.4,-3.1803235600591506e-08 +AR,13.3,8.128457681954233,8.12665370441204,2.7,-0.0018039775421918591 +AZ,13.3,16.951186290817823,18.420541058790104,2.3,1.4693547679722805 +CA,17.9,24.416506507457978,24.10827259793097,1.0,-0.3082339095270079 +CO,7.7,10.352503583390458,9.00042149640059,1.8,-1.3520820869898689 +CT,12.8,13.37130725177666,13.103727257080852,3.2,-0.26757999469580795 +DC,20.3,34.36530331852773,34.36530331852773,3.7,0.0 +DE,8.7,22.42918607516834,22.42918607516834,2.6,0.0 +FL,18.4,28.15649904995264,27.095564527709552,1.8,-1.0609345222430875 +GA,15.1,18.428986886706188,18.428921870197616,2.2,-6.501650857160257e-05 +HI,13.0,7.019040434276884,7.02263046625347,2.6,0.0035900319765858058 +IA,8.2,8.808982597327752,8.808981940130073,1.9,-6.571976793878775e-07 +ID,6.5,6.9578273141402125,6.9578273141402125,1.3,0.0 +IL,12.4,14.678691537509486,13.892808212545575,1.6,-0.7858833249639119 +IN,10.6,12.73434829350947,12.73435106019549,2.2,2.766686019839426e-06 +KS,9.7,9.659862114476377,9.659862114476377,2.5,0.0 +KY,13.3,18.537173560636017,18.53715922525417,2.9,-1.4335381845143047e-05 +LA,20.7,12.087426776757603,10.998922192762377,3.0,-1.0885045839952259 +MA,12.8,20.202673733449156,20.735055290041316,2.0,0.5323815565921599 +MD,10.7,23.16543405722103,22.20160300348038,2.5,-0.9638310537406518 +ME,6.5,12.449100804293858,12.449101305564115,2.3,5.012702573026218e-07 +MI,10.3,14.518361806845279,9.135550732308516,1.9,-5.382811074536763 +MN,6.9,8.43142834945164,8.431428334707942,1.9,-1.474369781817586e-08 +MO,9.7,18.479794346249818,17.93926242592331,2.3,-0.540531920326508 +MS,19.1,12.942210983876365,12.942210983876365,2.6,0.0 +MT,9.3,2.5309435706442085,2.500512766712494,2.3,-0.03043080393171449 +NC,14.4,18.100974606703634,16.366059471258783,2.2,-1.7349151354448509 +ND,10.3,11.1304753740105,11.13047552583656,2.1,1.5182606105668128e-07 +NE,7.1,10.711871739273764,10.7118714268824,1.9,-3.12391364332143e-07 +NH,7.5,10.516178236344567,7.823302559599673,2.4,-2.692875676744894 +NJ,13.3,10.924964213914969,12.202838563136197,1.9,1.2778743492212286 +NM,10.9,10.15133656941352,13.168284612343323,2.1,3.016948042929803 +NV,15.0,19.070065382005385,20.000062051758462,2.5,0.929996669753077 +NY,16.2,17.72711706952501,16.7627659883383,1.9,-0.9643510811867131 +OH,12.3,9.813281011698674,8.890005335970482,2.1,-0.9232756757281919 +OK,9.9,17.21439737707679,17.68328553393632,2.0,0.46888815685953134 +OR,11.0,16.287025373398986,17.05894482560417,2.4,0.7719194522051822 +PA,11.1,14.135315176005452,14.125219350458613,2.0,-0.01009582554683952 +RI,8.4,17.87488341023184,17.87488341023184,2.3,0.0 +SC,11.1,9.88463770916897,9.617223324446238,2.1,-0.2674143847227324 +SD,7.8,11.338984093590906,11.326160563799045,2.2,-0.012823529791861077 +TN,10.0,23.237083981929008,24.31226521388352,1.7,1.075181231954513 +TX,16.1,19.24437088161237,19.60031027631085,1.3,0.35593939469848124 +UT,7.3,13.21129757366149,13.211324362162902,1.6,2.678850141180078e-05 +VA,12.1,18.12834310047842,18.128333445817884,2.4,-9.654660537705695e-06 +VT,8.3,17.678700212574235,17.67870002324115,2.5,-1.8933308609803134e-07 +WA,9.3,14.206930055854656,14.265896489842294,1.9,0.05896643398763857 +WI,7.3,7.034634654513512,5.482848919611162,1.7,-1.5517857349023503 +WV,11.3,17.93170541550054,17.484239585466508,2.4,-0.44746583003403373 +WY,6.5,8.787559151426471,8.787559151426471,1.4,0.0 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley.csv new file mode 100644 index 0000000000..73badc1230 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley.csv @@ -0,0 +1,52 @@ +,priceyear,threshold_rest,cash,inkind,fed,payst,exp,E_census_flag,pe_2024,pe_all_swapped,pe_2025,year +AK,3.3608050203643165,-0.33936729029887136,2.0133125125282243,-2.6460439429041576,0.821201989053139,0.01279663143098456,-0.602630696864039,9.024351363448119,11.644425586757714,11.644425586757714,11.644427030114805,1.4433570907357307e-06 +AL,1.3183318859112512,1.872716040682047,-1.2939607142366065,-5.630536991827319,1.7011392854598284,0.08310380947648903,1.8555847996000019,16.607525526139906,16.513903641205598,16.513903641205598,16.987156204496582,0.4732525632909841 +AR,2.5540817340424318,0.29798093780734025,-1.6300929952769998,-4.970315373069428,0.34768173636066746,0.9388146278723541,-1.3955589860289515,11.984027385304842,8.126619067012252,8.126619067012252,8.128457681954234,0.0018386149419828968 +AZ,1.8207620014806611,-2.3728945721952783,-4.367061807524891,-4.576024508036879,2.458768285673739,1.2168455175322523,-1.387050286203167,22.489854894589175,15.283199525315613,15.283199525315613,16.951186290817823,1.66798676550221 +CA,3.734813616864572,3.9983482223438083,-3.0123724059105044,-2.5309403818033522,0.32827439277913373,0.9100596392788926,0.7992971388734389,17.9792497738772,22.20672999630319,22.20672999630319,24.416506507457978,2.2097765111547893 +CO,2.3569618035223394,1.6085212746847446,-1.3625943039942636,-1.2780729463765963,0.8501832122088124,-1.055260632986236,-1.1385427893273354,10.85841464673308,10.839610264464547,10.839610264464547,10.352503583390458,-0.4871066810740885 +CT,2.271271603388731,0.8490269445798393,-3.6414922706787896,-0.2798754696077862,-0.30075866111132926,1.2747226755707834,0.1945289676054879,13.003823363877943,13.37124715362488,13.37124715362488,13.371307251776658,6.009815177776545e-05 +DC,5.547207414901779,-2.9706911303668417,-8.28195726881857,-10.214454341133216,2.025732209658579,-4.791437015641988,-7.1470509143165195,52.7023873632267,26.86973631750992,26.86973631750992,34.36530331852772,7.495567001017804 +DE,3.9581170401120946,2.0604785613853944,-7.451893790453215,3.3285408814776885,2.3480383654405395,2.3167154792223883,0.0001367983154430194,12.957297100970528,19.51743043647086,19.51743043647086,22.42918607516834,2.9117556386974783 +FL,3.0188619207465237,1.8755076340242889,-2.61302442638674,-4.785740912870631,0.8406645979121391,0.08112042035364984,-1.6533379787304059,30.877687609630765,27.64173886467959,27.64173886467959,28.15649904995264,0.514760185273051 +GA,2.9980647023309768,5.255069854634639,-1.475494027095384,-4.257042375437337,0.7449608461766424,0.3787614025169008,-0.930319786375591,14.400959324173607,17.114959940924454,17.114959940924454,18.428986886706188,1.314026945781734 +HI,2.7865481742238227,-0.8175449821643097,-5.560900458323872,-5.4502092830208735,1.5273452528345322,0.20202467031311366,-1.0296673660068556,17.244110656462933,8.901706664318487,8.901706664318487,7.019040434276884,-1.882666230041603 +IA,0.7089033031831818,-1.8196371024399083,-1.850960945582794,-4.96657765056953,2.7384801764738746,0.40118595289503106,-0.47355260666894167,13.196425186307863,7.934266313598778,7.934266313598778,8.808982597327752,0.8747162837289739 +ID,0.6272234722454092,-0.28410040282524596,-2.6800883285942394,0.5123999842653562,1.2274133818765989,0.11269901109669594,0.6208052026968527,8.131051782451717,8.267404103213144,8.267404103213144,6.9578273141402125,-1.3095767890729313 +IL,5.013899745108192,0.6056672221530393,-4.793425091828129,-3.5738270061870403,1.6815041704720965,0.22090187795955257,0.7294644243282948,14.164989188467368,14.049174530473374,14.049174530473374,14.678691537509486,0.629517007036112 +IN,0.911694589043641,0.4385221004849856,-0.022582080428553572,-2.9334723825644367,2.1220310936645017,0.9428229216893627,0.6691250996228952,10.352642869057034,12.48078421056943,12.48078421056943,12.734348293509468,0.25356408294003785 +KS,1.208829242392519,0.7293630172656478,-0.7086763261737665,-1.8514835399518081,-0.44575899870011776,0.6050234527094212,0.005734533258932915,9.962971000843265,9.506002381644093,9.506002381644093,9.659862114476377,0.15385973283228438 +KY,3.5471439175373476,0.2187196371904262,-1.0906706120606506,-6.158256439680514,1.9078631287428505,0.03322300883614256,0.6825044936523845,18.59272575763501,17.733252891852995,17.733252891852995,18.537173560636017,0.8039206687830216 +LA,2.1946986500641503,0.6021045074112926,-4.8872099747062,-6.1336119585801026,0.4236087483282882,1.174007513770854,-1.0072161504703834,20.19458093390622,12.560962269724122,12.560962269724122,12.087426776757603,-0.4735354929665192 +MA,3.1504620947839825,1.824317791646738,-2.1512932748998423,-2.3851721573228892,2.7201819672862593,0.39138859785887997,0.886040144084859,15.432276127472939,19.86820129091093,19.86820129091093,20.202673733449156,0.33447244253822817 +MD,2.97249625382442,-1.6814742747720492,-2.998092953931356,-13.149218679022852,2.301804102472539,0.2584282552123607,0.0009505066893057412,23.306342504048917,11.011235714521286,11.011235714521286,23.16543405722103,12.154198342699745 +ME,1.2217293963410976,1.4986581861528971,2.6854598298722276,0.5438976565036788,0.5285312855381021,0.3828917293153594,-0.13966101691758645,5.727408884425186,12.448915951230964,12.448915951230964,12.449100804293858,0.00018485306289406367 +MI,1.949393687957881,0.18168664357080452,-3.2077604647093763,-3.067915041014814,-0.2888168792998045,-2.3453693451553077,0.32583363496835127,17.30462211991008,10.851674356227814,10.851674356227814,14.518361806845277,3.666687450617463 +MN,0.9958881932858108,-2.139190232384351,-1.8390293421403037,-2.817721124184953,1.179781840523287,0.7767361772425894,-0.2776146191462994,12.552582952572417,8.431433845768195,8.431433845768195,8.431428349451641,-5.496316553887937e-06 +MO,2.525285234964226,0.4371240070971101,-3.4962118050910957,-4.62959308702418,1.70708832589088,0.14567731621576566,2.7446197512378583,15.31091060160618,14.744900344896745,14.744900344896745,18.479794346249818,3.734894001353073 +MS,3.5098295754957576,-1.0385148782609601,-0.0785712601499286,-1.5045648869727495,-0.7629749839372522,-0.018800291832153548,0.8680365875875611,11.96784491731417,12.942284779244446,12.942284779244446,12.942210983876366,-7.379536807938791e-05 +MT,0.5577773574890139,0.3136967856775926,-6.176332077657837,-8.988299317619814,0.7404220233403311,-0.12222123623227765,-1.288019510472027,17.493919205009192,2.530943229534177,2.530943229534177,2.5309435706442085,3.411100313321924e-07 +NC,2.9917755138877893,1.5889517915483808,-3.9378451737128195,-4.658060467751194,1.5449345899330151,0.7586528397177827,0.8379867280707843,15.755931785462808,14.882327607156546,14.882327607156546,18.100974606703634,3.2186469995470883 +ND,0.4047400496250773,-0.09026307888463096,1.2563325709431499,-3.549040409978305,3.1914238537457535,-0.0696840527174508,3.551669514601349,5.963289575658015,10.658468022992958,10.658468022992958,11.130475374010501,0.47200735101754354 +NE,1.2960767368126376,0.12743794431720334,0.01817693138399376,-1.823662131288207,2.232723261325984,-0.15264217173790479,0.17359694359898634,8.837638979188856,10.709346493601549,10.709346493601549,10.711871739273764,0.0025252456722153482 +NH,3.0837204256743815,1.82454376204759,-8.180206286203951,3.7084724997140737,-1.2383708305092618,0.11590918405441983,0.07600508555678054,9.200421541459052,8.590495381793085,8.590495381793085,10.516178236344567,1.9256828545514821 +NJ,2.594862337861526,-0.046349521859947056,-1.9052847376211515,-3.9276541420271442,1.0620220631781778,0.04847714646746479,-1.0234554458273308,14.122366700093778,10.924984400265373,10.924984400265373,10.924964213914967,-2.0186350406348197e-05 +NM,0.8984443360241857,1.345765766159638,-1.7996477694093034,-3.23615974089942,2.3938654302839257,1.8519543175560549,-0.4825706994635374,9.179683456657028,10.151335096908571,10.151335096908571,10.15133656941352,1.472504948196729e-06 +NV,1.2780572340969762,0.15538364393189058,-0.8371691269923955,-3.4712094090605867,-0.4022519790696299,0.052032758542375775,-0.22155253596842953,19.623393902835147,16.17668448831535,16.17668448831535,19.070065382005385,2.8933808936900363 +NY,3.6688540626959734,2.925855721004915,-5.5621025524462855,-2.5489613687673462,1.3610938431669954,0.6383900023920127,0.7071016018252911,16.353585694697465,17.54381700456902,17.54381700456902,17.72711706952501,0.18330006495598994 +OH,2.9082863134583876,0.13223925491974475,-1.603410854540424,-1.981967575270292,-0.19320136079625766,0.4083430366090697,0.9667068080125256,9.17628484640272,9.813280468795472,9.813280468795472,9.813281011698674,5.42903201505851e-07 +OK,2.2507619572468056,-0.302401652731688,-0.9501987966650453,-2.949897696875654,0.7642730713738818,0.15176168971961204,0.7058568171615272,14.082912185032024,13.753067574261463,13.753067574261463,17.21439737707679,3.4613298028153263 +OR,0.6438555867545718,0.7542297393411018,-2.1713591501213183,-6.800482791273317,3.1285350558586917,0.5075668039504908,-2.1957512166856405,19.66425090664921,13.53084493447379,13.53084493447379,16.287025373398986,2.7561804389251954 +PA,1.6062834649456545,0.5424530179471139,-1.2907728999152983,-4.152542937970984,1.2634326999418022,0.23390647416397164,0.6854287132343312,12.767784123857524,11.655972656204115,11.655972656204115,14.135315176005454,2.479342519801339 +RI,4.410445374723934,0.36167593080258276,-8.506345200603583,-4.673537230681236,2.368739583227816,2.5921980933756896,1.837150687640257,19.33281244458234,17.723139683067803,17.723139683067803,17.87488341023184,0.1517437271640354 +SC,1.7637594676864115,-1.5867336498387754,-3.5912231132870795,-2.7464248536980085,0.36790953094148776,0.5937132790561693,-1.9793405032637237,16.065761649922194,8.887421807518676,8.887421807518676,9.88463770916897,0.9972159016502946 +SD,1.5274428131576496,-0.46686239926801004,-0.18135726210368344,-2.5926033021161374,3.044852837850543,-0.08639021869963183,0.3181767182611175,8.96203665111507,10.525295838196916,10.525295838196916,11.338984093590906,0.8136882553939895 +TN,2.255655284592354,1.4452316800238965,6.287566201536704,-4.080439968592732,2.180280486756023,0.2744145749825271,1.5605406948568774,11.15747860029757,21.08072755445322,21.08072755445322,23.23708398192901,2.1563564274757923 +TX,4.067480349194922,0.25842735649785353,-2.941430279692982,-4.386737336382392,0.6480292524583766,0.24275972632422,-0.6703892183404248,19.42350355764541,16.641643407704983,16.641643407704983,19.24437088161237,2.602727473907386 +UT,2.899323682435838,0.5329597611058944,-2.3798379364787667,-1.4709403622056436,1.4263187737303753,0.4632630365941238,0.6634239980047029,9.803531004406725,11.93804195759325,11.93804195759325,13.21129757366149,1.2732556160682407 +VA,2.356755215099008,-2.918770809800026,-2.1728268691566233,-2.1033275298249974,1.3495482957473668,0.24683656630353026,-0.0920857251428775,21.462234707033442,18.128363850258822,18.128363850258822,18.12834310047842,-2.0749780400564077e-05 +VT,1.1477721372579623,-0.5996401917257697,2.9791428700883307,-5.025076866521651,1.089683599173489,1.3399307745415987,-1.8105128039642777,17.30013370260179,16.421433221451473,16.421433221451473,17.67870021257423,1.2572669911227585 +WA,1.7507481968406027,1.9712234199557683,-3.937549630476159,1.5203884664242577,1.7521481009555826,0.2791475383614217,-1.1014054216630882,12.49154024058394,14.726240910982327,14.726240910982327,14.206930055854656,-0.5193108551276708 +WI,0.6000931061076196,-2.4307106639785605,-1.6027657720689565,-1.5959895353699043,2.2517580426320762,-0.05507977314021497,0.12317856733347367,9.744145371069521,7.0346293425850535,7.0346293425850535,7.034634654513511,5.3119284579850046e-06 +WV,2.3786505868597323,-0.29607897879689254,-0.23747900918151596,-1.1797192944641235,1.8952229569823247,0.8951469189067289,-0.3861001860461497,14.862075940319263,17.93171893457937,17.93171893457937,17.93170541550054,-1.3519078827073372e-05 +WY,0.6804024383838546,-0.04432538183610529,0.8616959686231731,-1.445993411911752,-0.3690853911960428,-0.7955063828085727,1.177466176279481,8.723064218446833,8.787718233980868,8.787718233980868,8.787559151426473,-0.00015908255439534003 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley9_all.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley9_all.csv new file mode 100644 index 0000000000..e19df961ce --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley9_all.csv @@ -0,0 +1,53 @@ +,E,priceyear,threshold_rest,cash,snap,housing,otherkind,fed,payst,exp,pe24,n +AK,9.02435136344812,3.079003222885145,-0.4408448794903329,1.9019503628352825,-1.7044601462015034,0.3712291509576962,-0.7559144314770624,0.705946938026233,0.014875925034060319,-0.5517119192599229,11.644425586757718,338 +AL,16.607525526139902,1.7975595620420175,1.596809581752448,-1.3998890603147562,-4.574198939948313,0.04624062553049113,-1.0488234664218004,1.62362973858201,-0.05184595049528187,1.916896024338885,16.5139036412056,466 +AR,11.984027385304827,2.5874757331344687,0.13672852688311643,-1.466982166039604,-5.158764991198195,0.4823206757955083,-0.28920315735713753,0.3816471912572347,0.9781166659606891,-1.5087467967286652,8.126619067012243,447 +AZ,22.489854894589193,1.904377014324691,-2.3464360100035995,-4.368502832542008,-3.4393064323911786,0.29843569837452444,-1.5552288741120381,2.3001131814643347,1.3622873343378938,-1.362394448726184,15.283199525315627,505 +CA,17.979249773877193,3.613066950313934,4.071795319558703,-2.9367550487813014,-4.028195601032923,2.369173715245819,-0.8761426121731972,0.37681345453600756,0.9265529765110698,0.711171068247872,22.206729996303178,1088 +CO,10.858414646733076,2.260001087534816,1.7068373122960012,-1.3754469271118164,-1.1047944480168228,1.205384522217379,-1.5159947491304981,0.8426697978171357,-0.9825587356635284,-1.0549022422111927,10.839610264464548,441 +CT,13.00382336387795,2.3239860108523285,1.4851799865026287,-3.682476138600359,-2.6506624345118244,1.895623291873009,-0.1073290054504543,-0.3138035795599009,1.1830713103185255,0.2338343483229853,13.371247153624891,356 +DC,52.7023873632267,6.239318476118635,-2.553933384036976,-8.918515486182512,-5.084297083990847,1.930025547209525,-10.561947800487118,2.287361135814824,-3.4640695202239113,-5.706592929938394,26.869736317509922,191 +DE,12.957297100970527,4.151021849475116,2.1257703587220877,-7.779509651289908,0.7258967979223958,1.7419850226643319,0.5805009159046985,2.4601348374005876,2.3626762290335694,0.19165697566744863,19.517430436470857,404 +FL,30.8776876096308,2.9077952258397732,2.0009281128638166,-2.635064685257263,-4.714744447169579,0.6290752164342265,-0.8407477447788938,0.9187807959949558,0.12892840943532882,-1.6308996283135506,27.64173886467961,627 +GA,14.400959324173618,2.969653404020692,5.230148662077255,-1.5813126477921433,-3.9645377500865084,0.3363852201126174,-0.6756801090084359,0.7953132889128408,0.374872705410167,-0.770842156895647,17.11495994092446,538 +HI,17.244110656462926,2.4991899178110937,-0.8314718979437538,-5.564579438056641,-7.146687374925437,2.8480996972960777,-0.8602832913418547,1.51802163758558,0.21458482543570084,-1.0192780680052047,8.901706664318482,350 +IA,13.196425186307867,0.7777983537528183,-1.2394959472822982,-1.831502289701529,-5.318888700319705,0.653451263776053,-1.10720949937547,2.841722295298881,0.3927721641406854,-0.4308065129985223,7.93426631359878,400 +ID,8.131051782451719,0.5977622240247035,-0.21601021767302173,-2.662333080515075,0.13999076858057363,0.4834190750601891,-0.13391042375948026,1.150738217110187,0.12882534589337752,0.647870412039976,8.267404103213147,375 +IL,14.164989188467372,4.95244872152442,0.7123059199138466,-4.61836024571742,-4.352477318524943,3.2369230641188658,-2.19674488408092,1.1816384380140672,0.09491117013649485,0.8735404766216022,14.049174530473381,675 +IN,10.352642869057032,1.1180184744647146,0.41002618669479335,-0.11028704127762966,-2.4715002338156293,0.4314659555267092,-0.7392634338244504,2.1667367881197954,0.9840673718350519,0.33887727378903804,12.480784210569427,514 +KS,9.962971000843254,1.1640086635344293,0.7864874888101006,-0.7248076779709614,-1.8777811992278344,0.2473167860508876,-0.18540989310776865,-0.37699170214773126,0.5633593353341054,-0.05315042047440044,9.50600238164408,387 +KY,18.592725757635005,3.5332274643913815,1.679130601297591,-1.0572586260806007,-4.154695646193308,7.87233107558875e-06,-3.667774907075876,1.870594933438364,0.053102937037160396,0.8841925050722055,17.733252891852995,344 +LA,20.1945809339062,2.31547282989839,0.23251367279144775,-5.05413022242856,-7.136294338019582,2.6334524176780967,-1.346227294626237,0.6215153407889262,1.0810703116204938,-0.9809913818850629,12.560962269724113,439 +MA,15.432276127472951,2.874497887449206,1.8450268520145632,-2.045511775260086,-3.285776191261088,2.219581756943433,-1.119235441668818,2.5068492997505736,0.40871835355108177,1.0317744219191358,19.86820129091095,609 +MD,23.30634250404891,3.4779669109245086,-1.6822690803224116,-2.96383921121605,-11.999276355536924,0.20174730611957392,-1.8830977950600065,2.4405184239541784,0.1776380674512425,-0.06449505584174198,11.011235714521279,440 +ME,5.7274088844251825,1.1545205078445901,1.319036127827562,2.459445263854676,0.29216087110333955,1.102475105621852,-0.33558876524658143,0.533294868339815,0.40384254364479083,-0.20767945618427042,12.448915951230957,286 +MI,17.3046221199101,2.0154080311656752,0.2144051204202423,-3.1869770760641476,-3.6286266230858764,1.7152841574432243,-1.4484839677955819,-0.3339606208767184,-2.4152939655803736,0.6152971806912904,10.85167435622783,552 +MN,12.552582952572402,0.9723807126762035,-1.864995111488679,-1.8744222943029325,-2.2601106443124,0.49286769954106435,-1.4857074014031808,1.1690245792454086,0.7242882938169628,0.005525059423342152,8.431433845768192,483 +MO,15.310910601606178,2.509935015790563,0.6602599202498531,-3.576271920782865,-3.285736531368575,-0.07147610850994851,-1.6743579496789047,1.7566090546474453,0.19870130034573338,2.9163269625972594,14.744900344896738,410 +MS,11.967844917314165,3.4158981774967234,-0.9251562934922093,-0.23866501961546263,-1.8570945303741997,1.599582896166532,-1.2576381821140021,-0.64249128704704,-0.05448477256499428,0.9344888734749202,12.942284779244433,404 +MT,17.493919205009174,1.6963827675187289,0.46726087619379025,-6.139893508925355,-7.235578186888045,0.03879653484820497,-3.1074314671227814,0.788652935036166,-0.11673554604069271,-1.3544303800950204,2.5309432295341754,258 +NC,15.755931785462824,3.0209895022282938,1.76575097916327,-3.87973007836128,-3.456835976662144,0.46732043693337555,-2.035387109161442,1.5161898790644281,0.684835128593573,1.0432630598956618,14.882327607156556,545 +ND,5.963289575658014,0.8046369069865872,-0.09026234200740572,1.1999944546712817,-3.184296867225359,0.18546643184148476,-0.7843978424521052,3.269652780739225,-0.06968405271745069,3.364068977498679,10.658468022992954,269 +NE,8.83763897918886,1.34486353442194,0.11687999268273204,0.02663292345217308,-1.4813520382687195,5.851054763220696e-07,-0.6532422832050772,2.2894112786191116,0.10614921716271503,0.12236430444234114,10.709346493601554,414 +NH,9.20042154145905,3.083899691234773,1.9134582163232141,-8.036343267513196,0.7670667785221275,3.2059292218110826,-0.8386162379018971,-1.134425464577162,0.33778320979087434,0.09132169264421744,8.59049538179308,312 +NJ,14.122366700093764,2.612740822873895,-0.12828280370616202,-1.960087373217407,-3.0814603261622313,-0.07433982549684244,-0.7028259068848016,0.9525522604054255,0.10781612281609132,-0.9234952704563623,10.924984400265368,668 +NM,9.179683456657026,0.9459170773813352,1.2763354662114974,-1.5918262217514463,-4.402083830084937,1.4431436474175685,-0.02214745736955929,2.0829315631751943,1.6484045398309024,-0.40902314455901356,10.15133509690857,391 +NV,19.623393902835147,0.8884843857477623,0.24700507583769843,-0.8181280426508156,-2.631895886840315,0.37238697849322516,-1.1523861017189456,-0.26157919991762535,0.052032903928276385,-0.14262952739905072,16.176684488315356,411 +NY,16.353585694697436,3.457280612801215,3.1122506763682463,-5.494418026062303,-3.364648359557897,1.595814120979365,-0.6168217419291238,1.3187804804733179,0.5918763904684764,0.5901171563302531,17.54381700456899,819 +OH,9.176284846402721,3.201554020356257,0.21646680102285307,-1.8181591703716147,-2.845529971004474,1.4631226045302599,-0.46024099816568487,-0.2688134005336702,0.37778785791956915,0.7708078786392613,9.813280468795476,613 +OK,14.08291218503201,2.1798398134022796,-0.23762088204772325,-0.8946078086259897,-2.283712969415842,-0.5490110351000965,-0.15187656363539975,0.7001337847093749,0.10573419526500963,0.8012768546778238,13.753067574261449,384 +OR,19.66425090664919,0.5567448516391978,1.238192235397592,-2.2547761108371116,-5.764454892676281,2.4302805401643292e-05,-1.3027560832391576,3.1725801803314955,0.4236294204895825,-2.2025898760861344,13.530844934473777,468 +PA,12.767784123857522,1.7505662508560553,0.5048985345016381,-1.3487031795426314,-3.403044411398112,0.4230270541971858,-1.0402760513721998,1.1440859254533067,0.22674391650242515,0.6308904931489254,11.655972656204113,773 +RI,19.33281244458234,3.7190422112751635,0.27283807875530985,-8.284183057311624,-3.217672681869239,0.8397194511460729,-1.1554119276599606,2.205117783843287,2.1708548068384297,1.84002257346803,17.7231396830678,297 +SC,16.065761649922184,1.904171947044423,-1.302781176252481,-3.3429721572495286,-2.9704961408772554,1.1595572900053424,-1.4394743114425215,0.2996654037394474,0.5233060873839561,-2.00931678475489,8.887421807518672,419 +SD,8.962036651115069,1.6077898946679525,-0.5713604203978584,-0.306891209403139,-3.6468006136399245,1.6437471763484512,-0.8514928731400901,3.1482055573962833,-0.08638980247888402,0.6264514777290544,10.525295838196913,327 +TN,11.15747860029757,2.2427768123510803,1.4296861423719467,6.261536283697897,-4.586505239065246,1.4026494096803925,-0.8482004604363261,2.2191149564288963,0.2769988175330339,1.5251922315939779,21.080727554453226,491 +TX,19.423503557645454,4.115077211066346,0.3511062068222839,-2.8820880744323167,-3.9604887066725225,0.4115240778567649,-0.9293710145838354,0.5963369490045847,0.23895666743039917,-0.7229134664321435,16.641643407705015,858 +UT,9.803531004406732,2.881288525166957,0.665571129501926,-1.9764593063097529,-1.2492081911284814,0.5757418114951622,-1.09558831844743,1.2354030497975388,0.46976221941363877,0.628000033696968,11.938041957593258,403 +VA,21.46223470703344,2.429321128340785,-2.8013455728119947,-2.200764318682719,-3.215683072460755,1.6503082755555074,-0.6237338895563551,1.3724386956284966,0.18435912550759567,-0.128771228295186,18.12836385025881,595 +VT,17.300133702601787,1.068322973290802,-0.4730734696679558,3.0875618599090795,-5.322925196346758,1.0532838778781706,-1.1099080043328378,1.4193159083525333,1.3635151223119517,-1.9647935525453062,16.42143322145147,158 +WA,12.491540240583936,1.8460295177188464,2.139714649209785,-3.9925074602701063,-1.6363204205238713,3.3437248480029607,-0.5476158005747865,1.8965228739816384,0.22769052557602823,-1.0425380627221092,14.726240910982321,503 +WI,9.744145371069516,1.0115797911827886,-2.1191085907480174,-1.553627014508667,-2.821452325483031,1.5721535218677656,-1.3422414355681556,2.327112357067846,-0.1439702060102474,0.36003787371525003,7.034629342585048,450 +WV,14.862075940319256,2.3315911721731237,-0.42676887853221707,-0.24938757726926422,-3.2963769846126354,3.4021879364723344,-0.9452928216821259,1.813462846959808,0.9566779659105559,-0.5164506651594786,17.931718934579358,346 +WY,8.723064218446828,0.6642206077957047,-0.10973220855467786,0.8928499514437716,-0.9221586802495984,0.2542335922230876,-0.863264757800295,-0.3568023843867584,-0.7230881471486392,1.2283960422114422,8.787718233980861,220 +US,16.50240619987829,2.7875154271809177,1.086563659793531,-2.5129332135007845,-3.700875329222458,1.1511787328891259,-1.0669901241379318,1.0642513928243647,0.334874859756845,0.042604002135569495,15.688595607597467,23461 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley9_asec.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley9_asec.csv new file mode 100644 index 0000000000..6d338c4f4e --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/default_shapley9_asec.csv @@ -0,0 +1,53 @@ +,E,priceyear,threshold_rest,cash,snap,housing,otherkind,fed,payst,exp,pe24,n +AK,6.210517478470331,3.017601980066417,-0.3908330885440298,-0.2068044784763642,-1.7066340444919146,0.33110274911410165,-0.6700373811142998,-0.2824359407736757,0.0,-0.0953258010358711,6.20715147321469,151 +AL,26.613934669104843,1.9156945350835564,0.15048030954492192,-0.34202432184018616,-8.892074855231371,2.152184839608514e-05,-1.704001038843697,1.6300744488835748,-0.10391570725727904,-0.7543167748004237,18.513872786492332,197 +AR,7.626099379326257,2.4792457160674006,-0.06255737981661233,-0.7784257333876458,-2.1043334096258004,0.12132701168936535,-0.5119226014607704,-0.29354664162869737,0.32132860337634955,-1.4170115484637573,5.38020339607609,203 +AZ,31.333867786161267,2.204932807585928,-7.318254811566868,0.2757862821195314,-1.8542532087597037,0.8081664087734899,-2.769652393244472,0.6545716211265741,0.47639977314065074,-1.283516417033319,22.52804784830308,202 +CA,22.210778699583017,4.616151270861619,4.829709292152435,-0.37364659138785805,-3.302202431631649,3.0291152644115265,-1.0640879651863062,0.03817585530410156,0.499705925298301,-0.3476904092328981,30.136008910172286,326 +CO,19.202336678880204,5.497868711218073,3.262566064960554,4.117988491312896,-3.1403861611142103,2.895385087201749,-2.3692806143320455,-2.0143644970594314,-7.492884984452845,-3.288327730189287,16.67090104642567,181 +CT,15.276932257752682,2.1496502585565436,3.210422535682046,-1.7893835461894805,-5.4747971480888635,3.2670597010890337,-0.4709535564364666,-1.214121071335413,0.31326507971575096,-0.5350331820345058,14.73304132871133,147 +DC,54.532193090978176,8.692409167005874,-3.860885503820856,-10.423558563188234,-6.118702727262956,3.8018906361958447,-11.246662109229026,-0.6022064410921086,-3.4339646055048454,-3.7875147633660053,27.55299818071585,81 +DE,7.54606210826096,6.704897360308395,0.6041870775737508,-0.019918057145960833,-1.01998660613777,3.5071330167376593,-1.2358933386381863,-0.5684393596422869,1.0214732500488157,-0.43859693650691073,16.10091851485846,172 +FL,40.32390222702993,3.203648929708263,1.2221369268479827,2.117148251955981,-4.515733961145926,0.7057377788613489,-0.7203047298241034,0.2927818458597061,0.0,-0.42204354944671507,42.20727371984647,242 +GA,18.545089769638604,5.127053262318756,6.243625861787377,-0.13598287394881828,-4.689569402231161,0.569777541528278,-1.7153484206602088,-1.8111953793383384,-0.40202193383579626,-0.9859407108298023,20.745487714428887,227 +HI,27.199207482409328,4.5499331955658135,-1.47832196806344,-0.0004778366112551089,-19.06370585966475,7.840094047333307,-1.32423723774881,-0.36083375587038197,-0.2823645052270086,0.0025288260197838955,17.08182238814257,149 +IA,19.012620211995117,0.5968231836363732,-2.0646974305405568,-1.850098613885006,-5.633254317070397,1.357882357101209e-06,-2.064659181977431,1.4771435398912942,-0.11528272856070343,-0.16276464704763835,9.195831374323403,184 +ID,7.2606594535758395,0.5105953801143098,-0.13937666688758804,6.094016816367202e-07,1.00215769429018,1.218284460606717,-0.16512360609417578,-0.07772839841801164,0.06477581387810141,-0.12582278881031803,9.548421951656735,153 +IL,18.656180900066925,8.062250888575422,-0.3986186791687475,-1.3560907388984331,-5.234275158898941,6.3474136913936405,-3.5296666020978282,-1.0884324988997245,-0.8091389557024298,-0.6642942684206884,19.985328577949193,272 +IN,7.938873234109183,0.7053838189829127,0.9601312642833861,-0.3151090013149175,-1.090077994881386,0.13951124654743394,-0.350558445546747,-0.10458931819543121,-0.016538014486933702,-0.6804630251388488,7.1865637643586515,220 +KS,3.8875196911102465,2.1356852358539262,2.5496803444338996,2.790462157567883,-2.1386922744345984,0.590895383867138,-0.34012031618929084,-0.28205418146203054,1.4387025813556762,-0.40527777901379664,10.22680084308905,167 +KY,16.079690202653875,5.453093050722158,2.5055155055482237,2.2874387377864625,-5.518174036375222,6.524414762725742e-06,-5.448558246200092,4.548135189310982,-0.16905679972919904,0.039766578449550505,19.777856706581495,149 +LA,22.04325236416082,1.152452949304316,0.25259160381486284,-0.1939828467608425,-10.810968580801424,2.4893997283516947,-1.138984104017434,-1.187624384273078,0.2900142031692414,-0.20302181016872634,12.693129122779428,192 +MA,25.83153614856535,5.468262991521699,2.093267358720091,-2.860114074010607,-6.279812338786889,2.9064608205622737,-2.097779572850868,1.5119298708073203,-0.2607868135068752,-0.33717495188741087,25.97578943913408,214 +MD,37.82743569433896,5.21892173004812,-4.061127297651845,0.15082287335053604,-23.911889580080462,0.4410036932701899,-3.420783324791697,4.074336299367393,-0.1317004090630184,-2.161351384368517,14.02566829441965,177 +ME,0.001304139977435091,1.6313728640464566,2.7966284470888683,-3.1892453072669706,1.1381510795876455,1.735797918684476,-0.39532144256742013,0.10125790178570362,0.11908372960255449,-0.22571615152131494,3.7133131794174346,130 +MI,12.561104689906607,3.0259209085738252,0.9272141741200834,-1.7218501252100653,-2.4054870988926798,3.1186134263874385,-0.7071987956618064,-0.6513604096960068,-2.4903354002730675,-0.35030336437723597,11.306318004877088,215 +MN,16.44680471981629,1.6773991136069544,-2.6103704168779376,0.4278527660103308,-2.778224020673021,4.6952180591024106e-07,-2.329515233823781,-0.28976833466660157,-0.2897736590963476,-2.0533263181251327,8.201079085692552,197 +MO,16.070992230763455,1.0155731327601696,1.8303317280366653,-3.2340818419375195,-1.630376205819101,9.143558430247191e-07,-0.43077220117895665,0.044459909771848494,0.07857013629896273,-0.3572377050101306,13.387460098041235,166 +MS,13.812494273835599,3.216316518967737,-0.8619656230941511,0.4866921966887518,-1.9765013217766243,1.8992938256974083,-1.2897424623713696,-0.40135867637018213,-0.1692981315532088,-0.7045546117777276,14.01137598824623,179 +MT,15.394012972596938,1.5560419970225718,0.4187538050471516,-4.2740471575650965,-6.910181067928063,0.02930876084124661,-2.7916953800100712,-2.4572522878896733e-08,-0.4187539573623941,-0.4187535072592537,2.584686440810512,103 +NC,14.644363440908704,3.3095715007463555,1.5725038083907832,0.776286047217878,-3.4502606135283087,1.207145576559919,-1.7824377127370938,-0.445841174205714,0.0338051164126095,-0.821809360169351,15.043326629595782,222 +ND,11.78554370814929,0.3964788548714922,0.0,-0.17337979592778222,-4.534586398946413,0.3465272111900469,-0.39653223712584335,-5.343885995276597e-06,0.0,-0.39647640999299383,7.027569588331806,88 +NE,7.612038804080584,0.796014014790456,-0.11448187618440932,0.6621832082335337,-1.7940640444081883,1.339279524154666e-07,-1.7304010618056087,-1.0802515598187283,-1.8201587730988,0.20249982779703718,2.733378673513833,180 +NH,1.8073941221113257,4.769584159667453,3.3334026935571375,-0.9988885786645972,2.4298639618849327,3.995690241912651,-1.0278712870839626,-0.1700124984394993,0.0,-0.2721354022279358,13.867027412717512,140 +NJ,17.54338127197621,4.0883430786868775,-1.5637438563151909,2.2795208798739623,-5.529611479846939,0.00933413661997302,-1.1918976892582112,-0.20473197901553208,-0.6064437718961564,-0.45927418039560547,14.364876410429387,299 +NM,12.58358929216294,1.843165634016204,1.4059976432854098,-2.7977922052929873,-8.53542329161092,3.2732968280785997,-0.061150075019734906,2.88404978508614,1.0029185656006276,-0.5120029270785337,11.08664924922775,172 +NV,25.273424911557257,0.5299954228166776,0.7661350804992025,1.388796853134267,-4.030165187658996,1.3896699384660766e-05,-1.0742918536178552,-0.559613989798782,0.0,-0.09469094758432876,22.199604186046827,180 +NY,15.11286675805412,3.3478587364525563,3.110432286729158,-1.6215242062136226,-3.32005936920716,1.916542767407645,-0.4451597915168035,0.8314150679099106,0.13975384270499935,-0.280382433278566,18.791743659042236,327 +OH,11.396610521573546,2.7630793706324828,0.9244126107370441,-2.5648806621290468,-4.451848662730596,1.9240264354788845,-0.7016803113323146,-0.008833960116185383,0.0,0.291567935203621,9.572453277317436,249 +OK,13.249551252633143,2.178557411447695,0.6500602746541796,7.22154360768835e-05,-3.626950609072729,1.1448997337829056e-06,-0.43862665784688415,0.5817518990372301,-1.361037697289281e-08,-0.7880327925536984,11.806384125024369,156 +OR,23.8705952104834,0.6720236843823026,-1.29186972594283,0.29360640912511393,-4.2086667948285115,2.7910402225715326e-07,-0.01653195736378343,0.7539224398911969,0.056931217315548496,-2.23316057943645,17.896850182730013,198 +PA,14.915285194337649,1.6802191381630918,1.2994249346062583,-1.6173711105199067,-4.215546759111561,1.083983219190749,-0.8827269477215947,0.3034758736101673,-0.19794157691320452,-0.10369047381230297,12.265111491829346,309 +RI,17.356103155960504,4.532728210285195,0.21508191475265898,-7.312972464650462,-3.180807578262675,-0.009014387195275319,-0.6976735997371246,1.3949446374326449,1.086998203007084,-0.4714235589704331,12.913964532622108,127 +SC,3.3688512941934747,1.0059892297689539,1.6112099258550234,3.3531578773575688,0.099373684410818,0.5645371168858329,-1.1703594930190575,-0.20262382407358695,-8.77941359900974e-07,0.39718818587514954,9.027323119312824,178 +SD,12.018235670887186,1.3368872400482954,0.25113375944798516,0.2410663860153124,-3.4721932728339273,0.6046457326075533,-0.35586986655374664,0.9933490664289325,0.0,-2.8762080728806607,8.741046643166928,141 +TN,18.22614762843225,3.2658084413813384,2.4099577349534163,2.3026877351875568,-7.070639725246382,2.6640789425779503,-0.697644790387287,-1.0363203001848718,0.0,0.038939962552736906,20.103015629266714,212 +TX,27.147550807087264,5.811335595423045,1.670117196645333,-0.1428872925260545,-4.66596804498181,0.3695959399144872,-0.7296037878545518,-0.08216900747886002,0.0,-0.5923297585306889,28.785641647698164,310 +UT,16.896517232105882,3.5247435877345543,-0.6178119738089994,1.0887927457268733,-2.73690753648341,1.0888342292247386,-1.7579456700347171,-0.14166099114819697,-0.03774100992250659,-0.4103626830581695,16.896457930336048,177 +VA,30.18073565734874,1.58547273976386,0.12814208710765243,0.8712868545399874,-6.5012206455333885,0.7472161169425268,-1.768215795741053,2.0420398785215994,0.13809162479362688,-0.486758842623391,26.93678967512016,223 +VT,14.44719961446292,1.0386161556971854,1.1932299976345881,1.038642593302414,-7.939264178216318,2.767725128343691,-0.8413554087103832,1.9311638205416501,1.5244509335001175,-0.7131954408878927,14.447213215667965,63 +WA,20.90909658127428,3.4555600386293928,2.914410723962141,1.3662802523841493,-2.684319665283341,5.128222502949553,-0.5911221845045068,-0.24057116064871212,-0.17122928014639596,0.03550387626975393,30.121831684886306,188 +WI,13.971017150285503,2.389492609332252,-3.101730144873907,5.31906014023744,-2.785318594435354,4.386735572386483,-1.7706676748121817,0.11630421217630085,-0.14631995944912976,-0.0005292759363844726,18.37804403491102,196 +WV,23.77972752386654,3.5902781119236855,-0.7329794378325957,0.10821006085227752,-3.877560824653373,6.225927349544736,-1.4506531887812946,-0.6559672608119548,-0.08330162611361287,-1.1823896249549715,25.721291083039443,172 +WY,2.560329572894481,0.3472166074550461,-0.10571699616902873,0.3877680535623498,-0.35245179388919334,8.448378892419609e-08,-0.8456462170014758,-1.914745438350555,0.0,0.01822926771497163,0.09498314070038663,86 +US,20.059535128913083,3.519464550344866,1.2025120969529322,-0.06795582964578015,-4.5620144964548315,1.6176320967436972,-1.3197934525435209,0.14580095596422127,-0.19850122865307934,-0.5615895640933565,19.835090257528233,9589 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/default_steps.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/default_steps.csv new file mode 100644 index 0000000000..df90a8055b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/default_steps.csv @@ -0,0 +1,52 @@ +,period_and_sample,selection,calibration,priceyear,threshold_rest,cash,snap,housing,otherkind,fed,payst,exp,year,gap +AK,0.1372735094198898,0.6171420998363146,-2.2300642458080837,3.079003222885145,-0.4408448794903329,1.9019503628352825,-1.7044601462015034,0.3712291509576962,-0.7559144314770624,0.705946938026233,0.014875925034060319,-0.5517119192599229,1.4433570907357307e-06,1.1444270301148087 +AL,-0.9783274772582207,2.684066425006849,-0.598213421608726,1.7975595620420175,1.596809581752448,-1.3998890603147562,-4.574198939948313,0.04624062553049113,-1.0488234664218004,1.62362973858201,-0.05184595049528187,1.916896024338885,0.47325256329098053,1.487156204496582 +AR,1.2047432367556379,-2.2154208510897373,-0.30529500036107393,2.5874757331344687,0.13672852688311643,-1.466982166039604,-5.158764991198195,0.4823206757955083,-0.28920315735713753,0.3816471912572347,0.9781166659606891,-1.5087467967286652,0.0018386149419828968,-5.171542318045775 +AZ,1.1099909946713087,7.16818280769642,0.911681092221464,1.904377014324691,-2.3464360100035995,-4.368502832542008,-3.4393064323911786,0.29843569837452444,-1.5552288741120381,2.3001131814643347,1.3622873343378938,-1.362394448726184,1.6679867655022207,3.651186290817847 +CA,0.2854939042872289,-3.979141948513309,3.7728978181032744,3.613066950313934,4.071795319558703,-2.9367550487813014,-4.028195601032923,2.369173715245819,-0.8761426121731972,0.37681345453600756,0.9265529765110698,0.711171068247872,2.2097765111547965,6.516506507457976 +CO,0.08082522874506815,2.648614199581469,0.4289752184065385,2.260001087534816,1.7068373122960012,-1.3754469271118164,-1.1047944480168228,1.205384522217379,-1.5159947491304981,0.8426697978171357,-0.9825587356635284,-1.0549022422111927,-0.4871066810740903,2.652503583390458 +CT,-1.1399183068825263,1.052151127206674,0.2915905435538022,2.3239860108523285,1.4851799865026287,-3.682476138600359,-2.6506624345118244,1.895623291873009,-0.1073290054504543,-0.3138035795599009,1.1830713103185255,0.2338343483229853,6.0098151775989095e-05,0.5713072517766662 +DC,-1.6543198814524978,6.461787220549844,27.59492002412935,6.239318476118635,-2.553933384036976,-8.918515486182512,-5.084297083990847,1.930025547209525,-10.561947800487118,2.287361135814824,-3.4640695202239113,-5.706592929938394,7.4955670010178,14.065303318527722 +DE,1.5052293285338383,3.5089871508867763,-0.7569193784500872,4.151021849475116,2.1257703587220877,-7.779509651289908,0.7258967979223958,1.7419850226643319,0.5805009159046985,2.4601348374005876,2.3626762290335694,0.19165697566744863,2.911755638697482,13.72918607516834 +FL,-0.8291422909987638,12.356015802274264,0.950814098355302,2.9077952258397732,2.0009281128638166,-2.635064685257263,-4.714744447169579,0.6290752164342265,-0.8407477447788938,0.9187807959949558,0.12892840943532882,-1.6308996283135506,0.514760185273051,9.756499049952662 +GA,-1.0435136448358016,5.116078755648433,-4.771605786639013,2.969653404020692,5.230148662077255,-1.5813126477921433,-3.9645377500865084,0.3363852201126174,-0.6756801090084359,0.7953132889128408,0.374872705410167,-0.770842156895647,1.3140269457817375,3.3289868867061987 +HI,-0.8383347024904513,-0.14611630858071223,5.228561667534089,2.4991899178110937,-0.8314718979437538,-5.564579438056641,-7.146687374925437,2.8480996972960777,-0.8602832913418547,1.51802163758558,0.21458482543570084,-1.0192780680052047,-1.8826662300416022,-5.98095956572312 +IA,-1.5028167505320882,3.545050855655801,2.9541910811841543,0.7777983537528183,-1.2394959472822982,-1.831502289701529,-5.318888700319705,0.653451263776053,-1.10720949937547,2.841722295298881,0.3927721641406854,-0.4308065129985223,0.8747162837289757,0.6089825973277563 +ID,-0.7286548952619798,1.565256747840487,0.7944499298732115,0.5977622240247035,-0.21601021767302173,-2.662333080515075,0.13999076858057363,0.4834190750601891,-0.13391042375948026,1.150738217110187,0.12882534589337752,0.647870412039976,-1.309576789072933,0.45782731414021427 +IL,-1.3588788415045805,2.702821175857215,0.42104685411473675,4.95244872152442,0.7123059199138466,-4.61836024571742,-4.352477318524943,3.2369230641188658,-2.19674488408092,1.1816384380140672,0.09491117013649485,0.8735404766216022,0.6295170070361102,2.2786915375094914 +IN,-1.3735662238142368,1.5618006075162203,-0.43559151464495116,1.1180184744647146,0.41002618669479335,-0.11028704127762966,-2.4715002338156293,0.4314659555267092,-0.7392634338244504,2.1667367881197954,0.9840673718350519,0.33887727378903804,0.2535640829400396,2.1343482935094666 +KS,-0.5812367263953657,5.824460284540315,-4.980252557301695,1.1640086635344293,0.7864874888101006,-0.7248076779709614,-1.8777811992278344,0.2473167860508876,-0.18540989310776865,-0.37699170214773126,0.5633593353341054,-0.05315042047440044,0.15385973283228616,-0.04013788552363273 +KY,1.686227051381513,-1.1580019991106276,4.764500705364119,3.5332274643913815,1.679130601297591,-1.0572586260806007,-4.154695646193308,7.87233107558875e-06,-3.667774907075876,1.870594933438364,0.053102937037160396,0.8841925050722055,0.8039206687830251,5.23717356063602 +LA,-1.726275992228036,3.1114131150862114,-1.890556188951976,2.31547282989839,0.23251367279144775,-5.05413022242856,-7.136294338019582,2.6334524176780967,-1.346227294626237,0.6215153407889262,1.0810703116204938,-0.9809913818850629,-0.4735354929665192,-8.612573223242405 +MA,-1.178424866615325,3.054032990712612,0.7566680033756636,2.874497887449206,1.8450268520145632,-2.045511775260086,-3.285776191261088,2.219581756943433,-1.119235441668818,2.5068492997505736,0.40871835355108177,1.0317744219191358,0.33447244253822817,7.402673733449177 +MD,1.5087169979796844,4.504588000165329,6.593037505903897,3.4779669109245086,-1.6822690803224116,-2.96383921121605,-11.999276355536924,0.20174730611957392,-1.8830977950600065,2.4405184239541784,0.1776380674512425,-0.06449505584174198,12.154198342699756,12.465434057221035 +ME,-1.2779709847740648,0.8660988879807912,-0.3607190187815439,1.1545205078445901,1.319036127827562,2.459445263854676,0.29216087110333955,1.102475105621852,-0.33558876524658143,0.533294868339815,0.40384254364479083,-0.20767945618427042,0.0001848530628887346,5.949100804293845 +MI,-0.1455382342009237,2.467872610868138,4.682287743242885,2.0154080311656752,0.2144051204202423,-3.1869770760641476,-3.6286266230858764,1.7152841574432243,-1.4484839677955819,-0.3339606208767184,-2.4152939655803736,0.6152971806912904,3.6666874506174665,4.218361806845296 +MN,-0.32035431340551934,2.4720410862386997,3.5008961797392217,0.9723807126762035,-1.864995111488679,-1.8744222943029325,-2.2601106443124,0.49286769954106435,-1.4857074014031808,1.1690245792454086,0.7242882938169628,0.005525059423342152,-5.4963165556642934e-06,1.5314283494516356 +MO,1.1337708888353042,4.3317966451961585,0.14534306757471604,2.509935015790563,0.6602599202498531,-3.576271920782865,-3.285736531368575,-0.07147610850994851,-1.6743579496789047,1.7566090546474453,0.19870130034573338,2.9163269625972594,3.734894001353073,8.779794346249812 +MS,-1.8273889459409745,-0.7396099106635212,-4.56515622608134,3.4158981774967234,-0.9251562934922093,-0.23866501961546263,-1.8570945303741997,1.599582896166532,-1.2576381821140021,-0.64249128704704,-0.05448477256499428,0.9344888734749202,-7.379536808116427e-05,-6.157789016123649 +MT,-1.237448768141693,4.971780533503148,4.459587439647718,1.6963827675187289,0.46726087619379025,-6.139893508925355,-7.235578186888045,0.03879653484820497,-3.1074314671227814,0.788652935036166,-0.11673554604069271,-1.3544303800950204,3.4111003177628163e-07,-6.7690564293557935 +NC,0.7267214342637374,1.7665007603162923,-1.137290409117206,3.0209895022282938,1.76575097916327,-3.87973007836128,-3.456835976662144,0.46732043693337555,-2.035387109161442,1.5161898790644281,0.684835128593573,1.0432630598956618,3.2186469995470883,3.700974606703644 +ND,-1.039056134989524,1.2278789391834657,-4.525533228535928,0.8046369069865872,-0.09026234200740572,1.1999944546712817,-3.184296867225359,0.18546643184148476,-0.7843978424521052,3.269652780739225,-0.06968405271745069,3.364068977498679,0.47200735101754,0.8304753740104935 +NE,-0.32822572153377916,0.8233536510956325,1.2425110496270069,1.34486353442194,0.11687999268273204,0.02663292345217308,-1.4813520382687195,5.851054763220696e-07,-0.6532422832050772,2.2894112786191116,0.10614921716271503,0.12236430444234114,0.002525245672213572,3.6118717392737683 +NH,-0.5107149675280569,0.27546727737840015,1.9356692316087072,3.083899691234773,1.9134582163232141,-8.036343267513196,0.7670667785221275,3.2059292218110826,-0.8386162379018971,-1.134425464577162,0.33778320979087434,0.09132169264421744,1.9256828545514821,3.0161782363445617 +NJ,0.728221053513888,1.083698298296758,-0.9895526517168829,2.612740822873895,-0.12828280370616202,-1.960087373217407,-3.0814603261622313,-0.07433982549684244,-0.7028259068848016,0.9525522604054255,0.10781612281609132,-0.9234952704563623,-2.0186350406348197e-05,-2.3750357860850393 +NM,-0.19220096048421453,-2.249577016402064,0.721461433543304,0.9459170773813352,1.2763354662114974,-1.5918262217514463,-4.402083830084937,1.4431436474175685,-0.02214745736955929,2.0829315631751943,1.6484045398309024,-0.40902314455901356,1.4725049499730858e-06,-0.7486634305864808 +NV,0.048839431902843344,1.5641187238374084,3.0104357470948955,0.8884843857477623,0.24700507583769843,-0.8181280426508156,-2.631895886840315,0.37238697849322516,-1.1523861017189456,-0.26157919991762535,0.052032903928276385,-0.14262952739905072,2.8933808936900327,4.070065382005389 +NY,-0.7253208893575724,5.772598602390406,-4.893692018335397,3.457280612801215,3.1122506763682463,-5.494418026062303,-3.364648359557897,1.595814120979365,-0.6168217419291238,1.3187804804733179,0.5918763904684764,0.5901171563302531,0.1833000649559935,1.5271170695249836 +OH,-2.357853217994329,2.183842530769585,-2.949704466372536,3.201554020356257,0.21646680102285307,-1.8181591703716147,-2.845529971004474,1.4631226045302599,-0.46024099816568487,-0.2688134005336702,0.37778785791956915,0.7708078786392613,5.42903201505851e-07,-2.486718988301323 +OK,1.3148484110440428,1.3029313747651905,1.565132399222776,2.1798398134022796,-0.23762088204772325,-0.8946078086259897,-2.283712969415842,-0.5490110351000965,-0.15187656363539975,0.7001337847093749,0.10573419526500963,0.8012768546778238,3.46132980281533,7.314397377076778 +OR,0.08598620860695227,3.6494209118038725,4.928843786238366,0.5567448516391978,1.238192235397592,-2.2547761108371116,-5.764454892676281,2.4302805401643292e-05,-1.3027560832391576,3.1725801803314955,0.4236294204895825,-2.2025898760861344,2.7561804389251954,5.287025373398972 +PA,-0.1581301731134559,2.273657095627458,-0.4477427986564795,1.7505662508560553,0.5048985345016381,-1.3487031795426314,-3.403044411398112,0.4230270541971858,-1.0402760513721998,1.1440859254533067,0.22674391650242515,0.6308904931489254,2.479342519801344,3.035315176005458 +RI,-0.3234983415204127,0.9003967581739438,10.35591402792881,3.7190422112751635,0.27283807875530985,-8.284183057311624,-3.217672681869239,0.8397194511460729,-1.1554119276599606,2.205117783843287,2.1708548068384297,1.84002257346803,0.1517437271640354,9.474883410231834 +SC,1.7689341438564519,0.25749778264483325,2.939329723420899,1.904171947044423,-1.302781176252481,-3.3429721572495286,-2.9704961408772554,1.1595572900053424,-1.4394743114425215,0.2996654037394474,0.5233060873839561,-2.00931678475489,0.9972159016502964,-1.215362290831031 +SD,-0.5414491393907319,0.28714623452029375,1.4163395559855072,1.6077898946679525,-0.5713604203978584,-0.306891209403139,-3.6468006136399245,1.6437471763484512,-0.8514928731400901,3.1482055573962833,-0.08638980247888402,0.6264514777290544,0.813688255393993,3.538984093590906 +TN,-1.6535349871175935,4.225583991007214,-1.4145704035920517,2.2427768123510803,1.4296861423719467,6.261536283697897,-4.586505239065246,1.4026494096803925,-0.8482004604363261,2.2191149564288963,0.2769988175330339,1.5251922315939779,2.156356427475796,13.237083981929022 +TX,-0.2753238101806037,1.90498141150338,1.6938459563226758,4.115077211066346,0.3511062068222839,-2.8820880744323167,-3.9604887066725225,0.4115240778567649,-0.9293710145838354,0.5963369490045847,0.23895666743039917,-0.7229134664321435,2.602727473907386,3.1443708816123994 +UT,-1.467232520776622,1.5605534729297714,2.410210052253583,2.881288525166957,0.665571129501926,-1.9764593063097529,-1.2492081911284814,0.5757418114951622,-1.09558831844743,1.2354030497975388,0.46976221941363877,0.628000033696968,1.2732556160682424,5.911297573661501 +VA,0.04849955799713612,6.653846529667289,2.6598886193690134,2.429321128340785,-2.8013455728119947,-2.200764318682719,-3.215683072460755,1.6503082755555074,-0.6237338895563551,1.3724386956284966,0.18435912550759567,-0.128771228295186,-2.074978039345865e-05,6.028343100478418 +VT,0.21346822404733068,1.6844201163473596,7.102245362207096,1.068322973290802,-0.4730734696679558,3.0875618599090795,-5.322925196346758,1.0532838778781706,-1.1099080043328378,1.4193159083525333,1.3635151223119517,-1.9647935525453062,1.2572669911227585,9.378700212574227 +WA,0.5605808059915827,1.2477460857698297,1.3832133488225224,1.8460295177188464,2.139714649209785,-3.9925074602701063,-1.6363204205238713,3.3437248480029607,-0.5476158005747865,1.8965228739816384,0.22769052557602823,-1.0425380627221092,-0.5193108551276691,4.906930055854652 +WI,-0.7824910869438337,3.8869145783428083,-0.6602781203294583,1.0115797911827886,-2.1191085907480174,-1.553627014508667,-2.821452325483031,1.5721535218677656,-1.3422414355681556,2.327112357067846,-0.1439702060102474,0.36003787371525003,5.311928459761361e-06,-0.26536534548649193 +WV,-0.99985457757594,0.6695291306109254,3.89240138728427,2.3315911721731237,-0.42676887853221707,-0.24938757726926422,-3.2963769846126354,3.4021879364723344,-0.9452928216821259,1.813462846959808,0.9566779659105559,-0.5164506651594786,-1.3519078827073372e-05,6.63170541550053 +WY,-0.42828271925623884,-0.2962710925545817,2.9476180302576482,0.6642206077957047,-0.10973220855467786,0.8928499514437716,-0.9221586802495984,0.2542335922230876,-0.863264757800295,-0.3568023843867584,-0.7230881471486392,1.2283960422114422,-0.00015908255439356367,2.2875591514264677 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dense_fit.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_fit.csv new file mode 100644 index 0000000000..67a295f1ca --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_fit.csv @@ -0,0 +1,52 @@ +state,model,se,pe24,E,E_se,D,D_se,clusters,kish_units,kish_src,rate,moe,cse,gap,sp57,sp57_se,acs_stored +AK,11.019712636717708,2.0902693233049265,10.538185647720928,16.194556293612283,2.785584561838246,11.131780918645296,1.5690911107339354,715,389.8601662856484,270.7715001562766,10.5,2.1,1.2765957446808511,0.5197126367177081,11.644427030114809,3.928977062730973,12.269848823547363 +AL,16.660960866133678,2.1821275071382527,15.891722249355341,16.813164699851864,2.501198128374972,14.349346237703015,1.485047499835843,1100,505.07688925323913,302.12251907730234,15.5,2.4,1.458966565349544,1.1609608661336779,16.987156204496582,3.484833374151784,14.110982894897461 +AR,12.453706371843415,1.5095049912955576,11.412468475477754,12.912154401478993,1.929286934390155,14.276444444479768,1.3192959788197114,1073,511.00053229705276,340.86624849339563,13.3,2.7,1.6413373860182372,-0.8462936281565856,8.128457681954226,3.0274434908359176,6.774383068084717 +AZ,22.687794744163234,2.447357721159525,19.366507611449986,18.67471608508137,2.3884965295968725,14.948852037802352,1.5373834065497718,899,450.4484703371293,296.2740473504042,13.3,2.3,1.398176291793313,9.387794744163234,16.951186290817848,5.358818375942788,17.127504348754883 +CA,24.121290625968072,1.0526517298935083,22.917724283085835,20.714954017464414,1.1519202427700403,18.235503457287603,0.650443974800001,5029,2325.3576465004144,1571.984374501322,17.9,1.0,0.60790273556231,6.221290625968074,24.416506507457974,2.3311938117816187,20.379192352294922 +CO,16.379684444985866,2.3517278780979,15.104305631488465,14.486536550855025,2.5743734366030857,7.9968313639306,1.1559796037166532,733,357.02549752036697,239.16896520980544,7.7,1.8,1.094224924012158,8.679684444985867,10.352503583390458,3.574357278097987,9.367508888244629 +CT,16.560293015964547,2.437327640174254,15.038560899940071,15.630098846008295,3.7105656763516923,11.70149208575182,1.7168531432102607,576,279.0267702043459,180.53162295278318,12.8,3.2,1.9452887537993921,3.760293015964546,13.371307251776667,3.8331970400943,12.430046081542969 +DC,26.102302910381407,3.371388674899598,24.85935717464523,26.192085094892875,4.076699779143671,17.41919931849144,2.170319135800099,603,252.91233439014192,151.55028324914826,20.3,3.7,2.2492401215805473,5.802302910381407,34.36530331852772,6.134790145191017,20.46465492248535 +DE,21.69380057983112,3.1552325459483437,18.667422163433102,15.1446114450492,3.330304275750786,10.32583976443351,1.7919837384465735,624,301.37401959090397,199.45531593242546,8.7,2.6,1.580547112462006,12.99380057983112,22.42918607516834,4.399237582955547,22.213157653808594 +FL,30.028279400134906,1.664972951960285,26.74729713265519,24.111702712389313,1.7630913931877656,17.60076643715988,0.9825806470242631,2391,1041.750115163126,680.5172484470773,18.4,1.8,1.094224924012158,11.628279400134907,28.15649904995266,2.806107561890349,22.613277435302734 +GA,23.626865042560066,2.1702861910188473,22.033214023549217,17.623853759390897,2.1664127096494115,14.034036177358718,1.1850829859154937,1307,526.248532082084,336.5775462207633,15.1,2.2,1.3373860182370823,8.526865042560066,18.4289868867062,3.42227452529315,17.39934539794922 +HI,8.764118379135269,1.3243186870946742,8.298806358733593,11.774189166659871,1.827841778767021,12.575145854583731,1.5320373482113137,821,458.48422175550536,315.04884644114907,13.0,2.6,1.580547112462006,-4.235881620864731,7.01904043427688,2.392571950332229,5.165446758270264 +IA,8.631375521042319,1.5207588606634646,8.287959273580794,8.997492557025776,1.8855357463794056,7.256733570877532,1.1542395079198333,688,372.07791367333505,248.87914343785567,8.2,1.9,1.1550151975683889,0.4313755210423196,8.808982597327756,3.488385258421658,5.389122486114502 +ID,10.39254600543749,1.3907731273949004,9.954220178922684,6.956496379813835,1.1876585149509817,5.723320669313954,0.8340701573266187,1134,564.3265559828751,412.7402722405761,6.5,1.3,0.790273556231003,3.89254600543749,6.957827314140214,2.480744708886921,6.954473495483398 +IL,12.795330300647167,1.452777923618364,11.279399820824375,13.097726188757402,1.716041543056205,11.558174183427155,1.131607180505969,1528,695.7990194606315,488.0240722820075,12.4,1.6,0.9726443768996961,0.3953303006471671,14.678691537509492,3.8341879094211824,18.092145919799805 +IN,14.3561105974897,2.016853296071454,14.062900194043376,11.126175449005657,1.900016657687235,8.844078013025943,1.0939295828364974,1000,491.9325251535436,328.3933526164038,10.6,2.2,1.3373860182370823,3.7561105974897,12.734348293509466,4.115777622105123,9.129535675048828 +KS,13.26447521767514,1.812787663620715,11.614738249973588,11.020574580945842,2.0118470439815237,9.599689002818243,1.5328206778487947,727,373.2612871778556,238.16662445033083,9.7,2.5,1.519756838905775,3.56447521767514,9.659862114476367,5.442906829832116,10.451759338378906 +KY,13.69527078216318,1.9887119385700365,14.162668283621848,14.81804989436489,2.4544065073215258,14.932039244810197,1.7483596085236401,647,361.2638129604242,242.94924785422782,13.3,2.9,1.762917933130699,0.3952707821631787,18.53717356063602,4.246948679188216,9.635833740234375 +LA,13.719988304410755,1.7098316395891382,13.646135415121071,20.921902545827145,2.5681784484114085,18.621449668093966,1.4118274358775997,1311,559.3010104301308,357.4252291873469,20.7,3.0,1.8237082066869301,-6.980011695589244,12.087426776757594,3.3275134849654067,11.565276145935059 +MA,20.65448570948504,1.9391771916242613,19.28551761409828,15.659158722663257,1.8526289579612374,11.53687151947103,1.06697551786317,1239,658.9099448410776,432.2779144396734,12.8,2.0,1.21580547112462,7.85448570948504,20.202673733449178,3.281678114588457,20.928058624267578 +MD,19.232590168012678,2.8070523469419375,17.747255878220983,15.766838509318845,3.1245690662360075,12.068845221556595,1.6077487391955512,669,290.78293691517274,197.83070984087192,10.7,2.5,1.519756838905775,8.532590168012678,23.165434057221034,4.744898883592186,17.483667373657227 +ME,10.632771843758372,2.2315467430125446,9.48420277401329,5.62705909525707,1.768934126332144,5.15687074921049,1.3156518303227287,360,221.92312288273777,137.77424978153468,6.5,2.3,1.398176291793313,4.132771843758372,12.449100804293845,6.011362550339514,7.270956039428711 +MI,9.89598180206563,1.4150770820670229,7.574715116862639,11.830697098340064,1.9848045563674002,9.701134578974726,1.124730460510938,1186,551.7658839042592,370.6413999162929,10.3,1.9,1.1550151975683889,-0.40401819793437,14.518361806845297,2.8614213068828036,9.475631713867188 +MN,6.939264162864532,1.3424798444336863,6.0002929911888145,8.20760623793026,1.8204675473231913,7.227378314093076,1.2379130969351457,741,399.65456738075346,271.546516482271,6.9,1.9,1.1550151975683889,0.039264162864531826,8.431428349451636,4.586538754968796,5.14799690246582 +MO,14.088579727210307,2.6161484306629017,12.703836296038547,15.117478696997525,2.741277698402171,11.021761830806128,1.4413662943512981,888,408.3112835341014,286.3754657950601,9.7,2.3,1.398176291793313,4.388579727210308,18.47979434624981,6.969264747492686,16.677257537841797 +MS,15.12656389266076,1.7165166836169314,13.69424763903693,15.841985521987509,2.0175767704428473,16.552249744335533,1.4495466461189377,953,467.3821785166118,299.1067052102768,19.1,2.6,1.580547112462006,-3.973436107339241,12.942210983876352,2.9790069289119265,12.927408218383789 +MT,10.257827148297558,1.507455171886924,8.963901590953165,11.25524427316498,2.0029565585688336,7.589720944518803,1.0530673484006259,910,469.248369926136,307.7954451915917,9.3,2.3,1.398176291793313,0.9578271482975573,2.530943570644207,3.435645732336951,4.747105598449707 +NC,17.54797515797036,1.7783903123627331,16.539871516068978,18.817700694339482,2.1181859237260228,15.125058419099416,1.2676929437378248,1418,602.8908432552339,390.4904245076153,14.4,2.2,1.3373860182370823,3.147975157970359,18.100974606703645,3.1120495099094923,11.701009750366211 +ND,9.960342986115812,1.6093527149199909,10.125321619838521,7.63078548995473,1.3259021190371971,9.489454591563454,1.2975817947086652,840,438.7202469462234,301.4267517946344,10.3,2.1,1.2765957446808511,-0.3396570138841888,11.130475374010494,3.692103262671444,10.772493362426758 +NE,7.980397397152254,1.4228721900641035,7.274694310186347,9.417314380262141,2.3179841186482073,6.977099490263861,1.218675287307913,743,403.88832709526554,281.30678792217844,7.1,1.9,1.1550151975683889,0.8803973971522545,10.711871739273768,4.838732233130637,9.424169540405273 +NH,10.715136855885294,2.175994911449899,9.771337463401158,7.493675599383197,2.006117248038249,7.3654009349714,1.2631898000561679,552,363.37780531313444,229.25765799638356,7.5,2.4,1.458966565349544,3.2151368558852944,10.516178236344562,3.2065948453888495,7.5636773109436035 +NJ,20.36430468219513,2.13978591248263,17.962661194193224,15.826171775172055,2.199859820270981,13.522145840019196,1.3113695239755556,1068,525.2007776730205,380.8308141826903,13.3,1.9,1.1550151975683889,7.064304682195129,10.924964213914961,3.379110811323347,9.367637634277344 +NM,9.502007270220455,1.5282509723766522,8.28366697495779,12.969735825865724,2.036193114166462,11.093335147719056,1.291717359676258,931,517.5701760251343,329.98241133041904,10.9,2.1,1.2765957446808511,-1.3979927297795456,10.15133656941352,3.583547022740094,14.007346153259277 +NV,20.266396327611087,2.451905215723719,17.007582059638736,15.356941678797515,2.0983863833086445,15.751080999100939,1.5856814605957528,794,383.52938780165465,263.85137487538793,15.0,2.5,1.519756838905775,5.266396327611087,19.07006538200539,4.319085296508975,13.599339485168457 +NY,21.7761067979677,1.7056988460768048,21.0458117509758,18.324898381557144,1.828585096161383,15.311217986494224,1.0368480765657095,1978,796.4090196960434,525.8436288368686,16.2,1.9,1.1550151975683889,5.5761067979677,17.727117069524983,2.875781716873627,16.431594848632812 +OH,12.276039111872556,1.905393480013562,12.24525700612132,15.005100188964308,2.3373954102897563,10.081949077315661,1.229326529621403,1310,618.6027992391695,409.7973160507123,12.3,2.1,1.2765957446808511,-0.023960888127444235,9.813281011698678,1.8671208005111162,9.078166961669922 +OK,13.820143751855637,1.858778239894062,11.723561384591564,15.331135386083364,2.2477677093317183,11.03247567487848,1.2189208568970413,914,439.48961342125364,305.0616233774748,9.9,2.0,1.21580547112462,3.920143751855637,17.21439737707678,4.089869383458009,13.372641563415527 +OR,21.52739541725039,2.3738615646672985,19.13150109347228,19.693949406262277,2.763795003080545,11.364423373050505,1.270817973586301,832,395.3941248612246,255.1006894014045,11.0,2.4,1.458966565349544,10.52739541725039,16.287025373398972,4.419927485268072,14.899346351623535 +PA,13.475600808235594,1.4735686584020704,12.012133951721735,14.39710192949929,1.761423940863605,10.84828598731419,0.9924456286468032,1442,731.9618589628819,484.95490206160775,11.1,2.0,1.21580547112462,2.3756008082355944,14.135315176005458,2.8133696851903927,13.813882827758789 +RI,11.753905508598592,2.414949971177963,11.133448423048373,9.727133622169012,2.4020109962848717,7.789328581718272,1.4155656718738505,420,249.40234082742137,165.17111040093312,8.4,2.3,1.398176291793313,3.353905508598592,17.874883410231835,5.529672101056756,10.114660263061523 +SC,15.352154421943537,1.8482040752589861,12.784902647745803,14.93991391999787,2.206232895873194,12.417047923341364,1.2250139095847006,1057,489.2191995721574,312.52952107298916,11.1,2.1,1.2765957446808511,4.252154421943537,9.884637709168969,3.4207999101280673,9.70772647857666 +SD,11.100829056265283,2.4053917891002627,11.52242163995022,7.1943546633170445,1.66755483650931,7.191863420735705,1.1829235065036319,632,328.00742496015715,214.68103022931723,7.8,2.2,1.3373860182370823,3.3008290562652833,11.338984093590906,5.2634290299995135,6.721802234649658 +TN,15.271551020582677,1.840774666594892,13.223458218532297,14.058012515615667,2.430958005998435,8.001600736610058,1.0060575872259607,1062,500.59737104674514,327.37855426628516,10.0,1.7,1.033434650455927,5.271551020582677,23.237083981929022,3.906686326755696,15.603744506835938 +TX,20.755823740113225,1.2680807014118707,18.320527471484795,18.326642539467112,1.3561551625760602,15.749270231375428,0.7473852488313413,3776,1709.1775315500051,1101.5878734075193,16.1,1.3,0.790273556231003,4.655823740113224,19.2443708816124,2.5708785076367486,14.510196685791016 +UT,11.146386609823816,1.5931046031919944,10.6792472174615,5.937223674095712,1.1530995132797994,5.7300090983360175,0.8111508281443979,1093,500.3015641836588,363.0981758388387,7.3,1.6,0.9726443768996961,3.846386609823816,13.2112975736615,2.9785149106747224,8.38582706451416 +VA,19.848466549835816,2.2955027674320765,18.584282777029586,16.8792574986385,2.22453530663791,12.238309974172203,1.2687524089286366,1071,459.73759568240285,333.23855259844123,12.1,2.4,1.458966565349544,7.7484665498358165,18.128343100478418,2.901130668178834,15.400092124938965 +VT,11.019289355101257,2.0472828246898356,10.070266870327938,9.348212080687897,1.796774224703653,8.966681400257917,1.4775242708700234,659,452.3673561089422,295.25429070942306,8.3,2.5,1.519756838905775,2.7192893551012567,17.678700212574228,4.1639070724950455,10.242634773254395 +WA,18.38938468875666,1.9206426301159434,16.152904391702986,14.296719447847728,1.9995431126721297,9.664098361618837,1.1240910452022583,1057,589.0464087107334,413.42315881804006,9.3,1.9,1.1550151975683889,9.08938468875666,14.206930055854652,3.6147767420943744,14.172506332397461 +WI,11.575193521299605,2.09560363367793,9.520820840698423,9.30739167909626,2.2716213999084087,6.386789538126811,1.0336301195680537,818,374.20608847795586,242.721524109109,7.3,1.7,1.033434650455927,4.275193521299605,7.034634654513508,3.9297119831557286,5.814634799957275 +WV,14.664224661468955,1.8526319418737804,13.946570806044056,14.149743438058254,2.3081633312668606,10.171742192049425,1.1188468885953238,1097,555.9777343191087,339.025825017473,11.3,2.4,1.458966565349544,3.3642246614689544,17.93170541550053,3.137463236331653,16.38048553466797 +WY,8.273524449133417,1.5373550511058878,8.221553169665123,9.390998723821973,1.6178989242567343,6.1071007823757855,0.8983273740799685,804,309.74234872648685,239.50162862168793,6.5,1.4,0.8510638297872339,1.7735244491334168,8.787559151426468,3.565728619489772,7.408247947692871 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dense_rentfix_states.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_rentfix_states.csv new file mode 100644 index 0000000000..8b1a3b73a3 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_rentfix_states.csv @@ -0,0 +1,52 @@ +state,census,was,fix,moe,step +AK,10.5,11.019712636717708,11.019712636717708,2.1,0.0 +AL,15.5,16.660960866133674,16.233672568875818,2.4,-0.42728829725785644 +AR,13.3,12.453706371843415,11.221211122863409,2.7,-1.2324952489800065 +AZ,13.3,22.687794744163234,22.589911996017776,2.3,-0.09788274814545872 +CA,17.9,24.121290625968072,23.06679901215866,1.0,-1.054491613809411 +CO,7.7,16.379684444985866,15.980103417137062,1.8,-0.39958102784880367 +CT,12.8,16.560293015964547,16.724730202587835,3.2,0.16443718662328877 +DC,20.3,26.102302910381404,26.102302910381404,3.7,0.0 +DE,8.7,21.69380057983112,20.85009382551732,2.6,-0.8437067543137999 +FL,18.4,30.028279400134906,28.93251809530109,1.8,-1.0957613048338146 +GA,15.1,23.626865042560066,23.59879340378728,2.2,-0.0280716387727864 +HI,13.0,8.764118379135269,8.508996681966362,2.6,-0.25512169716890654 +IA,8.2,8.631375521042317,7.854548372259957,1.9,-0.7768271487823597 +ID,6.5,10.39254600543749,9.94921471692532,1.3,-0.4433312885121694 +IL,12.4,12.795330300647167,11.645045080685628,1.6,-1.150285219961539 +IN,10.6,14.3561105974897,14.067773288522979,2.2,-0.28833730896672094 +KS,9.7,13.264475217675143,12.856414187924258,2.5,-0.40806102975088443 +KY,13.3,13.695270782163183,13.64156933272043,2.9,-0.05370144944275346 +LA,20.7,13.719988304410755,12.9019239478327,3.0,-0.8180643565780557 +MA,12.8,20.65448570948504,20.017148354728654,2.0,-0.6373373547563865 +MD,10.7,19.232590168012678,18.862155558141723,2.5,-0.370434609870955 +ME,6.5,10.632771843758373,10.026721438626245,2.3,-0.6060504051321285 +MI,10.3,9.89598180206563,6.961628611797206,1.9,-2.934353190268425 +MN,6.9,6.939264162864532,5.936646163244632,1.9,-1.0026179996199005 +MO,9.7,14.088579727210307,13.640749934464818,2.3,-0.4478297927454893 +MS,19.1,15.12656389266076,14.465272134083085,2.6,-0.6612917585776756 +MT,9.3,10.257827148297556,9.146994413256909,2.3,-1.1108327350406473 +NC,14.4,17.54797515797036,17.620926068061383,2.2,0.0729509100910235 +ND,10.3,9.960342986115812,9.608296872897766,2.1,-0.35204611321804613 +NE,7.1,7.9803973971522515,8.00426004959579,1.9,0.02386265244353769 +NH,7.5,10.715136855885296,10.335430291982773,2.4,-0.37970656390252344 +NJ,13.3,20.364304682195133,18.84793300444673,1.9,-1.5163716777484026 +NM,10.9,9.502007270220455,9.174206231138218,2.1,-0.327801039082237 +NV,15.0,20.266396327611087,18.813196893966968,2.5,-1.4531994336441194 +NY,16.2,21.7761067979677,21.065890274382237,1.9,-0.7102165235854621 +OH,12.3,12.276039111872556,11.93188178115129,2.1,-0.3441573307212664 +OK,9.9,13.820143751855637,13.02157250721589,2.0,-0.7985712446397475 +OR,11.0,21.527395417250382,21.925689340743865,2.4,0.39829392349348325 +PA,11.1,13.475600808235594,12.109439939153857,2.0,-1.366160869081737 +RI,8.4,11.753905508598592,11.753905508598592,2.3,0.0 +SC,11.1,15.35215442194354,15.620085137415815,2.1,0.267930715472275 +SD,7.8,11.100829056265283,9.573333027195188,2.2,-1.527496029070095 +TN,10.0,15.271551020582674,14.26636339214995,1.7,-1.005187628432724 +TX,16.1,20.755823740113225,20.140669479815212,1.3,-0.6151542602980129 +UT,7.3,11.146386609823814,11.160233235993722,1.6,0.01384662616990795 +VA,12.1,19.848466549835816,19.129571702294086,2.4,-0.7188948475417298 +VT,8.3,11.019289355101257,10.182312093017584,2.5,-0.8369772620836731 +WA,9.3,18.389384688756664,18.48619237946035,1.9,0.09680769070368456 +WI,7.3,11.575193521299605,11.634531010016575,1.7,0.0593374887169702 +WV,11.3,14.664224661468953,14.23570114224052,2.4,-0.4285235192284329 +WY,6.5,8.273524449133419,8.273524449133419,1.4,0.0 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley.csv new file mode 100644 index 0000000000..d958954a4e --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley.csv @@ -0,0 +1,52 @@ +,priceyear,threshold_rest,cash,inkind,fed,payst,exp,E_census_flag,pe_2024,pe_all_swapped,pe_2025,year +AK,2.5611754881564344,-0.2936031875019241,-1.3831986447941185,-5.853331249074972,0.4966984503464309,0.06021850043697493,-1.244330003460182,16.194556293612283,10.538185647720926,10.538185647720926,11.01971263671771,0.4815269889967837 +AL,2.1014266920718034,0.9432791088218944,-1.7737860258943994,-3.9362696874745975,1.0147440015398341,0.7502816676521353,-0.021118207213200624,16.813164699851868,15.891722249355338,15.891722249355338,16.660960866133674,0.7692386167783365 +AR,2.311752836402673,0.13192468864308038,-1.7140788445840127,-2.4068742174922884,-0.6956634302264979,0.44983641513752315,0.4234166261182847,12.912154401478992,11.412468475477754,11.412468475477754,12.453706371843415,1.0412378963656614 +AZ,2.930412730029177,3.2053950317472433,-1.6467658152874227,-3.932566815763433,0.6200939213969806,0.1206786846601797,-0.605456210414107,18.674716085081368,19.366507611449986,19.366507611449986,22.687794744163234,3.3212871327132483 +CA,3.3927940274788186,1.6536790333158313,-2.4979379970758737,-0.8797182799680391,-0.039144611692513626,0.9005115023207177,-0.32741340875752356,20.714954017464418,22.917724283085835,22.917724283085835,24.121290625968072,1.2035663428822367 +CO,2.3715671529519744,-0.1439314114510538,1.9887202533211001,-1.2967023091481413,1.13039696796763,-2.9970098512202314,-0.4352717217878385,14.48653655085503,15.104305631488469,15.104305631488469,16.379684444985866,1.2753788134973973 +CT,3.376061002866971,-1.0880326391848754,0.23564117834226045,-1.237523025485074,-0.3900272690019571,0.4542738170561101,-1.9419310106616632,15.630098846008298,15.038560899940071,15.038560899940071,16.56029301596455,1.521732116024479 +DC,3.8039766754131312,-1.1849348527446502,-1.7295012381504629,-0.48025996081607847,0.9694066090609155,-1.1779144462565023,-1.5335007067539947,26.19208509489287,24.85935717464523,24.85935717464523,26.1023029103814,1.2429457357361713 +DE,3.3098635891025334,-0.0774839020829032,1.0210727066915586,0.2944136707062342,-0.5945274301526093,0.8317331105937051,-1.2622610264746192,15.144611445049199,18.6674221634331,18.6674221634331,21.69380057983112,3.026378416398021 +FL,4.483383022595458,1.431447907702333,0.19309435862664753,-3.7346392132651935,0.16316385229266736,0.11810529455747605,-0.01896080224351035,24.111702712389313,26.74729713265519,26.74729713265519,30.02827940013491,3.280982267479718 +GA,4.151846924430869,2.981060943729973,1.7075888669057926,-2.777677693712665,-0.8865200109247515,0.047774233984844684,-0.81471300025574,17.623853759390897,22.03321402354922,22.03321402354922,23.62686504256007,1.5936510190108493 +HI,2.816213867149542,-0.11642504630939501,-1.772032075887937,-4.103174637560725,-0.6672591614832102,-0.039419318330392514,0.4067135644958379,11.774189166659875,8.298806358733593,8.298806358733593,8.764118379135267,0.4653120204016741 +IA,1.539173391775612,0.24164479201446348,-0.6238708575646884,-1.0796595913180875,0.28867863904794033,0.09634158119663103,-1.1718412385968537,8.997492557025778,8.287959273580796,8.287959273580796,8.631375521042317,0.343416247461521 +ID,1.4970764306921367,0.6346635147805859,1.6011935213607196,-1.4248496187530955,0.3516153522876454,0.4561997582351285,-0.11817515949427232,6.956496379813835,9.954220178922682,9.954220178922682,10.39254600543749,0.43832582651480756 +IL,2.8360279463758564,-1.1390541733397972,-0.8095029638724145,-2.2481920674107094,-0.16452405309715842,-0.39185235840017735,0.0987713018113743,13.097726188757402,11.279399820824375,11.279399820824375,12.795330300647166,1.5159304798227904 +IN,1.9054840330357363,-0.4178134974936034,2.4160343184475885,-1.5344111838860113,0.6265476179470354,0.47339809398550914,-0.5325146369985364,11.126175449005657,14.062900194043376,14.062900194043376,14.3561105974897,0.29321040344632365 +KS,2.850190022078493,0.7730321343530727,-1.7121542728102028,-1.6168065360181634,0.35453139298816405,0.2597832460294956,-0.3144123175931113,11.020574580945844,11.614738249973591,11.614738249973591,13.264475217675143,1.6497369677015516 +KY,1.8098184545448521,0.7506337676491832,-0.48287306310671674,-3.7644821692019916,0.8818910422157273,0.42309347392064,-0.27346311676473445,14.818049894364894,14.162668283621851,14.162668283621851,13.695270782163183,-0.46739750145866843 +LA,2.2219408591510756,0.09928513808471612,-4.6326866049053255,-5.156951442775003,-0.7740420873149982,0.8475493734589146,0.1191376335945486,20.921902545827145,13.646135415121073,13.646135415121073,13.719988304410753,0.07385288928968059 +MA,3.2205829164627935,0.912726319461219,-1.1924113384139214,0.2468714628277463,1.0598315238070963,-0.08779367020963014,-0.5334483225002821,15.659158722663257,19.28551761409828,19.28551761409828,20.65448570948504,1.3689680953867622 +MD,2.8051663039159545,-0.809849899045045,0.7186575824655643,-2.0922736329855423,0.8804073020242912,-0.02077502014442227,0.49908473267133674,15.766838509318847,17.747255878220983,17.747255878220983,19.232590168012678,1.4853342897916946 +ME,2.6925600242151715,1.4114222612975575,-0.5205928356874203,-0.027579403718761913,0.6130639060076494,0.43622564398215297,-0.7479559173401276,5.627059095257071,9.484202774013292,9.484202774013292,10.632771843758373,1.148569069745081 +MI,2.2437088547501665,-0.30018894268022267,-3.256210822736821,-1.4298650566106899,-0.07047614916353334,-0.9122542948276939,-0.5306955702086283,11.830697098340064,7.574715116862641,7.574715116862641,9.89598180206563,2.32126668520299 +MN,1.5190072347376555,-0.7350668910180533,0.6257235090639226,-2.0890358995947467,0.33833658543293665,-1.042470303898567,-0.823807481464593,8.20760623793026,6.000292991188815,6.000292991188815,6.939264162864531,0.9389711716757159 +MO,2.1415495748402336,-0.0545354887673042,-0.9121353419202893,-2.7915967320929798,-0.613499867481335,0.6614458082280987,-0.8448703537654016,15.117478696997525,12.703836296038547,12.703836296038547,14.088579727210305,1.3847434311717581 +MS,1.9539833120842531,-0.760217021231471,-1.5467137127699342,-1.8210728345336311,-0.36103303110408647,0.6225869286932687,-0.23527152408897936,15.84198552198751,13.69424763903693,13.69424763903693,15.12656389266076,1.4323162536238296 +MT,1.7675682150960217,0.1847864751944598,-0.2570388383914456,-2.4861654468202046,0.04840057111973006,-0.31943649563212595,-1.2294571627782493,11.25524427316498,8.963901590953165,8.963901590953165,10.257827148297556,1.2939255573443909 +NC,2.6494604619475384,1.8206430592993277,-3.1917817651677303,-3.2515329408534313,0.35414565871837456,0.28374144598684503,-0.9425050982014226,18.81770069433948,16.539871516068978,16.539871516068978,17.547975157970356,1.0081036419013785 +ND,1.2987772735161474,-0.17568094719682184,0.48573822710005066,-1.4087697536964012,1.5101716266350933,0.08826306890980451,0.696036634615922,7.630785489954729,10.125321619838523,10.125321619838523,9.960342986115812,-0.16497863372271127 +NE,1.3110430460625135,-0.41644772336962826,1.680275151402886,-3.6006465528992417,0.6085514551157457,-0.23705022505661505,-1.4883452213314556,9.417314380262141,7.274694310186345,7.274694310186345,7.980397397152252,0.7057030869659071 +NH,1.5470699436688917,0.622647092818022,0.5680488562909565,0.7692038037923214,-0.6355479958172852,-0.19266890481399973,-0.4010909319209438,7.493675599383197,9.77133746340116,9.77133746340116,10.715136855885296,0.9437993924841361 +NJ,3.4518391091289566,-1.1017401295762312,0.8816529715911374,-2.4381313774288342,1.176461190996692,0.8903608795744252,-0.723953225264973,15.826171775172051,17.962661194193224,17.962661194193224,20.364304682195133,2.401643488001909 +NM,2.601026437577014,1.3896804650757038,-5.2487630789065856,-4.738876498559138,0.6639635614169664,0.6536590048652575,-0.006758742377150198,12.969735825865724,8.28366697495779,8.28366697495779,9.502007270220455,1.2183402952626654 +NV,3.634202984647745,0.6663101352897441,-1.412746938024767,-2.0365025466424074,1.147833602650922,0.0047432745374779844,-0.3532001316174926,15.356941678797513,17.007582059638736,17.007582059638736,20.266396327611087,3.258814267972351 +NY,3.999110119490332,1.2787055348911198,-2.7416830398339105,-1.595235363019672,1.1872847791097938,0.2666744155580781,0.326056923222918,18.324898381557148,21.045811750975805,21.045811750975805,21.7761067979677,0.7302950469918947 +OH,1.9018946798494754,0.7798798463925919,-3.0946777109219195,-2.995723972390314,0.10697924220393343,0.40809908008886675,0.13370565193437794,15.005100188964308,12.24525700612132,12.24525700612132,12.276039111872556,0.030782105751235633 +OK,3.2289734567044968,-0.1844343177345904,-1.7893329310306592,-5.088492710698823,0.5303559529294739,0.315869169542334,-0.6205126212040318,15.331135386083364,11.723561384591566,11.723561384591566,13.820143751855637,2.0965823672640713 +OR,3.019187937737959,-0.4060984761206987,-1.2492853031262179,-3.693437185796444,1.8423556647809722,1.0271428640790934,-1.1023138143446582,19.693949406262277,19.131501093472284,19.131501093472284,21.527395417250386,2.3958943237781014 +PA,2.42459552020516,1.2713789863353158,-2.6545962444224838,-3.997946291610923,0.6593721585270356,0.4840059403412582,-0.5717780471529162,14.397101929499287,12.012133951721735,12.012133951721735,13.475600808235592,1.4634668565138576 +RI,2.653979975678157,0.11802691139491166,0.027226136445444277,-1.7307931320632226,0.6276309280955972,0.6227611321001056,-0.9125171507716319,9.72713362216901,11.133448423048371,11.133448423048371,11.753905508598592,0.6204570855502212 +SC,2.0809989855043436,0.838266305664455,-1.9069186262455542,-2.9558719184351774,-0.06219660168942823,0.4956543877548547,-0.6449438048055631,14.939913919997876,12.784902647745806,12.784902647745806,15.352154421943542,2.567251774197736 +SD,1.4957321458804196,0.2702878762756772,1.2661596207033137,1.6696093151589033,0.6117518713293242,0.000921105877294881,-0.9863949585917572,7.194354663317045,11.52242163995022,11.52242163995022,11.100829056265283,-0.42159258368493724 +TN,2.2621733719258112,-0.038707407451891995,-0.8057351515786976,-1.004082239618145,-0.172968707435785,0.02501103937515946,-1.1002452022998195,14.058012515615664,13.223458218532295,13.223458218532295,15.271551020582674,2.0480928020503786 +TX,3.4659958900050905,1.6367086185231923,-1.2413893542964485,-3.299247450151018,0.2722787487730765,0.051310892324373414,-0.8917724131605844,18.32664253946711,18.32052747148479,18.32052747148479,20.755823740113225,2.4352962686284343 +UT,1.894665874124996,1.131277239164889,1.3177711825360616,-1.0869837128408824,1.340629621002157,0.43647049211083094,-0.29180715273226837,5.937223674095712,10.679247217461496,10.679247217461496,11.146386609823814,0.46713939236231816 +VA,2.7199992229127687,0.08614644047800994,1.0040721286832268,-0.9361358806346922,-0.7479157794936923,0.07341107113970632,-0.4945519246942364,16.879257498638495,18.584282777029586,18.584282777029586,19.84846654983582,1.2641837728062342 +VT,1.0491457320672726,0.32823066451784433,-0.7477913128571738,0.05107520868339703,1.253070650951813,0.21014882659486328,-1.4218249803179763,9.348212080687897,10.070266870327938,10.070266870327938,11.019289355101257,0.9490224847733195 +WA,2.324815447036824,0.9808663283050361,-0.7816211100790635,-0.6483203809058449,0.6171895113176767,-0.2510898170731197,-0.38565503474625074,14.296719447847728,16.152904391702986,16.152904391702986,18.389384688756664,2.236480297053678 +WI,2.011580416812281,-0.3139676305702544,0.9809937228999526,-2.205522780899054,0.25703492659731836,0.25561138499131253,-0.7723008782293905,9.30739167909626,9.520820840698423,9.520820840698423,11.575193521299605,2.0543726806011815 +WV,1.9184233630221756,0.7296292820515962,-1.3936556241033586,-1.036302727187953,-0.3731865944850905,0.2924895101288825,-0.3405698414404485,14.149743438058254,13.946570806044058,13.946570806044058,14.664224661468953,0.7176538554248957 +WY,1.0390742954384797,-0.08268547633075238,-2.0542364131517328,-0.9070381710596316,1.256618026406682,-0.0773117521751059,-0.343866063284789,9.390998723821975,8.221553169665125,8.221553169665125,8.273524449133419,0.05197127946829383 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_all.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_all.csv new file mode 100644 index 0000000000..199d1d0e30 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_all.csv @@ -0,0 +1,53 @@ +,E,priceyear,threshold_rest,cash,snap,housing,otherkind,fed,payst,exp,pe24,n +AK,16.19455629361222,2.71866196019763,-0.32093367176381377,-1.5068331381829543,-4.833673603280663,0.2598748341102783,-1.3341990699572577,0.6041163004262421,0.04566889641419246,-1.2890531538549765,10.538185647720894,1434 +AL,16.813164699851914,2.158951576792022,0.7730329577434732,-1.7460449744220574,-3.9320762821834396,0.6662981592370404,-0.5411836770872899,0.9733026518317576,0.7443017211415683,-0.018024583549605358,15.89172224935538,2339 +AR,12.912154401478984,2.313460863688776,0.020394382766567,-1.7855151241820444,-2.5731173517706507,0.8309644920824051,-0.4361506065113112,-0.7511889518179442,0.4378330643726564,0.4436333053703032,11.412468475477745,2232 +AZ,18.674716085081393,2.9915837195438075,3.1278154922813632,-1.7578675656429166,-3.735128068829323,0.9474744182723106,-1.0525796472094207,0.6448571358252446,0.14989758737265804,-0.6242615452451072,19.36650761145001,1934 +CA,20.71495401746437,3.326002407246919,1.7157921390847166,-2.5543026056350304,-2.508922733179521,2.4099901162830313,-0.6934289488474904,-0.03184987552643538,0.873493964514487,-0.3340041983192301,22.917724283085814,10995 +CO,14.486536550855023,2.482606839971652,-0.16400128595102934,2.086095533707234,-1.981076982317328,1.4324730197781823,-0.9601836225485461,1.2077288630975742,-3.033423258757376,-0.4524500263469231,15.104305631488465,1633 +CT,15.630098846008297,4.089068595005958,-0.916674639373182,0.13019589199315657,-3.530378077602963,3.1038123082021563,-1.8091272286281317,-0.27546693118284005,0.3797081502484655,-1.7626760147308442,15.038560899940071,1275 +DC,26.19208509489287,3.902800855529356,-1.1851156032867234,-1.8186854683869287,-3.8776095682280443,4.613045976195367,-1.8039619066021504,1.1371711855918991,-1.0805681939869412,-1.2198051970734536,24.85935717464525,1208 +DE,15.144611445049208,3.2613155219112904,-0.019594432967253994,0.9583118277740151,-2.020451461017884,2.711793920723213,-0.43501481809467824,-0.5402695206622841,0.8374875050828081,-1.230767824365332,18.667422163433102,1254 +FL,24.11170271238937,4.454828424016027,1.413816123599702,0.22013097513437768,-4.109485872369869,1.5578081121505551,-1.2390652969480147,0.18912216737383675,0.13751970380717296,0.01092008350211214,26.74729713265527,5062 +GA,17.623853759390947,4.0313929601288745,3.1033392127890616,1.670394393098989,-2.330920744265918,0.4737245563832444,-0.939057712785559,-0.8644842833110585,0.01931373537382776,-0.7543418532531232,22.033214023549288,2789 +HI,11.774189166659879,2.752763388932524,-0.11829484262610993,-1.7808656749742866,-5.670732838583083,2.416652394196368,-0.961126357744381,-0.5608838243867964,-0.013166486104898088,0.4602714333643821,8.298806358733597,1654 +IA,8.997492557025796,1.5371301876861274,0.2921811151513376,-0.5946035124423423,-1.8607275525964817,1.1125535299046523,-0.3982472963637732,0.2581457788393737,0.10944506676413578,-1.1654106003880125,8.28795927358081,1477 +ID,6.9564963798138475,1.508869868196068,0.632668534364302,1.589611156804889,-1.1081749420225298,0.23384686651007164,-0.542745780883554,0.3265355970115974,0.45952481369052545,-0.10241231456252656,9.95422017892269,2289 +IL,13.097726188757411,2.810271362751979,-1.1070071564197808,-0.7318484948663373,-3.6671559243170857,2.113632774420737,-0.7569394878543756,-0.17356912211751813,-0.34959439944818993,0.043884079917540626,11.279399820824377,3381 +IN,11.126175449005675,1.9141804247204153,-0.36561119094177885,2.408370502084657,-1.5569869619044878,0.3372469385982215,-0.3739092512858912,0.5862353443614028,0.5057072984835426,-0.5185083590783636,14.062900194043396,2142 +KS,11.020574580945876,2.779245696900656,0.5601206046935338,-1.6612206278231167,-2.1088551745130824,1.5984963063211495,-0.8956836631017183,0.41148062523448825,0.23335228819171777,-0.3227723868758749,11.614738249973628,1573 +KY,14.818049894364865,1.880623555176888,0.8828890594992,-0.38959180236706037,-3.2146839797183664,0.368569012928745,-1.257493550897208,0.9029200221643228,0.4611875944698639,-0.28980152199941756,14.162668283621832,1366 +LA,20.921902545827123,2.350635661784006,0.0015611715936659915,-4.682422839125824,-6.326777678203214,1.7050842560408195,-0.3638763683208612,-0.8980618753904231,0.8152634653007718,0.12282707561500836,13.646135415121071,2736 +MA,15.65915872266325,3.1934354507235883,0.8385204259226893,-1.2528944108317839,-2.254676006630583,3.0997241296319435,-0.43489735073342395,1.032438055091605,-0.04078953557337278,-0.5545018661656564,19.285517614098257,2810 +MD,15.766838509318848,3.021583674291604,-0.7905794245130124,0.6025181914933172,-3.5263197043714354,2.376627540352959,-0.9235032961456159,0.8944439764799174,-0.009783093798916148,0.3354295051133209,17.747255878220983,1496 +ME,5.627059095257075,2.5827463043187224,1.428493449237844,-0.5059297199066843,-0.30422431262418087,0.6757270986697911,-0.4610888555607676,0.7138499367875119,0.49304509149267445,-0.7654753136586863,9.484202774013301,765 +MI,11.830697098340055,2.2177205224247882,-0.19631850545574026,-3.1179809865696684,-2.4576295263150216,1.9205680364603683,-1.2391068312981763,-0.016567558169384086,-0.8951492659389321,-0.47151786661565687,7.574715116862634,2544 +MN,8.20760623793026,1.534469639319314,-0.5990060585019021,0.6811554109092218,-2.4062932208640033,0.9388661228469637,-0.7781193834709197,0.3140635105729924,-1.0220389889912396,-0.8704102785618706,6.0002929911888145,1634 +MO,15.117478696997534,2.1572394414777603,-0.04243875111257005,-0.9234340548111658,-2.269432843575055,0.7479656024632587,-1.2135775253125944,-0.488631017938318,0.47761656874563724,-0.8589498208959411,12.703836296038546,1911 +MS,15.841985521987493,2.0791070593948406,-0.6528259278599021,-1.6422303267753469,-2.916010273735125,1.6746631026807972,-0.6355947880433991,-0.47585108592714437,0.5815954128301101,-0.1605910555154028,13.694247639036918,1964 +MT,11.255244273164992,1.7395039525786558,0.16043003439677944,-0.3112318208177855,-2.586582759743257,1.1950090975548244,-0.9567752586811099,0.08329087067565255,-0.30379241369349963,-1.3111943844820737,8.963901590953178,1825 +NC,18.817700694339525,2.6447612262471685,1.7839622703485847,-3.206032241524513,-2.547036448472587,0.6932904358320964,-1.4318645804308443,0.3732605568028304,0.31177388003677126,-0.8999442771100048,16.539871516069027,3037 +ND,7.6307854899547225,1.317413351838657,-0.13735930548479772,0.4084703720905263,-1.6784600473162257,0.8370625985759592,-0.5179348661939053,1.5007950941438792,0.07926161076880844,0.6852873214608891,10.125321619838514,1682 +NE,9.417314380262134,1.3699671743513826,-0.47861553784246125,1.8354653810894987,-2.7374208844787917,0.02370347915105968,-1.0321991208693304,0.6484102495249386,-0.18988901804112593,-1.5820417929609587,7.274694310186342,1596 +NH,7.4936755993831845,1.5030672896330088,0.6446983684753749,0.5550855331008488,0.041084136316570305,1.211881693054455,-0.47188413312978383,-0.6222491819633841,-0.17862957053239822,-0.40539227093672914,9.771337463401148,1135 +NJ,15.82617177517208,3.484684855689268,-1.1358907884785365,0.8439971768617951,-3.023266125422199,1.4492669812442236,-0.8244994228448979,1.1636587608884554,0.8851113278623407,-0.7065733467792916,17.962661194193238,2413 +NM,12.969735825865733,2.6353716105032863,1.2509283445608677,-5.293936015609651,-4.368156949408208,0.6296499757204201,-0.6921542041904558,0.6017775592807292,0.608266289151282,-0.0578154609162026,8.2836669749578,1878 +NV,15.356941678797492,3.2221579013983304,0.613269817890106,-1.4481919802841587,-2.588558369391596,2.111159441784918,-0.9692841329101578,1.1798032769789009,-0.010714523273544864,-0.4590010513515692,17.00758205963872,1684 +NY,18.324898381557155,3.923507722839161,1.2767785965366452,-2.7933967598078446,-2.9080372802456917,2.588259294787781,-1.1000370062145293,1.1496077554245374,0.277866314950477,0.30636473114810486,21.045811750975798,4336 +OH,15.005100188964294,1.9384226602276802,0.713600069159434,-3.0251816435686596,-3.656597260199124,0.985455521474583,-0.43819827201390815,0.16612162252870402,0.39025533971969034,0.16627877982861686,12.245257006121307,2859 +OK,15.331135386083353,3.190333843709743,-0.18888912591814597,-1.863877749657363,-4.859744481370419,0.6266102353186688,-0.8179353231334469,0.5506675765153212,0.30073522879948744,-0.5454742057556384,11.723561384591557,1937 +OR,19.693949406262288,2.9909572918148712,-0.171398578062909,-1.3158314323901983,-3.116219088529963,0.6030363893190769,-1.4339162085379145,1.8870108757948982,1.059316975072444,-1.0654045372702974,19.1315010934723,1823 +PA,14.397101929499303,2.424802143163591,1.2260782818516671,-2.623250706855687,-4.196093586039303,1.3883544634291953,-1.1693932990678975,0.6689692505188263,0.4884824506068484,-0.5929169753847998,12.012133951721745,3134 +RI,9.727133622169008,2.6396859777402377,0.07854440756754262,0.0200725069591364,-2.7847132620971453,1.6419065198174043,-0.4163663187194871,0.5381904436393696,0.6023535248687678,-0.9133589988964692,11.133448423048366,868 +SC,14.939913919997897,2.2309769719863297,1.0435444823423075,-1.670681403133339,-3.6693167546425483,1.3410452491215226,-1.1617883239774303,-0.116441019427999,0.4648885434074789,-0.6172390179283864,12.78490264774583,2259 +SD,7.194354663317045,1.4873455639917283,0.1351982744369538,1.2136115875153743,-0.14568985885777644,2.455495630104436,-0.4739481894828875,0.5979712795731693,-0.0188330600900707,-0.9230842505577582,11.522421639950215,1270 +TN,14.058012515615664,2.2462267979724753,0.1782805593310441,-0.5889066478588711,-2.307305228187497,1.680275888276134,-0.9814708820266507,-0.0972469996432782,0.03322444985794527,-0.9976322348046619,13.223458218532302,2251 +TX,18.326642539467063,3.5519969606213664,1.7464462711926059,-1.1676411540185003,-3.7035671228744156,1.0553695028387076,-1.0001319144411427,0.31025514039605157,0.054372230792141235,-0.853214982489122,18.320527471484752,8055 +UT,5.937223674095707,1.8666216771102133,1.1323725832637468,1.2926737119608231,-0.748775562963725,0.18540258149564867,-0.4267493886706081,1.3086708614420604,0.43029197020971266,-0.2984848904820887,10.67924721746149,2391 +VA,16.87925749863848,2.7396133375315634,-0.020552713637381717,0.9530451809424505,-1.7983725723582424,1.5828961333339118,-0.6266887977105274,-0.7540582603546304,0.08117311959161982,-0.4520301489476725,18.58428277702957,2371 +VT,9.348212080687887,1.033437057849599,0.2486713193497076,-0.7612343362294189,-1.195334436053119,1.9001706228169062,-0.529442401879718,1.244093419067633,0.1970233095378137,-1.4153297648193637,10.070266870327927,1318 +WA,14.296719447847774,2.3577107659152134,1.040598401921276,-0.9341693028032517,-1.8454003893028346,1.485958387297078,-0.26221409056273165,0.5837656781469343,-0.17336165183888755,-0.39670285491754476,16.152904391703025,2361 +WI,9.307391679096263,2.151656530459219,-0.32363270766260044,1.0515109375552643,-1.9204355031461366,0.3606012533100677,-0.871767090497722,0.2805132166264326,0.22324202796707976,-0.738259503009445,9.520820840698422,1786 +WV,14.149743438058291,1.84698271538852,0.7975197882833301,-1.3187442385304728,-1.9978287623285185,1.2865292690448535,-0.45714835378751617,-0.3526892367177443,0.2570210507762587,-0.2648148641429089,13.946570806044093,2196 +WY,9.390998723821962,1.0511106054699346,-0.06867300364088334,-2.0332734516356274,-0.7787493296624265,0.13576731838586042,-0.2929615494869785,1.2431244807501032,-0.07404619742258432,-0.35174442691424135,8.22155316966512,1608 +US,16.310518582644047,2.9244425738271422,0.8257570661228091,-1.0973166422717728,-2.9798681711671167,1.4683336641223341,-0.8816717265813658,0.29673737608121653,0.19756411903044507,-0.4396374315724612,16.62485941023528,119970 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_asec.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_asec.csv new file mode 100644 index 0000000000..335f840ff7 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_asec.csv @@ -0,0 +1,53 @@ +,E,priceyear,threshold_rest,cash,snap,housing,otherkind,fed,payst,exp,pe24,n +AK,18.780771399990375,2.6674775381410814,-0.34015574893102585,0.21794059577841213,-5.013521442937228,0.3385080374731507,-1.2464086933913843,0.03221103006202974,0.0,-0.6146182989359642,14.822204417249447,717 +AL,18.83421532449117,2.297661432911492,0.6742859627937332,2.0521669199818073,-3.7299921785303694,0.6496964763990651,-0.3959974734308806,0.03196188651969943,-0.019702535528905357,-0.17331450749770422,20.220981308109106,1101 +AR,15.930819422757578,2.6152728420197673,-0.3842668825372109,0.7685309761832992,-4.0729527479543055,1.0730033586924923,-0.3959853018274032,-0.8285305388607365,-0.07248328870837263,0.05023744495188374,14.683645284716995,1078 +AZ,21.559736075807205,3.1004644896976767,2.9981953598757514,-0.5343910365600365,-3.5478552736365936,0.7251060022726362,-1.2789345489637716,0.6218436805977067,0.14812117354409451,-0.8296698481809517,22.96261607445372,900 +CA,22.878409964057855,3.5936300740281233,2.3395482480147107,-0.1351311236919159,-2.475786042775648,2.8464208555903383,-0.7619063168521685,-0.11615161076159218,0.5475937944300975,-0.5874565043378965,28.1291713377019,5039 +CO,17.877554830776162,2.5002094499888368,0.14146651719093836,0.7904738714343139,-2.0729321631773296,2.4880776527263793,-0.7882998246434654,0.15901382123171395,-3.6296162494797035,-0.636515099956252,16.82943280609159,735 +CT,18.67241546477362,6.337861587527293,-0.36063745426313215,-0.05697023975519466,-5.6243851446086675,4.3654232479786454,-3.281326488291224,1.117208475966568,0.6179596401614214,-1.6058331996475352,20.181715889841797,577 +DC,36.52323452770257,4.742188044544942,-1.792176824353334,-0.0023425660134145515,-5.013030540255532,4.248557478826119,-2.1548288689390365,0.09463681061353572,-1.130969285257538,-1.2198642021866826,34.295404574681626,604 +DE,16.14164523066652,3.547266294233456,0.034332945264673564,0.6458281879141241,-1.130322087423523,2.5514128199651225,-0.6502821400674416,-0.7762515478143032,0.4469201488038353,-0.4164093634202064,20.394140488122257,624 +FL,30.083218111320882,4.674957173858245,1.4304564452640196,1.8996361103799508,-5.1118946038438695,1.5699145230717069,-1.2721371447380738,-0.271599450169704,0.0,-0.4375337767152508,32.56501738842791,2395 +GA,21.6761314921527,4.590684570013792,4.615148176455979,2.1188129125276194,-2.2757474417862755,0.6076920095829106,-1.0197168866793158,-0.8975864504931808,-0.15764541362367615,-0.44185686123387236,28.815916106916674,1310 +HI,13.581729027294593,2.850953591589217,0.14765917775939622,-0.41779845361409085,-6.672837295491449,2.068921600903415,-1.0551350939905986,-0.9199349919459516,-0.3896991319072453,-0.6898794089223155,8.503979021674969,825 +IA,7.413303400174925,1.3546216851566493,0.04899078228490911,0.9332951957589666,-2.451977463464252,1.1304714809969743,-0.47634746387062515,0.24276705412203148,0.062103509897916444,-0.06480933211502522,8.192418848942468,689 +ID,6.429764526525913,1.1091995033586333,0.2812791864458229,0.6547816359009151,-0.8799738866702105,0.3331874051807712,-0.4095845421132331,-0.31335272161663846,0.11976280647508122,-0.21175729327644952,7.113306620210605,1137 +IL,17.679175069085456,3.2699948423258176,-2.1045472390628097,0.5670720573233716,-5.259801732419395,2.6324352194773404,-1.0485501672793336,-0.6348830011335289,-0.7451041341393686,-0.6289282092895184,13.726862704888031,1529 +IN,16.132704622486578,2.2386530290077262,-0.7930637830835884,3.2643773627239128,-1.808439133734762,0.5052796326803567,-0.22922904518119347,-0.26977048629857503,0.06356252648248316,-0.5729777795955786,18.531096945487363,1001 +KS,12.155464822151375,3.0088425372381113,0.9168641553527332,1.942947188566401,-2.022729338479837,2.8733907766534945,-1.2475410448090667,-0.5497790246873802,-0.07294376544194339,-0.2153674125023819,16.789148894041507,727 +KY,19.114684442714783,1.8598066630044692,0.9915167060790133,2.170308053974184,-5.288148684511131,0.35844640293112395,-1.9695054885911742,-0.3633186518915815,-0.41630405939198556,-0.5992717815490795,15.858213602768625,648 +LA,20.978637805894135,2.1140356136719043,0.3490950415481152,0.8872773614107328,-7.322959170129604,1.7142219938867815,-0.31521096644369767,-0.39521417935475367,0.25721621650987225,-0.4006068649439336,17.866492852049554,1313 +MA,20.510148251492737,3.4605214637598647,0.8815965674662101,-0.03635558822825685,-2.6736408193718044,3.815896613006668,-0.5871420288693933,1.2866585747283747,-0.16792487810378892,-0.23063311008024492,26.259125045800367,1248 +MD,22.22274037274413,3.8038338827021243,-1.4756991340770402,-0.6080884103827767,-4.768687737844254,4.251978307970366,-1.122484495466916,0.8993957804235827,0.31420015403218604,-0.3524825698234152,23.16470615027799,674 +ME,6.475281800401232,3.18808319745732,1.9661370707637686,0.5829881745646355,-0.7262498545014272,0.746171967271226,-0.41881054340744395,-0.5822144149368791,-0.12746884378144796,-0.2839685512056807,10.819950002625301,360 +MI,11.985593817341208,2.5024120121738074,-0.565904413929579,1.447875646405703,-3.5915584611658877,2.365636077753842,-1.4686359205423234,0.239653659522662,-1.2996213493744941,-0.20955457775270164,11.405896490432237,1186 +MN,10.093763173572139,1.87821525563682,-1.0739052820910608,-0.062001686315995216,-3.2624061261880852,1.079460419947379,-1.1343723576900375,0.30709854786507657,-1.3566128736378473,-0.20000897700212447,6.269230094096264,741 +MO,12.983285685963045,2.232877351675319,0.6120940521605621,0.48132709396420925,-1.2773303111654473,1.0454771792407547,-1.4236388111931042,-0.5178405429419058,0.07144347854526537,-0.4105706312549289,13.797124544993771,891 +MS,17.93373832223648,2.3110159531456493,-0.6944916689695115,0.8066461882541307,-2.797380007763566,1.072690268723008,-0.7802800824660567,0.0008547053776698718,-0.07214922037600068,-0.5152479254242432,17.265396532737558,955 +MT,14.214249692756495,1.983746841069896,0.11552605959523732,0.0698998855401793,-3.8066072884950923,1.7017718288212997,-1.2057398342695684,-0.024362898849289518,-0.4088441233158958,-0.697920009819353,11.94172015303391,911 +NC,19.272119982450196,3.184205931358972,1.854863253560585,0.6062258290756724,-3.216344596416107,0.8406376330024339,-1.5302919224182812,-0.3636552242945942,-0.01742010887176583,-0.4916785540773454,20.138662223369764,1422 +ND,8.534318129614098,0.9757827469360469,-0.11831813406918705,0.46448889518175607,-1.7084978164357587,0.7645828980594351,-0.5512479347046336,0.2697186720551153,0.0,-0.1260270730556026,8.50480038358127,841 +NE,7.750818614476521,1.0892260599969619,0.15684525317806267,0.8912770195459732,-0.8679908955415161,0.02880650029108632,-0.8167919781340042,0.11785676302030398,-0.5063085813823119,-0.21062794823219277,7.633110807218885,743 +NH,9.294409437643287,1.7663011479870185,0.1542245232805543,0.04713113641435139,0.2036906699872162,1.5150455186068421,-0.4368566954016772,-0.3619527344331396,0.0,-0.15445484793793746,12.027538156146516,552 +NJ,20.740986769145238,3.942844755788048,-1.3993469610765084,2.2334334455879405,-4.431297656900086,1.7059448524596472,-1.0627282700837888,1.0971661095771694,0.22795281957656854,-0.2076506618977651,22.84730520217646,1071 +NM,13.93993146016858,2.993737916888797,1.9132366160063372,-0.2047009596657383,-6.146337133904091,0.45669855574165197,-0.6073890480412183,0.37351904435049105,0.1419788140373203,0.0011234444719153275,12.861798710054046,931 +NV,18.420164438471932,3.526461238697382,0.48183832956442196,0.9461949956540636,-2.6146489672038706,2.8528924216188325,-1.445876206274299,0.3954991495405345,0.0,-0.27778503104188035,22.284740369027116,797 +NY,19.495479115701055,4.125655295930638,0.005005727981777189,0.16958590671512672,-3.477735005034797,2.6744588060610637,-1.0689545501145568,0.89940530242415,0.28354284063009905,-0.49457868606447214,22.611864754230083,1981 +OH,13.869108466308857,1.9069503501381486,0.9469372825932126,-0.053753185059006045,-5.267635314056001,1.1075049323329968,-0.5530120235788254,0.3015711987774635,0.051175084196553124,-0.18822906653324298,12.120617725120157,1312 +OK,17.594624522540826,3.6695098438180023,-0.2814497459744589,1.2675138747922157,-5.704557201635871,0.6736309138661911,-0.7483196470492429,0.2670352563666462,-0.021324737758247135,-1.13082962618328,15.585833452782778,918 +OR,21.136496664560887,3.3460913367341454,-0.8044730175625293,2.0887861224400375,-2.797992374031753,0.7665099183169046,-1.5414451067100075,2.845556272371622,1.2251416901829415,-1.0866773617049386,25.17799414459731,835 +PA,17.25103559723356,3.5312417759250163,1.603451852034698,1.274116904857825,-5.767694348450149,2.0800379531624893,-1.5433572009411811,-0.2896279878663348,-0.13050487004258426,-0.5067710388775393,17.501928637035803,1444 +RI,14.815452480828487,2.7193060489672485,0.184423790409393,-3.1364452528873725,-2.948233926524083,1.737764269505327,-0.39674920176908907,0.9343150588410998,0.5331633928503422,-0.10404229852645218,14.338954361694908,421 +SC,15.867779755919193,2.488627641058472,2.3901018988022034,1.714610961044203,-3.4659232637798905,1.2125936165985816,-1.030044014441723,-0.3946996224962478,-0.014715418285762604,-0.4457708244985212,18.322560729920507,1057 +SD,8.375287358590406,1.2903113936080113,0.10633163792775424,1.1495404350244172,-0.05695883211362887,3.688935702739968,-0.2468280011716384,0.22963465191377838,0.0,-0.611810012820912,13.924444333698158,635 +TN,15.401381441633136,2.4458301390312394,0.23105552108029367,0.6955810659767042,-1.9223418349344663,2.3626093995283335,-0.9028045609710735,-0.6603927235345135,0.0,-0.6412871379781213,17.009631309831533,1064 +TX,20.896641375371352,3.9434960521607203,2.67273195981953,0.38666039636377436,-4.203744060379348,1.0813165338832962,-1.0527540128783517,0.2017179787242985,-0.0004484056220719064,-0.9269311234853803,22.99868669395782,3780 +UT,7.88825751902396,2.326041963431446,1.5786559901150492,0.18250497671836236,-0.4807258908939698,0.2066910948054969,-0.5635948741569702,-0.5397000210998224,0.2707509498038164,-0.40246179103660534,10.466419916710763,1095 +VA,20.020026303999966,3.0228381099373975,0.175481012871839,2.279570545822338,-2.16248676104796,2.7445681580751318,-0.877440411552624,-1.079765289119643,-0.053226800729485414,-0.6323679434446061,23.437196924812355,1074 +VT,8.344649848535715,0.8606014992432728,-0.1580136337244847,2.0788434188912306,-1.3549498586613615,2.156463510556139,-0.5912442629268608,-0.0017204020357918098,-0.02924692207467364,-0.22144135208272525,11.083941845720458,659 +WA,20.38050048500825,3.2533201804778495,0.6166149260852036,0.1631548658848567,-2.684956822713388,2.1957393162991576,-0.1175049446138976,0.6179190470642643,-0.3915820234250461,-0.43808089005089224,23.595124140016356,1058 +WI,9.083491588776111,1.8993334157783968,-0.3875114424338845,0.7289654044043304,-1.3084549399319345,0.32828133765322526,-0.6871058030600696,-0.10916491463000397,-0.2997615717714803,-0.292129301713622,8.95594377307107,820 +WV,16.04399673556525,2.366735650489198,1.104059776023156,2.178496096941648,-2.1469609827298664,1.596942956612736,-0.5130886605730987,-0.13259531784820727,-0.011035321453245168,-0.77298666999702,19.713564263030552,1097 +WY,9.318690567164351,1.5227858483029186,-0.04535052209059695,-0.37933789957567987,-1.2992491781738116,0.035377964478103735,-0.38338540387969083,-1.1735045341530232,0.0,0.6099616763164739,8.205988518389047,804 +US,18.784170849916606,3.24517638381801,0.9735964164378805,0.7919965561508665,-3.498375378091644,1.7626197104529426,-0.986607109247242,0.0321291641326455,-0.06803170625324607,-0.5181497381946447,20.518525149122173,56326 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_puf_tax_detail.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_puf_tax_detail.csv new file mode 100644 index 0000000000..7fcee0c4b3 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_shapley9_puf_tax_detail.csv @@ -0,0 +1,53 @@ +,E,priceyear,threshold_rest,cash,snap,housing,otherkind,fed,payst,exp,pe24,n +AK,14.118780137386528,2.748844747198858,-0.2960360499801294,-2.9015473760490202,-4.685410436151043,0.1962156138301517,-1.4002614593599048,1.0715486792207898,0.07600760870682484,-1.8284416540412902,7.099699810761765,717 +AL,15.042636636517276,2.036894446675079,0.864133894758524,-5.06270438603287,-4.112101711125104,0.6807045333569384,-0.6730831867501916,1.7911610332615449,1.4099090454104701,0.12155311250248951,12.099103418574158,1238 +AR,10.385416702219247,2.048938695486756,0.38010335216392865,-3.9134505103829342,-1.3324972998238804,0.6293090265542315,-0.46579249964349195,-0.6968577280875101,0.8662586493685724,0.772940395677516,8.674368783532435,1154 +AZ,16.505909333363654,2.9002483462292905,3.3084240231403883,-2.689077957472521,-3.8853362369576425,1.1156929449664597,-0.891823157250864,0.6464594904387111,0.1395405392597008,-0.4868954932022357,16.663141832514945,1034 +CA,19.05439293555819,3.0958213244556427,1.2522733996027011,-4.413399564191485,-2.5326431614388496,2.0736188126823425,-0.6316625369178361,0.030326253393633956,1.12943993559487,-0.14049043482197512,18.917676963917238,5956 +CO,11.896868011960272,2.457926128189817,-0.38122990038052135,3.075127052565507,-1.9039125908506438,0.6264569154830089,-1.096137452057455,2.006759576189283,-2.5815873492590082,-0.31341786761313317,13.786852524227125,898 +CT,13.431299703347937,2.346607972210971,-1.2944372206993644,0.2777528592351086,-2.0157443352722058,2.1939773050339424,-0.7301990316525859,-1.258565532188496,0.22673200007389838,-1.8560185930268407,11.321405127062365,698 +DC,17.105785387589226,3.1519319210835217,-0.6456320057785976,-3.4214269583773196,-2.8743542260655155,4.934884524489279,-1.490964838827875,2.0593343949218554,-1.0364724923871576,-1.2227813418245366,16.56030436482288,604 +DE,14.361001403418724,2.998077704327811,-0.027639965593415784,1.202499421039236,-2.7202336011210906,2.830361507291485,-0.2577811160613569,-0.3651392061256318,1.1432271735079338,-1.854050422904871,17.310322897778825,630 +FL,19.41343804428311,4.257111444461584,1.415455212185839,-1.0914643388274268,-3.316381355537799,1.5486867396868358,-1.2105816799989775,0.5560372729251064,0.242437573849842,0.35529638563547805,22.170035298663592,2667 +GA,14.216747496375698,3.517621803156979,1.8512936491956726,1.2929890701183924,-2.3655342930389742,0.36751174508235673,-0.8673426633192567,-0.846330125575549,0.1764902259588726,-1.013047023123317,16.330399884830875,1479 +HI,10.40649135086439,2.68922339172302,-0.320727963744402,-2.825852920672502,-4.907048240042553,2.679537248203701,-0.8945927930475193,-0.2921907751253491,0.258622632535521,1.3500979468539003,8.143559877548212,829 +IA,10.264668774061313,1.6816420561587524,0.4323722627783885,-1.825990597337193,-1.3734303626931206,1.0988056103345714,-0.3216862462306462,0.28442580752068,0.16592725157151778,-2.042353503439483,8.36438105272478,788 +ID,7.395393523328464,1.8325151844973622,0.9310896572816834,2.371454200396366,-1.303390195706512,0.15206223232347144,-0.6472721484933319,0.8663436889211246,0.7404225561011354,-0.017219018226234,12.321399680423527,1152 +IL,9.728023986670546,2.458887004718591,-0.368733312128811,-1.6835979982294877,-2.4918440450575763,1.732470020781707,-0.538740529805358,0.16606384971200588,-0.05523618184026576,0.5319732069032928,9.479266001724644,1852 +IN,7.126847390625388,1.6561346876518284,-0.02637149867188312,1.7225924388149596,-1.3557869302138283,0.20345357219075347,-0.48793407322296967,1.2714946777865115,0.8565505840981261,-0.47337667211811363,10.493604176940773,1141 +KS,9.953786001844653,2.5825151094556533,0.21996418621387306,-5.061562771890314,-2.188311334793097,0.3996297999438386,-0.5756785088138547,1.2963869199212132,0.5486571862349097,-0.4245567393713656,6.750829848745507,846 +KY,11.367390997357857,1.8873334087967593,0.7992295488629145,-2.4454408343576612,-1.5497162023658846,0.37987404562417765,-0.6898895971482087,1.921427278555205,1.1686350450431382,-0.0378803585998352,12.80096333176846,718 +LA,20.87960783968444,2.5181369937976203,-0.2496076975986895,-8.833729994846282,-5.581314357864116,1.6976082984215881,-0.40381529831399215,-1.274063194296544,1.2272640859845279,0.519878661773341,10.4999653367419,1423 +MA,11.606310907087584,2.9620471925617524,0.8170061237560853,-2.272142780778569,-1.9055602637627054,2.499098862259931,-0.30552912256063536,0.818008241320917,0.06491609283989708,-0.8248653553194574,13.4592898974048,1562 +MD,12.032801136181805,2.561929588693939,-0.3850917514198604,1.303591884878952,-2.804277174841661,1.2890746431242146,-0.8131583792826612,0.9009527622408796,-0.19846208866511053,0.7264892342766324,14.613849855187128,822 +ME,4.822094291670232,2.0072478718465363,0.9188541434740812,-1.538729257237871,0.0952459697230209,0.6094602116152845,-0.500763779073647,1.9444026461292467,1.0822230019180856,-1.2234587394929322,8.21657636057204,405 +MI,11.709788429506359,1.9592261849071664,0.10693456703984797,-6.676023260420541,-1.568627175968715,1.572645972747255,-1.0558719419275033,-0.21212853733671683,-0.5724693752707773,-0.679288163839084,4.584186699437289,1358 +MN,6.661723206516401,1.2373654833516667,-0.20461436123233115,1.2948570858471635,-1.6993095333561383,0.8236358712734746,-0.48313409534127827,0.3249390644908269,-0.7610468184786185,-1.4145421654694033,5.779873737601764,893 +MO,16.8790333747807,2.0894604280664,-0.5635338937508853,-2.0807892132970314,-3.09858691575122,0.5008278373317037,-1.0453410205131048,-0.46633687717875333,0.8146177755943498,-1.2279111021235483,11.801440393158607,1020 +MS,14.105518602471296,1.8853361678812939,-0.6135467631692619,-3.6718577403469355,-3.006202471230139,2.1741648854005673,-0.5181611998641756,-0.8795917920841775,1.122328330722684,0.1316732121813198,10.729661231962472,1009 +MT,9.133076176406796,1.555191965670735,0.19999860674652659,-0.5845829477058022,-1.7099068388856653,0.8330891027164951,-0.7782135139757395,0.16241343397729083,-0.22729102833629944,-1.7555340537225133,6.828240902891822,914 +NC,18.450418595265443,2.2012040759359075,1.7392418168084298,-6.2937611735720775,-2.00445508826334,0.5736632387392314,-1.3469716040838562,0.9625440775014215,0.572613104701771,-1.2233299761105187,13.631167066922412,1615 +ND,6.8948106751926534,1.5928405417811051,-0.1502565390136953,0.3625483636143692,-1.6539048993121535,0.8971647915504567,-0.4907155953698441,2.501050648588718,0.1458455351739905,1.345937801375873,11.445321323581474,841 +NE,10.645896015083856,1.5764669799475763,-0.9459208352753898,2.531074802385975,-4.115184192373769,0.019900420549241106,-1.1911246599541436,1.0388597201841907,0.04426199166755829,-2.5937693821891963,7.010460860025898,853 +NH,5.987631889308515,1.2843175873329673,1.0516069102116945,0.9817938983136678,-0.09439355328167362,0.9583306335394607,-0.4992881452060073,-0.847498958307679,-0.3285299521535524,-0.609606251186817,7.8843640585705765,583 +NJ,13.008321208916271,3.2131654349417236,-0.9389595004333757,0.04023957549600682,-2.220923418398446,1.300696330287473,-0.6948751709710722,1.19862243259178,1.256578016187722,-1.0007561056607117,15.162108802957372,1342 +NM,12.128052178796537,2.3169083124817536,0.6806155107162153,-9.713374481838663,-2.8262905469006068,0.7801765916814659,-0.7626157082042924,0.8024594306037369,1.0147753776533341,-0.10875269235614007,4.311953972633347,947 +NV,13.214603067516443,3.003287039094163,0.712763446732049,-3.125045031166663,-2.565814770131384,1.59166254017908,-0.6393626496449424,1.7305022863643502,-0.017928149684271977,-0.5877934777614153,13.316874301497409,887 +NY,17.370136726573676,3.7467853185634477,2.326859568425156,-5.20842910646358,-2.446027820431124,2.5178092024917484,-1.127161866884757,1.3586327820256405,0.2700597613285878,0.9598261825608139,19.768490748189606,2355 +OH,15.935133877726205,1.943200378112918,0.5833545708767969,-5.4680211877674125,-2.355406150549508,0.8854519343966075,-0.3467523502626423,0.053792127110553783,0.6615890702387623,0.4549566155611441,12.347298885443422,1547 +OK,13.630717916204171,2.8280306036969276,-0.11738708194471675,-4.217808364529176,-4.222496921369108,0.5909792653026166,-0.8692931657268915,0.763268050418738,0.5433996551603344,-0.10733141713691384,8.822078540075976,1019 +OR,18.370431336401047,2.654332943900721,0.4182140825021766,-4.445493684073722,-3.412729688910497,0.45287528094730123,-1.3425049505394744,1.01546241110396,0.9163086926014031,-1.0429728995262235,13.583923524406691,988 +PA,12.263133300004347,1.577444449609313,0.9528214119361513,-5.533038170393371,-3.0206996823421286,0.8695979843780789,-0.8862975598988713,1.387663948575128,0.9548318749592248,-0.6582016452915709,7.907255911536297,1690 +RI,6.318302767898383,2.572788851018951,0.0370577683353924,2.1275612336731538,-2.6798838231484536,1.5784203856750298,-0.4371475062518358,0.2691841234048253,0.6365386017577584,-1.4368470152489072,8.985975387114298,447 +SC,14.325546388450249,2.0470344887356196,0.1561175828997119,-3.908963433880441,-3.8039339942339296,1.4282922442159909,-1.249388854208616,0.06821945837341872,0.7847740637000353,-0.7294432046455036,9.118254739406533,1202 +SD,6.280016633643705,1.627084071101904,0.16463618668407126,1.2656348952385024,-0.21449174078919658,1.5003643209199602,-0.6577758822873427,0.8854084563160444,-0.02669019129668515,-1.1615329912073584,9.662653758323607,635 +TN,12.929020871895855,2.0562827985295447,0.1724675140108285,-1.6787266522670594,-2.632491799124197,1.1089025823529044,-1.056711172052446,0.3727288801652794,0.058790190426747505,-1.2887736258884417,10.041489588049016,1187 +TX,16.42162414136915,3.244178825480658,1.0834168153794592,-2.318063062741226,-3.3423412660109912,1.0369608970020978,-0.9550258927656257,0.3900308989503851,0.09835691826626063,-0.8063086340971445,14.852829640833024,4275 +UT,4.760347589591571,1.585760349929546,0.8798719698344453,1.957254534662047,-0.9113837772870126,0.1725612142102284,-0.34665780584246475,2.4198342652615517,0.5238768631477314,-0.23383919803371633,10.807626005473926,1296 +VA,14.625826118105948,2.52430123223372,-0.14727037965040699,0.0004990054489441426,-1.5347099080006874,0.7495597412740433,-0.45052798571031266,-0.5199245484367119,0.1783970126715766,-0.3237248857557208,15.102425402180394,1297 +VT,10.206933969587748,1.176100953879996,0.6020288072471227,-3.1897001924205806,-1.0598627110808942,1.6808675187143756,-0.47813350557570383,2.3107880170328525,0.3933272293118399,-2.4394583145058233,9.202891772190934,659 +WA,10.077917374702064,1.7344405907010534,1.3188653837274809,-1.691185676886763,-1.2648303318787661,0.9934406299812046,-0.35355441318147673,0.5619969118409744,-0.020043595154593877,-0.3649547979122877,10.99209207593889,1303 +WI,9.48720494744526,2.3470278023930407,-0.2569119744996079,1.3091177350068357,-2.4107197798488103,0.3865572484984156,-1.0225644198827646,0.5926558986687712,0.6438943128252342,-1.1017904128392275,9.974471357767147,966 +WV,12.29561515743451,1.3300763298092322,0.5031782353567452,-4.747023414123689,-1.8486425170743348,0.9781955098715682,-0.40277465553906966,-0.5651643075749889,0.5198039883822569,0.23847235048465548,8.301736677026888,1099 +WY,9.441276080524554,0.7147144705507386,-0.08141827970103785,-3.180760446544684,-0.4224555439915952,0.20554799539114296,-0.22769206501646566,2.926210959576269,-0.1247398355306642,-1.0183077416740183,8.232375593584239,804 +US,14.410297979936143,2.6619713397618128,0.7284862130856842,-2.548794064350264,-2.582290567738281,1.2423153131795353,-0.7994733899634815,0.49958949194234015,0.4024459380518315,-0.38074136749493204,13.633806886410389,63644 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/dense_steps.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_steps.csv new file mode 100644 index 0000000000..87586a37b4 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/dense_steps.csv @@ -0,0 +1,52 @@ +,period_and_sample,selection,calibration,priceyear,threshold_rest,cash,snap,housing,otherkind,fed,payst,exp,year,gap +AK,0.1372735094198898,0.49450740922540604,5.0627753749669235,2.71866196019763,-0.32093367176381377,-1.5068331381829543,-4.833673603280663,0.2598748341102783,-1.3341990699572577,0.6041163004262421,0.04566889641419246,-1.2890531538549765,0.4815269889968139,0.5197126367177081 +AL,-0.9783274772582207,-0.17232628503876413,2.4638184621488985,2.158951576792022,0.7730329577434732,-1.7460449744220574,-3.9320762821834396,0.6662981592370404,-0.5411836770872899,0.9733026518317576,0.7443017211415683,-0.018024583549605358,0.7692386167782974,1.1609608661336779 +AR,1.2047432367556379,-0.22829879227587035,-1.3642900430007838,2.313460863688776,0.020394382766567,-1.7855151241820444,-2.5731173517706507,0.8309644920824051,-0.4361506065113112,-0.7511889518179442,0.4378330643726564,0.4436333053703032,1.0412378963656703,-0.8462936281565856 +AZ,1.1099909946713087,0.5388610431310425,3.7258640472790407,2.9915837195438075,3.1278154922813632,-1.7578675656429166,-3.735128068829323,0.9474744182723106,-1.0525796472094207,0.6448571358252446,0.14989758737265804,-0.6242615452451072,3.3212871327132234,9.387794744163234 +CA,0.2854939042872289,0.05000955300037546,2.4794505601767654,3.326002407246919,1.7157921390847166,-2.5543026056350304,-2.508922733179521,2.4099901162830313,-0.6934289488474904,-0.03184987552643538,0.873493964514487,-0.3340041983192301,1.203566342882258,6.221290625968074 +CO,0.08082522874506815,0.21600613518553136,6.489705186924423,2.482606839971652,-0.16400128595102934,2.086095533707234,-1.981076982317328,1.4324730197781823,-0.9601836225485461,1.2077288630975742,-3.033423258757376,-0.4524500263469231,1.275378813497401,8.679684444985867 +CT,-1.1399183068825263,0.04141039263434543,3.9286067602564767,4.089068595005958,-0.916674639373182,0.13019589199315657,-3.530378077602963,3.1038123082021563,-1.8091272286281317,-0.27546693118284005,0.3797081502484655,-1.7626760147308442,1.5217321160244754,3.760293015964546 +DC,-1.6543198814524978,-1.2264808000560627,8.77288577640143,3.902800855529356,-1.1851156032867234,-1.8186854683869287,-3.8776095682280443,4.613045976195367,-1.8039619066021504,1.1371711855918991,-1.0805681939869412,-1.2198051970734536,1.242945735736157,5.802302910381407 +DE,1.5052293285338383,0.12061043589967291,4.818771680615697,3.2613155219112904,-0.019594432967253994,0.9583118277740151,-2.020451461017884,2.711793920723213,-0.43501481809467824,-0.5402695206622841,0.8374875050828081,-1.230767824365332,3.0263784163980176,12.99380057983112 +FL,-0.8291422909987638,0.029908728158645204,6.51093627522949,4.454828424016027,1.413816123599702,0.22013097513437768,-4.109485872369869,1.5578081121505551,-1.2390652969480147,0.18912216737383675,0.13751970380717296,0.01092008350211214,3.2809822674796365,11.628279400134907 +GA,-1.0435136448358016,-0.022450177805479754,3.5898175820322287,4.0313929601288745,3.1033392127890616,1.670394393098989,-2.330920744265918,0.4737245563832444,-0.939057712785559,-0.8644842833110585,0.01931373537382776,-0.7543418532531232,1.5936510190107782,8.526865042560066 +HI,-0.8383347024904513,0.4134805570741822,-0.8009566879238523,2.752763388932524,-0.11829484262610993,-1.7808656749742866,-5.670732838583083,2.416652394196368,-0.961126357744381,-0.5608838243867964,-0.013166486104898088,0.4602714333643821,0.4653120204016723,-4.235881620864731 +IA,-1.5028167505320882,0.5595503214096205,1.740758986148264,1.5371301876861274,0.2921811151513376,-0.5946035124423423,-1.8607275525964817,1.1125535299046523,-0.3982472963637732,0.2581457788393737,0.10944506676413578,-1.1654106003880125,0.34341624746150856,0.4313755210423196 +ID,-0.7286548952619798,-0.048024435424066425,1.2331757104998937,1.508869868196068,0.632668534364302,1.589611156804889,-1.1081749420225298,0.23384686651007164,-0.542745780883554,0.3265355970115974,0.45952481369052545,-0.10241231456252656,0.43832582651480045,3.89254600543749 +IL,-1.3588788415045805,0.5170530249317355,1.5395520053302558,2.810271362751979,-1.1070071564197808,-0.7318484948663373,-3.6671559243170857,2.113632774420737,-0.7569394878543756,-0.17356912211751813,-0.34959439944818993,0.043884079917540626,1.5159304798227904,0.3953303006471671 +IN,-1.3735662238142368,-0.38235576315982023,2.2820974359797326,1.9141804247204153,-0.36561119094177885,2.408370502084657,-1.5569869619044878,0.3372469385982215,-0.3739092512858912,0.5862353443614028,0.5057072984835426,-0.5185083590783636,0.2932104034463041,3.7561105974897 +KS,-0.5812367263953657,0.48092572921360954,1.420885578127633,2.779245696900656,0.5601206046935338,-1.6612206278231167,-2.1088551745130824,1.5984963063211495,-0.8956836631017183,0.41148062523448825,0.23335228819171777,-0.3227723868758749,1.6497369677015108,3.56447521767514 +KY,1.686227051381513,-0.054187806571317054,-0.11398935044533154,1.880623555176888,0.8828890594992,-0.38959180236706037,-3.2146839797183664,0.368569012928745,-1.257493550897208,0.9029200221643228,0.4611875944698639,-0.28980152199941756,-0.46739750145865244,0.3952707821631787 +LA,-1.726275992228036,-0.35227433967799726,2.300452877733157,2.350635661784006,0.0015611715936659915,-4.682422839125824,-6.326777678203214,1.7050842560408195,-0.3638763683208612,-0.8980618753904231,0.8152634653007718,0.12282707561500836,0.07385288928968414,-6.980011695589244 +MA,-1.178424866615325,-0.08470361391364634,4.12228720319222,3.1934354507235883,0.8385204259226893,-1.2528944108317839,-2.254676006630583,3.0997241296319435,-0.43489735073342395,1.032438055091605,-0.04078953557337278,-0.5545018661656564,1.3689680953867835,7.85448570948504 +MD,1.5087169979796844,-0.1398717764230888,3.6979932877622534,3.021583674291604,-0.7905794245130124,0.6025181914933172,-3.5263197043714354,2.376627540352959,-0.9235032961456159,0.8944439764799174,-0.009783093798916148,0.3354295051133209,1.4853342897916946,8.532590168012678 +ME,-1.2779709847740648,-0.0651582660154455,0.47018834604658544,2.5827463043187224,1.428493449237844,-0.5059297199066843,-0.30422431262418087,0.6757270986697911,-0.4610888555607676,0.7138499367875119,0.49304509149267445,-0.7654753136586863,1.1485690697450703,4.132771843758372 +MI,-0.1455382342009237,-0.45332718682435136,2.1295625193653294,2.2177205224247882,-0.19631850545574026,-3.1179809865696684,-2.4576295263150216,1.9205680364603683,-1.2391068312981763,-0.016567558169384086,-0.8951492659389321,-0.47151786661565687,2.321266685202997,-0.40401819793437 +MN,-0.32035431340551934,0.6477326274985948,0.9802279238371847,1.534469639319314,-0.5990060585019021,0.6811554109092218,-2.4062932208640033,0.9388661228469637,-0.7781193834709197,0.3140635105729924,-1.0220389889912396,-0.8704102785618706,0.9389711716757176,0.039264162864531826 +MO,1.1337708888353042,0.1879909419708241,4.095716866191406,2.1572394414777603,-0.04243875111257005,-0.9234340548111658,-2.269432843575055,0.7479656024632587,-1.2135775253125944,-0.488631017938318,0.47761656874563724,-0.8589498208959411,1.3847434311717617,4.388579727210308 +MS,-1.8273889459409745,-0.7203613097234935,-0.7102642223480409,2.0791070593948406,-0.6528259278599021,-1.6422303267753469,-2.916010273735125,1.6746631026807972,-0.6355947880433991,-0.47585108592714437,0.5815954128301101,-0.1605910555154028,1.432316253623842,-3.973436107339241 +MT,-1.237448768141693,-0.4728302873395043,3.665523328646189,1.7395039525786558,0.16043003439677944,-0.3112318208177855,-2.586582759743257,1.1950090975548244,-0.9567752586811099,0.08329087067565255,-0.30379241369349963,-1.3111943844820737,1.2939255573443802,0.9578271482975573 +NC,0.7267214342637374,-0.0016630151643219904,3.692642275240109,2.6447612262471685,1.7839622703485847,-3.206032241524513,-2.547036448472587,0.6932904358320964,-1.4318645804308443,0.3732605568028304,0.31177388003677126,-0.8999442771100048,1.0081036419013323,3.147975157970359 +ND,-1.039056134989524,0.22851072655297777,-1.858669101608732,1.317413351838657,-0.13735930548479772,0.4084703720905263,-1.6784600473162257,0.8370625985759592,-0.5179348661939053,1.5007950941438792,0.07926161076880844,0.6852873214608891,-0.16497863372270238,-0.3396570138841888 +NE,-0.32822572153377916,0.20532521179764007,2.4402148899982734,1.3699671743513826,-0.47861553784246125,1.8354653810894987,-2.7374208844787917,0.02370347915105968,-1.0321991208693304,0.6484102495249386,-0.18988901804112593,-1.5820417929609587,0.7057030869659124,0.8803973971522545 +NH,-0.5107149675280569,0.3761159024994569,0.12827466441178448,1.5030672896330088,0.6446983684753749,0.5550855331008488,0.041084136316570305,1.211881693054455,-0.47188413312978383,-0.6222491819633841,-0.17862957053239822,-0.40539227093672914,0.9437993924841468,3.2151368558852944 +NJ,0.728221053513888,-0.5060752134946931,2.3040259351528842,3.484684855689268,-1.1358907884785365,0.8439971768617951,-3.023266125422199,1.4492669812442236,-0.8244994228448979,1.1636587608884554,0.8851113278623407,-0.7065733467792916,2.4016434880018913,7.064304682195129 +NM,-0.19220096048421453,0.38553610820327044,1.8764006781466769,2.6353716105032863,1.2509283445608677,-5.293936015609651,-4.368156949408208,0.6296499757204201,-0.6921542041904558,0.6017775592807292,0.608266289151282,-0.0578154609162026,1.2183402952626547,-1.3979927297795456 +NV,0.048839431902843344,0.7022415671980955,-0.3941393203034469,3.2221579013983304,0.613269817890106,-1.4481919802841587,-2.588558369391596,2.111159441784918,-0.9692841329101578,1.1798032769789009,-0.010714523273544864,-0.4590010513515692,3.2588142679723653,5.266396327611087 +NY,-0.7253208893575724,-0.16346112414820269,3.0136803950629307,3.923507722839161,1.2767785965366452,-2.7933967598078446,-2.9080372802456917,2.588259294787781,-1.1000370062145293,1.1496077554245374,0.277866314950477,0.30636473114810486,0.7302950469919018,5.5761067979677 +OH,-2.357853217994329,0.13980229530998933,4.923151111648632,1.9384226602276802,0.713600069159434,-3.0251816435686596,-3.656597260199124,0.985455521474583,-0.43819827201390815,0.16612162252870402,0.39025533971969034,0.16627877982861686,0.030782105751249844,-0.023960888127444235 +OK,1.3148484110440428,-0.18237273616556315,4.2986597112048734,3.190333843709743,-0.18888912591814597,-1.863877749657363,-4.859744481370419,0.6266102353186688,-0.8179353231334469,0.5506675765153212,0.30073522879948744,-0.5454742057556384,2.09658236726408,3.920143751855637 +OR,0.08598620860695227,0.2784371644435524,8.329526033211783,2.9909572918148712,-0.171398578062909,-1.3158314323901983,-3.116219088529963,0.6030363893190769,-1.4339162085379145,1.8870108757948982,1.059316975072444,-1.0654045372702974,2.3958943237780908,10.52739541725039 +PA,-0.1581301731134559,-0.09358383957235361,3.5488159421851133,2.424802143163591,1.2260782818516671,-2.623250706855687,-4.196093586039303,1.3883544634291953,-1.1693932990678975,0.6689692505188263,0.4884824506068484,-0.5929169753847998,1.4634668565138487,2.3756008082355944 +RI,-0.3234983415204127,-0.28717307676131565,1.937805040450736,2.6396859777402377,0.07854440756754262,0.0200725069591364,-2.7847132620971453,1.6419065198174043,-0.4163663187194871,0.5381904436393696,0.6023535248687678,-0.9133589988964692,0.6204570855502265,3.353905508598592 +SC,1.7689341438564519,-0.4518862205150871,2.5228659966565328,2.2309769719863297,1.0435444823423075,-1.670681403133339,-3.6693167546425483,1.3410452491215226,-1.1617883239774303,-0.116441019427999,0.4648885434074789,-0.6172390179283864,2.5672517741977074,4.252154421943537 +SD,-0.5414491393907319,-0.06668743987356329,0.0024912425813408134,1.4873455639917283,0.1351982744369538,1.2136115875153743,-0.14568985885777644,2.455495630104436,-0.4739481894828875,0.5979712795731693,-0.0188330600900707,-0.9230842505577582,-0.4215925836849319,3.3008290562652833 +TN,-1.6535349871175935,-0.3448642762723484,6.056411779005606,2.2462267979724753,0.1782805593310441,-0.5889066478588711,-2.307305228187497,1.680275888276134,-0.9814708820266507,-0.0972469996432782,0.03322444985794527,-0.9976322348046619,2.048092802050375,5.271551020582677 +TX,-0.2753238101806037,-0.07540595844396947,2.5773723080916344,3.5519969606213664,1.7464462711926059,-1.1676411540185003,-3.7035671228744156,1.0553695028387076,-1.0001319144411427,0.31025514039605157,0.054372230792141235,-0.853214982489122,2.4352962686284734,4.655823740113224 +UT,-1.467232520776622,-0.10275838088736045,0.20721457575968927,1.8666216771102133,1.1323725832637468,1.2926737119608231,-0.748775562963725,0.18540258149564867,-0.4267493886706081,1.3086708614420604,0.43029197020971266,-0.2984848904820887,0.46713939236232527,3.846386609823816 +VA,0.04849955799713612,0.08981041617506769,4.640947524466277,2.7396133375315634,-0.020552713637381717,0.9530451809424505,-1.7983725723582424,1.5828961333339118,-0.6266887977105274,-0.7540582603546304,0.08117311959161982,-0.4520301489476725,1.2641837728062448,7.7484665498358165 +VT,0.21346822404733068,0.45321317621058554,0.38153068042996985,1.033437057849599,0.2486713193497076,-0.7612343362294189,-1.195334436053119,1.9001706228169062,-0.529442401879718,1.244093419067633,0.1970233095378137,-1.4153297648193637,0.9490224847733302,2.7192893551012567 +WA,0.5605808059915827,-0.1964824443727462,4.632621086228937,2.3577107659152134,1.040598401921276,-0.9341693028032517,-1.8454003893028346,1.485958387297078,-0.26221409056273165,0.5837656781469343,-0.17336165183888755,-0.39670285491754476,2.2364802970536353,9.08938468875666 +WI,-0.7824910869438337,-0.13071937492935515,2.920602140969452,2.151656530459219,-0.32363270766260044,1.0515109375552643,-1.9204355031461366,0.3606012533100677,-0.871767090497722,0.2805132166264326,0.22324202796707976,-0.738259503009445,2.0543726806011833,4.275193521299605 +WV,-0.99985457757594,-0.1284032303746354,3.9780012460088656,1.84698271538852,0.7975197882833301,-1.3187442385304728,-1.9978287623285185,1.2865292690448535,-0.45714835378751617,-0.3526892367177443,0.2570210507762587,-0.2648148641429089,0.7176538554248619,3.3642246614689544 +WY,-0.42828271925623884,0.035383501632024306,3.2838979414461766,1.0511106054699346,-0.06867300364088334,-2.0332734516356274,-0.7787493296624265,0.13576731838586042,-0.2929615494869785,1.2431244807501032,-0.07404619742258432,-0.35174442691424135,0.05197127946829738,1.7735244491334168 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/fill_moves.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/fill_moves.csv new file mode 100644 index 0000000000..4dadb5df6d --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/fill_moves.csv @@ -0,0 +1,21 @@ +file,measure,states,largest_move,state,states_past_1e6,states_past_01 +acs_eval,acs_local,51,0.5611560167681446,CA,3,1 +acs_eval,se,51,0.047548709125038835,CA,2,0 +acs_eval,acs_only,51,0.0,AK,0,0 +acs_eval,acs_only_se,51,0.0,AK,0,0 +acs_eval,donor_only,51,0.783475688350407,CA,3,1 +acs_eval,donor_only_se,51,0.06562498752767132,CA,2,0 +acs_eval,delta,51,1.3329395721743396,SD,4,2 +acs_eval,delta_se,51,0.5560461820014959,SD,3,2 +acs_eval,kish_src,51,0.0,AK,0,0 +acs_eval,acs_share,51,0.0,AK,0,0 +acsrent_eval,acs_local,51,0.5611560167681482,CA,3,1 +acsrent_eval,se,51,0.04774982117682014,CA,2,0 +acsrent_eval,acs_only,51,0.0,AK,0,0 +acsrent_eval,acs_only_se,51,0.0,AK,0,0 +acsrent_eval,donor_only,51,0.783475688350407,CA,3,1 +acsrent_eval,donor_only_se,51,0.06563835150644293,CA,2,0 +acsrent_eval,delta,15,0.005872735551321062,DE,2,0 +acsrent_eval,delta_se,15,0.00014821688048405335,DE,1,0 +acsrent_eval,kish_src,51,0.0,AK,0,0 +acsrent_eval,acs_share,51,0.0,AK,0,0 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/initial_fit.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/initial_fit.csv new file mode 100644 index 0000000000..ce04a4ecea --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/initial_fit.csv @@ -0,0 +1,13 @@ +file,weights,rows,natP25,natP24,natE,mean_gap,sd,mad,corr,beyond,med_se,Q,tau +dense,initial,all,13.85927993180634,12.63757118670643,13.026570368816854,-0.001485664421234055,2.401768157800883,1.7773673200189648,0.78249885718214,16,1.065153573230338,94.38816375676222,1.4981896401073471 +dense,initial,asec,16.378098183022704,15.1297363208212,13.026570368816854,2.1977575948480275,2.0552966659760705,2.441136389113498,0.8841869150864864,24,1.3392507601914343,76.18947443874463,1.2795745878346338 +dense,initial,puf,11.34046168058997,10.145406052591662,13.026570368816854,-2.200728923690496,3.290512374078523,2.949396727153323,0.5481156062782906,28,1.1397202030841675,158.46097721004148,2.4293558675328066 +dense,published,all,18.189540502544496,16.62485941023528,16.310518582644047,3.616559810750883,4.024412399687628,4.330334394345995,0.6516849315773395,38,1.858778239894062,147.79926318354475,3.0713486973806456 +dense,published,asec,22.131077488065547,20.518525149122176,18.78417084991661,6.982733594095503,5.453481107828123,7.296849036483564,0.6785997333034373,41,2.615919955892499,191.51013989355582,4.554789907611826 +dense,published,puf,15.161714043136564,13.633806886410387,14.410297979936145,0.9807824083344956,3.998941095462292,3.1574409368028937,0.5173108943077441,29,2.109848481005,118.33166678036947,2.8190251775533812 +default,initial,all,16.69840528239648,15.347836112351281,15.0620764477773,3.2677686242522026,4.012696814911332,4.20659998326037,0.6516693967552849,36,2.2024435353488827,109.4562592585745,2.7380054458133998 +default,initial,asec,20.606498874305604,18.95926523765957,17.142522099845845,6.076979383072434,6.1639343482500895,6.59743081080723,0.6316819431764917,39,3.172961136644513,137.99694307172962,4.541881622967363 +default,initial,puf,13.986721885925148,12.841997353293447,13.618531200126434,1.3102549030607025,3.506021473208886,2.9967115571121656,0.601867374806683,30,2.533607233264508,76.27191009109612,1.972958917287952 +default,published,all,17.16724469444985,15.688595607597467,16.502406199878294,3.2368029908027895,5.110599853784951,4.798497276265718,0.5168815743952837,38,4.0410378809574645,71.54752778678412,2.731850116733383 +default,published,asec,21.676441442126162,19.835090257528233,20.059535128913083,5.503075106578072,8.438904010002904,7.719150151456018,0.5466800598623964,43,6.2935567191859425,142.0134792113985,6.281909049638035 +default,published,puf,13.983209513243018,12.760671726061569,13.990645394592537,1.719295512445197,6.482195630336743,4.79807745444391,0.18433666486976186,31,5.052536014898803,77.62672715775881,3.1591500410110402 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/initial_fit_states.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/initial_fit_states.csv new file mode 100644 index 0000000000..5e5d0adb0a --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/initial_fit_states.csv @@ -0,0 +1,52 @@ +,dense_W0,dense_W0_se,dense_W1,dense_W1_se,default_W0,default_W0_se,default_W1,default_W1_se +AK,-4.048191684830667,0.8970697523813582,0.5197126367177081,2.0902693233049265,-1.6399159020717846,1.9033865987621277,1.1444270301148034,6.332772219323601 +AL,-2.9051191319952174,1.2167865033734007,1.1609608661336779,2.1821275071382527,1.7206064552216418,2.9278200599082784,1.4871562044965856,4.77804546692084 +AR,-0.405416993411583,1.0680665554684374,-0.8462936281565856,1.5095049912955576,-2.7556006956347048,1.8465155065323007,-5.171542318045768,3.501990871084489 +AZ,3.843807491659291,1.4151817786418597,9.387794744163234,2.447357721159525,13.959683102709729,2.912925930057936,3.6511862908178223,4.931830911917693 +CA,2.9225878233527354,0.5906538721222633,6.221290625968074,1.0526517298935083,0.22792380213209285,1.4909092972366156,6.516506507457979,2.653037840146489 +CO,0.8809674492820898,0.98023045849131,8.679684444985867,2.3517278780979,3.264709177117422,1.831766013634992,2.652503583390458,3.820461090793149 +CT,-0.13712000829784188,1.3514663470288042,3.760293015964546,2.437327640174254,5.643354583239329,2.8039197668273697,0.5713072517766609,5.002325263747212 +DC,-4.908187992412584,1.7332714466392853,5.802302910381407,3.371388674899598,7.631329752449545,6.081223223852068,14.065303318527729,10.601939242811651 +DE,5.348836874890656,1.7284089111684748,12.99380057983112,3.1552325459483437,10.388945839939865,3.0999870355420365,13.72918607516834,6.87057378619714 +FL,0.8820795735107438,0.8641410736104425,11.628279400134907,1.664972951960285,9.101868287909866,2.393075976067206,9.756499049952641,3.962926881590984 +GA,0.30313021997410416,1.0105650010031857,8.526865042560066,2.1702861910188473,8.729770779516597,2.541327303203916,3.328986886706188,3.9734530863145108 +HI,-2.1741066636255777,1.189593256244055,-4.235881620864731,1.3243186870946742,-5.617299624868915,1.6074186946745144,-5.980959565723118,2.780586884850471 +IA,-0.1910881107042499,1.0302147409877493,0.4313755210423196,1.5207588606634646,1.2948823830079714,1.8497227263336529,0.6089825973277545,3.639254429438333 +ID,1.3600598093768292,0.7702050770913274,3.89254600543749,1.3907731273949004,2.0700320637250105,1.9272031090630704,0.4578273141402125,2.7396037844431986 +IL,-1.843685938735339,0.9046266224655412,0.3953303006471671,1.452777923618364,0.9699123425469072,1.8050578940927975,2.278691537509486,3.8382020965079566 +IN,-1.7791617280917489,0.9182951944068689,3.7561105974897,2.016853296071454,4.031586068930789,2.2024435353488827,2.1343482935094684,3.915265266967416 +KS,-0.4309381665855412,1.1584834581138819,3.56447521767514,1.812787663620715,2.571589133777758,2.3673194145277043,-0.040137885523622074,4.696231456905677 +KY,-0.6799984024050012,1.3078335639693612,0.3952707821631787,1.9887119385700365,0.010594912451452387,2.3210096570093453,5.237173560636016,6.281260601560729 +LA,-6.953546326214388,0.9426938569090801,-6.980011695589244,1.7098316395891382,-2.2924161614317775,2.585914784846116,-8.612573223242395,3.5367442210669764 +MA,0.5168209664075327,0.9707370775457278,7.85448570948504,1.9391771916242613,6.67719918156839,2.0678971210045476,7.402673733449152,5.082037498794953 +MD,2.7331982207459458,1.52483546515642,8.532590168012678,2.8070523469419375,10.383811979602118,2.9379175682226477,12.465434057221028,6.042028256286184 +ME,1.8938908269031831,1.5624716696092156,4.132771843758372,2.2315467430125446,3.4200411913888757,2.453551780510519,5.949100804293858,6.134862777390149 +MI,-0.5356881311881168,0.8929469923563752,-0.40401819793437,1.4150770820670229,3.281161796624211,1.9882750914258642,4.218361806845275,4.000674369632836 +MN,0.3383243889675063,1.1314076107969406,0.039264162864531826,1.3424798444336863,1.769077864312635,1.625655933411751,1.5314283494516392,3.7306098701724806 +MO,1.176259191428846,1.2562727455111249,4.388579727210308,2.6161484306629017,6.125623616296487,2.5710722114306432,8.779794346249819,5.195454214849073 +MS,-5.187023305908539,1.0710544124515464,-3.973436107339241,1.7165166836169314,-6.866533651804,2.2385013941964598,-6.157789016123633,3.985885849068236 +MT,-1.0769657021501455,0.9179118368740706,0.9578271482975573,1.507455171886924,-0.2507447465739556,2.520733230724989,-6.769056429355793,1.586124461747979 +NC,0.8027108858098835,1.0363589519098417,3.147975157970359,1.7783903123627331,2.991987592995981,2.1851834759539575,3.7009746067036335,4.667944264996081 +ND,-1.3217134847564989,1.065153573230338,-0.3396570138841888,1.6093527149199909,0.3096638536493259,2.1894415961211107,0.8304753740104971,4.0410378809574645 +NE,0.5040752165037379,1.0813801338253826,0.8803973971522545,1.4228721900641035,5.354216044511643,2.481869686188575,3.6118717392737647,4.344057457416736 +NH,1.319164712169039,1.1636661380842388,3.2151368558852944,2.175994911449899,4.175384914386667,2.1958907900885714,3.016178236344569,4.614807837439195 +NJ,2.484714563234924,1.1785255823433625,7.064304682195129,2.13978591248263,3.0153279954259204,1.8411052832740458,-2.375035786085032,3.6050731998973897 +NM,-2.1588910024270103,0.8404096281278046,-1.3979927297795456,1.5282509723766522,-1.9878012803718672,1.8487090582631711,-0.7486634305864808,3.9062252843191323 +NV,2.186974911831971,1.4152803262295193,5.266396327611087,2.451905215723719,5.870136343388637,2.8195467394663827,4.070065382005382,5.805513594867899 +NY,0.16519433294321217,0.8557782267478902,5.5761067979677,1.7056988460768048,6.951955818525519,1.8572869794307476,1.527117069525012,3.5698850096921197 +OH,-4.414638037113752,0.9017002738500705,-0.023960888127444235,1.905393480013562,-0.8315314899397936,1.8979901253482585,-2.486718988301323,2.9093924632473964 +OK,0.9786331524418372,1.0789085656476076,3.920143751855637,1.858778239894062,2.909093672764703,2.234603280806525,7.3143973770767925,4.784835016565054 +OR,1.8222706670173245,1.187209714047027,10.52739541725039,2.3738615646672985,5.435697936341825,2.368042960664089,5.287025373398983,5.206864576296931 +PA,-1.3986727320868546,0.7842558907975117,2.3756008082355944,1.4735686584020704,2.1677691116158275,1.626584103963343,3.0353151760054526,3.248356681256722 +RI,1.7450337389071908,1.3492141439481007,3.353905508598592,2.414949971177963,1.1179113038231279,2.309970029742756,9.474883410231838,7.039949763613315 +SC,1.2193141213236807,0.9678664500462015,4.252154421943537,1.8482040752589861,1.5502815668494954,1.825524399952079,-1.2153622908310275,3.5625308459596647 +SD,0.590922603699604,1.107164333996254,3.3008290562652833,2.4053917891002627,2.7755638608627224,2.1978448470296574,3.538984093590906,4.7545850659567925 +TN,-0.090195062325229,0.8943761694642755,5.271551020582677,1.840774666594892,4.905268708031125,2.025152082956196,13.237083981929004,5.143819316231732 +TX,1.7761378050437813,0.7023965138228362,4.655823740113224,1.2680807014118707,6.428526544978087,1.9896652214788721,3.1443708816123674,2.651235362434403 +UT,1.324245539246065,0.8895961091223195,3.846386609823816,1.5931046031919944,4.059435855706863,2.171159354380407,5.91129757366149,3.6996600431023254 +VA,1.4623248641093678,1.0806928115922467,7.7484665498358165,2.2955027674320765,7.06930222894694,2.3301807065346294,6.028343100478422,4.435237116964008 +VT,-0.16659645768994125,1.1869199980582361,2.7192893551012567,2.0472828246898356,4.943828175327971,3.4387682705270364,9.37870021257423,7.094454518557269 +WA,4.703302266961051,1.1008135417936376,9.08938468875666,1.9206426301159434,5.783621241089129,2.1113163234656183,4.906930055854657,4.267283147442617 +WI,-0.37300815558169464,0.8832832840706177,4.275193521299605,2.09560363367793,5.431151623336478,2.2485698421198803,-0.2653653454864866,3.0829496096359805 +WV,-1.2377078313141308,1.01660909678896,3.3642246614689544,1.8526319418737804,-1.6983561020114752,2.280308781949286,6.631705415500541,5.962326417829841 +WY,-0.9430900533734183,0.703878331506253,1.7735244491334168,1.5373550511058878,4.076570784543879,2.3452024842416366,2.2875591514264713,3.4164154357648435 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/kish.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/kish.csv new file mode 100644 index 0000000000..1725cda4c2 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/kish.csv @@ -0,0 +1,52 @@ +,default,default_initial,dense,dense_initial,acs_local +AK,37.98471782713533,166.14594185539693,270.77150015627655,475.6220724531401,81.68256219816811 +AL,68.58779990580473,211.2123289483386,302.1225190773023,748.8143914471011,114.89369341824126 +AR,62.105094021855884,214.59223519983098,340.8662484933955,765.0739914486616,115.11649934358303 +AZ,45.3284963055765,240.80580307252134,296.27404735040426,634.7146886043861,74.97248693960735 +CA,277.08738654108777,644.8786520816968,1571.984374501322,3686.5194215678803,385.6580886961881 +CO,38.510189710362155,234.07741830561395,239.16896520980544,554.563608329069,65.42288079603081 +CT,49.5349789411142,164.28425682661518,180.5316229527832,424.4117681188062,100.20771420344856 +DC,19.03272731145116,64.94343425663871,151.55028324914818,386.37192679126804,47.067422820631876 +DE,37.12606982158454,191.46324642735715,199.45531593242546,415.9101156106166,50.95816913382481 +FL,119.93288241090772,317.70816716931716,680.5172484470773,1714.1258715228414,135.20425539702788 +GA,71.2010943685851,246.76439841462997,336.5775462207633,941.401960854563,121.17506625331394 +HI,58.51650866276973,191.96226381537295,315.04884644114907,581.1566922546888,118.52750117470644 +IA,41.81425292673476,207.0943151812749,248.87914343785573,538.1655405654224,74.5874438402306 +ID,54.59837354512303,203.33075253101458,412.7402722405761,809.68310682561,88.40879016819349 +IL,77.31565547770447,348.70157158934563,488.02407228200747,1066.6990189268608,93.91544229009794 +IN,54.856248082255256,254.11785696434617,328.39335261640383,738.2267635841208,120.14005678566079 +KS,50.07299188694024,155.93353793475464,238.16662445033077,495.9277469401204,87.66666433303108 +KY,39.4390871820677,174.46922012314803,242.94924785422788,450.5086876214915,79.96088420874483 +LA,74.8147207314998,189.92376175516853,357.42522918734693,890.3520152931574,125.90331436963336 +MA,63.90054606623205,334.93492974504403,432.2779144396734,952.8033345678602,102.5908356155141 +MD,38.20362601166963,192.35345415106138,197.83070984087192,477.331482557027,61.88106431360571 +ME,24.34994377274881,124.8140358968435,137.77424978153465,254.5079857298355,38.50834478575946 +MI,57.63202405362826,286.34053970688535,370.6413999162929,875.1719776731239,91.52893167205437 +MN,34.41797497157772,246.17109896764666,271.54651648227104,551.5372134683682,52.54399261696906 +MO,37.47299325842981,178.89455903907768,286.3754657950601,627.2616049265259,64.86277090035392 +MS,65.1592648114706,209.87185825579326,299.10670521027674,667.7990534911511,120.09612336052896 +MT,36.240991831947994,130.68950816427807,307.79544519159174,653.1095082250326,51.16610302382995 +NC,64.29252344351819,273.9435153642994,390.4904245076151,986.6197905206062,123.95133566758639 +ND,34.81082873025876,131.86946154324792,301.4267517946344,608.5975166682833,67.67907793489668 +NE,45.72247722942102,215.15354165447738,281.3067879221785,531.7865679026369,79.73182955023789 +NH,40.26227980094306,158.70868209591387,229.25765799638356,429.1660651283738,73.11100560293525 +NJ,61.915033896035,327.78340841991627,380.83081418269023,808.8938731515342,117.661096080773 +NM,50.83647659675805,198.88403822932614,329.9824113304191,571.4700035112004,90.34932912736528 +NV,44.3078778768284,200.47422793354863,263.85137487538793,564.1089914036241,85.62569767303911 +NY,110.80839106635864,381.4856793735303,525.8436288368683,1400.8605962159324,174.20366464173924 +OH,70.15899268859908,296.5631194314528,409.7973160507123,883.6344401027508,136.868774475337 +OK,51.04119939077659,203.43343124030378,305.0616233774748,634.2257064911608,72.68188683082842 +OR,42.58183012576952,234.3713649534103,255.10068940140434,634.1210607048457,80.00122144021869 +PA,80.33797119132167,388.7959935889939,484.9549020616078,1044.8266315591243,152.97423864359848 +RI,32.44104383646585,134.33730651640442,165.17111040093312,311.1806331615715,47.716257082316176 +SC,57.759130789909484,218.695414690068,312.52952107298916,776.96954775944,115.26644659001987 +SD,46.28145794319663,158.6158938017547,214.6810302293172,457.3520797631112,55.2407957270471 +TN,63.24513212545799,226.64601446599923,327.37855426628516,732.4640216039771,89.2695834668554 +TX,191.9565111320922,458.56900343433455,1101.5878734075197,2721.2221531012638,294.32648200901883 +UT,67.83407114015975,239.03266467701738,363.0981758388387,828.9660424611058,88.5556251779635 +VA,73.11447903359787,287.92441321794865,333.23855259844123,797.2230352218327,135.12178712944925 +VT,36.56208754920278,78.97003189127406,295.25429070942306,497.7407067268541,68.58960036751176 +WA,63.10633166802377,251.24795027071212,413.42315881804,767.4375170666112,104.56017409766304 +WI,42.755161250901196,237.06947592229523,242.72152410910903,589.464452636833,76.2063037717102 +WV,47.62918753183299,182.16196683436914,339.02582501747304,779.3940615403816,78.48511051927737 +WY,50.57422117899524,110.19064345564267,239.50162862168793,564.6479630863131,75.3355320006355 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/ablate_noise.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/ablate_noise.txt new file mode 100644 index 0000000000..12b3c052c0 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/ablate_noise.txt @@ -0,0 +1,20 @@ + kish med_se mean_gap sd_gap mad corr tau Q +run +initial 42354.90 2.20 3.27 4.01 4.21 0.65 2.74 109.46 +published 9174.43 4.04 3.24 5.11 4.80 0.52 2.73 71.55 +R0_full 9275.03 4.27 2.93 5.40 4.75 0.42 2.70 71.31 +keep_pep 34010.38 2.01 2.43 4.11 3.85 0.60 3.02 130.75 +keep_pep_ctc_only 33612.97 1.58 -0.82 3.34 2.60 0.65 2.16 106.45 +keep_pep_ctc_actc_count 30330.79 1.81 0.31 3.45 2.59 0.68 2.04 93.38 +keep_pep_all_soi 11820.60 3.34 0.71 4.54 3.16 0.53 2.14 69.98 +keep_pep_snap_ssi_aca 29749.40 2.75 6.85 5.46 7.20 0.64 3.56 121.34 +keep_pep_medicaid 32448.04 2.53 5.95 5.92 6.82 0.52 4.76 198.19 +drop_snap 9277.93 3.99 1.51 5.52 4.28 0.43 3.45 89.44 +drop_medicaid_chip 9459.53 3.89 1.72 5.35 4.26 0.48 2.79 75.78 +drop_soi_return_count 9394.55 3.92 1.30 5.25 4.10 0.46 2.44 70.57 +drop_ctc_actc 9285.72 4.39 3.99 5.42 5.43 0.46 2.79 70.47 +drop_soi_other 18614.97 3.13 2.78 3.92 3.96 0.59 1.74 65.98 + n agg_ri agg_rf med_ri med_rf +fam geo +census_population:population_age state 918 -0.017 -0.0 0.096 -0.0 + national 18 -0.017 -0.0 -0.038 -0.0 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_eval.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_eval.txt new file mode 100644 index 0000000000..54eae90449 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_eval.txt @@ -0,0 +1,71 @@ + census moe acs_local se kish_src acs_share acs_only acs_only_se donor_only donor_only_se delta delta_se stored_2301 gap +state +AK 10.5 2.1 12.28 3.74 81.68 0.42 14.88 3.87 10.41 5.82 -1.71 1.26 12.27 1.78 +AL 15.5 2.4 15.10 3.71 114.89 0.31 15.01 1.32 15.13 5.34 -3.71 1.82 14.11 -0.40 +AR 13.3 2.7 6.87 1.51 115.12 0.34 10.61 1.41 4.89 2.11 -1.97 0.85 6.77 -6.43 +AZ 13.3 2.3 17.23 4.04 74.97 0.33 15.42 1.14 18.11 5.96 -6.41 3.17 17.13 3.93 +CA 17.9 1.0 20.37 2.01 385.66 0.28 17.18 0.45 21.64 2.80 -4.89 1.14 20.38 2.47 +CO 7.7 1.8 9.44 2.79 65.42 0.32 8.13 0.71 10.06 4.09 -0.74 0.24 9.37 1.74 +CT 12.8 3.2 12.64 2.98 100.21 0.35 15.00 1.63 11.36 4.50 -2.09 0.64 12.43 -0.16 +DC 20.3 3.7 21.18 5.26 47.07 0.40 22.10 5.49 20.56 7.99 -8.65 4.34 20.46 0.88 +DE 8.7 2.6 22.22 6.90 50.96 0.31 14.96 2.87 25.45 9.75 -2.98 1.68 22.21 13.52 +FL 18.4 1.8 22.72 3.45 135.20 0.32 13.31 0.58 27.09 5.11 -3.53 1.11 22.61 4.32 +GA 15.1 2.2 17.43 2.96 121.18 0.31 12.37 0.79 19.76 4.32 -3.46 1.31 17.40 2.33 +HI 13.0 2.6 5.86 1.99 118.53 0.38 5.07 0.84 6.33 3.16 -1.60 0.70 5.17 -7.14 +IA 8.2 1.9 5.39 1.77 74.59 0.35 5.44 0.84 5.37 2.67 -0.75 0.21 5.39 -2.81 +ID 6.5 1.3 6.88 1.65 88.41 0.33 9.52 1.54 5.57 2.31 -1.79 0.98 6.95 0.38 +IL 12.4 1.6 13.73 3.35 93.92 0.30 9.11 0.70 15.68 4.78 -4.43 2.02 18.09 1.33 +IN 10.6 2.2 9.22 2.15 120.14 0.35 9.88 0.81 8.86 3.31 -2.17 1.20 9.13 -1.38 +KS 9.7 2.5 11.59 4.70 87.67 0.33 8.62 1.16 13.07 6.97 -5.55 4.51 10.45 1.89 +KY 13.3 2.9 9.69 2.95 79.96 0.40 7.45 0.68 11.15 4.90 -2.52 1.20 9.64 -3.61 +LA 20.7 3.0 11.73 2.29 125.90 0.31 14.30 1.38 10.57 3.25 -1.62 0.35 11.57 -8.97 +MA 12.8 2.0 21.45 4.58 102.59 0.33 15.29 1.19 24.47 6.71 -3.44 1.67 20.93 8.65 +MD 10.7 2.5 17.59 4.22 61.88 0.32 11.38 1.18 20.55 6.25 -3.41 2.11 17.48 6.89 +ME 6.5 2.3 7.34 3.02 38.51 0.33 4.66 1.04 8.68 4.59 -2.63 1.57 7.27 0.84 +MI 10.3 1.9 9.52 2.72 91.53 0.32 6.85 0.57 10.78 4.01 -3.51 1.65 9.48 -0.78 +MN 6.9 1.9 5.15 1.66 52.54 0.34 5.55 0.72 4.94 2.48 -0.95 0.54 5.15 -1.75 +MO 9.7 2.3 16.71 3.97 64.86 0.33 10.97 1.00 19.57 5.87 -8.96 3.70 16.68 7.01 +MS 19.1 2.6 13.83 2.91 120.10 0.35 15.92 1.68 12.71 4.37 -3.39 1.56 12.93 -5.27 +MT 9.3 2.3 4.76 1.34 51.17 0.33 10.54 2.75 1.92 1.16 -0.67 0.24 4.75 -4.54 +NC 14.4 2.2 12.00 2.53 123.95 0.31 10.36 0.74 12.74 3.68 -5.35 1.88 11.70 -2.40 +ND 10.3 2.1 10.77 3.45 67.68 0.33 5.08 1.46 13.60 5.15 -1.23 0.56 10.77 0.47 +NE 7.1 1.9 9.45 4.22 79.73 0.31 6.62 1.43 10.70 6.02 -2.77 2.05 9.42 2.35 +NH 7.5 2.4 7.34 3.03 73.11 0.35 5.43 1.04 8.38 4.66 -1.74 1.15 7.56 -0.16 +NJ 13.3 1.9 9.56 1.92 117.66 0.34 11.96 0.77 8.34 2.82 -1.83 0.52 9.37 -3.74 +NM 10.9 2.1 14.01 3.80 90.35 0.37 14.85 2.57 13.52 5.86 -3.66 1.13 14.01 3.11 +NV 15.0 2.5 13.47 3.08 85.63 0.34 15.56 1.47 12.38 4.58 -1.74 0.63 13.60 -1.53 +NY 16.2 1.9 16.44 2.68 174.20 0.33 14.64 0.81 17.32 3.97 -3.17 0.83 16.43 0.24 +OH 12.3 2.1 9.09 1.85 136.87 0.36 10.26 0.71 8.43 2.85 -3.86 1.45 9.08 -3.21 +OK 9.9 2.0 13.83 4.17 72.68 0.30 7.47 0.69 16.57 5.96 -2.90 1.29 13.37 3.93 +OR 11.0 2.4 14.96 3.59 80.00 0.39 9.96 0.94 18.11 5.78 -2.10 1.41 14.90 3.96 +PA 11.1 2.0 13.90 2.88 152.97 0.35 11.13 0.96 15.38 4.37 -2.17 0.88 13.81 2.80 +RI 8.4 2.3 13.60 4.01 47.72 0.26 12.63 2.19 13.95 5.41 -7.08 3.27 10.11 5.20 +SC 11.1 2.1 10.81 2.46 115.27 0.37 12.13 1.22 10.02 3.85 -4.38 1.85 9.71 -0.29 +SD 7.8 2.2 6.73 2.33 55.24 0.27 6.71 1.52 6.74 3.14 -2.54 1.30 6.72 -1.07 +TN 10.0 1.7 16.56 3.08 89.27 0.33 18.32 1.36 15.70 4.50 -5.47 2.10 15.60 6.56 +TX 16.1 1.3 14.56 1.71 294.33 0.31 15.45 0.51 14.17 2.46 -3.24 0.93 14.51 -1.54 +UT 7.3 1.6 8.40 2.10 88.56 0.29 5.35 0.72 9.66 3.00 -0.92 0.40 8.39 1.10 +VA 12.1 2.4 15.48 3.64 135.12 0.31 10.44 0.74 17.77 5.24 -4.14 2.46 15.40 3.38 +VT 8.3 2.5 10.31 4.10 68.59 0.38 5.47 1.75 13.29 6.52 -0.17 0.08 10.24 2.01 +WA 9.3 1.9 14.19 3.43 104.56 0.34 11.36 1.06 15.66 5.17 -2.89 1.41 14.17 4.89 +WI 7.3 1.7 5.89 1.67 76.21 0.33 7.59 0.98 5.04 2.42 -3.24 1.33 5.81 -1.41 +WV 11.3 2.4 16.41 4.67 78.49 0.37 11.23 2.00 19.38 7.23 -11.85 4.61 16.38 5.11 +WY 6.5 1.4 7.40 2.50 75.34 0.33 5.34 1.47 8.43 3.69 -1.62 0.99 7.41 0.90 +median se 2.98 median delta se 1.29 current vs stored 2.30.1 mean abs 0.35 +all rows states 51 mean gap 0.89 sd 4.12 MAD 3.19 corr 0.543 beyond 29 median se 2.98 +ACS rows states 51 mean gap -0.64 sd 3.11 MAD 2.46 corr 0.686 beyond 22 median se 1.06 +donor rows states 51 mean gap 1.61 sd 5.33 MAD 4.35 corr 0.424 beyond 37 median se 4.5 +reform delta median -2.9 min -11.85 max -0.17 median se 1.29 + mean_gap mad beyond corr med_se med_delta med_delta_se acs_share DE DC TN MD LA MT HI MA +run +dup_release_repro 0.55 2.79 27 0.56 2.82 -2.78 1.30 0.35 19.73 19.40 16.04 17.18 12.03 4.53 5.72 19.18 +proj_chi_s050_0.03 0.28 2.74 21 0.57 2.61 -2.74 1.19 0.35 19.26 20.28 15.51 17.30 12.01 4.85 5.84 19.49 +soft_chi_s050_0.1 0.04 2.59 21 0.59 2.47 -2.86 1.16 0.37 18.95 20.18 15.61 16.93 11.96 4.26 5.93 19.48 +soft_chi_s700_0 0.27 2.53 24 0.63 2.09 -2.78 0.97 0.53 19.89 21.66 15.71 17.01 12.66 5.42 5.83 19.40 +soft_chi_s700_0.03 -0.02 2.40 23 0.64 1.86 -2.80 0.88 0.54 19.39 21.35 14.86 16.39 12.68 5.26 6.08 18.77 +soft_chi_s700_0.1 -0.22 2.33 20 0.66 1.87 -2.77 0.83 0.56 18.38 21.48 14.78 15.96 12.53 5.13 6.23 18.14 +soft_chi_s900_0 -0.15 2.27 24 0.72 1.18 -3.12 0.59 0.79 16.55 25.25 14.98 14.79 12.89 6.66 6.23 17.72 +soft_chi_s900_0.03 -0.45 2.16 22 0.75 1.09 -2.98 0.56 0.80 16.21 24.47 14.35 14.63 13.47 6.43 6.44 16.64 +soft_chi_s900_0.1 -0.70 2.13 21 0.75 1.01 -2.89 0.54 0.82 15.80 23.78 14.46 14.22 12.97 6.24 6.40 15.50 +soft_chi_s964_0 -0.42 2.23 23 0.75 0.92 -3.04 0.52 0.91 14.94 26.64 14.50 13.40 12.92 7.21 6.27 16.41 +soft_chi_s964_0.03 -0.64 2.14 22 0.77 0.87 -3.11 0.47 0.92 15.02 25.73 14.18 13.65 13.63 7.07 6.50 15.59 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_hh_split.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_hh_split.txt new file mode 100644 index 0000000000..00398388af --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_hh_split.txt @@ -0,0 +1,3 @@ +households (1586908, 6) unit keys (1589568, 2) people 3587263 person columns 339 +rent was 6.87 now 6.07 +weight total 122537092 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_reform_cmp.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_reform_cmp.txt new file mode 100644 index 0000000000..dbc271b89d --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_reform_cmp.txt @@ -0,0 +1,57 @@ +['state', 'census', 'moe', 'acs_local', 'se', 'kish_src', 'acs_share', 'acs_only', 'acs_only_se', 'donor_only', 'donor_only_se', 'delta', 'delta_se', 'stored_2301', 'gap'] +state delta_pub delta_se_pub delta_rent delta_se_rent diff + AK -1.71 1.26 -1.63 1.25 0.08 + AL -3.71 1.82 -3.85 1.83 -0.14 + AR -1.97 0.85 -2.14 0.85 -0.17 + AZ -6.41 3.17 -7.52 3.27 -1.11 + CA -4.89 1.14 -4.68 1.11 0.22 + CO -0.74 0.24 -0.72 0.24 0.02 + CT -2.09 0.64 -1.64 0.52 0.45 + DC -8.65 4.34 -7.87 4.30 0.78 + DE -2.98 1.68 -1.77 1.05 1.21 + FL -3.53 1.11 -6.27 1.74 -2.74 + GA -3.46 1.31 -2.35 0.87 1.11 + HI -1.60 0.70 -1.39 0.69 0.21 + IA -0.75 0.21 -0.80 0.25 -0.05 + ID -1.79 0.98 -0.99 0.50 0.80 + IL -4.43 2.02 -3.44 1.54 0.99 + IN -2.17 1.20 -2.19 1.20 -0.01 + KS -5.55 4.51 -5.44 4.52 0.11 + KY -2.52 1.20 -1.57 0.70 0.95 + LA -1.62 0.35 -2.07 0.61 -0.45 + MA -3.44 1.67 -2.59 1.46 0.85 + MD -3.41 2.11 -3.67 2.14 -0.25 + ME -2.63 1.57 -2.57 1.57 0.06 + MI -3.51 1.65 -3.34 1.66 0.17 + MN -0.95 0.54 -0.98 0.54 -0.03 + MO -8.96 3.70 -8.25 3.60 0.71 + MS -3.39 1.56 -3.57 1.57 -0.18 + MT -0.67 0.24 -0.66 0.22 0.01 + NC -5.35 1.88 -4.36 1.75 0.99 + ND -1.23 0.56 -1.12 0.55 0.11 + NE -2.77 2.05 -2.95 2.05 -0.17 + NH -1.74 1.15 -3.35 1.98 -1.61 + NJ -1.83 0.52 -2.86 1.19 -1.03 + NM -3.66 1.13 -4.16 1.27 -0.50 + NV -1.74 0.63 -3.02 1.42 -1.28 + NY -3.17 0.83 -3.49 1.05 -0.31 + OH -3.86 1.45 -2.93 1.02 0.93 + OK -2.90 1.29 -2.84 1.29 0.06 + OR -2.10 1.41 -2.73 1.52 -0.62 + PA -2.17 0.88 -2.99 1.29 -0.83 + RI -7.08 3.27 -6.85 3.27 0.24 + SC -4.38 1.85 -4.22 1.84 0.16 + SD -2.54 1.30 -2.83 1.33 -0.28 + TN -5.47 2.10 -5.77 2.17 -0.29 + TX -3.24 0.93 -3.22 0.91 0.02 + UT -0.92 0.40 -0.91 0.40 0.01 + VA -4.14 2.46 -5.55 2.69 -1.41 + VT -0.17 0.08 -0.82 0.56 -0.65 + WA -2.89 1.41 -2.99 1.44 -0.10 + WI -3.24 1.33 -1.77 0.66 1.47 + WV -11.85 4.61 -11.02 4.53 0.83 + WY -1.62 0.99 -1.74 1.00 -0.12 +n 51 median pub -2.9 median rent -2.93 mean abs diff 0.55 max 2.74 mean diff -0.02 +median se pub 1.29 rent 1.29 +baseline move, the 51 states with reform runs: mean 0.499 median 0.264 | all 51: mean 0.499 median 0.264 +reform move, 51 states: mean 0.547 median 0.294 | without FL: mean 0.503 | above 1 point ['AZ', 'DE', 'FL', 'GA', 'NH', 'NJ', 'NV', 'VA', 'WI'] diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_rerun_check.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_rerun_check.txt new file mode 100644 index 0000000000..c764f37564 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_rerun_check.txt @@ -0,0 +1,4 @@ +rates against the deck's fill-0 run: states 51 largest difference 3.3464489135326403e-07 +the split under -1 against the earlier -1 runs: {'CA': (np.float64(19.812992), np.float64(19.812992)), 'DE': (np.float64(22.214556), np.float64(22.214556))} +CA units that change 1 by channel {'asec': 1} source households 1 rate move 0.5612 largest source household's share of the state's child weight, percent 0.561 +DE units that change 1 by channel {'asec': 1} source households 1 rate move 0.0059 largest source household's share of the state's child weight, percent 0.006 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_split.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_split.txt new file mode 100644 index 0000000000..9a760ba281 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acs_split.txt @@ -0,0 +1,60 @@ +source RemoteStore people 3587263 chunk 200000 +read retry at 8752624272 after 1s: TimeoutError('The read operation timed out') +read retry at 8752624272 after 2s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8752624272 after 4s: ConnectionResetError(54, 'Connection reset by peer') +read retry at 8766345406 after 1s: ConnectionError('response ended early at byte 8766345406') +read retry at 8766737174 after 1s: ConnectionError('response ended early at byte 8766737174') +read retry at 8843348758 after 1s: TimeoutError('The read operation timed out') +households (1586908, 38) peak GiB 1.07 +chunk 0 seconds 3196 peak GiB 3.02 +chunk 1 seconds 3351 peak GiB 3.48 +chunk 2 seconds 3507 peak GiB 3.56 +chunk 3 seconds 3664 peak GiB 3.61 +chunk 4 seconds 3820 peak GiB 3.62 +read retry at 8059826200 after 1s: TimeoutError('The read operation timed out') +read retry at 8059826200 after 2s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 4s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 8s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 16s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 32s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 64s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 128s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 256s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 300s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 300s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8059826200 after 300s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8077914136 after 1s: ConnectionResetError(54, 'Connection reset by peer') +read retry at 8078241816 after 1s: TimeoutError('The read operation timed out') +read retry at 8078241816 after 2s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 4s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 8s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 16s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 32s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 64s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 128s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 256s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 300s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +read retry at 8078241816 after 300s: URLError(gaierror(8, 'nodename nor servname provided, or not known')) +chunk 5 seconds 10049 peak GiB 3.62 +chunk 6 seconds 10208 peak GiB 3.62 +chunk 7 seconds 10369 peak GiB 3.62 +chunk 8 seconds 10526 peak GiB 3.62 +chunk 9 seconds 10682 peak GiB 3.62 +chunk 10 seconds 10839 peak GiB 3.62 +chunk 11 seconds 10996 peak GiB 3.62 +chunk 12 seconds 11156 peak GiB 3.62 +chunk 13 seconds 11380 peak GiB 3.62 +chunk 14 seconds 11541 peak GiB 3.62 +chunk 15 seconds 11700 peak GiB 3.62 +chunk 16 seconds 11919 peak GiB 3.62 +chunk 17 seconds 12066 peak GiB 3.62 +people 3587263 person columns 339 +tax_unit groups 2175528 spanning states 0 +tax_unit peak GiB 3.62 +spm_unit groups 1589568 spanning states 0 +spm_unit peak GiB 3.62 +family groups 1594874 spanning states 0 +family peak GiB 3.62 +marital_unit groups 2867105 spanning states 0 +marital_unit peak GiB 3.62 +done files 306 seconds 12683 peak GiB 3.62 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acsrent_eval.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acsrent_eval.txt new file mode 100644 index 0000000000..679bc229ee --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/acsrent_eval.txt @@ -0,0 +1,71 @@ + census moe acs_local se kish_src acs_share acs_only acs_only_se donor_only donor_only_se delta delta_se stored_2301 gap +state +AK 10.5 2.1 12.32 3.74 81.68 0.42 14.98 3.87 10.41 5.82 -1.63 1.25 12.27 1.82 +AL 15.5 2.4 15.06 3.72 114.89 0.31 14.89 1.32 15.13 5.34 -3.85 1.83 14.11 -0.44 +AR 13.3 2.7 6.69 1.41 115.12 0.34 11.04 1.43 4.39 1.94 -2.14 0.85 6.77 -6.61 +AZ 13.3 2.3 16.39 4.01 74.97 0.33 15.02 1.13 17.06 5.93 -7.52 3.27 17.13 3.09 +CA 17.9 1.0 20.06 2.01 385.66 0.28 16.42 0.44 21.50 2.80 -4.68 1.11 20.38 2.16 +CO 7.7 1.8 9.11 2.69 65.42 0.32 7.99 0.71 9.63 3.94 -0.72 0.24 9.37 1.41 +CT 12.8 3.2 12.14 2.97 100.21 0.35 14.01 1.61 11.13 4.49 -1.64 0.52 12.43 -0.66 +DC 20.3 3.7 20.06 5.20 47.07 0.40 19.34 5.36 20.56 7.99 -7.87 4.30 20.46 -0.24 +DE 8.7 2.6 21.37 6.90 50.96 0.31 14.96 2.87 24.22 9.76 -1.77 1.05 22.21 12.67 +FL 18.4 1.8 21.68 3.38 135.20 0.32 12.77 0.57 25.83 4.99 -6.27 1.74 22.61 3.28 +GA 15.1 2.2 17.24 2.96 121.18 0.31 11.75 0.77 19.76 4.32 -2.35 0.87 17.40 2.14 +HI 13.0 2.6 5.58 1.99 118.53 0.38 4.35 0.77 6.33 3.16 -1.39 0.69 5.17 -7.42 +IA 8.2 1.9 5.33 1.77 74.59 0.35 5.26 0.83 5.37 2.67 -0.80 0.25 5.39 -2.87 +ID 6.5 1.3 6.01 1.43 88.41 0.33 9.44 1.54 4.31 1.93 -0.99 0.50 6.95 -0.49 +IL 12.4 1.6 12.71 3.13 93.92 0.30 8.57 0.69 14.46 4.47 -3.44 1.54 18.09 0.31 +IN 10.6 2.2 9.21 2.15 120.14 0.35 9.85 0.81 8.86 3.31 -2.19 1.20 9.13 -1.39 +KS 9.7 2.5 10.90 4.68 87.67 0.33 8.44 1.13 12.14 6.96 -5.44 4.52 10.45 1.20 +KY 13.3 2.9 9.65 2.95 79.96 0.40 7.37 0.68 11.15 4.90 -1.57 0.70 9.64 -3.65 +LA 20.7 3.0 10.58 2.17 125.90 0.31 14.04 1.38 9.02 3.06 -2.07 0.61 11.57 -10.12 +MA 12.8 2.0 20.79 4.59 102.59 0.33 14.58 1.18 23.85 6.72 -2.59 1.46 20.93 7.99 +MD 10.7 2.5 17.43 4.22 61.88 0.32 10.88 1.17 20.55 6.25 -3.67 2.14 17.48 6.73 +ME 6.5 2.3 7.23 3.02 38.51 0.33 4.34 0.99 8.68 4.59 -2.57 1.57 7.27 0.73 +MI 10.3 1.9 8.26 2.64 91.53 0.32 6.37 0.53 9.14 3.89 -3.34 1.66 9.48 -2.04 +MN 6.9 1.9 5.10 1.66 52.54 0.34 5.40 0.71 4.94 2.48 -0.98 0.54 5.15 -1.80 +MO 9.7 2.3 16.64 3.97 64.86 0.33 10.74 1.00 19.57 5.87 -8.25 3.60 16.68 6.94 +MS 19.1 2.6 12.99 2.82 120.10 0.35 15.70 1.68 11.53 4.24 -3.57 1.57 12.93 -6.11 +MT 9.3 2.3 4.62 1.33 51.17 0.33 10.14 2.73 1.90 1.15 -0.66 0.22 4.75 -4.68 +NC 14.4 2.2 11.38 2.48 123.95 0.31 10.24 0.74 11.91 3.61 -4.36 1.75 11.70 -3.02 +ND 10.3 2.1 10.67 3.45 67.68 0.33 4.75 1.43 13.60 5.15 -1.12 0.55 10.77 0.37 +NE 7.1 1.9 9.50 4.22 79.73 0.31 6.78 1.44 10.70 6.02 -2.95 2.05 9.42 2.40 +NH 7.5 2.4 7.20 3.03 73.11 0.35 5.03 1.00 8.38 4.66 -3.35 1.98 7.56 -0.30 +NJ 13.3 1.9 10.34 2.16 117.66 0.34 11.52 0.78 9.75 3.22 -2.86 1.19 9.37 -2.96 +NM 10.9 2.1 15.65 3.97 90.35 0.37 16.15 2.74 15.36 6.11 -4.16 1.27 14.01 4.75 +NV 15.0 2.5 13.34 3.07 85.63 0.34 15.19 1.48 12.38 4.58 -3.02 1.42 13.60 -1.66 +NY 16.2 1.9 15.07 2.64 174.20 0.33 13.14 0.69 16.01 3.93 -3.49 1.05 16.43 -1.13 +OH 12.3 2.1 7.43 1.44 136.87 0.36 10.08 0.67 5.95 2.17 -2.93 1.02 9.08 -4.87 +OK 9.9 2.0 13.73 4.17 72.68 0.30 7.14 0.68 16.57 5.96 -2.84 1.29 13.37 3.83 +OR 11.0 2.4 15.22 3.60 80.00 0.39 9.69 0.94 18.72 5.80 -2.73 1.52 14.90 4.22 +PA 11.1 2.0 13.64 2.88 152.97 0.35 10.36 0.91 15.38 4.37 -2.99 1.29 13.81 2.54 +RI 8.4 2.3 13.36 4.00 47.72 0.26 11.71 2.14 13.95 5.41 -6.85 3.27 10.11 4.96 +SC 11.1 2.1 10.59 2.45 115.27 0.37 11.55 1.20 10.02 3.85 -4.22 1.84 9.71 -0.51 +SD 7.8 2.2 6.73 2.33 55.24 0.27 6.71 1.52 6.73 3.14 -2.83 1.33 6.72 -1.07 +TN 10.0 1.7 16.42 3.07 89.27 0.33 17.97 1.35 15.67 4.49 -5.77 2.17 15.60 6.42 +TX 16.1 1.3 14.05 1.69 294.33 0.31 15.26 0.51 13.50 2.42 -3.22 0.91 14.51 -2.05 +UT 7.3 1.6 8.36 2.10 88.56 0.29 5.22 0.71 9.66 3.00 -0.91 0.40 8.39 1.06 +VA 12.1 2.4 14.13 3.50 135.12 0.31 10.22 0.74 15.90 5.05 -5.55 2.69 15.40 2.03 +VT 8.3 2.5 10.31 4.10 68.59 0.38 5.47 1.75 13.29 6.52 -0.82 0.56 10.24 2.01 +WA 9.3 1.9 14.14 3.51 104.56 0.34 10.82 1.06 15.86 5.29 -2.99 1.44 14.17 4.84 +WI 7.3 1.7 4.21 1.19 76.21 0.33 7.34 0.98 2.65 1.64 -1.77 0.66 5.81 -3.09 +WV 11.3 2.4 15.27 4.59 78.49 0.37 11.57 2.01 17.40 7.11 -11.02 4.53 16.38 3.97 +WY 6.5 1.4 7.52 2.50 75.34 0.33 5.70 1.50 8.43 3.69 -1.74 1.00 7.41 1.02 +median se 2.97 median delta se 1.29 current vs stored 2.30.1 mean abs 0.63 +all rows states 51 mean gap 0.5 sd 4.19 MAD 3.22 corr 0.515 beyond 29 median se 2.97 +ACS rows states 51 mean gap -0.97 sd 3.16 MAD 2.53 corr 0.658 beyond 24 median se 1.06 +donor rows states 51 mean gap 1.21 sd 5.41 MAD 4.38 corr 0.401 beyond 38 median se 4.49 +reform delta median -2.93 min -11.02 max -0.66 median se 1.29 + mean_gap mad beyond corr med_se med_delta med_delta_se acs_share DE DC TN MD LA MT HI MA +run +dup_release_repro 0.17 2.88 26 0.52 2.81 -2.92 1.28 0.35 19.02 18.26 15.82 17.00 11.03 4.40 5.37 18.39 +proj_chi_s050_0.03 -0.05 2.85 24 0.54 2.62 -2.67 1.16 0.35 18.66 19.22 15.20 17.12 10.98 4.71 5.52 19.05 +soft_chi_s050_0.1 -0.29 2.70 23 0.55 2.49 -2.80 1.13 0.37 18.23 18.87 15.22 16.75 11.04 4.20 5.60 19.09 +soft_chi_s700_0 -0.09 2.56 25 0.59 2.01 -2.82 0.97 0.53 19.37 20.15 15.51 16.75 11.51 5.31 5.30 18.60 +soft_chi_s700_0.03 -0.35 2.46 24 0.62 1.84 -2.82 0.93 0.54 18.87 19.88 14.54 16.13 11.86 5.18 5.57 18.29 +soft_chi_s700_0.1 -0.54 2.42 21 0.63 1.88 -2.79 0.88 0.56 17.84 19.98 14.41 15.70 11.79 5.06 5.74 17.71 +soft_chi_s900_0 -0.49 2.27 22 0.71 1.17 -3.06 0.63 0.79 16.30 23.40 14.62 14.36 12.32 6.60 5.46 17.05 +soft_chi_s900_0.03 -0.78 2.23 23 0.73 1.07 -2.93 0.56 0.80 15.96 22.66 13.98 14.24 13.00 6.36 5.73 16.12 +soft_chi_s900_0.1 -1.02 2.20 25 0.73 0.99 -2.85 0.54 0.82 15.55 21.95 14.06 13.80 12.53 6.17 5.73 14.99 +soft_chi_s964_0 -0.76 2.24 21 0.74 0.92 -3.09 0.53 0.91 14.83 24.64 14.08 12.90 12.56 7.20 5.43 15.79 +soft_chi_s964_0.03 -0.97 2.20 22 0.76 0.86 -2.97 0.48 0.92 14.91 23.75 13.77 13.18 13.31 7.05 5.72 15.07 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/blank_holders.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/blank_holders.txt new file mode 100644 index 0000000000..333b2fa5a8 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/blank_holders.txt @@ -0,0 +1,17 @@ +people 3587263 households 1586908 +blank parent_1 166321 parent_2 166321 both 166321 either 166321 +weighted share of people 0.6989 of children 0.6768 +parent_1 zero 3420942 positive 0 negative 0 + size sum +person_support_channel +acs_2024_1yr 3420942 0 +asec 66001 66001 +puf_tax_detail 100320 100320 +households with a blank 57240 of them all blank 57240 + people blank weighted_share +fips +6 401287.0 7866.0 0.7411 +10 12908.0 3039.0 0.6502 +12 217666.0 4651.0 0.7059 +25 78948.0 4418.0 0.6864 +29 68492.0 2892.0 0.6733 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/ctc_ssn.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/ctc_ssn.txt new file mode 100644 index 0000000000..aaead1ede4 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/ctc_ssn.txt @@ -0,0 +1,7 @@ +['ssn_card_type', 'immigration_status_str'] +{'CITIZEN': 0.9229, 'NONE': 0.0402, 'OTHER_NON_CITIZEN': 0.0252, 'NON_CITIZEN_VALID_EAD': 0.0118} +lost share of child weight 2.48 units 1058 +lost units with no adult holding a valid card, share of lost child weight 0.834 +all child units with no valid-card adult, share of child weight 4.58 +{'asec': 0.377, 'puf_tax_detail': 0.623} +flips into poverty, child weight share 1.58 of which lost CTC 0.11 of which lost and no valid adult 0.09 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/dash_swing.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/dash_swing.txt new file mode 100644 index 0000000000..d86cecfd91 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/dash_swing.txt @@ -0,0 +1,11 @@ +{'p24': 0, 'p25': 0, 'o24': 0, 'o25': 0, 'o25_18252': 0, 'o24_221': 0} 51 +p24 o24 states 51 mean abs swing 1.16 sd 1.84 max 6.85 DC corr 0.668 +p25 o25 states 51 mean abs swing 1.16 sd 1.63 max 5.0 DC corr 0.757 +this run vs stored o25, mean abs 0.666 +implied sd of between-build noise per build 1.15 median delta se 1.29 rms delta se 1.83 +same model 1.825.2, Build P against Build O, 2025: mean abs 0.55 sd 0.83 per build 0.59 max 2.74 FL +same file across 1.825.2 and 2.30.1, 2025: mean abs 1.11 sd 1.72 max 5.56 AZ + p24 p25 o24 o25 o25_18252 o24_221 +AZ -10.28 -9.66 -3.78 -6.37 -11.92 -3.83 +DC -1.33 -2.96 -8.18 -7.95 -2.87 -8.13 +NC -2.92 -2.72 -4.82 -4.40 -3.84 -6.25 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/dmiss.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/dmiss.txt new file mode 100644 index 0000000000..7063faf1eb --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/dmiss.txt @@ -0,0 +1,24 @@ +['household_weight', 'initial_household_weight', 'target_names', 'target_values', 'initial_estimates', 'final_estimates', 'relative_errors', 'registry_version'] +1242 irs_soi.ty2022.historic_table_2.state_eitc.az.... +2941 irs_soi.ty2022.historic_table_2.state_agi.ar.5... +3803 census_pep.v2024.cy2024.state_resident_populat... +1513 irs_soi.ty2022.historic_table_2.state_broad.mn... +3502 irs_soi.ty2022.historic_table_2.state_broad.ms... +1817 irs_soi.ty2022.historic_table_2.state_broad.sd... +745 irs_soi.ty2022.historic_table_2.state_broad.dc... +4520 irs_soi.ty2023.historic_table_2.state_agi.de.1... +5254 irs_soi.ty2022.historic_table_2.state_agi.tx.2... +4934 irs_soi.ty2022.historic_table_2.state_agi.ca.1... +2067 hhs_acf_tanf.fy2024.cash_assistance.oh.basic_a... +1914 irs_soi.ty2024.filing_season_week47.eitc_by_ag... +snap_spend 53 agg init miss -0.378 agg final -0.022 median rel init -0.383 +snap 104 agg init miss -0.378 agg final -0.022 median rel init -0.241 +medicaid 135 agg init miss -0.262 agg final -0.034 median rel init -0.285 +chip 83 agg init miss -0.31 agg final -0.076 median rel init -0.382 +eitc 782 agg init miss -0.508 agg final -0.026 median rel init -0.518 +aca 102 agg init miss -0.439 agg final -0.102 median rel init -0.333 +ctc 104 agg init miss -0.021 agg final -0.077 median rel init -0.022 +wages 108 agg init miss -0.033 agg final -0.03 median rel init -0.002 +agi 262 agg init miss -0.042 agg final 0.002 median rel init 0.002 +income_tax 252 agg init miss -0.093 agg final -0.004 median rel init 0.07 +pop 1102 agg init miss -0.034 agg final -0.03 median rel init -0.009 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_cmp.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_cmp.txt new file mode 100644 index 0000000000..640c1a4787 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_cmp.txt @@ -0,0 +1,51 @@ + file measure states largest_move state states_past_1e6 states_past_01 + acs_eval acs_local 51 0.5612 CA 3 1 + acs_eval se 51 0.0475 CA 2 0 + acs_eval acs_only 51 0.0000 AK 0 0 + acs_eval acs_only_se 51 0.0000 AK 0 0 + acs_eval donor_only 51 0.7835 CA 3 1 + acs_eval donor_only_se 51 0.0656 CA 2 0 + acs_eval delta 51 1.3329 SD 4 2 + acs_eval delta_se 51 0.5560 SD 3 2 + acs_eval kish_src 51 0.0000 AK 0 0 + acs_eval acs_share 51 0.0000 AK 0 0 +acsrent_eval acs_local 51 0.5612 CA 3 1 +acsrent_eval se 51 0.0477 CA 2 0 +acsrent_eval acs_only 51 0.0000 AK 0 0 +acsrent_eval acs_only_se 51 0.0000 AK 0 0 +acsrent_eval donor_only 51 0.7835 CA 3 1 +acsrent_eval donor_only_se 51 0.0656 CA 2 0 +acsrent_eval delta 15 0.0059 DE 2 0 +acsrent_eval delta_se 15 0.0001 DE 1 0 +acsrent_eval kish_src 51 0.0000 AK 0 0 +acsrent_eval acs_share 51 0.0000 AK 0 0 +acs_solves + fill_minus1 fill_0 + mean_gap mad beyond mean_gap mad beyond +run +dup_release_repro 0.54 2.79 27 0.55 2.79 27 +proj_chi_s050_0.03 0.28 2.73 21 0.28 2.74 21 +soft_chi_s050_0.1 0.04 2.59 20 0.04 2.59 21 +soft_chi_s700_0 0.27 2.52 24 0.27 2.53 24 +soft_chi_s700_0.03 -0.03 2.40 23 -0.02 2.40 23 +soft_chi_s700_0.1 -0.23 2.33 20 -0.22 2.33 20 +soft_chi_s900_0 -0.15 2.27 24 -0.15 2.27 24 +soft_chi_s900_0.03 -0.45 2.16 22 -0.45 2.16 22 +soft_chi_s900_0.1 -0.70 2.13 21 -0.70 2.13 21 +soft_chi_s964_0 -0.42 2.23 23 -0.42 2.23 23 +soft_chi_s964_0.03 -0.65 2.14 22 -0.64 2.14 22 +acsrent_solves + fill_minus1 fill_0 + mean_gap mad beyond mean_gap mad beyond +run +dup_release_repro 0.16 2.88 25 0.17 2.88 26 +proj_chi_s050_0.03 -0.05 2.84 24 -0.05 2.85 24 +soft_chi_s050_0.1 -0.29 2.70 23 -0.29 2.70 23 +soft_chi_s700_0 -0.09 2.55 25 -0.09 2.56 25 +soft_chi_s700_0.03 -0.35 2.47 24 -0.35 2.46 24 +soft_chi_s700_0.1 -0.55 2.43 21 -0.54 2.42 21 +soft_chi_s900_0 -0.49 2.27 22 -0.49 2.27 22 +soft_chi_s900_0.03 -0.78 2.23 23 -0.78 2.23 23 +soft_chi_s900_0.1 -1.02 2.20 25 -1.02 2.20 25 +soft_chi_s964_0 -0.76 2.24 21 -0.76 2.24 21 +soft_chi_s964_0.03 -0.97 2.20 22 -0.97 2.20 22 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_CA.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_CA.txt new file mode 100644 index 0000000000..47c5204d7e --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_CA.txt @@ -0,0 +1,12 @@ +state CA +child_units 40992 +rate_0 20.374148 +rate_m1 19.812992 +units_moved 1 +source_households 1 +by_channel {'asec': 1} +moved_child_weight_share_pct 0.561156 +largest_source_household_share_pct 0.561156 + units share_pct poor_0 poor_m1 +src +asec:49540 1 0.5612 1.0 0.0 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_DE.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_DE.txt new file mode 100644 index 0000000000..776d27de04 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_DE.txt @@ -0,0 +1,12 @@ +state DE +child_units 1255 +rate_0 22.220429 +rate_m1 22.214556 +units_moved 1 +source_households 1 +by_channel {'asec': 1} +moved_child_weight_share_pct 0.005873 +largest_source_household_share_pct 0.005873 + units share_pct poor_0 poor_m1 +src +asec:19577 1 0.0059 1.0 0.0 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_SD.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_SD.txt new file mode 100644 index 0000000000..9ce4cac686 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fill_trace_SD.txt @@ -0,0 +1,16 @@ +state SD +child_units 1366 +rate_0 6.733403 +reform_rate_0 4.190546 +effect_0 -2.542857 +rate_m1 6.733403 +reform_rate_m1 2.857607 +effect_m1 -3.875796 +units_moved 1 +source_households 1 +by_channel {'asec': 1} +moved_child_weight_share_pct 1.33294 +largest_source_household_share_pct 1.33294 + units share_pct poor_0 poor_m1 poor_r_0 poor_r_m1 +src +asec:129849 1 1.3329 1.0 1.0 1.0 0.0 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fl_reform.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fl_reform.txt new file mode 100644 index 0000000000..7a2d973de4 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/fl_reform.txt @@ -0,0 +1,119 @@ +FL baseline -1.03 reform world -3.78 effect change -2.74 + by channel {'acs': {'d_base': -0.17, 'd_ref': -0.2, 'd_eff': -0.03}, 'donor': {'d_base': -0.86, 'd_ref': -3.58, 'd_eff': -2.71}} + units whose status changes: baseline 114 reform world 143 + d_ref d_base d_eff W share_child_weight +src +donor:83253 -1.21 0.00 -1.21 61429.27 1.21 +donor:140586 -0.45 0.00 -0.45 23033.28 0.45 +donor:140898 0.00 -0.38 0.38 40470.33 0.80 +donor:142132 -0.34 0.00 -0.34 17436.68 0.34 +donor:28044 -0.29 0.00 -0.29 14637.61 0.29 +donor:141933 -0.28 0.00 -0.28 14004.03 0.28 + top 1, 5, 10, 25 clusters of gross change [31, 69, 90, 95] gross 3.89 n 182 +NH baseline -0.14 reform world -1.75 effect change -1.61 + by channel {'acs': {'d_base': -0.14, 'd_ref': -0.06, 'd_eff': 0.08}, 'donor': {'d_base': 0.0, 'd_ref': -1.69, 'd_eff': -1.69}} + units whose status changes: baseline 3 reform world 3 + d_ref d_base d_eff W share_child_weight +src +donor:112881 -1.69 0.00 -1.69 7706.82 2.78 +acs:1340205 0.00 -0.09 0.09 238.42 0.09 +acs:449727 -0.06 0.00 -0.06 160.52 0.06 +acs:583161 0.00 -0.05 0.05 147.62 0.05 +acs:730408 0.00 0.00 0.00 40.41 0.01 +acs:740137 0.00 0.00 0.00 39.34 0.01 + top 1, 5, 10, 25 clusters of gross change [90, 100, 100, 100] gross 1.89 n 4 +WI baseline -1.68 reform world -0.21 effect change 1.47 + by channel {'acs': {'d_base': -0.08, 'd_ref': -0.21, 'd_eff': -0.13}, 'donor': {'d_base': -1.6, 'd_ref': 0.0, 'd_eff': 1.6}} + units whose status changes: baseline 18 reform world 10 + d_ref d_base d_eff W share_child_weight +src +donor:14028 0.00 -1.02 1.02 13569.20 1.02 +donor:126408 0.00 -0.58 0.58 7774.69 0.58 +acs:869225 -0.14 0.00 -0.14 1927.19 0.14 +acs:210751 0.00 0.03 -0.03 346.71 0.03 +acs:247161 0.00 -0.02 0.02 315.37 0.02 +acs:1224443 0.00 -0.02 0.02 218.96 0.02 + top 1, 5, 10, 25 clusters of gross change [55, 97, 100, 100] gross 1.85 n 16 +VA baseline -1.35 reform world -2.76 effect change -1.41 + by channel {'acs': {'d_base': -0.07, 'd_ref': -0.14, 'd_eff': -0.07}, 'donor': {'d_base': -1.28, 'd_ref': -2.62, 'd_eff': -1.34}} + units whose status changes: baseline 29 reform world 30 + d_ref d_base d_eff W share_child_weight +src +donor:22241 -1.58 0.00 -1.58 32750.80 1.58 +donor:134670 0.00 -1.28 1.28 26542.64 1.28 +donor:77909 -0.66 0.00 -0.66 13754.67 0.66 +donor:21852 -0.37 0.00 -0.37 7721.94 0.37 +acs:1087037 -0.04 0.00 -0.04 775.35 0.04 +acs:901407 -0.02 0.00 -0.02 385.34 0.02 + top 1, 5, 10, 25 clusters of gross change [38, 95, 97, 99] gross 4.15 n 47 +NV baseline -0.13 reform world -1.41 effect change -1.28 + by channel {'acs': {'d_base': -0.13, 'd_ref': 0.07, 'd_eff': 0.19}, 'donor': {'d_base': -0.0, 'd_ref': -1.48, 'd_eff': -1.48}} + units whose status changes: baseline 28 reform world 27 + d_ref d_base d_eff W share_child_weight +src +donor:103329 -1.28 0.00 -1.28 9598.61 1.28 +donor:103308 -0.20 0.00 -0.20 1465.61 0.20 +acs:771720 0.14 0.00 0.14 1020.24 0.14 +acs:953518 0.00 0.12 -0.12 896.20 0.12 +acs:1334295 0.00 -0.08 0.08 624.10 0.08 +acs:347172 0.00 0.04 -0.04 315.30 0.04 + top 1, 5, 10, 25 clusters of gross change [57, 81, 89, 99] gross 2.24 n 37 +DE baseline -0.85 reform world 0.36 effect change 1.21 + by channel {'acs': {'d_base': 0.0, 'd_ref': -0.06, 'd_eff': -0.06}, 'donor': {'d_base': -0.85, 'd_ref': 0.42, 'd_eff': 1.27}} + units whose status changes: baseline 1 reform world 4 + d_ref d_base d_eff W share_child_weight +src +donor:75588 1.43 0.00 1.43 3375.69 1.43 +donor:75383 -1.02 0.00 -1.02 2395.23 1.02 +donor:19174 0.00 -0.85 0.85 2005.31 0.85 +acs:1291737 -0.06 0.00 -0.06 151.08 0.06 +acs:1317990 0.01 0.00 0.01 12.15 0.01 +acs:895203 0.00 0.00 0.00 4.66 0.00 + top 1, 5, 10, 25 clusters of gross change [43, 100, 100, 100] gross 3.37 n 5 +AZ baseline -0.84 reform world -1.95 effect change -1.11 + by channel {'acs': {'d_base': -0.13, 'd_ref': -0.18, 'd_eff': -0.04}, 'donor': {'d_base': -0.71, 'd_ref': -1.77, 'd_eff': -1.06}} + units whose status changes: baseline 28 reform world 35 + d_ref d_base d_eff W share_child_weight +src +donor:101472 -1.06 0.00 -1.06 48031.32 2.70 +acs:1526131 -0.04 0.00 -0.04 668.30 0.04 +acs:585840 -0.04 0.00 -0.04 644.03 0.04 +acs:462053 0.00 -0.02 0.02 362.74 0.02 +acs:461647 -0.02 0.00 -0.02 361.49 0.02 +acs:1119898 -0.02 0.00 -0.02 333.43 0.02 + top 1, 5, 10, 25 clusters of gross change [77, 85, 90, 98] gross 1.39 n 49 +GA baseline -0.19 reform world 0.91 effect change 1.11 + by channel {'acs': {'d_base': -0.19, 'd_ref': -0.09, 'd_eff': 0.1}, 'donor': {'d_base': -0.0, 'd_ref': 1.0, 'd_eff': 1.0}} + units whose status changes: baseline 49 reform world 52 + d_ref d_base d_eff W share_child_weight +src +donor:27015 1.00 0.00 1.00 27026.46 1.00 +acs:784945 0.00 -0.04 0.04 1176.15 0.04 +acs:321041 0.00 -0.02 0.02 459.03 0.02 +acs:1157122 0.00 -0.02 0.02 427.60 0.02 +acs:776683 0.01 0.00 0.01 352.09 0.01 +acs:915226 0.00 -0.01 0.01 338.76 0.01 + top 1, 5, 10, 25 clusters of gross change [77, 84, 88, 95] gross 1.31 n 76 +NJ baseline 0.79 reform world -0.24 effect change -1.03 + by channel {'acs': {'d_base': -0.15, 'd_ref': -0.24, 'd_eff': -0.09}, 'donor': {'d_base': 0.94, 'd_ref': -0.0, 'd_eff': -0.94}} + units whose status changes: baseline 47 reform world 53 + d_ref d_base d_eff W share_child_weight +src +donor:62246 0.00 1.09 -1.09 22935.49 1.09 +donor:118609 0.00 -0.15 0.15 11507.36 0.55 +acs:730891 0.00 0.07 -0.07 1467.97 0.07 +acs:753183 -0.05 0.00 -0.05 976.13 0.05 +acs:1132592 -0.03 0.00 -0.03 538.38 0.03 +acs:556394 0.00 -0.03 0.03 538.13 0.03 + top 1, 5, 10, 25 clusters of gross change [60, 76, 82, 90] gross 1.82 n 80 + +state effect_change donor_part acs_part gross clusters top1_pct top10_pct donor_gross_pct + FL -2.74 -2.71 -0.03 3.89 182 31 90 89 + NH -1.61 -1.69 0.08 1.89 4 90 100 90 + WI 1.47 1.60 -0.13 1.85 16 55 100 87 + VA -1.41 -1.34 -0.07 4.15 47 38 97 94 + NV -1.28 -1.48 0.19 2.24 37 57 89 66 + DE 1.21 1.27 -0.06 3.37 5 43 100 98 + AZ -1.11 -1.06 -0.04 1.39 49 77 90 77 + GA 1.11 1.00 0.10 1.31 76 77 88 77 + NJ -1.03 -0.94 -0.09 1.82 80 60 82 68 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/house.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/house.txt new file mode 100644 index 0000000000..cb77b1e707 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/house.txt @@ -0,0 +1,8 @@ +['receives_housing_assistance', 'takes_up_housing_assistance_if_eligible', 'takes_up_tanf_if_eligible', 'takes_up_snap_if_eligible'] +{'receives_housing_assistance': 0.0207, 'takes_up_housing_assistance_if_eligible': 0.0207} +census recipient share of child weight 0.0623 PE subsidy>0 share 0.0161 +receives_housing_assistance among census recipients 1.0 among others 0.0 +takes_up_housing_assistance_if_eligible among census recipients 1.0 among others 0.0 +census recipients with PE subsidy>0 0.259 +mean subsidy among census recipients: census 8614 PE 1704 +mean among both: census 8083 PE 6579 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/kish.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/kish.txt new file mode 100644 index 0000000000..647b7cda02 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/kish.txt @@ -0,0 +1,3 @@ +{'default': 51.0, 'default_initial': 211.0, 'dense': 305.0, 'dense_initial': 635.0, 'acs_local': 88.0} +{'default': {'min': 19.0, 'max': 277.0}, 'default_initial': {'min': 65.0, 'max': 645.0}, 'dense': {'min': 138.0, 'max': 1572.0}, 'dense_initial': {'min': 255.0, 'max': 3687.0}, 'acs_local': {'min': 39.0, 'max': 386.0}} +{'default': 'DC', 'default_initial': 'DC', 'dense': 'ME', 'dense_initial': 'ME', 'acs_local': 'ME'} {'default': 'CA', 'default_initial': 'CA', 'dense': 'CA', 'dense_initial': 'CA', 'acs_local': 'CA'} diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/noise_ci.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/noise_ci.txt new file mode 100644 index 0000000000..2f020597f6 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/noise_ci.txt @@ -0,0 +1,12 @@ +default_replicate {'Q': np.float64(88.406), 'df': 50, 'p': 0.001, 'tau': np.float64(3.247), 'tau_lo': np.float64(1.712), 'tau_hi': np.float64(4.841), 'var': np.float64(26.118), 'noise_share': np.float64(0.596), 'noise_share_lo': np.float64(0.103), 'noise_share_hi': np.float64(0.888), 'mean_v': 17.326} +default_replicate_rmse {'Q': np.float64(64.789), 'df': 50, 'p': 0.078, 'tau': np.float64(2.283), 'tau_lo': np.float64(0.0), 'tau_hi': np.float64(4.147), 'var': np.float64(26.118), 'noise_share': np.float64(0.801), 'noise_share_lo': np.float64(0.342), 'noise_share_hi': np.float64(1.0), 'mean_v': 22.842} +default_linearized {'Q': np.float64(71.548), 'df': 50, 'p': 0.024, 'tau': np.float64(2.732), 'tau_lo': np.float64(0.138), 'tau_hi': np.float64(4.147), 'var': np.float64(26.118), 'noise_share': np.float64(0.714), 'noise_share_lo': np.float64(0.342), 'noise_share_hi': np.float64(0.999), 'mean_v': 24.256} +replicate over linearized: median 0.86 range 0.53 2.17 +mean abs replicate bias 1.83 largest {'MT': 4.92, 'RI': 5.76, 'TN': 6.93} +dense_published {'Q': np.float64(147.799), 'df': 50, 'p': 0.0, 'tau': np.float64(3.071), 'tau_lo': np.float64(2.329), 'tau_hi': np.float64(4.344), 'var': np.float64(16.196), 'noise_share': np.float64(0.418), 'noise_share_lo': np.float64(-0.165), 'noise_share_hi': np.float64(0.665), 'mean_v': 5.798} +acs_local_all {'Q': np.float64(73.917), 'df': 50, 'p': 0.016, 'tau': np.float64(2.044), 'tau_lo': np.float64(0.538), 'tau_hi': np.float64(3.51), 'var': np.float64(17.014), 'noise_share': np.float64(0.754), 'noise_share_lo': np.float64(0.276), 'noise_share_hi': np.float64(0.983), 'mean_v': 12.566} +acs_rows {'Q': np.float64(131.574), 'df': 50, 'p': 0.0, 'tau': np.float64(2.078), 'tau_lo': np.float64(1.625), 'tau_hi': np.float64(3.215), 'var': np.float64(9.703), 'noise_share': np.float64(0.555), 'noise_share_lo': np.float64(-0.065), 'noise_share_hi': np.float64(0.728), 'mean_v': 4.354} +acs_local_donors {'Q': np.float64(75.12), 'df': 50, 'p': 0.012, 'tau': np.float64(2.83), 'tau_lo': np.float64(0.724), 'tau_hi': np.float64(4.338), 'var': np.float64(28.458), 'noise_share': np.float64(0.718), 'noise_share_lo': np.float64(0.339), 'noise_share_hi': np.float64(0.982), 'mean_v': 25.426} +null shift+noise {'mad': [3.44, 3.56, 4.25, 4.98, 5.13], 'sd': [3.27, 3.4, 4.12, 4.95, 5.12], 'beyond': [30.0, 31.0, 36.0, 41.0, 42.0], 'obs': {'mad': 4.79849727626572, 'sd': 5.1105998537849535, 'beyond': 38}, 'p_mad': 0.1035, 'p_sd': 0.0259, 'p_beyond': 0.3107} +null shift+noise+tau {'mad': [3.97, 4.12, 4.94, 5.82, 6.0], 'sd': [4.21, 4.37, 5.23, 6.18, 6.38], 'beyond': [31.0, 32.0, 37.0, 42.0, 43.0], 'obs': {'mad': 4.79849727626572, 'sd': 5.1105998537849535, 'beyond': 38}, 'p_mad': 0.6065, 'p_sd': 0.58635, 'p_beyond': 0.49405} +ACS-local null {'mad': [2.22, 2.3, 2.79, 3.32, 3.43], 'sd': [2.75, 2.86, 3.5, 4.24, 4.4], 'beyond': [20.0, 21.0, 27.0, 32.0, 34.0], 'obs': {'mad': 3.1880104860347513, 'sd': 4.12475079990298, 'beyond': 29}, 'p_mad': 0.1074, 'p_sd': 0.08075, 'p_beyond': 0.3029} diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/overlap.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/overlap.txt new file mode 100644 index 0000000000..2c2b4f96c9 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/overlap.txt @@ -0,0 +1,45 @@ +raw ASEC against Table 18 + 2023-25, Table 18's window: corr 0.996, gap sd 0.32, mean abs gap 0.24 + 2022-24, the pool's window: corr 0.962, gap sd 1.02, mean abs gap 0.90 + 2022 against 2025, no shared income year: corr 0.68, difference sd 3.07 + file weights rows mean_cov median_rho Q tau tau_lo tau_hi Q_adj tau_adj tau_adj_lo tau_adj_hi + dense initial all 0.60 0.38 94.42 1.50 0.88 2.31 170.54 1.88 1.41 2.59 + dense initial asec 0.85 0.43 76.22 1.28 0.36 1.79 152.63 1.82 1.14 2.16 + dense initial puf 0.34 0.21 158.53 2.43 1.95 3.58 203.68 2.54 2.12 3.67 + dense published all 0.66 0.25 147.89 3.07 2.33 4.34 188.43 3.20 2.57 4.48 + dense published asec 0.96 0.25 191.65 4.56 3.41 6.01 244.76 4.72 3.65 6.17 + dense published puf 0.40 0.11 118.41 2.82 2.00 4.13 131.95 2.91 2.16 4.22 +default initial all 0.77 0.25 109.67 2.74 1.91 4.11 139.50 2.95 2.28 4.31 +default initial asec 1.03 0.21 138.62 4.55 3.50 6.63 167.16 4.75 3.82 6.81 +default initial puf 0.57 0.13 76.51 1.98 0.69 3.17 85.84 2.14 1.12 3.31 +default published all 0.72 0.11 71.74 2.74 0.22 4.15 76.02 2.90 0.83 4.29 +default published asec 0.84 0.09 142.57 6.29 3.32 7.76 147.05 6.33 3.43 7.84 +default published puf 0.61 0.05 77.91 3.17 0.79 4.56 79.41 3.22 0.89 4.64 +Census's flag on ASEC rows at initial weights against raw ASEC, 2022: corr 0.989 +Census's flag on ASEC rows at initial weights against raw ASEC, 2023: corr 0.986 +Census's flag on ASEC rows at initial weights against raw ASEC, 2024: corr 0.984 +benchmark 2024-25 against Table 18: corr 0.969 +rows weights records mean_gap sd mad mad_demeaned corr median_se beyond_2se + all initial 40692 0.79 3.25 2.47 2.33 0.67 1.78 8 + all published 40692 5.41 5.47 6.08 4.36 0.58 3.13 18 +asec initial 19205 3.05 3.08 3.44 2.40 0.80 2.32 11 +asec published 19205 9.00 7.01 9.44 5.63 0.60 4.40 22 + puf initial 21487 -1.47 4.17 3.13 2.95 0.41 1.96 9 + puf published 21487 2.57 5.89 4.72 4.41 0.42 3.70 8 +gap corr dense initial, ACS rows 0.30; p 0.031 + Census noise alone would give about 0.16 +gap corr dense published, ACS rows 0.42 + Census noise alone would give about 0.09 +|z|>1.28: 6 states ['DE', 'IL', 'LA', 'MS', 'OH', 'WA'], permutation mean 3.03, p 0.049 +|z|>1.645: 2 states ['DE', 'LA'], permutation mean 1.37, p 0.412 +|z|>1.96: 1 states ['LA'], permutation mean 0.68, p 0.533 +largest joint z 2.796, permutation median 2.59, p 0.185 + dense_initial acs_rows z_dense z_acs joint_z +LA -6.95 -6.40 -3.39 -2.80 2.80 +DE 5.35 6.26 2.28 1.91 1.91 +OH -4.41 -2.04 -2.82 -1.40 1.40 +IL -1.84 -3.29 -1.39 -2.74 1.39 +MS -5.19 -3.18 -2.72 -1.38 1.38 +WA 4.70 2.06 2.95 1.31 1.31 +ID 1.36 3.02 1.23 1.75 1.23 +AZ 3.84 2.12 1.93 1.18 1.18 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/parent_blanks.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/parent_blanks.txt new file mode 100644 index 0000000000..131440e347 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/parent_blanks.txt @@ -0,0 +1,5 @@ +default people 166321 + stores no parent columns +dense people 907863 + parent_1_id int64 blank 0 zero 619213 negative 0 positive 288650 + parent_2_id int64 blank 0 zero 673363 negative 0 positive 234500 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/part.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/part.txt new file mode 100644 index 0000000000..b73b7c7f22 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/part.txt @@ -0,0 +1,8 @@ +dense ['partnership_income', 's_corp_income'] {'partnership_income': 1.7, 's_corp_income': 0.0} + check identity 1.0 share child units with nonzero 0.0881 + child rate was 16.62 with income added 15.29 + by channel {'asec': (np.float64(20.52), np.float64(20.52)), 'puf_tax_detail': (np.float64(13.63), np.float64(11.27))} +default ['partnership_income', 's_corp_income'] {'partnership_income': 0.7, 's_corp_income': 0.0} + check identity 1.0 share child units with nonzero 0.111 + child rate was 15.69 with income added 14.65 + by channel {'asec': (np.float64(19.84), np.float64(19.84)), 'puf_tax_detail': (np.float64(12.76), np.float64(10.99))} diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/persist.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/persist.txt new file mode 100644 index 0000000000..8f5e250a4a --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/persist.txt @@ -0,0 +1,17 @@ +gap corr dense initial, ACS rows 0.30; p 0.031 + Census noise alone would give about 0.16 +gap corr dense published, ACS rows 0.42 + Census noise alone would give about 0.09 +|z|>1.28: 6 states ['DE', 'IL', 'LA', 'MS', 'OH', 'WA'], permutation mean 3.03, p 0.049 +|z|>1.645: 2 states ['DE', 'LA'], permutation mean 1.37, p 0.412 +|z|>1.96: 1 states ['LA'], permutation mean 0.68, p 0.533 +largest joint z 2.796, permutation median 2.59, p 0.185 + dense_initial acs_rows z_dense z_acs joint_z +LA -6.95 -6.40 -3.39 -2.80 2.80 +DE 5.35 6.26 2.28 1.91 1.91 +OH -4.41 -2.04 -2.82 -1.40 1.40 +IL -1.84 -3.29 -1.39 -2.74 1.39 +MS -5.19 -3.18 -2.72 -1.38 1.38 +WA 4.70 2.06 2.95 1.31 1.31 +ID 1.36 3.02 1.23 1.75 1.23 +AZ 3.84 2.12 1.93 1.18 1.18 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/puf_house.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/puf_house.txt new file mode 100644 index 0000000000..26e3abbbc2 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/puf_house.txt @@ -0,0 +1,8 @@ +['spm_unit_source_id', 'spm_unit_support_channel', 'spm_unit_support_clone_index'] +unweighted rate asec 0.0373 puf clone 0.0205 units 176039 176039 +puf False True +asec +False 0.982 0.018 +True 0.904 0.096 +rate of puf given asec=1 0.096 given asec=0 0.018 +{('asec', False): 0.0005, ('asec', True): 0.0775, ('puf_tax_detail', False): 0.0039, ('puf_tax_detail', True): 0.0282} diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent4.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent4.txt new file mode 100644 index 0000000000..97ec630105 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent4.txt @@ -0,0 +1,19 @@ +['household_id', 'household_source_id', 'household_support_channel', 'household_support_clone_index'] +['source_year', 'source_household_id', 'source_person_id', 'source_row_id', 'child_support_received', 'child_support_expense', 'person_source_id', 'person_support_channel', 'person_support_clone_index'] +first household ids [1, 2, 3, 4] monotone hh True monotone person hh False +heads 352932 households 352932 same position share 0.0926 +asec 0 heads 168852 hh 168852 + same position 0.0915 + own row {'RENTED': 0.408, 'OWNED_WITH_MORTGAGE': 0.271, 'NONE': 0.251} + nth household {'RENTED': 1.0, 'OWNED_WITH_MORTGAGE': 0.0, 'NONE': 0.0} +asec 1 heads 0 hh 0 +asec 2 heads 0 hh 0 +puf_tax_detail 0 heads 0 hh 0 +puf_tax_detail 1 heads 168852 hh 168852 + same position 0.0915 + own row {'RENTED': 0.408, 'OWNED_WITH_MORTGAGE': 0.271, 'NONE': 0.251} + nth household {'RENTED': 1.0, 'OWNED_WITH_MORTGAGE': 0.0, 'NONE': 0.0} +puf_tax_detail 2 heads 15228 hh 15228 + same position 0.1186 + own row {'RENTED': 0.41, 'OWNED_WITH_MORTGAGE': 0.302, 'NONE': 0.429} + nth household {'RENTED': 0.411, 'OWNED_WITH_MORTGAGE': 0.302, 'NONE': 0.31} diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent5.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent5.txt new file mode 100644 index 0000000000..1bb4fcd45c --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent5.txt @@ -0,0 +1,16 @@ +rent cols ['SPM_WNEWPARENT', 'rental_income', 'pre_subsidy_rent', 'farm_rent_income', 'farm_rent_income_would_be_qualified', 'rental_income_would_be_qualified', 'acs_interest_dividend_rental_income'] ['H_TENURE', 'tenure_type', 'RNTP', 'GRNTP', 'acs_monthly_contract_rent', 'acs_monthly_gross_rent'] +hh tenure {'OWNED_WITH_MORTGAGE': 0.371, 'OWNED_OUTRIGHT': 0.277, 'RENTED': 0.222, 'NONE': 0.129} + w any_rent mean_pos any_ret n +household_support_channel tenure_type +acs_2024_1yr NONE 1.287 0.130 14765.803 0.000 204874.0 + OWNED_OUTRIGHT 10.345 0.300 14843.534 0.939 440126.0 + OWNED_WITH_MORTGAGE 15.305 0.299 15142.983 0.964 548558.0 + RENTED 11.746 0.396 15073.924 0.000 336110.0 +asec NONE 0.326 0.327 12393.766 0.000 237.0 + OWNED_WITH_MORTGAGE 23.651 0.285 13839.141 0.000 15407.0 + RENTED 12.740 0.431 14457.648 0.000 6556.0 +puf_tax_detail NONE 0.439 0.426 12868.287 0.312 330.0 + OWNED_WITH_MORTGAGE 33.105 0.312 14183.404 0.513 25180.0 + RENTED 13.593 0.394 14713.438 0.328 9530.0 +same position household/head (1405648, 1586908) +{'receives_housing_assistance': 0.0008, 'takes_up_housing_assistance_if_eligible': 0.0252} diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent_map.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent_map.txt new file mode 100644 index 0000000000..0e1d90447d --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rent_map.txt @@ -0,0 +1 @@ +source households 168852 rent $bn 0.77 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rentfix.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rentfix.txt new file mode 100644 index 0000000000..226e7959d9 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/rentfix.txt @@ -0,0 +1,11 @@ +source ids unique in base True +base households 168852 positive 53053 sum 0.77 +other channel sources found 1.0 +clone index by channel {('asec', 0): 168852, ('puf_tax_detail', 1): 168852, ('puf_tax_detail', 2): 15228} + weight_M was_any right_any was_mean right_mean +tenure_type +NONE 1.498 0.285 0.0 4029.497 0.000 +OWNED_WITH_MORTGAGE 90.106 0.299 0.0 4417.972 0.000 +RENTED 46.494 0.388 1.0 5954.510 15410.143 +weighted total rent, was 681.0 right 716.5 +records moved 0.464 weight moved 0.5185 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/logs/thr_census.txt b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/thr_census.txt new file mode 100644 index 0000000000..de7f6db269 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/logs/thr_census.txt @@ -0,0 +1,9 @@ +Census reference thresholds by tenure {1: 39068.0, 2: 32586.0, 3: 39430.0} +PolicyEngine reference thresholds [np.float64(32879.0), np.float64(39220.0), np.float64(39231.0)] +SPM_TENMORTSTATUS 1 2 3 +spm_unit_reference_spm_threshold__2024 +32879.0 0 4477 0 +39220.0 0 0 7617 +39231.0 11367 0 0 +pairs {32879.0: 32586, 39220.0: 39430, 39231.0: 39068} +child rate 2024: simulated 15.69, recomputed 15.69, with Census thresholds 15.72 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/noise_ci.json b/docs/evidence/us-state-child-spm-2026-11/outputs/noise_ci.json new file mode 100644 index 0000000000..dbeb3b82c3 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/noise_ci.json @@ -0,0 +1,186 @@ +{ + "default_replicate": { + "Q": 88.40618049421572, + "df": 50, + "p": 0.0006606953818152986, + "tau": 3.2465694661482893, + "tau_lo": 1.7122878484524746, + "tau_hi": 4.840911706611139, + "var": 26.118230865506785, + "noise_share": 0.5964422953146344, + "noise_share_lo": 0.10275599171023486, + "noise_share_hi": 0.8877439405809803, + "mean_v": 17.326059541770654 + }, + "default_replicate_rmse": { + "Q": 64.78855186048433, + "df": 50, + "p": 0.07791977349463591, + "tau": 2.2826487494363596, + "tau_lo": 0.0, + "tau_hi": 4.1468010853791135, + "var": 26.118230865506785, + "noise_share": 0.8005038955305108, + "noise_share_lo": 0.34161087210499586, + "noise_share_hi": 1.0, + "mean_v": 22.84239401986353 + }, + "default_linearized": { + "Q": 71.54752778678422, + "df": 50, + "p": 0.024417951201095967, + "tau": 2.7318501167333893, + "tau_lo": 0.13774138913839723, + "tau_hi": 4.146775759450035, + "var": 26.118230865506785, + "noise_share": 0.7142606978732124, + "noise_share_lo": 0.3416189140945187, + "noise_share_hi": 0.9992735844024248, + "mean_v": 24.25633958471365 + }, + "dense_published": { + "Q": 147.79926318354475, + "df": 50, + "p": 1.3400118212676647e-11, + "tau": 3.0713486973806456, + "tau_lo": 2.3294462752155356, + "tau_hi": 4.343865613386318, + "var": 16.19589516275953, + "noise_share": 0.41755718185974466, + "noise_share_lo": -0.16505869404164986, + "noise_share_hi": 0.6649570835953119, + "mean_v": 5.79846072243994 + }, + "acs_local_all": { + "Q": 73.9166302025121, + "df": 50, + "p": 0.01557799078148914, + "tau": 2.044219749579033, + "tau_lo": 0.5384299814821493, + "tau_hi": 3.5100661223111356, + "var": 17.01356916130027, + "noise_share": 0.7543822613026839, + "noise_share_lo": 0.27583894559754296, + "noise_share_hi": 0.9829602570624452, + "mean_v": 12.565620082481603 + }, + "acs_rows": { + "Q": 131.573636682349, + "df": 50, + "p": 2.9062838320722656e-09, + "tau": 2.078444059024237, + "tau_lo": 1.6247665391479142, + "tau_hi": 3.215085974576774, + "var": 9.702983308697004, + "noise_share": 0.5547833517737689, + "noise_share_lo": -0.06531955122041655, + "noise_share_hi": 0.7279325107806256, + "mean_v": 4.354307742910868 + }, + "acs_local_donors": { + "Q": 75.11992914149931, + "df": 50, + "p": 0.01230079352662799, + "tau": 2.8304443441406364, + "tau_lo": 0.7244826314863948, + "tau_hi": 4.337931368268061, + "var": 28.4576106462753, + "noise_share": 0.7184789937265411, + "noise_share_lo": 0.3387481194501838, + "noise_share_hi": 0.9815558976524914, + "mean_v": 25.42626346352447 + }, + "null_shift_noise": { + "mad": [ + 3.44, + 3.56, + 4.25, + 4.98, + 5.13 + ], + "sd": [ + 3.27, + 3.4, + 4.12, + 4.95, + 5.12 + ], + "beyond": [ + 30.0, + 31.0, + 36.0, + 41.0, + 42.0 + ], + "obs": { + "mad": 4.79849727626572, + "sd": 5.1105998537849535, + "beyond": 38 + }, + "p_mad": 0.1035, + "p_sd": 0.0259, + "p_beyond": 0.3107 + }, + "null_shift_noise_tau": { + "mad": [ + 3.97, + 4.12, + 4.94, + 5.82, + 6.0 + ], + "sd": [ + 4.21, + 4.37, + 5.23, + 6.18, + 6.38 + ], + "beyond": [ + 31.0, + 32.0, + 37.0, + 42.0, + 43.0 + ], + "obs": { + "mad": 4.79849727626572, + "sd": 5.1105998537849535, + "beyond": 38 + }, + "p_mad": 0.6065, + "p_sd": 0.58635, + "p_beyond": 0.49405 + }, + "acs_null_shift_noise": { + "mad": [ + 2.22, + 2.3, + 2.79, + 3.32, + 3.43 + ], + "sd": [ + 2.75, + 2.86, + 3.5, + 4.24, + 4.4 + ], + "beyond": [ + 20.0, + 21.0, + 27.0, + 32.0, + 34.0 + ], + "obs": { + "mad": 3.1880104860347513, + "sd": 4.12475079990298, + "beyond": 29 + }, + "p_mad": 0.1074, + "p_sd": 0.08075, + "p_beyond": 0.3029 + } +} \ No newline at end of file diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/noise_ci_fill_minus1.json b/docs/evidence/us-state-child-spm-2026-11/outputs/noise_ci_fill_minus1.json new file mode 100644 index 0000000000..aad2f3a899 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/noise_ci_fill_minus1.json @@ -0,0 +1,186 @@ +{ + "default_replicate": { + "Q": 88.40618049421572, + "df": 50, + "p": 0.0006606953818153031, + "tau": 3.2465694661482893, + "tau_lo": 1.7122878484524746, + "tau_hi": 4.840911706611139, + "var": 26.118230865506785, + "noise_share": 0.5964422953146344, + "noise_share_lo": 0.10275599171023486, + "noise_share_hi": 0.8877439405809803, + "mean_v": 17.326059541770654 + }, + "default_replicate_rmse": { + "Q": 64.78855186048433, + "df": 50, + "p": 0.07791977349463591, + "tau": 2.2826487494363596, + "tau_lo": 0.0, + "tau_hi": 4.1468010853791135, + "var": 26.118230865506785, + "noise_share": 0.8005038955305108, + "noise_share_lo": 0.34161087210499586, + "noise_share_hi": 1.0, + "mean_v": 22.84239401986353 + }, + "default_linearized": { + "Q": 71.54752778678422, + "df": 50, + "p": 0.024417951201096147, + "tau": 2.7318501167333893, + "tau_lo": 0.13774138913839723, + "tau_hi": 4.146775759450035, + "var": 26.118230865506785, + "noise_share": 0.7142606978732124, + "noise_share_lo": 0.3416189140945187, + "noise_share_hi": 0.9992735844024248, + "mean_v": 24.25633958471365 + }, + "dense_published": { + "Q": 147.79926318354475, + "df": 50, + "p": 1.3400118212676642e-11, + "tau": 3.0713486973806456, + "tau_lo": 2.3294462752155356, + "tau_hi": 4.343865613386318, + "var": 16.19589516275953, + "noise_share": 0.41755718185974466, + "noise_share_lo": -0.16505869404164986, + "noise_share_hi": 0.6649570835953119, + "mean_v": 5.79846072243994 + }, + "acs_local_all": { + "Q": 73.28394711139177, + "df": 50, + "p": 0.017600667293570144, + "tau": 2.0152989229220633, + "tau_lo": 0.46677414231140657, + "tau_hi": 3.4958661033570277, + "var": 16.981217800091212, + "noise_share": 0.7608281221910355, + "noise_share_lo": 0.2803178219329473, + "noise_share_hi": 0.9871694655533257, + "mean_v": 12.56197920084301 + }, + "acs_rows": { + "Q": 131.573636682349, + "df": 50, + "p": 2.906283832072266e-09, + "tau": 2.078444059024237, + "tau_lo": 1.6247665391479142, + "tau_hi": 3.215085974576774, + "var": 9.702983308697004, + "noise_share": 0.5547833517737689, + "noise_share_lo": -0.06531955122041655, + "noise_share_hi": 0.7279325107806256, + "mean_v": 4.354307742910868 + }, + "acs_local_donors": { + "Q": 74.38600098457465, + "df": 50, + "p": 0.01421571165194804, + "tau": 2.786391456644747, + "tau_lo": 0.6482180731228857, + "tau_hi": 4.314776890702981, + "var": 28.397890778366232, + "noise_share": 0.7266002109009624, + "noise_share_lo": 0.3444125917010953, + "noise_share_hi": 0.9852035958021484, + "mean_v": 25.419275862349163 + }, + "null_shift_noise": { + "mad": [ + 3.44, + 3.56, + 4.25, + 4.98, + 5.13 + ], + "sd": [ + 3.27, + 3.4, + 4.12, + 4.95, + 5.12 + ], + "beyond": [ + 30.0, + 31.0, + 36.0, + 41.0, + 42.0 + ], + "obs": { + "mad": 4.79849727626572, + "sd": 5.1105998537849535, + "beyond": 38 + }, + "p_mad": 0.1035, + "p_sd": 0.0259, + "p_beyond": 0.3107 + }, + "null_shift_noise_tau": { + "mad": [ + 3.97, + 4.12, + 4.94, + 5.82, + 6.0 + ], + "sd": [ + 4.21, + 4.37, + 5.23, + 6.18, + 6.38 + ], + "beyond": [ + 31.0, + 32.0, + 37.0, + 42.0, + 43.0 + ], + "obs": { + "mad": 4.79849727626572, + "sd": 5.1105998537849535, + "beyond": 38 + }, + "p_mad": 0.6065, + "p_sd": 0.58635, + "p_beyond": 0.49405 + }, + "acs_null_shift_noise": { + "mad": [ + 2.22, + 2.3, + 2.79, + 3.32, + 3.43 + ], + "sd": [ + 2.75, + 2.86, + 3.5, + 4.24, + 4.4 + ], + "beyond": [ + 20.0, + 21.0, + 27.0, + 32.0, + 34.0 + ], + "obs": { + "mad": 3.176892139210129, + "sd": 4.120827319858382, + "beyond": 29 + }, + "p_mad": 0.11205, + "p_sd": 0.0818, + "p_beyond": 0.2998 + } +} \ No newline at end of file diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/overlap_benchmark.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/overlap_benchmark.csv new file mode 100644 index 0000000000..47fbce7c85 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/overlap_benchmark.csv @@ -0,0 +1,7 @@ +rows,weights,records,mean_gap,sd,mad,mad_demeaned,corr,median_se,beyond_2se +all,initial,40692,0.7867372891971931,3.248805981150784,2.468804328855891,2.3343685593110695,0.6690044721833458,1.7759986518198563,8 +all,published,40692,5.4064051259490675,5.474223029022839,6.078282858333024,4.357785355367064,0.5763359925051068,3.130750018155782,18 +asec,initial,19205,3.0476605400923567,3.0756222390034194,3.4390102900932127,2.4010326342111443,0.7953823897993006,2.32088160634177,11 +asec,published,19205,9.003883497149689,7.0060278380809695,9.437993149881747,5.625186803283967,0.6002030405081092,4.395317956212454,22 +puf,initial,21487,-1.4741859616979693,4.172050471176363,3.1305446407195237,2.946502418900436,0.4112895429223947,1.9565850424007294,9 +puf,published,21487,2.571506569034087,5.88605236751841,4.723268802435301,4.410151403717117,0.4224590436038589,3.704989378410522,8 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/overlap_fits.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/overlap_fits.csv new file mode 100644 index 0000000000..ed8df0e6be --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/overlap_fits.csv @@ -0,0 +1,13 @@ +file,weights,rows,mean_cov,median_rho,Q,tau,tau_lo,tau_hi,Q_adj,tau_adj,tau_adj_lo,tau_adj_hi +dense,initial,all,0.595543109238221,0.3778947544666261,94.42341961555938,1.4984727940360092,0.8825647592341488,2.3119248205641063,170.54109602618092,1.8755688332218294,1.4103840167964343,2.5881759037064493 +dense,initial,asec,0.8527396488286029,0.433831265244919,76.22151432219971,1.280018221026351,0.3580304273105931,1.7884770240872516,152.62894153566256,1.8245228111465517,1.1359047429114335,2.1649935408665373 +dense,initial,puf,0.3383465696478391,0.2139340304860209,158.53077164835463,2.429593296017989,1.9546102900450604,3.577542787288993,203.67660446416454,2.537153696557851,2.1231029929696836,3.6749167305949904 +dense,published,all,0.6582605677339217,0.2474896813207447,147.88891271598067,3.0717065318916488,2.3302500678368565,4.344365305004411,188.42743074183704,3.200907590987537,2.5673713162898406,4.482641157124921 +dense,published,asec,0.9567971403817802,0.2542350497670981,191.64686035731117,4.555203429762527,3.4109816762605596,6.012211258784268,244.76465447124923,4.720485981388877,3.650720914708744,6.165585809435793 +dense,published,puf,0.40363013211436927,0.11480117997887508,118.41319566841526,2.819685061780852,2.003167277936313,4.132922664086149,131.9490867390386,2.908180316090604,2.164296256926942,4.219278958625003 +default,initial,all,0.7675988966050542,0.24930098657653044,109.67353281069065,2.7400987699678767,1.9065127731125615,4.106057707567537,139.4961171319021,2.9489779630212936,2.2796337180771893,4.305934731561324 +default,initial,asec,1.025936184834074,0.2143637472803949,138.62304094182142,4.547022599554794,3.5044856791488828,6.634408603575592,167.16294262078407,4.75496277867221,3.816837674000062,6.8116735232100485 +default,initial,puf,0.5673581353359098,0.13332355689820224,76.50598644028571,1.9787425721109382,0.6921070840491997,3.167009358865418,85.840706854272,2.1350275294682275,1.117842683505096,3.312363861082592 +default,published,all,0.7203916785379127,0.10531231824891661,71.73595745440814,2.740313912978613,0.21680965681125955,4.153269891777422,76.02056029770819,2.902045842564099,0.827777852942473,4.292333896639983 +default,published,asec,0.8445788619709014,0.0945445328289885,142.57403537984788,6.287313269379026,3.3151225447971355,7.762250214623579,147.04941350069421,6.32967407265866,3.430560159302139,7.8421510118444555 +default,published,puf,0.612530785658158,0.05406109357460643,77.91166855678543,3.170558084662735,0.7914752652861562,4.557006350369592,79.41294056392113,3.2168983409736667,0.8902069501657034,4.6437755654332085 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/resource_growth.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/resource_growth.csv new file mode 100644 index 0000000000..cf4951fec8 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/resource_growth.csv @@ -0,0 +1,8 @@ +,census_resources,census_ratio,default_resources,default_ratio,dense_resources,dense_ratio +p10,5.572992528286336,-0.6628556264017593,1.9593121394547275,-3.379441128325922,2.461736563431005,-3.1682503171614362 +p15,5.6941245651002115,-0.47809280809800736,1.5705957590850472,-3.1612198740720077,2.5789728175627413,-3.093012945307272 +p20,5.10029964646439,0.8951255529286106,2.767501174728748,-2.9139083808101818,2.967156024120987,-2.691061834311659 +p25,3.61727109393597,-0.012706043451604643,2.8136635457423953,-2.725075401091881,3.0745873065608054,-2.064967390677064 +p30,4.204651807688298,-0.014600381143525798,2.7913913186986106,-2.0917520689309743,3.164202872783406,-1.9759396022205222 +p40,6.17948033252691,1.0409208805201686,3.080334916550087,-1.7668139481831546,3.816697941310787,-1.059424246097418 +p50,6.155863984200649,0.39919344212298036,3.945784267751029,-0.8181434451128178,4.556583582205476,-0.35012710057588103 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/state_baseline.json b/docs/evidence/us-state-child-spm-2026-11/outputs/state_baseline.json new file mode 100644 index 0000000000..c0927771c4 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/state_baseline.json @@ -0,0 +1,417 @@ +{ + "policyengine_us_version": "2.90.2", + "policyengine_us_commit": "469ad12cb957a1b3eaedf9e6dd3e4c69194bba26", + "dataset": "Populace US", + "year": 2025, + "census_source": "U.S. Census Bureau, Poverty in the United States: 2025 (P60-290), Table 18: SPM percent and margin of error for people under 18, three-year average 2023 to 2025", + "rows": [ + { + "state": "AL", + "records": 1061, + "effective_households": 236.55107295398253, + "child_spm_percent": 16.98715636912008, + "census_percent": 15.5, + "census_margin": 2.4 + }, + { + "state": "AK", + "records": 826, + "effective_households": 133.0980287754569, + "child_spm_percent": 11.644426986408602, + "census_percent": 10.5, + "census_margin": 2.1 + }, + { + "state": "AZ", + "records": 1164, + "effective_households": 189.9592179909452, + "child_spm_percent": 16.951186258024865, + "census_percent": 13.3, + "census_margin": 2.3 + }, + { + "state": "AR", + "records": 952, + "effective_households": 205.80839413217132, + "child_spm_percent": 8.12845772011748, + "census_percent": 13.3, + "census_margin": 2.7 + }, + { + "state": "CA", + "records": 2659, + "effective_households": 964.8602098319376, + "child_spm_percent": 24.41650645326989, + "census_percent": 17.9, + "census_margin": 1.0 + }, + { + "state": "CO", + "records": 1164, + "effective_households": 145.44069860124233, + "child_spm_percent": 10.352503836811634, + "census_percent": 7.7, + "census_margin": 1.8 + }, + { + "state": "CT", + "records": 908, + "effective_households": 135.72407262331754, + "child_spm_percent": 13.371307682492237, + "census_percent": 12.8, + "census_margin": 3.2 + }, + { + "state": "DE", + "records": 1068, + "effective_households": 138.95841498485564, + "child_spm_percent": 22.429186288025384, + "census_percent": 8.7, + "census_margin": 2.6 + }, + { + "state": "DC", + "records": 551, + "effective_households": 175.55582420499337, + "child_spm_percent": 34.365303438733925, + "census_percent": 20.3, + "census_margin": 3.7 + }, + { + "state": "FL", + "records": 1642, + "effective_households": 561.268792979642, + "child_spm_percent": 28.15649890233655, + "census_percent": 18.4, + "census_margin": 1.8 + }, + { + "state": "GA", + "records": 1215, + "effective_households": 256.7233149102064, + "child_spm_percent": 18.428986738455304, + "census_percent": 15.1, + "census_margin": 2.2 + }, + { + "state": "HI", + "records": 838, + "effective_households": 197.42767357826924, + "child_spm_percent": 7.019040438905304, + "census_percent": 13.0, + "census_margin": 2.6 + }, + { + "state": "ID", + "records": 746, + "effective_households": 185.13141304399971, + "child_spm_percent": 6.957827284586571, + "census_percent": 6.5, + "census_margin": 1.3 + }, + { + "state": "IL", + "records": 1668, + "effective_households": 276.7964053720248, + "child_spm_percent": 14.678691391590323, + "census_percent": 12.4, + "census_margin": 1.6 + }, + { + "state": "IN", + "records": 1141, + "effective_households": 177.01966623060613, + "child_spm_percent": 12.73434830167166, + "census_percent": 10.6, + "census_margin": 2.2 + }, + { + "state": "IA", + "records": 973, + "effective_households": 138.47468952101661, + "child_spm_percent": 8.80898267607782, + "census_percent": 8.2, + "census_margin": 1.9 + }, + { + "state": "KS", + "records": 921, + "effective_households": 148.60541081180202, + "child_spm_percent": 9.659862214627816, + "census_percent": 9.7, + "census_margin": 2.5 + }, + { + "state": "KY", + "records": 776, + "effective_households": 129.5204444710968, + "child_spm_percent": 18.5371736654285, + "census_percent": 13.3, + "census_margin": 2.9 + }, + { + "state": "LA", + "records": 1000, + "effective_households": 260.9008626497421, + "child_spm_percent": 12.087426626104243, + "census_percent": 20.7, + "census_margin": 3.0 + }, + { + "state": "ME", + "records": 785, + "effective_households": 98.94461653737365, + "child_spm_percent": 12.449100684445808, + "census_percent": 6.5, + "census_margin": 2.3 + }, + { + "state": "MD", + "records": 1091, + "effective_households": 142.97248422508488, + "child_spm_percent": 23.16543402488221, + "census_percent": 10.7, + "census_margin": 2.5 + }, + { + "state": "MA", + "records": 1522, + "effective_households": 254.60923432676174, + "child_spm_percent": 20.202673816573878, + "census_percent": 12.8, + "census_margin": 2.0 + }, + { + "state": "MI", + "records": 1478, + "effective_households": 244.58680980543457, + "child_spm_percent": 14.518361699859508, + "census_percent": 10.3, + "census_margin": 1.9 + }, + { + "state": "MN", + "records": 1166, + "effective_households": 151.4108590065156, + "child_spm_percent": 8.431428192061507, + "census_percent": 6.9, + "census_margin": 1.9 + }, + { + "state": "MS", + "records": 882, + "effective_households": 217.18543375057635, + "child_spm_percent": 12.942211004413902, + "census_percent": 19.1, + "census_margin": 2.6 + }, + { + "state": "MO", + "records": 1013, + "effective_households": 158.23194095106248, + "child_spm_percent": 18.479794697686096, + "census_percent": 9.7, + "census_margin": 2.3 + }, + { + "state": "MT", + "records": 744, + "effective_households": 189.76250281214456, + "child_spm_percent": 2.5309436062772113, + "census_percent": 9.3, + "census_margin": 2.3 + }, + { + "state": "NE", + "records": 884, + "effective_households": 145.9510957065784, + "child_spm_percent": 10.711871752578398, + "census_percent": 7.1, + "census_margin": 1.9 + }, + { + "state": "NV", + "records": 952, + "effective_households": 153.2144593141471, + "child_spm_percent": 19.070065323872694, + "census_percent": 15.0, + "census_margin": 2.5 + }, + { + "state": "NH", + "records": 840, + "effective_households": 140.8689123605408, + "child_spm_percent": 10.516178219256554, + "census_percent": 7.5, + "census_margin": 2.4 + }, + { + "state": "NJ", + "records": 1651, + "effective_households": 214.92794398401983, + "child_spm_percent": 10.924964312878116, + "census_percent": 13.3, + "census_margin": 1.9 + }, + { + "state": "NM", + "records": 902, + "effective_households": 197.2115814203346, + "child_spm_percent": 10.15133671821333, + "census_percent": 10.9, + "census_margin": 2.1 + }, + { + "state": "NY", + "records": 2166, + "effective_households": 431.1950455090738, + "child_spm_percent": 17.727116992316713, + "census_percent": 16.2, + "census_margin": 1.9 + }, + { + "state": "NC", + "records": 1337, + "effective_households": 278.97265851969934, + "child_spm_percent": 18.100974612766848, + "census_percent": 14.4, + "census_margin": 2.2 + }, + { + "state": "ND", + "records": 682, + "effective_households": 154.69431784251822, + "child_spm_percent": 11.13047533590008, + "census_percent": 10.3, + "census_margin": 2.1 + }, + { + "state": "OH", + "records": 1531, + "effective_households": 259.8938711270293, + "child_spm_percent": 9.813281022726176, + "census_percent": 12.3, + "census_margin": 2.1 + }, + { + "state": "OK", + "records": 918, + "effective_households": 184.88950295988414, + "child_spm_percent": 17.21439734214549, + "census_percent": 9.9, + "census_margin": 2.0 + }, + { + "state": "OR", + "records": 1152, + "effective_households": 174.20405203877138, + "child_spm_percent": 16.2870253593211, + "census_percent": 11.0, + "census_margin": 2.4 + }, + { + "state": "PA", + "records": 1999, + "effective_households": 313.940721037965, + "child_spm_percent": 14.135315201475251, + "census_percent": 11.1, + "census_margin": 2.0 + }, + { + "state": "RI", + "records": 804, + "effective_households": 115.36121530553025, + "child_spm_percent": 17.87488315880047, + "census_percent": 8.4, + "census_margin": 2.3 + }, + { + "state": "SC", + "records": 955, + "effective_households": 198.5735582254525, + "child_spm_percent": 9.884637976608813, + "census_percent": 11.1, + "census_margin": 2.1 + }, + { + "state": "SD", + "records": 866, + "effective_households": 140.02483747681345, + "child_spm_percent": 11.33898407217388, + "census_percent": 7.8, + "census_margin": 2.2 + }, + { + "state": "TN", + "records": 1082, + "effective_households": 213.46111672978205, + "child_spm_percent": 23.237084061349254, + "census_percent": 10.0, + "census_margin": 1.7 + }, + { + "state": "TX", + "records": 1875, + "effective_households": 671.2372652446592, + "child_spm_percent": 19.24437100079317, + "census_percent": 16.1, + "census_margin": 1.3 + }, + { + "state": "UT", + "records": 861, + "effective_households": 182.57153738948298, + "child_spm_percent": 13.211297432608319, + "census_percent": 7.3, + "census_margin": 1.6 + }, + { + "state": "VT", + "records": 496, + "effective_households": 155.57089637922203, + "child_spm_percent": 17.678699918725112, + "census_percent": 8.3, + "census_margin": 2.5 + }, + { + "state": "VA", + "records": 1394, + "effective_households": 215.49254142849716, + "child_spm_percent": 18.12834306934188, + "census_percent": 12.1, + "census_margin": 2.4 + }, + { + "state": "WA", + "records": 1305, + "effective_households": 217.79313567185002, + "child_spm_percent": 14.206930139564697, + "census_percent": 9.3, + "census_margin": 1.9 + }, + { + "state": "WV", + "records": 845, + "effective_households": 220.3992065891528, + "child_spm_percent": 17.93170551281414, + "census_percent": 11.3, + "census_margin": 2.4 + }, + { + "state": "WI", + "records": 1232, + "effective_households": 168.63884893953457, + "child_spm_percent": 7.034634564819478, + "census_percent": 7.3, + "census_margin": 1.7 + }, + { + "state": "WY", + "records": 557, + "effective_households": 157.08532758317563, + "child_spm_percent": 8.787559212429837, + "census_percent": 6.5, + "census_margin": 1.4 + } + ] +} diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/state_persistence.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/state_persistence.csv new file mode 100644 index 0000000000..35118c8eda --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/state_persistence.csv @@ -0,0 +1,52 @@ +,dense_initial,dense_initial_se,acs_rows,acs_rows_se,census_se,z_dense,z_acs,joint_z +AK,-4.048191684830667,0.8970697523813582,4.377056011665996,3.8674701569110397,1.2765957446808511,-2.594551814932506,1.0747263386223098,0.0 +AL,-2.9051191319952174,1.2167865033734007,-0.48651043792738413,1.3201238751499236,1.458966565349544,-1.5291895090811582,-0.24726529237289666,0.24726529237289666 +AR,-0.405416993411583,1.0680665554684374,-2.685710492646857,1.4069716796086178,1.6413373860182372,-0.20702994229473332,-1.2423254736156564,0.20702994229473332 +AZ,3.843807491659291,1.4151817786418597,2.1228292887538522,1.1361190125873954,1.398176291793313,1.9321626492802886,1.1783202328464526,1.1783202328464526 +CA,2.9225878233527354,0.5906538721222633,-0.7181825222738283,0.44765749055376786,0.60790273556231,3.448093619025647,-0.9513035848129473,0.0 +CO,0.8809674492820898,0.98023045849131,0.4264986113948952,0.714650612194822,1.094224924012158,0.5996751282337094,0.3263374108900439,0.3263374108900439 +CT,-0.13712000829784188,1.3514663470288042,2.1976649959271484,1.6303966945262747,1.9452887537993921,-0.05788896764957569,0.8658439212886221,0.0 +DC,-4.908187992412584,1.7332714466392853,1.7969366196813894,5.492706307713332,2.2492401215805473,-1.7284804920729555,0.302749332982209,0.0 +DE,5.348836874890656,1.7284089111684748,6.264556458685824,2.865571367630918,1.580547112462006,2.2837585854566265,1.9142697029335978,1.9142697029335978 +FL,0.8820795735107438,0.8641410736104425,-5.090235557400884,0.5823985920811567,1.094224924012158,0.6326332903950621,-4.106476046052587,0.0 +GA,0.30313021997410416,1.0105650010031857,-2.7340585938479247,0.7861697616877288,1.3373860182370823,0.180837381043606,-1.7623820620881954,0.0 +HI,-2.1741066636255777,1.189593256244055,-7.927113157323014,0.8403045589641391,1.580547112462006,-1.0990347481285263,-4.428457448729185,1.0990347481285263 +IA,-0.1910881107042499,1.0302147409877493,-2.7618273071213624,0.8378005928894581,1.1550151975683889,-0.12346515773539984,-1.935578718847079,0.12346515773539984 +ID,1.3600598093768292,0.7702050770913274,3.0198257580514927,1.536874895172609,0.790273556231003,1.2324782591947891,1.7474284760707375,1.2324782591947891 +IL,-1.843685938735339,0.9046266224655412,-3.28677682840892,0.7046820523010107,0.9726443768996961,-1.3880019985638996,-2.7364981794311376,1.3880019985638996 +IN,-1.7791617280917489,0.9182951944068689,-0.7197762600360278,0.8067320680282937,1.3373860182370823,-1.0966888381526103,-0.4608444983901647,0.4608444983901647 +KS,-0.4309381665855412,1.1584834581138819,-1.0806564912442962,1.157438878904149,1.519756838905775,-0.22550945300038316,-0.5656937222302905,0.22550945300038316 +KY,-0.6799984024050012,1.3078335639693612,-5.846013940534895,0.6847411421861506,1.762917933130699,-0.3097851541874056,-3.091117753396044,0.3097851541874056 +LA,-6.953546326214388,0.9426938569090801,-6.3974017517613415,1.3818096828258386,1.8237082066869301,-3.3871078844790286,-2.795969561852106,2.795969561852106 +MA,0.5168209664075327,0.9707370775457278,2.4942721995141497,1.1885725905269742,1.21580547112462,0.33218986385045685,1.4669936435589492,0.33218986385045685 +MD,2.7331982207459458,1.52483546515642,0.6842248405761353,1.1754050446097233,1.519756838905775,1.2695691996803578,0.35613349416434253,0.35613349416434253 +ME,1.8938908269031831,1.5624716696092156,-1.83566979931702,1.0427753176758428,1.398176291793313,0.9032656510286583,-1.052434712476066,0.0 +MI,-0.5356881311881168,0.8929469923563752,-3.4531491637768017,0.5731837064265984,1.1550151975683889,-0.36692565023743956,-2.6780673453901693,0.36692565023743956 +MN,0.3383243889675063,1.1314076107969406,-1.3530830028264047,0.7187904123890178,1.1550151975683889,0.20925151535469433,-0.9946129446567765,0.0 +MO,1.176259191428846,1.2562727455111249,1.2667521435979445,0.998952501067569,1.398176291793313,0.6257832715978517,0.7371814664620158,0.6257832715978517 +MS,-5.187023305908539,1.0710544124515464,-3.181838087967657,1.681247230773782,1.580547112462006,-2.716766742048247,-1.3788900266211415,1.3788900266211415 +MT,-1.0769657021501455,0.9179118368740706,1.2439177960715497,2.746637529267138,1.398176291793313,-0.6439023366708293,0.40360328104725285,0.0 +NC,0.8027108858098835,1.0363589519098417,-4.044958353444928,0.7418068425966107,1.3373860182370823,0.47443387548461113,-2.6449057461926375,0.0 +ND,-1.3217134847564989,1.065153573230338,-5.222123165943135,1.4567092582961796,1.2765957446808511,-0.7949663643175545,-2.696082282452708,0.7949663643175545 +NE,0.5040752165037379,1.0813801338253826,-0.48330482015075127,1.4327432632288672,1.1550151975683889,0.31858585010669027,-0.26261860740914916,0.0 +NH,1.319164712169039,1.1636661380842388,-2.0731435912934586,1.0410016798293962,1.458966565349544,0.7068721117492321,-1.1567073684263898,0.0 +NJ,2.484714563234924,1.1785255823433625,-1.3380404719395536,0.7749380283485001,1.1550151975683889,1.505754147169594,-0.9619995894019492,0.0 +NM,-2.1588910024270103,0.8404096281278046,3.9454109486453905,2.5727440555716186,1.2765957446808511,-1.4125235196414012,1.373723294498927,0.0 +NV,2.186974911831971,1.4152803262295193,0.5630285454637303,1.4699101327703195,1.519756838905775,1.0531014756356754,0.2662945279006717,0.2662945279006717 +NY,0.16519433294321217,0.8557782267478902,-1.5595238179557036,0.8125413850408143,1.1550151975683889,0.11491751237401192,-1.104329190766703,0.0 +OH,-4.414638037113752,0.9017002738500705,-2.0369257252702084,0.707324640545021,1.2765957446808511,-2.824585295854847,-1.3956769232088833,1.3956769232088833 +OK,0.9786331524418372,1.0789085656476076,-2.4269156210384857,0.6936697180268595,1.21580547112462,0.6020532300294463,-1.7337939745470587,0.0 +OR,1.8222706670173245,1.187209714047027,-1.0376350147210793,0.9391047234304888,1.458966565349544,0.9687927503794321,-0.598033099808741,0.0 +PA,-1.3986727320868546,0.7842558907975117,0.028527656204925478,0.9551151036763976,1.21580547112462,-0.9667330586088612,0.018451355488694598,0.0 +RI,1.7450337389071908,1.3492141439481007,4.230687973641485,2.1865267072560863,1.398176291793313,0.8981099108625609,1.6301085811225753,0.8981099108625609 +SC,1.2193141213236807,0.9678664500462015,1.029888503293133,1.220142342915903,1.2765957446808511,0.7611113017254298,0.5832049925184396,0.5832049925184396 +SD,0.590922603699604,1.107164333996254,-1.0931639950999363,1.5212604403340164,1.3373860182370823,0.34035265087792316,-0.5396886811851943,0.0 +TN,-0.090195062325229,0.8943761694642755,8.322858286036851,1.3583296773440554,1.033434650455927,-0.0659943001268443,4.876393876580227,0.0 +TX,1.7761378050437813,0.7023965138228362,-0.6514021191638637,0.5091761389700658,0.790273556231003,1.6798732309679052,-0.6929054515801788,0.0 +UT,1.324245539246065,0.8895961091223195,-1.9506608723850283,0.7200935582967108,0.9726443768996961,1.0046535431723236,-1.6118567282445462,0.0 +VA,1.4623248641093678,1.0806928115922467,-1.66345798358876,0.7417936207780743,1.458966565349544,0.8054129644616375,-1.016338435108765,0.0 +VT,-0.16659645768994125,1.1869199980582361,-2.8313949630065567,1.7524339067205175,1.519756838905775,-0.08639435721343086,-1.2206232924518088,0.08639435721343086 +WA,4.703302266961051,1.1008135417936376,2.06195810226469,1.0626012254042743,1.1550151975683889,2.9477214164796974,1.3138071829961526,1.3138071829961526 +WI,-0.37300815558169464,0.8832832840706177,0.29420704851318913,0.9840981041263285,1.033434650455927,-0.27437630378466976,0.20616629344239132,0.0 +WV,-1.2377078313141308,1.01660909678896,-0.07006745175656803,1.9972605412849338,1.458966565349544,-0.696036291242705,-0.028328567200899032,0.028328567200899032 +WY,-0.9430900533734183,0.703878331506253,-1.1603972238249707,1.469142581544115,0.8510638297872339,-0.853919590129377,-0.6834515659737054,0.6834515659737054 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/state_persistence_fill_minus1.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/state_persistence_fill_minus1.csv new file mode 100644 index 0000000000..35118c8eda --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/state_persistence_fill_minus1.csv @@ -0,0 +1,52 @@ +,dense_initial,dense_initial_se,acs_rows,acs_rows_se,census_se,z_dense,z_acs,joint_z +AK,-4.048191684830667,0.8970697523813582,4.377056011665996,3.8674701569110397,1.2765957446808511,-2.594551814932506,1.0747263386223098,0.0 +AL,-2.9051191319952174,1.2167865033734007,-0.48651043792738413,1.3201238751499236,1.458966565349544,-1.5291895090811582,-0.24726529237289666,0.24726529237289666 +AR,-0.405416993411583,1.0680665554684374,-2.685710492646857,1.4069716796086178,1.6413373860182372,-0.20702994229473332,-1.2423254736156564,0.20702994229473332 +AZ,3.843807491659291,1.4151817786418597,2.1228292887538522,1.1361190125873954,1.398176291793313,1.9321626492802886,1.1783202328464526,1.1783202328464526 +CA,2.9225878233527354,0.5906538721222633,-0.7181825222738283,0.44765749055376786,0.60790273556231,3.448093619025647,-0.9513035848129473,0.0 +CO,0.8809674492820898,0.98023045849131,0.4264986113948952,0.714650612194822,1.094224924012158,0.5996751282337094,0.3263374108900439,0.3263374108900439 +CT,-0.13712000829784188,1.3514663470288042,2.1976649959271484,1.6303966945262747,1.9452887537993921,-0.05788896764957569,0.8658439212886221,0.0 +DC,-4.908187992412584,1.7332714466392853,1.7969366196813894,5.492706307713332,2.2492401215805473,-1.7284804920729555,0.302749332982209,0.0 +DE,5.348836874890656,1.7284089111684748,6.264556458685824,2.865571367630918,1.580547112462006,2.2837585854566265,1.9142697029335978,1.9142697029335978 +FL,0.8820795735107438,0.8641410736104425,-5.090235557400884,0.5823985920811567,1.094224924012158,0.6326332903950621,-4.106476046052587,0.0 +GA,0.30313021997410416,1.0105650010031857,-2.7340585938479247,0.7861697616877288,1.3373860182370823,0.180837381043606,-1.7623820620881954,0.0 +HI,-2.1741066636255777,1.189593256244055,-7.927113157323014,0.8403045589641391,1.580547112462006,-1.0990347481285263,-4.428457448729185,1.0990347481285263 +IA,-0.1910881107042499,1.0302147409877493,-2.7618273071213624,0.8378005928894581,1.1550151975683889,-0.12346515773539984,-1.935578718847079,0.12346515773539984 +ID,1.3600598093768292,0.7702050770913274,3.0198257580514927,1.536874895172609,0.790273556231003,1.2324782591947891,1.7474284760707375,1.2324782591947891 +IL,-1.843685938735339,0.9046266224655412,-3.28677682840892,0.7046820523010107,0.9726443768996961,-1.3880019985638996,-2.7364981794311376,1.3880019985638996 +IN,-1.7791617280917489,0.9182951944068689,-0.7197762600360278,0.8067320680282937,1.3373860182370823,-1.0966888381526103,-0.4608444983901647,0.4608444983901647 +KS,-0.4309381665855412,1.1584834581138819,-1.0806564912442962,1.157438878904149,1.519756838905775,-0.22550945300038316,-0.5656937222302905,0.22550945300038316 +KY,-0.6799984024050012,1.3078335639693612,-5.846013940534895,0.6847411421861506,1.762917933130699,-0.3097851541874056,-3.091117753396044,0.3097851541874056 +LA,-6.953546326214388,0.9426938569090801,-6.3974017517613415,1.3818096828258386,1.8237082066869301,-3.3871078844790286,-2.795969561852106,2.795969561852106 +MA,0.5168209664075327,0.9707370775457278,2.4942721995141497,1.1885725905269742,1.21580547112462,0.33218986385045685,1.4669936435589492,0.33218986385045685 +MD,2.7331982207459458,1.52483546515642,0.6842248405761353,1.1754050446097233,1.519756838905775,1.2695691996803578,0.35613349416434253,0.35613349416434253 +ME,1.8938908269031831,1.5624716696092156,-1.83566979931702,1.0427753176758428,1.398176291793313,0.9032656510286583,-1.052434712476066,0.0 +MI,-0.5356881311881168,0.8929469923563752,-3.4531491637768017,0.5731837064265984,1.1550151975683889,-0.36692565023743956,-2.6780673453901693,0.36692565023743956 +MN,0.3383243889675063,1.1314076107969406,-1.3530830028264047,0.7187904123890178,1.1550151975683889,0.20925151535469433,-0.9946129446567765,0.0 +MO,1.176259191428846,1.2562727455111249,1.2667521435979445,0.998952501067569,1.398176291793313,0.6257832715978517,0.7371814664620158,0.6257832715978517 +MS,-5.187023305908539,1.0710544124515464,-3.181838087967657,1.681247230773782,1.580547112462006,-2.716766742048247,-1.3788900266211415,1.3788900266211415 +MT,-1.0769657021501455,0.9179118368740706,1.2439177960715497,2.746637529267138,1.398176291793313,-0.6439023366708293,0.40360328104725285,0.0 +NC,0.8027108858098835,1.0363589519098417,-4.044958353444928,0.7418068425966107,1.3373860182370823,0.47443387548461113,-2.6449057461926375,0.0 +ND,-1.3217134847564989,1.065153573230338,-5.222123165943135,1.4567092582961796,1.2765957446808511,-0.7949663643175545,-2.696082282452708,0.7949663643175545 +NE,0.5040752165037379,1.0813801338253826,-0.48330482015075127,1.4327432632288672,1.1550151975683889,0.31858585010669027,-0.26261860740914916,0.0 +NH,1.319164712169039,1.1636661380842388,-2.0731435912934586,1.0410016798293962,1.458966565349544,0.7068721117492321,-1.1567073684263898,0.0 +NJ,2.484714563234924,1.1785255823433625,-1.3380404719395536,0.7749380283485001,1.1550151975683889,1.505754147169594,-0.9619995894019492,0.0 +NM,-2.1588910024270103,0.8404096281278046,3.9454109486453905,2.5727440555716186,1.2765957446808511,-1.4125235196414012,1.373723294498927,0.0 +NV,2.186974911831971,1.4152803262295193,0.5630285454637303,1.4699101327703195,1.519756838905775,1.0531014756356754,0.2662945279006717,0.2662945279006717 +NY,0.16519433294321217,0.8557782267478902,-1.5595238179557036,0.8125413850408143,1.1550151975683889,0.11491751237401192,-1.104329190766703,0.0 +OH,-4.414638037113752,0.9017002738500705,-2.0369257252702084,0.707324640545021,1.2765957446808511,-2.824585295854847,-1.3956769232088833,1.3956769232088833 +OK,0.9786331524418372,1.0789085656476076,-2.4269156210384857,0.6936697180268595,1.21580547112462,0.6020532300294463,-1.7337939745470587,0.0 +OR,1.8222706670173245,1.187209714047027,-1.0376350147210793,0.9391047234304888,1.458966565349544,0.9687927503794321,-0.598033099808741,0.0 +PA,-1.3986727320868546,0.7842558907975117,0.028527656204925478,0.9551151036763976,1.21580547112462,-0.9667330586088612,0.018451355488694598,0.0 +RI,1.7450337389071908,1.3492141439481007,4.230687973641485,2.1865267072560863,1.398176291793313,0.8981099108625609,1.6301085811225753,0.8981099108625609 +SC,1.2193141213236807,0.9678664500462015,1.029888503293133,1.220142342915903,1.2765957446808511,0.7611113017254298,0.5832049925184396,0.5832049925184396 +SD,0.590922603699604,1.107164333996254,-1.0931639950999363,1.5212604403340164,1.3373860182370823,0.34035265087792316,-0.5396886811851943,0.0 +TN,-0.090195062325229,0.8943761694642755,8.322858286036851,1.3583296773440554,1.033434650455927,-0.0659943001268443,4.876393876580227,0.0 +TX,1.7761378050437813,0.7023965138228362,-0.6514021191638637,0.5091761389700658,0.790273556231003,1.6798732309679052,-0.6929054515801788,0.0 +UT,1.324245539246065,0.8895961091223195,-1.9506608723850283,0.7200935582967108,0.9726443768996961,1.0046535431723236,-1.6118567282445462,0.0 +VA,1.4623248641093678,1.0806928115922467,-1.66345798358876,0.7417936207780743,1.458966565349544,0.8054129644616375,-1.016338435108765,0.0 +VT,-0.16659645768994125,1.1869199980582361,-2.8313949630065567,1.7524339067205175,1.519756838905775,-0.08639435721343086,-1.2206232924518088,0.08639435721343086 +WA,4.703302266961051,1.1008135417936376,2.06195810226469,1.0626012254042743,1.1550151975683889,2.9477214164796974,1.3138071829961526,1.3138071829961526 +WI,-0.37300815558169464,0.8832832840706177,0.29420704851318913,0.9840981041263285,1.033434650455927,-0.27437630378466976,0.20616629344239132,0.0 +WV,-1.2377078313141308,1.01660909678896,-0.07006745175656803,1.9972605412849338,1.458966565349544,-0.696036291242705,-0.028328567200899032,0.028328567200899032 +WY,-0.9430900533734183,0.703878331506253,-1.1603972238249707,1.469142581544115,0.8510638297872339,-0.853919590129377,-0.6834515659737054,0.6834515659737054 diff --git a/docs/evidence/us-state-child-spm-2026-11/outputs/waterfall.csv b/docs/evidence/us-state-child-spm-2026-11/outputs/waterfall.csv new file mode 100644 index 0000000000..722e69ab1f --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/outputs/waterfall.csv @@ -0,0 +1,52 @@ +,census,pool,D,E,priceyear,threshold_rest,resources,year,model,se_model_rep,se_model_lin,rep_bias,se_E_rep,se_D_rep,se_weights_step,se_priceyear,se_threshold_rest,se_resources,se_year +AK,10.5,10.63727350941989,11.254415609256204,9.02435136344812,3.1898069439473566,-5.183687052791e-07,-0.5697322022690545,1.4433570902785972e-06,11.644427030114809,3.928977062730973,6.332772219323601,-0.9453503305887843,3.7276000489550967,2.241137654723953,3.5040638164930535,2.0521126603577247,0.03298215228155097,4.372699145343724,0.6817792425845245 +AL,15.5,14.52167252274178,17.205738947748628,16.607525526139906,0.735650177580986,1.07987188520942,-1.9091439477247165,0.4732525632909845,16.987156204496582,3.484833374151784,4.77804546692084,-2.7205560965121567,3.5223174566455087,2.6388374629376745,4.06983208728635,0.6673715249789512,0.8836050580573147,4.571534812434057,0.5484052071465303 +AR,13.3,14.504743236755639,12.289322385665901,11.98402738530483,2.5438532189463925,0.5509963901858228,-6.952257927424799,0.0018386149419821196,8.128457681954226,3.0274434908359176,3.501990871084489,-0.22079540730315372,3.1112916661144547,2.2768987052797764,3.4929107627372145,1.6035057602867053,1.2099009504853768,3.013988116186622,1.719967063496961 +AZ,13.3,14.40999099467131,21.57817380236773,22.48985489458919,0.8415248560925294,-1.898300809585276,-6.149879415780821,1.6679867655022111,16.951186290817848,5.358818375942788,4.931830911917693,0.5044988155656078,5.090503828221521,3.2261278430584177,5.829270705029427,1.321820056134109,3.238740273889147,3.3094471744594864,2.8071339390814134 +CA,17.9,18.185493904287227,14.206351955773918,17.979249773877193,3.589052135299837,4.137246287163656,-3.498818200037505,2.2097765111547916,24.416506507457974,2.3311938117816187,2.653037840146489,-2.683603197976119,2.0831537317663544,1.4573480578170288,1.9968815685623331,0.8559752319422981,1.3744373390997158,1.71664341047004,0.9153536269164999 +CO,7.7,7.780825228745068,10.429439428326537,10.858414646733076,2.902252581725811,1.8731911274186421,-4.7942480914129835,-0.4871066810740884,10.352503583390458,3.574357278097987,3.820461090793149,3.2896622437398975,3.8360471968486682,1.8359252840594014,3.4595368031425653,1.6759678649000591,2.259132132610083,3.512544325169379,1.620277272543282 +CT,12.8,11.660081693117474,12.712232820324148,13.00382336387795,1.8704195493681957,1.3103294625190745,-2.813325222140334,6.009815177856899e-05,13.371307251776667,3.8331970400943,5.002325263747212,1.413916389975535,4.14655386444604,2.2383237812416095,4.313974838291013,1.3367070007855022,1.3914640973588457,4.09068898455831,0.9267388649671894 +DC,20.3,18.645680118547503,25.107467339097347,52.7023873632267,5.662351291853067,-3.1562244924176386,-28.338777845152215,7.49556700101781,34.36530331852772,6.134790145191017,10.601939242811653,-1.1142316546901228,9.568992481343626,4.363165545752258,8.829601903655249,2.540200990736752,2.151851212932877,8.810793247133432,6.433538266568686 +DE,8.7,10.205229328533838,13.714216479420614,12.957297100970527,4.485978471644713,4.62797345603598,-2.5538185921803658,2.9117556386974814,22.42918607516834,4.399237582955547,6.87057378619714,-1.6136130313625578,5.194004068848529,2.779774261846404,5.292509162871452,1.70034740830493,2.2678923336164654,5.242385613700745,1.994528806438215 +FL,18.4,17.570857709001235,29.9268735112755,30.877687609630797,2.7521252440818014,1.4754781780255646,-7.463552167058546,0.5147601852730457,28.15649904995266,2.806107561890349,3.962926881590984,-2.652189827442136,3.6779600839690194,2.9679135547959112,2.516264926093402,0.9426372624080697,1.1708790731485545,3.442483125317551,1.4169560358267157 +GA,15.1,14.056486355164198,19.17256511081263,14.40095932417362,3.917789502858997,6.093229346817254,-7.297018232925403,1.3140269457817368,18.4289868867062,3.42227452529315,3.973453086314512,0.3878016486722622,3.4716237015916667,2.5846241771191787,3.994848904264801,1.3835394369165557,1.5031103054468928,2.798323445396722,0.8409443835967764 +HI,13.0,12.161665297509549,12.015548988928836,17.244110656462926,2.876299926989625,-1.412715332529407,-9.805988586604661,-1.8826662300416017,7.01904043427688,2.392571950332229,2.7805868848504707,-1.2865087775896953,3.938121123322486,2.993954610001291,3.7827697380520076,1.2833137210004646,1.011625230789409,4.207160199824383,1.7568596674608261 +IA,8.2,6.697183249467911,10.242234105123712,13.196425186307868,0.848782132355609,-2.1371656196566198,-3.9737753854080746,0.8747162837289741,8.808982597327756,3.488385258421658,3.639254429438333,1.3631199584187552,3.8593788617587537,1.7343918794883244,3.9785312107700133,0.7537441631238818,1.4114359032957051,3.052342995567047,2.6927488390888916 +ID,6.5,5.77134510473802,7.336601852578507,8.131051782451719,0.5776354543891171,0.002669721844990734,-0.44395285547268276,-1.3095767890729308,6.957827314140214,2.480744708886921,2.7396037844431986,-1.229859840657264,2.305527076494853,1.782887939592469,2.5563673088807417,0.4673099197842873,0.5105540919691416,3.0901675260826313,1.1390851446966053 +IL,12.4,11.04112115849542,13.743942334352635,14.164989188467374,4.548007033530531,0.3432968237622625,-5.007118515286787,0.6295170070361129,14.678691537509492,3.8341879094211824,3.8382020965079566,0.17902207673549775,3.6453137514261944,2.38645888883482,3.324716337876345,1.460436075498678,1.3181379143857843,3.131214087127066,0.4545650768490769 +IN,10.6,9.226433776185763,10.788234383701983,10.352642869057034,0.602055347955241,0.5532410041324016,0.9728449894247563,0.25356408294003857,12.734348293509466,4.115777622105123,3.915265266967416,0.6473483081855544,4.1243859844731405,1.7721030830717754,4.03647535947549,0.6255774422686202,1.2210062529980918,3.2244592060024875,0.7911581519537505 +KS,9.7,9.118763273604634,14.943223558144949,9.962971000843254,1.36023629581015,0.7968142699460571,-2.6140191849553798,0.15385973283228638,9.659862114476367,5.442906829832116,4.696231456905677,2.872410402341302,5.05964256765671,3.035819094060608,4.86232040411013,0.8448509903263256,1.6717591592396335,4.1656667438728645,0.7719955175921962 +KY,13.3,14.986227051381514,13.828225052270886,18.59272575763501,3.3191932641850337,-0.37817688957243417,-3.800489240394616,0.8039206687830227,18.53717356063602,4.246948679188216,6.281260601560727,-0.11831392287465547,5.083807360327852,2.504101652253541,4.833218523456394,1.9873402272872671,0.5867344143238985,4.86764855471277,0.8617311471607421 +LA,20.7,18.973724007771963,22.085137122858175,20.194580933906202,1.8009311684830003,1.0128831891794419,-10.447433021844533,-0.47353549296651887,12.087426776757594,3.3275134849654067,3.536744221066976,1.8410481394220763,3.8751536920799188,3.563965118320924,4.866607045650779,0.7863394640215646,1.4383148006214228,3.965515382858741,0.42125273333344254 +MA,12.8,11.621575133384676,14.675608124097288,15.432276127472953,2.885559877630787,0.920575336387358,0.6297899494198473,0.3344724425382287,20.202673733449178,3.281678114588457,5.082037498794953,-1.295798523339581,3.399364828068076,2.0807444189269706,3.490466300740068,1.6098969766212647,1.4883184778270246,2.489924666079278,1.2924400382090875 +MD,10.7,12.208716997979684,16.713304998145013,23.30634250404891,1.3029691235966592,-4.250024549800891,-9.348051363323398,12.154198342699742,23.165434057221034,4.744898883592186,6.042028256286184,0.27917571990234435,5.501162038291503,2.886101209401398,5.4922581998624596,1.093269613648241,3.7984204860238635,6.552849713124022,4.066750719389642 +ME,6.5,5.222029015225935,6.088127903206726,5.7274088844251825,1.1333615210908512,1.1333291778829289,4.454816367831994,0.00018485306289219377,12.449100804293845,6.011362550339514,6.13486277739015,-0.3579982368061039,5.21541786793628,2.4696085483482033,5.217193823227869,1.5197292530579605,1.4988752279475543,3.9348006791061065,1.422242250222687 +MI,10.3,10.154461765799077,12.622334376667215,17.304622119910103,1.4652668879640012,-0.3753686729074265,-7.542845978738848,3.6666874506174674,14.518361806845297,2.8614213068828036,4.000674369632836,-3.0348447662324354,3.616325554225706,1.7140223059423305,3.523882207441459,0.9583713169242002,0.790023143125122,2.6507304733986943,1.5272217132309276 +MN,6.9,6.579645686594481,9.05168677283318,12.552582952572402,0.5139850087825858,-3.211969633922287,-1.4231644816645135,-5.496316555419705e-06,8.431428349451636,4.586538754968796,3.7306098701724806,2.2404337574329,3.173885444704299,1.7343507951530286,3.288010078075562,1.1212720244572387,2.7901684719731725,2.547956318516481,0.29775014349969975 +MO,9.7,10.833770888835303,15.165567534031462,15.310910601606178,2.6962035912078512,-0.516252679637457,-2.745961168279829,3.7348940013530743,18.47979434624981,6.969264747492686,5.195454214849073,-1.469695046235703,4.199961209281888,2.863676886627684,4.012802361394138,1.4291827076627783,1.7419434071197835,8.34938182806869,2.693892525256746 +MS,19.1,17.272611054059027,16.533001143395506,11.967844917314164,3.9697642054789206,-0.9679654802673876,-2.027358863281261,-7.379536808029246e-05,12.942210983876352,2.9790069289119265,3.985885849068236,-1.3176744308811799,3.3895764807828495,2.6443185867566976,3.9856314497984804,1.489098666543192,1.121531921059422,3.549381492477235,0.7023034605484136 +MT,9.3,8.062551231858308,13.034331765361456,17.493919205009178,0.0009337441466020712,5.736212780706202e-06,-14.963915455834387,3.4111003134414946e-07,2.530943570644207,3.435645732336951,1.5861244617479786,4.921677352283282,3.84314438926078,3.271818530813151,3.5942924952974202,0.9076837885311919,0.49284435436215696,4.130645584466395,5.140793239058473e-05 +NC,14.4,15.126721434263738,16.89322219458003,15.755931785462824,2.2819924298081515,1.8735790073312164,-5.029175615445633,3.2186469995470914,18.100974606703645,3.1120495099094923,4.667944264996081,-1.0083139705611188,3.7468038480185673,2.478776597499296,3.7975074005465865,1.2127359433766638,1.9783423927267865,3.052564517234256,1.4983130543700471 +ND,10.3,9.260943865010477,10.488822804193942,5.963289575658015,1.942443617198626e-05,0.0,4.695159022898769,0.47200735101754165,11.130475374010494,3.692103262671444,4.0410378809574645,-0.18201541671212418,2.221705823099878,3.5441556998596315,3.841129578408441,0.7899961997941357,0.0,3.6676535280211784,0.8717499376968371 +NE,7.1,6.7717742784662205,7.595127929561853,8.83763897918886,1.8390467725929285,-0.1803102153155985,0.21297095713536382,0.0025252456722147784,10.711871739273768,4.838732233130637,4.344057457416736,1.5750679973983868,3.1417608490891706,2.13135400728497,3.154614608758861,1.3640639424545469,1.740004915305002,3.6785684349119605,2.039671564493155 +NH,7.5,6.989285032471943,7.264752309850343,9.20042154145905,3.5787298836221897,2.0064587135810363,-6.195114756869195,1.9256828545514821,10.516178236344562,3.2065948453888495,4.614807837439194,0.2649433931486769,4.406233708380433,1.7343402655618676,4.014279663407359,1.4372064494218737,2.047175575621925,3.7838373406242094,1.3712506584341244 +NJ,13.3,14.028221053513889,15.111919351810647,14.122366700093766,1.8116941452660216,0.686477370785178,-5.695553815879603,-2.018635040472387e-05,10.924964213914961,3.379110811323347,3.6050731998973897,3.4155393570330776,4.928030720074722,2.484775629446164,4.8094817437292035,1.2467915279604997,1.0972701062297683,3.664529298328276,0.8906208458868823 +NM,10.9,10.707799039515786,8.458222023113722,9.179683456657026,1.1813433657950931,1.8832908817365503,-2.0929826072801023,1.4725049489480722e-06,10.15133656941352,3.583547022740094,3.9062252843191314,1.3186205179159955,3.992018867935037,1.9044796122382441,3.5165627813003812,1.1358465411688938,2.0163284366285725,3.594937804116573,8.717411240251262e-06 +NV,15.0,15.048839431902843,16.61295815574025,19.623393902835147,1.5214006813870655,0.32479556027285233,-5.292905656179716,2.893380893690036,19.07006538200539,4.319085296508975,5.8055135948679,1.2570587130422268,4.443548954404509,2.8135590655720786,4.647712413393321,1.2550826087479254,1.0576447550127785,3.6017072056835424,2.2029308624086106 +NY,16.2,15.474679110642427,21.247277713032833,16.35358569469744,3.803824405816576,3.016176156988289,-5.629769252933308,0.1833000649559898,17.727117069524983,2.875781716873627,3.5698850096921197,-0.5536587468784901,3.580194440080854,2.164935690010083,3.7361308360910868,1.3219584242906282,1.4395379778768507,3.4204767366371787,1.110003159247747 +OH,12.3,9.942146782005672,12.125989312775257,9.176284846402721,3.2467348046911466,0.22048778306286662,-2.830226965361261,5.429032029621929e-07,9.813281011698678,1.8671208005111162,2.909392463247397,-0.2810378186974525,1.9502170830179841,2.094524886205143,2.599305975747064,1.124814387935008,1.0893084251957805,2.2868879473279455,3.959393649454523e-05 +OK,9.9,11.214848411044043,12.517779785809234,14.08291218503201,2.3458814317410934,-0.19677776310363018,-2.4789482794080246,3.4613298028153245,17.21439737707678,4.089869383458009,4.784835016565054,-0.6091972953695901,3.4860026093879566,2.3211442880178232,3.5637753482363186,1.606503492185805,0.6540762789893155,3.849929456270366,2.3961321575099213 +OR,11.0,11.085986208606952,14.735407120410825,19.664250906649187,0.6792755055554962,0.018270451502414985,-6.830951929233322,2.756180438925191,16.287025373398972,4.419927485268072,5.206864576296931,2.8274103235693566,4.506817187529944,2.2513642584862628,4.432612096397848,1.1539804089458952,2.038571464740183,3.394875164601997,2.3471166364843374 +PA,11.1,10.941869826886544,13.215526922514002,12.767784123857524,1.7873006658944444,0.08805498506003952,-2.987167118607895,2.479342519801338,14.135315176005458,2.8133696851903927,3.248356681256722,-2.601320496316694,2.969743982196118,1.9054635315101007,3.3455671004511927,0.8377476727637634,1.0398051126024697,2.7352902658539793,1.1915761649857752 +RI,8.4,8.076501658479588,8.976898416653531,19.33281244458234,3.3895465844070807,1.19006553539349,-6.18928488131511,0.1517437271640382,17.874883410231835,5.529672101056756,7.039949763613315,-5.760450773377322,5.567025846099409,1.900087660615112,5.330720803858343,1.350401832535097,1.1451623279871543,6.518990324992517,2.286945886328793 +SC,11.1,12.868934143856452,13.126431926501285,16.065761649922184,1.5796134095546182,-2.148468541802648,-6.609484710155482,0.9972159016502958,9.884637709168969,3.4207999101280673,3.5625308459596647,1.4431346129201987,4.310726210598687,2.3122221840217296,4.005392745342135,0.9215177339197754,1.8066577528255836,3.787594627615244,1.0702716521980604 +SD,7.8,7.258550860609268,7.545697095129562,8.962036651115069,1.108583218501344,-0.2681060448253556,0.7227820134058565,0.8136882553939919,11.338984093590906,5.2634290299995135,4.7545850659567925,1.2873089660433923,3.9668329226287264,1.879317163148604,3.524846230158049,1.1755462386706623,0.562657424094816,6.111841911425095,0.6992385966058686 +TN,10.0,8.346465012882406,12.57204900388962,11.157478600297567,2.656749883212562,1.8215655813653728,5.444933489577721,2.156356427475789,23.237083981929022,3.906686326755696,5.143819316231732,-6.927953788689663,2.9856453509324816,2.3253286183225192,3.5209582604153637,0.8438052736971025,1.373432795494584,3.7716959252596394,1.4898929436578594 +TX,16.1,15.824676189819398,17.729657601322778,19.423503557645457,4.365704347902535,0.33777750499630954,-7.485342002839279,2.6027274739073887,19.2443708816124,2.5708785076367486,2.651235362434403,1.370179908942955,2.1745031946259807,1.570053265837349,2.175600002683725,1.2177926958185112,1.2859390249513867,1.6955810556764113,1.2197875718859852 +UT,7.3,5.832767479223378,7.393320952153149,9.80353100440673,3.2920880021385095,0.4653621772785486,-1.622939226230534,1.273255616068242,13.2112975736615,2.9785149106747224,3.6996600431023254,-2.7272800329325104,2.751887705760448,1.912333254843988,2.9466497520225015,0.9339116749804481,1.023945400496479,2.198183859553673,1.0307751736211541 +VA,12.1,12.148499557997136,18.802346087664425,21.46223470703344,1.6263232734734958,-3.095722258749838,-1.864471871498282,-2.0749780399810553e-05,18.128343100478418,2.901130668178834,4.435237116964007,-0.7775240082651393,4.221840394319258,2.8953247542060696,4.746288199717671,0.9050145413098978,2.3175776199324045,3.248685691389076,1.0656948328650433 +VT,8.3,8.513468224047331,10.197888340394691,17.300133702601787,0.8260306069714426,0.12622248311514456,-1.8309535712369052,1.25726699112276,17.678700212574228,4.1639070724950455,7.094454518557269,-3.428126236304866,4.149809629703144,3.6426588461380542,3.9885718993698736,0.48294037479306534,0.9355267680105603,4.230368471092992,0.835726263104853 +WA,9.3,9.860580805991583,11.108326891761413,12.491540240583936,2.6338892278369013,1.540015576250147,-1.9392041336886645,-0.5193108551276688,14.206930055854652,3.6147767420943744,4.267283147442617,1.032910783909779,3.5693503813797935,1.982686325281928,3.181728799792755,1.1650377153536455,2.588995887397309,2.7770364762478463,1.0396942039299841 +WI,7.3,6.517508913056166,10.404423491398974,9.744145371069516,0.5468975444964648,-2.5587729240191175,-0.6976406489618137,5.31192845928086e-06,7.034634654513508,3.9297119831557286,3.08294960963598,3.566309337218512,2.997717948141898,2.471135776504944,2.8742233910351076,0.5709351068405699,1.046675047077838,3.121923603583834,0.09218343778316075 +WV,11.3,10.30014542242406,10.969674553034986,14.862075940319254,1.661377491473943,-0.21102110087279863,1.61928660365896,-1.351907882549874e-05,17.93170541550053,3.137463236331653,5.962326417829841,-4.190579827087916,4.074502165862821,3.021278468253669,3.564707025782738,1.1133765530644797,0.7468515151479515,3.4782349058369255,0.14200344381758134 +WY,6.5,6.071717280743761,5.775446188189179,8.723064218446828,0.7611396798742308,-8.584912097893036e-07,-0.6964848058489868,-0.00015908255439566466,8.787559151426468,3.565728619489772,3.416415435764844,2.876768559116556,3.082804897013115,1.5695453266127821,2.4535888604713216,1.5615364294637295,0.2341596718628397,2.7258217407372336,0.9694772896564248 diff --git a/docs/evidence/us-state-child-spm-2026-11/receipts.json b/docs/evidence/us-state-child-spm-2026-11/receipts.json new file mode 100644 index 0000000000..df45dcd15b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/receipts.json @@ -0,0 +1,808 @@ +{ + "purpose": "Receipts for the state child SPM note. Aggregates by state and national totals only; no household rows.", + "date": "2026-11-07", + "model": { + "policyengine_us": "2.90.2", + "policyengine_us_commit": "469ad12cb957", + "policyengine_core": "3.34.2" + }, + "benchmark": "Census P60-290 Table 18, 2023 to 2025 average, under 18", + "data": { + "default": { + "repo": "policyengine/populace-us", + "revision": "9a814a3b3b53c0ecd6e1737b6ec862c31300ef6f", + "file": "populace_us_2024.h5", + "sha256": "6496cc4393d4d3c6574f76eca231de5898c803b9067645591fd5c4d3e65aee84", + "bytes": 826917837 + }, + "dense": { + "repo": "policyengine/populace-us", + "revision": "15cefac484174ae0ee11a82b164f58023ad05c84", + "file": "populace_us_2024.h5", + "sha256": "2d9c8586c45c32e5ca27357317f4de93b526cc51dd28b15b71ed43e47e142e79", + "bytes": 2509287855 + }, + "acs_local": { + "repo": "policyengine/populace-us", + "revision": "725d89993f6b2dc4821fd5c3620f0f3d4d630102", + "file": "populace_us_2024_acs_local.h5", + "sha256": "3ce781c440a7f933b1d952ff4e9d9f65f4698c64b94d2fad165af0c662838d6c", + "bytes": 9819603807, + "rerun": { + "read": "2026-11-06, by acs_split.py through HTTP range requests (remote_fixed.py), with no local copy", + "identity": "the Hub's x-linked-etag and x-linked-size for the pinned revision matched sha256 and bytes above", + "blank_parent_links": "fill 0, which the model reads as unknown; outputs/*_fill_minus1.* keep the earlier -1 fill's figures" + } + } + }, + "external_inputs": { + "_build_artifacts/acs-local-l2-basis-20260928/runs/dup_release_repro/weights.npz": "e4210a98d415bcff95d57741730af5b657e7f280cea29f88fa50276927516ee6", + "_build_artifacts/acs-local-l2-basis-20260928/runs/proj_chi_s050_0.03/weights.npz": "afb966f4fc16d5c14f70d2ba3c643c63a675f6e6be89b5a07a0028d01b62dc45", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s050_0.1/weights.npz": "b1d7b52a0ab9bbfedf309ca2972bb6b1ceba712da17b237c79983d73a63ce170", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s700_0/weights.npz": "4bc4a1cdd751e24da32ceee757f1ee0e3c64cf3545f93f13e9a1b8a09e634e8a", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s700_0.03/weights.npz": "25a3ecbd5f6ac31415974048350a48319f9f263a572a9e74243837e66c9cf419", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s700_0.1/weights.npz": "4499a1cdf3da9778e1b0db990b0b7c32fd9ff9872517360a01d42e63c9b44936", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s900_0/weights.npz": "1174bb737c327ced6dd07650cab9d6d437a9e2e076ea34c278d385c0b34dd4b2", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s900_0.03/weights.npz": "f8e35eca816fa2e07edb217d78c05f9ad753543441de3d24d7e3a61756b0b8bf", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s900_0.1/weights.npz": "d27fd2a230ae287b3c646c3341ec9a87afb703af2e2c3fef248f68eb62550ac4", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s964_0/weights.npz": "77ae091001843f1d763131ea736d25736ded79fe35a4c44457bb8309222775cf", + "_build_artifacts/acs-local-l2-basis-20260928/runs/soft_chi_s964_0.03/weights.npz": "e22df339370b2e1d22876067542bba58fb4b1573456ebc2c6f80ddab8f15594e", + "reviews/pe30-population-2026-09-27/out/calib_resolve/R0_full.json": "24fe95ad9d0c6b9b8eac080b251411d50f35487ba816e89a12f8a85237e97e09", + "reviews/pe30-population-2026-09-27/out/calib_resolve/R0_full.npz": "de2f96125eae75a5a626351f4ff85390091dfda64226a32b9448975c70014371", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_aca.json": "89b7a5e4955bcbe44ab1a5b037244c932f906c8e7afdccfb23063fca66834869", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_aca.npz": "0018aa85295524055b85c2ea64c66b1fbc8e455fff879389849e7430111d075b", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_all_eitc.json": "f1a73d69bfd3fd3836b57ebffe2fb6f7f801ed0246a18da4a73898d9a3f4876e", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_all_eitc.npz": "0916eebc15b21b43b373bdbdfa5c1dca887aa9e4279a8d3959fd3f40df389dfb", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_all_eitc_ctc_actc.json": "a93cc6e919f602cc6e676a0655e7d0e6b7e179ecc306db18e1b885f839bbae81", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_all_eitc_ctc_actc.npz": "c8b6d18740bbdab373b5927e20403bd85e897527eb5a03049c0f90acac81ec48", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_count_eitc_ctc_actc.json": "bb3f72c1fd53d21af1bec2fd03d60713dd0cb8a07374acfe2d2918bbb261c49a", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_count_eitc_ctc_actc.npz": "cc8198bea293e0e65d2d87de0cb048c54dc37d4737471dcd25ac4ff62ba59416", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_ctc_actc.json": "e8dafa308ac214e828f71bf41cc66df8f4de10734a4c3b8ffedc7bbe094c915e", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_ctc_actc.npz": "1b77dedd2da04810530f71ecf6ebf24d40f24fce62778e2fd9c1b2f46053592d", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_ctc_actc_tax.json": "d97c75780bb30402a9cc5a151957e57d2924c1bf6b55cfa0f0e231e6c6094419", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_ctc_actc_tax.npz": "c26a54916896e654b44b624743eb066ad2928597d1c549ee928ee13c0dd94b31", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_ctc_actc_tax_count.json": "0f8e8d9772a21886a8cca7d6c73599d4a02281748a195411129ffbcc8c9b6ee2", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_ctc_actc_tax_count.npz": "ab5f3fda5b7ded14072727fd50a8f0cd9fd5a7ec3da4b245bd8263414e078f64", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_medicaid_chip.json": "3fd9b0b281ca9dd672b5312091f9b810148a5a7f5932a75c635509f517a43c2d", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_medicaid_chip.npz": "1d838b78aa9cde081ffc67c0249e2ff81a9f6a9e6aa93de9c5479442e1ece4f5", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_bea.json": "00b71dfbdd8544de40c45c2576aa3283f2c8dbe6cf4f8aa4770c07929da91bd3", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_bea.npz": "2e5381b889101eb1c9a2ec3f74c07cd9ea303c470a569f1105ed5a39860f0d40", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_cbo.json": "8dde58824fb4a179dec25a4b971209f876e73c461bea11330c77f446046f67b8", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_cbo.npz": "6adf64d7bf8b5677293bf0530aa12bbff7ebd9f93a4016a259973c036b581c8a", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_federal_reserve.json": "abf902b1b932aa3026c6bf10d5cbd1b62ae0ba4b7d4b487a82c0d2068bbf44bc", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_federal_reserve.npz": "c9fd8567900d4ae4dbda77575d4ca8ba98f804456ee8e2980474b5cd197ce7c3", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_hhs_acf_tanf.json": "5fdbb2847dd04caac539ac9aab3f087e4dd9683069e785e6e35e8bf618b74399", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_hhs_acf_tanf.npz": "cc3d615565bfa808d911ad88effba3a7c6cdd79cd617107b06759a08f876b3f2", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_ssa.json": "abbf4190d36bc435f0e67a34a57ed5e95de56d0e3c759ed2d0b5ae1942a4fb1c", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_ssa.npz": "17c9e9601eec8d36319ec7221e9a65b23355810ea1f30b0d4552f44ecf125d76", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_state_income_tax.json": "29b28acfa8d606af9ca4c53f972828a6ac7df1e21bb61fc062aa34cacb9479b0", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_other_state_income_tax.npz": "b9e38cbc14b98b5326970203746b257b65b44c74612e5510aa088d997f58b825", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_pep_national.json": "c2ff723358be09dc6a3ed607ecdc3a470c66af56f5fb0e6700a94a6803d02d74", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_pep_national.npz": "35fb8905dc676a6b63449223f4602d13acbced390aefcaca25085b2a4d66e09b", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_pep_state.json": "02ee16eebd0de24a178c04c3e1090397d992838dcbc4038a176e5b075878a24f", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_pep_state.npz": "de4f5c80e4c34c41b93035d69cf5bc81621681381885e2a0b2f07a3bc1fdc727", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_snap.json": "9f0236697cbc6844691ed9edcd39bc460652b6a11868e6ca4b90ac70261e2a13", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_snap.npz": "16dddaf7b493144e0545babe9bc05be151340da9e434a3b6f70410c1ef4a9d14", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_actc.json": "f8c4ead73d8725d3b597c6ab28feb11b4ef9641f8ff591008a4389a3fcf10007", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_actc.npz": "feec98b64b38cdc38e1041d83c7f9231b9f7bb3ca06921b433fc66c9fbc1fdc7", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_ctc.json": "feac6d11c081d2abb51190d59f00a588f38094a9b3b0dc20fa26241931fb1969", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_ctc.npz": "cd0d39f562e931f379df9ebfcc550bd372708bb17b9174016acc596f78d15ea1", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_eitc_other.json": "939bdbffef7eeaf87fea9f2c5cb4b0d3db57d05c4b2b8fc494c296b9b7894437", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_eitc_other.npz": "9841c6b7aab3a0abb28a3038f16911f29bf8775680912d33757e5cff6495772e", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_eitc_state.json": "d3d6ef6ee268f121437039d4963b13586819704dfa4cddf1ac42bca342977add", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_eitc_state.npz": "9b7a8794b415a0cdd0149b1ee8ba878994d85d048a1c9ee3144ee5c35dd8e02b", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_eitc_t25_by_agi_children.json": "1ae4eac907bcc7998cf35fbc60bff6345400aa733d99eacd6fd65ec62e379c6b", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_eitc_t25_by_agi_children.npz": "db635aa7ec3279e3631c4d8e1451e148c28571540b686a1e856d4b055b2a154b", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_eitc_t25_child_totals.json": "8117dd24ca92c36311d374bd6bcbd26c50c0cfc8fad8beb45d430e01c281ec72", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_eitc_t25_child_totals.npz": "c7622fcf49a5cfa8fa481e320e207b9ee69dbb43b2fdd5b7931f493a1b6e1100", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_other.json": "3bebad5f488738ab9ec5069155d33f6cfeee6414bdc44da7210b7f6b48ddebe1", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_other.npz": "2b394b4fb40930758e6442774bee98dc7067ddbbbae98511797006343112d1db", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_return_count.json": "d081062b07ee49af7714dc612979a643b1cf8087acfe6a1dc97e087921e52ba7", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_soi_return_count.npz": "a98c39ec62a5087e624152645321d1a5da84f17aecdceb9bc95502995585fafd", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_ssi.json": "b54ede42553a6ca111ae7143e3e3b2035a5a32dfc061cfe8204ee019ee146ee1", + "reviews/pe30-population-2026-09-27/out/calib_resolve/drop_ssi.npz": "335bfc687cdd51d18bb3481da59cf1ca531fd09528b10d52086823b32d36864f", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep.json": "14e27888cb93fb3bd75b8bb045d2f9967b235c85374e40da87b3f1ae71180207", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep.npz": "1e91de4b77f39eeac23260dec08215ff64701c3e7eea60556225d54f94fd6e09", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_actc_only.json": "165dc7a80379833e4041986557142b13147599a28963d79370c9e48f23ff8c7e", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_actc_only.npz": "6cb5b3a253fd543ec85926af4dc68a728aaeb131d0455f5eb3f1e9778e03c5bf", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_all_soi.json": "c8f45a7a2d0d536b54a9cc61aa930b5e3f0782754851ea4368e3318f38a7c6b4", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_all_soi.npz": "7b2084d2b467a5c7a3d2e35420f76f507f143299573b35739450950b5a80f3b6", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_count.json": "535a4c1366142a0c8e7587b7c609861d1d7019143349e26b7a8ce91c759d9b01", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_count.npz": "1be310e9f9f6881a33548718e4454e9f7853df014d519ccefd7df7e4325350c9", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_ctc_actc.json": "f9818a50362999dec718b93c90c874bf5a6f75c6721608922c5e728f080be1b3", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_ctc_actc.npz": "b8c25d6ba70873c09d09e32d807ff8f3ee2a7796e4d188ea8569155471cf6a07", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_ctc_actc_count.json": "56949015d782465f54f9982907477b9dbe8523cce523c7621937a682f29b5eec", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_ctc_actc_count.npz": "322bc476a1edf0f70e83f027591bf29cd1fcce004e6af2ace3ca513215c277bc", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_ctc_only.json": "c6ae3073339761e1c5dc3c7b56b47683edc738ea8db0d4e7431af334d330dcf1", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_ctc_only.npz": "9fb0b43917477a0bd562512111003999a0bbd953fc6027a57665043612f30705", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_eitc.json": "43ea9e7656dfde865ccdc9fee22d4927a6f209fc47f97b09aadc8c12f64dac3d", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_eitc.npz": "aaba08d6c09cbb7e81899b2e3b2f382f789a1443372b4ada0ad986a937a31fe9", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_medicaid.json": "42670755ddb575b52d7be4c4b34a76f81e78fa6715bbee68f99cc3b72e341b44", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_medicaid.npz": "92707af23b8205ef1c769c514420928816d3c1f72e7caf9a195f09a403e6d028", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_snap_ssi_aca.json": "c1e65dd64b36001fe190dd52fa303b1bdd9fbd4e2d78961a19ac4c97c4e96a2e", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_snap_ssi_aca.npz": "f170c0cf3266cb79a69dcf1c351e485932cc1f9b03a55f9893128b1de3692d5a", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_adjusted_gross_income.json": "eed984724ccd08ad4233a875a9d2ff8208f9d8a33da7c4e3d89d7bff69134100", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_adjusted_gross_income.npz": "26b61a6d9eab7f6d626574f49f052741a09fdbde4671aa03b5e839a82ba3edcc", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_employment_income.json": "cdc8c0c205e36c2bbe20f208e411d21705c9609413e0fefc29cd9796537bb243", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_employment_income.npz": "05fa2efe44ed6d7044dd488bdc7a93f8da93a8bc205d8a5c5ca729e1678e80c9", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_income_tax.json": "14d08274a006e31ff393184dda332a8eb48b6226899f5fddf60b1d6b9fde0c84", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_income_tax.npz": "63620a78a4281769670e94d8087cb65b509c8851df027323fa1e04e2762c3c09", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_income_tax_before_credits.json": "a20c14780f1099f7af2c112ef4ae292000558c15558c3e2dac934ad804de0fca", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_income_tax_before_credits.npz": "53206d68ee3cb1742cd0f37d94f9d1ce149b7db2fed0f2083a0a32b0a35c98d2", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_other.json": "d604ad711f2747146f25e7675447a53780f5d8e95859efffb0a47c1b05f73643", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_other.npz": "01d3d6925eaa4d4353126a0bbbee2eceb2af7a5cd99f4247900ebe0741a2a84e", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_tax_all.json": "432e579500f37a7c807b6c73f5c2de75649d7fdfdad35f0c4488b917e236b119", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_tax_all.npz": "a37417a7e440188e4668729fda35d8e1a10f9ecf4d64cb2b8c526f301a0c97e8", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_taxable_income.json": "b8a23a759914c50677cf899a9dae420af8c9aa5465f2a4510ef8d14681723699", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_taxable_income.npz": "11ab6191cb879d2c75f012d6aa09f983595d89e186443cb3d216ca355b49f433", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_taxable_interest_income.json": "196093441333cd5bb3ce1748ab540099c453195c959796c3b738f0d53f2bd727", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_taxable_interest_income.npz": "3866f4de1dcf5597140989fe28d61b383d711f3f210346f1839d04f1777ed701", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_taxable_pension_income.json": "acdd5f1e5c248f57a155dbd10f86b9998f08be5112ac0cfa9fd38b5c4645d297", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_taxable_pension_income.npz": "bfb662608e900dc29859a331185290733978843c3b0065a8b940bd14b019514f", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_taxable_social_security.json": "d90b581be96859e5efbd13daf805d9ee4585a4d0f42d3f26055a8d9d02e2acfb", + "reviews/pe30-population-2026-09-27/out/calib_resolve/keep_pep_soi_taxable_social_security.npz": "b70a4c67f53162fb0aa9ad0f25a2c1fe51196489559111f8b1b38318bfd36837", + "asec/raw_asec_2022_2025.parquet": "f6e2fc00990825c8e76c406877053971eb22198f88c741e18b448be9318fa209", + "dash/state_audit_buildp_v2_2024_raw.json": "6a33e0d744f416c97866f54c5c4bd65806cf490cbc0bc7b6c7a4c09323469327", + "dash/state_audit_buildp_v2_y25_2025_raw.json": "3e5cad7d417c29e0b443529d40f6a5c49dc346b45f4654e6ae5fc70ac743db0f", + "dash/state_audit_o1017_18252_2025_raw.json": "5ead79b6b35fae9eef8705982cd5475e44fd5ec8a3062ffb14e05522f34834e4", + "dash/state_audit_o1017_221_2024_raw.json": "4741ebee91556fb2f58f8e33db7f2b98042bbc2a0b95802e1b2f90a48f2dfd1d", + "dash/state_audit_o1017_2301_2024_raw.json": "0fd5b543c5464c6d4d60fb1170fdf31caaa381312b9efa3acc550f8cd87476eb", + "dash/state_audit_o1017_2301_y25_2025_raw.json": "aeabb5352dca1fe73c6870a7c880a6611b993e029be2db8c37c95d26b2d781d2", + "populace_us_2024_calibration.npz, revision 15cefac4": "bf4ce57ed14c6b7f47a601a9a35dc9ba85f52045b95ad1ef1ee2925f64bb272f" + }, + "note": "Poverty rates stay holdouts: nothing here entered a calibration target.", + "files": { + "outputs/ablate_eval.csv": { + "sha256": "c577c66835b8a8c740b1507d6559ad0fbd8ec3ac672841ccefd420e3bacb7012", + "bytes": 10183 + }, + "outputs/acs_eval.csv": { + "sha256": "32aee14da0ff0de4590980ed68c2ff55326dcb766c96f6aa8bc20edcf4bdb54b", + "bytes": 12152 + }, + "outputs/acs_eval_fill_minus1.csv": { + "sha256": "376c147a3eda66adf5c5c91750f0e64845af8d628f5f22bbd49f755d7e04397e", + "bytes": 12153 + }, + "outputs/acs_rerun_vs_deck.csv": { + "sha256": "90238db9d17c7c81ddfc55027aaf42dcbb17f7db8a37ec2ac951a1fe8941905f", + "bytes": 3230 + }, + "outputs/acs_solves.csv": { + "sha256": "8b73ad87254a24137fcaf362331eb4dbd7c7e42417d862bcfcbc754499de5f12", + "bytes": 3427 + }, + "outputs/acs_solves_fill_minus1.csv": { + "sha256": "52274cf8655c6958fbc0e3485b4d806b7e6f8a3bfa7a38a3e1c42cdab74e3a5c", + "bytes": 3427 + }, + "outputs/acs_stored.csv": { + "sha256": "f0ae96174457e002a14d0108ffa33483d7557c539ccefb467bba58a559fe9b61", + "bytes": 9218 + }, + "outputs/acsrent_eval.csv": { + "sha256": "545d2a50f5485e40f054cc19d3b97b908231194074fa1685e2a7e07c13f1f4c4", + "bytes": 12164 + }, + "outputs/acsrent_eval_fill_minus1.csv": { + "sha256": "02400416f37d7dabd7b666fcb75f140566c7cebfee8cf3fa7b2554ca639da7db", + "bytes": 10853 + }, + "outputs/acsrent_reform.csv": { + "sha256": "787f32b2e12e8381c4aefe8cce16765f326cee6b02338a0b751e38e489e8c09d", + "bytes": 5207 + }, + "outputs/acsrent_reform_fill_minus1.csv": { + "sha256": "42e443027f04b30f71d14aa239588637c2a647420724a62c4756abca2ca67a2d", + "bytes": 1621 + }, + "outputs/acsrent_solves.csv": { + "sha256": "08033201ae932adf3ecf0b880c8e1dd3150e74fabb32ef70aef327c7a1704787", + "bytes": 3422 + }, + "outputs/acsrent_solves_fill_minus1.csv": { + "sha256": "fef3ba85d72e2389f2f5d0545ea21f843ba1226384991f666db2e1c5c17a8037", + "bytes": 3024 + }, + "outputs/asec_state_raw.csv": { + "sha256": "5e28ec94ce143145bd3d8335d2820a90aab8ca9ecb9ebf43e996690a3eab5a5c", + "bytes": 8183 + }, + "outputs/blank_holders_state.csv": { + "sha256": "a6e576a1320a3e9a5039767f03ffb54fc39f6e41f6ce0e9b502f8fb45f2137af", + "bytes": 1299 + }, + "outputs/calibration_step.csv": { + "sha256": "6b032159cfba7d90721ccb049b152a599c75e09b8b8d3c480b1f4c266ba9ab5e", + "bytes": 889 + }, + "outputs/census_child_spm.json": { + "sha256": "8ad84ee50d588e94b904e057b684b43e3ddbb543998ebe6988e9d9a3985632e7", + "bytes": 3130 + }, + "outputs/census_flags_by_file.csv": { + "sha256": "ebc854c4a6ebacc9110db0165fe8abf33ca09598d00121007513b792f19cbdac", + "bytes": 12847 + }, + "outputs/cf_state.csv": { + "sha256": "36d2936dd31e544fb48750fb2dfeaf7375bc1388587bd676a6d8419bd7dc9f4c", + "bytes": 7147 + }, + "outputs/chi_eval.csv": { + "sha256": "dbda58f521648d94b599d2315a3d84464dcfe2f32e8aa1b00e4281b0c6302ba5", + "bytes": 1399 + }, + "outputs/dash_swing.csv": { + "sha256": "97dbc88024fa207f93df893057beb84dd356ad1f705e3bf1144afc6d1d49fb7a", + "bytes": 6129 + }, + "outputs/dash_swing_fill_minus1.csv": { + "sha256": "97dbc88024fa207f93df893057beb84dd356ad1f705e3bf1144afc6d1d49fb7a", + "bytes": 6129 + }, + "outputs/default_noise.csv": { + "sha256": "97aee00d5f5cae2d2012dbebffcc9f4f1af86cb6d088b642b40386a497633621", + "bytes": 16058 + }, + "outputs/default_noise_raw.csv": { + "sha256": "6d3fa726accad54acf10ebdc012c619f199cf1a6b9b9ea721a0b2c1f2fb421d7", + "bytes": 9922 + }, + "outputs/default_paired.csv": { + "sha256": "06b31f6d1b20951f7aac802202497251c0171524189de3d9c0bd17b30fc3641d", + "bytes": 18543 + }, + "outputs/default_rentfix_states.csv": { + "sha256": "957627507472c67fdff1d31f3592c4bec867ca57eebb41d2eac7e0d1aed0977d", + "bytes": 3425 + }, + "outputs/default_shapley.csv": { + "sha256": "544a35e0865f5e7e10bc1b83a0a936cb20e4bb8f19d353bbbae344c917f27262", + "bytes": 11951 + }, + "outputs/default_shapley9_all.csv": { + "sha256": "8a2481000413fca2a6d7237d616a278536db779594bba42dc7b1eb0a309f2d46", + "bytes": 11402 + }, + "outputs/default_shapley9_asec.csv": { + "sha256": "50f6b75ff018af8a26de5e47e48c8823e5e8ee743128522af64e375c29d4ae58", + "bytes": 11358 + }, + "outputs/default_steps.csv": { + "sha256": "7d6601ac269da3167355ec86a062491fd873207696472a4e378fe00a01d5ce0a", + "bytes": 14027 + }, + "outputs/dense_fit.csv": { + "sha256": "f4c45b99e13c3f6cd1f5acb2cc53d8c0934fa3fbff559dd5515e3f5e176af66c", + "bytes": 14125 + }, + "outputs/dense_rentfix_states.csv": { + "sha256": "1adc01ba7ba15a3828d43afa7c970a8e059e04926f8b66267fafcd36987f48da", + "bytes": 3470 + }, + "outputs/dense_shapley.csv": { + "sha256": "9cc6cb668d8fa8b0a1c2f8a36fd1ae9b3d82bbc7a819cf68622173c815a36981", + "bytes": 11976 + }, + "outputs/dense_shapley9_all.csv": { + "sha256": "5cd58e15cd6b81bf6c8dfa571592d1be519c261e1d2714a04771874d1f5d184c", + "bytes": 11541 + }, + "outputs/dense_shapley9_asec.csv": { + "sha256": "58b4c9e759bb63caf2f46c6d4a063d4d08e6ef1b69cbbe797cd78f803bfcc802", + "bytes": 11429 + }, + "outputs/dense_shapley9_puf_tax_detail.csv": { + "sha256": "f42376f6ae5aad6ba82c62119d3341c2e379b6c43254f6105720768982b90a33", + "bytes": 11446 + }, + "outputs/dense_steps.csv": { + "sha256": "6e1d4a6f7b8aee03362d9c023a4e35943a8f5264472e739aaf64deb0db1bafbb", + "bytes": 14122 + }, + "outputs/fill_moves.csv": { + "sha256": "53c4108af4b728d929fb49b64aa4e603085b8272536b17e816de3a67023d09db", + "bytes": 945 + }, + "outputs/initial_fit.csv": { + "sha256": "120ce86c3602dbf68c32561bb544162f842ae123bda2ce74970e8e186becbd7d", + "bytes": 2578 + }, + "outputs/initial_fit_states.csv": { + "sha256": "403be3385bd260e3eb80c68e257e472188214e6199e02b3f85f15d1573b56180", + "bytes": 7856 + }, + "outputs/kish.csv": { + "sha256": "71d3effe7aa843ad4eb2c6ebc368ccfc99ab4b1edc61177844468253174e566a", + "bytes": 4872 + }, + "outputs/logs/ablate_noise.txt": { + "sha256": "ecf6ebde31a35f085d3499d3bc15c29ce305763e6f3346b6040dc03326da72bb", + "bytes": 1692 + }, + "outputs/logs/acs_eval.txt": { + "sha256": "a9d0efceb309ffa49b6ca5409d11f8410c59f9d79be53c36ebc48eb8145bb5cb", + "bytes": 9939 + }, + "outputs/logs/acs_hh_split.txt": { + "sha256": "cf8e13dae874188aff183b51b91702a892e72c63b31e3db36f8fa5e23ea8f568", + "bytes": 127 + }, + "outputs/logs/acs_reform_cmp.txt": { + "sha256": "44523e263eac60944c8ca81848440a65ed170892158643ebfe5329498c3cf89a", + "bytes": 3861 + }, + "outputs/logs/acs_rerun_check.txt": { + "sha256": "2bcb97f67ae25fe522a1104a1bbf9e60077cef1bf427b25d74e4487977a3bac4", + "bytes": 564 + }, + "outputs/logs/acs_split.txt": { + "sha256": "59a99ca0c62654485c355d92960ef17b43abcd324133f084ae3329e09dc742aa", + "bytes": 4096 + }, + "outputs/logs/acsrent_eval.txt": { + "sha256": "001683fd8833e1596d9d32efaa3e42fb4cd90e8d49ece2a3fa6f4ff6e8fe3620", + "bytes": 9940 + }, + "outputs/logs/blank_holders.txt": { + "sha256": "18d8d4a7d2e4a29ad7764e2e622bc1bc512f80c86d375161e9fb48146bebeb7e", + "bytes": 720 + }, + "outputs/logs/ctc_ssn.txt": { + "sha256": "1d81a564a70fd2ad43424f5ff20d3d974e023ad4fc91ee56ebdfc6c2350142a3", + "bytes": 480 + }, + "outputs/logs/dash_swing.txt": { + "sha256": "2833ea5b2ef6f9bb7549af501d53a98dc9c1e2c6ef4f5519ad6687349812069a", + "bytes": 707 + }, + "outputs/logs/dmiss.txt": { + "sha256": "9349ae893019dd6700f544b1286479b2d01ac9b3b93392df807d61a2cc1b2d1b", + "bytes": 1632 + }, + "outputs/logs/fill_cmp.txt": { + "sha256": "567549d7f3820727125488fed0d60d3f2f4fb074ce6612ab2812d4a867729e18", + "bytes": 3722 + }, + "outputs/logs/fill_trace_CA.txt": { + "sha256": "182344c4b4ffc4cc92d09a17e52135e8d0f09d636b55e8089e9ae0ff38d3a017", + "bytes": 339 + }, + "outputs/logs/fill_trace_DE.txt": { + "sha256": "8cb45f930c2a30918df58bef976042ad1f307fec7d0657827014404665ddac19", + "bytes": 338 + }, + "outputs/logs/fill_trace_SD.txt": { + "sha256": "f4d8bc6cf61704705f7bc6b1a4d3ab00edda5aa31530269173dd1465b3fa9c5d", + "bytes": 486 + }, + "outputs/logs/fl_reform.txt": { + "sha256": "5aff90ea017735b7d656283422dd13dee552f7d0b4f8cee0be0ea0e3f260dd4a", + "bytes": 8511 + }, + "outputs/logs/house.txt": { + "sha256": "6ffde97ab4ad0fd8d62f08bd0aa64025f72af56b3ecc897ccb46164f33f29cab", + "bytes": 591 + }, + "outputs/logs/kish.txt": { + "sha256": "7e8729ece28d9c51d52292831079704c5377eed32cff4a46782c4e9cf0ce3f7f", + "bytes": 522 + }, + "outputs/logs/noise_ci.txt": { + "sha256": "8a6c987cbda76d0eb8168b4dcf870abaebdba07c8782dda9e6f3413b8cfb3465", + "bytes": 3022 + }, + "outputs/logs/overlap.txt": { + "sha256": "bc35fdb742c035470d15e63a852cf40f852f06539821375bbf01b89d0a2ea907", + "bytes": 3531 + }, + "outputs/logs/parent_blanks.txt": { + "sha256": "79fdb41e631bd6e5e0eb31df50100e8453066320e77cac6ae83d17dfb6d173f2", + "bytes": 203 + }, + "outputs/logs/part.txt": { + "sha256": "64776b5b610f49772f79f0fe31ae0fb75b1a6554458ba890f0da0af6cad03863", + "bytes": 645 + }, + "outputs/logs/persist.txt": { + "sha256": "d351d2b29e37e3b2725466800cb3c67b3d4bdf052648373f5a4d4b61a5313c27", + "bytes": 917 + }, + "outputs/logs/puf_house.txt": { + "sha256": "3d321f44554801a3313860bbc8e81d02d713084d575618defb374af01d4021ff", + "bytes": 397 + }, + "outputs/logs/rent4.txt": { + "sha256": "ee426a0ad9721ec089320ff323f4923a227e6508dad3a9cf45135673f5fbeb4a", + "bytes": 1142 + }, + "outputs/logs/rent5.txt": { + "sha256": "2ff11104da0be2f826d2d72c7ad053e86c3d49c3c60f718b4cc489e84a18654e", + "bytes": 1665 + }, + "outputs/logs/rent_map.txt": { + "sha256": "e099badba09c849e2ff146403ec878218b6c5bf7c61801bc66302a1e356262be", + "bytes": 39 + }, + "outputs/logs/rentfix.txt": { + "sha256": "d3e949128d1c59e0d860c7699011a61ec66763fe9350df097f59c6ec82bd92a1", + "bytes": 681 + }, + "outputs/logs/thr_census.txt": { + "sha256": "78329c6af9525618e98f1703ce7fe314fcae4393146196a02b56285e3f444398", + "bytes": 599 + }, + "outputs/noise_ci.json": { + "sha256": "d194a6a7aae4c2ec6972d042b715e7e1abb85ca046b1b5ca7d6bc8d2f8438a2a", + "bytes": 3583 + }, + "outputs/noise_ci_fill_minus1.json": { + "sha256": "a378e76bf685a86e01e2071c8b4bbfc184e66d8c53dc2bfc309dddff94a612e6", + "bytes": 3587 + }, + "outputs/overlap_benchmark.csv": { + "sha256": "3d6d5d7eb3ffe026146cb7837aa54e170f43b39f7be96da3062bfd968da09698", + "bytes": 872 + }, + "outputs/overlap_fits.csv": { + "sha256": "df9fd59aa9b90f363a3b838dff636e9010084a7c4cefb123a8a9d9315bf4c25e", + "bytes": 2569 + }, + "outputs/resource_growth.csv": { + "sha256": "49a62d42fe888a60d091730fe1fe13f0eaec754fe5504cae6e0885bf78d68b16", + "bytes": 919 + }, + "outputs/state_baseline.json": { + "sha256": "9568c0a09d19eba4a61115f37237200fb76abe960264894931722a2f45f7bf95", + "bytes": 9894 + }, + "outputs/state_persistence.csv": { + "sha256": "1512f58ee9588a3c5fc7f0e3930b9ccf6bc0ff680e10a898a73cb4d1b6154383", + "bytes": 7673 + }, + "outputs/state_persistence_fill_minus1.csv": { + "sha256": "1512f58ee9588a3c5fc7f0e3930b9ccf6bc0ff680e10a898a73cb4d1b6154383", + "bytes": 7673 + }, + "outputs/waterfall.csv": { + "sha256": "75aa3c1eec097056ce342aa28e43bcd4431c726cd8eab56bc806c9f03af0cc56", + "bytes": 17743 + }, + "scripts/ablate_eval.py": { + "sha256": "63dde2a90127448fdf9c9f87ff62e9b86ca2367edf0c83074892c49f66f84ecd", + "bytes": 2893 + }, + "scripts/ablate_noise.py": { + "sha256": "fd583fa116ec7a0084707c1f5ec2cdc2b308702bd0552262584000c6268f9d32", + "bytes": 4093 + }, + "scripts/acs_eval.py": { + "sha256": "3ff90514d390a6b7b9c208314c0d6c0b9c3fe6728b35db37126e80f2ad305d10", + "bytes": 7058 + }, + "scripts/acs_hh_split.py": { + "sha256": "243b788b4345dc4e29cbd03453701575545bfa54cbc62711cec66ae7f022c747", + "bytes": 1954 + }, + "scripts/acs_parts.sh": { + "sha256": "f83005b16c47a74971410f1a67913ca14c553b9ac6b31d2a818a2372b605d90f", + "bytes": 1348 + }, + "scripts/acs_parts_cmp.py": { + "sha256": "84bf77ed3e67a8880f22f551645693b68774fa1ee00bdcdf6a13f140cc7791f6", + "bytes": 1085 + }, + "scripts/acs_reform_cmp.py": { + "sha256": "01abbeddf5d2fe2be5c7c53891311dea02a1e4d1a5b4d7419486752395fd4a73", + "bytes": 2150 + }, + "scripts/acs_rerun.py": { + "sha256": "13e5164f778a9e1110fa4d87446107d9091bfc957112ad5f6121fa064726c043", + "bytes": 7841 + }, + "scripts/acs_rerun.sh": { + "sha256": "0abb8de7ece1ee3384fdc7b74ccc632308e9d7aa654e9e41f6428f99f11e5340", + "bytes": 1465 + }, + "scripts/acs_rerun_check.py": { + "sha256": "42dd7f74405524f24a8d2c72e374f08fef313be13b1867ffaa7c0c29cf848b93", + "bytes": 3072 + }, + "scripts/acs_split.py": { + "sha256": "e80812c7235ae55ce4681152959c0fa77a6e6f17795a8ff7e42cb26541db9a24", + "bytes": 7201 + }, + "scripts/acs_stored.py": { + "sha256": "08176ca7c7b701aa70419c2fc126febe742fb1f7d1984c25da358ec998043dda", + "bytes": 2673 + }, + "scripts/acs_w.py": { + "sha256": "e0066deb8f5a08ff8e62391e85105fb8de116612814d6a07881f5c126b7007c2", + "bytes": 989 + }, + "scripts/acsrent.py": { + "sha256": "43e3c6a8d02ad2f91dd352f7491304a9213ed40931defe47dc97e33383892c40", + "bytes": 2655 + }, + "scripts/acsrent_parts.sh": { + "sha256": "62ec6b853385b1d633facf8d2d1ab0aa97593c59d37105e5a7b68ee41e5d0cca", + "bytes": 562 + }, + "scripts/asec_extract.py": { + "sha256": "f5889656172550ba6f8c3bfb7efc17cf6780d723a0cca0811851043155805423", + "bytes": 2932 + }, + "scripts/assemble.py": { + "sha256": "d47696c0bdbaaf9cdbbb807b0b40af6d6d8a0ff0c1645ae4d38acd7cdf834c23", + "bytes": 3824 + }, + "scripts/assemble_dense.py": { + "sha256": "68f06f83297c449de20c5ae7429b29c06f70e5ea0ba715fe749af4b207f240e9", + "bytes": 861 + }, + "scripts/blank_holders.py": { + "sha256": "9061febf7a24508c4f138e87420d7200a09ded50e6830ef8ed1d9257d18709ca", + "bytes": 2322 + }, + "scripts/cf_eval.py": { + "sha256": "1283c70c81115bb310e4f5d96c7f429864e6211c641ae1bb1e63bbc63b1dbda9", + "bytes": 3633 + }, + "scripts/chi_eval.py": { + "sha256": "25e0a8b2b1b108452c6d0f5b0e54504c943432f7e09a3f3159dc5f208eef1b39", + "bytes": 2536 + }, + "scripts/chi_solve.py": { + "sha256": "df4ef2190d5e60d57c409aad93d1c27a6cd901196c269350b04210737843df22", + "bytes": 2664 + }, + "scripts/cols.py": { + "sha256": "1a7b8260e77c6b35f93fd6953556f7e1cfb69cc3d8b9cd652cdc4d17fd067831", + "bytes": 1977 + }, + "scripts/ctc_ssn.py": { + "sha256": "4a7f41c62ef6d708c0492607e19b5308489c01a9434b8d2a5b2e868be8191248", + "bytes": 2659 + }, + "scripts/cutrun.py": { + "sha256": "a61cdf8ce58ae857e0551d672105d3955e9581449c4001ff0799f98819ea7f99", + "bytes": 3577 + }, + "scripts/dash_swing.py": { + "sha256": "2aabbbf218c045de1b7007646cc5beb29dcf1610c3c243b6675672e450220314", + "bytes": 2762 + }, + "scripts/decomp.py": { + "sha256": "4102acc5cffd7549374f16aaa6af8fe9b8a7f9d12e5316eb7965478ce704d717", + "bytes": 4705 + }, + "scripts/decomp2.py": { + "sha256": "014c5f3c1e1933e3bff5de68e4ed54331d09e106288dc2331827545d10475e45", + "bytes": 3792 + }, + "scripts/dense_fit.py": { + "sha256": "2a8295ec0827e8b028612c3d0ff14b67439b6dcf458a0d62f35c83eadb43c322", + "bytes": 4336 + }, + "scripts/dense_rent.py": { + "sha256": "6a349b344c2998d88918d8a80e1b8f9cf3436c35984314a918cdc338a13906fb", + "bytes": 1779 + }, + "scripts/dl.py": { + "sha256": "593a8cad1f7dac25b4a77e75de2716325146a1e51f54437d24ecf390c0581de6", + "bytes": 705 + }, + "scripts/dmiss.py": { + "sha256": "e41260102cf2341c9c16c20df7eca701d7505c82a0c908c4e95648d97ca1f290", + "bytes": 1284 + }, + "scripts/extract_state.py": { + "sha256": "3ef27f227d73a65c0b5a6ccadabf713671c3c474ddd7e206cc03de13251e7b5e", + "bytes": 4852 + }, + "scripts/fam.py": { + "sha256": "20cf8033ae5044e7ccf1fb1678679ddcd01befbfbc7b5a39fb3f4ddc07670660", + "bytes": 1273 + }, + "scripts/fill_cmp.py": { + "sha256": "415edf0839ca8d8c195b32025fbe0f9b9309f55c63a4e2bcef9e430c6d250a02", + "bytes": 1596 + }, + "scripts/fill_trace.py": { + "sha256": "d6071e3bd04e2863da4194ab78d13cce770a8aaf64b599eecc9e3fec7d6cbf00", + "bytes": 3321 + }, + "scripts/fl_reform.py": { + "sha256": "c968b86b2f571c9874163ee3917a79169f5bd64637d76ec47f99c5fbbeb49a9e", + "bytes": 4529 + }, + "scripts/flip.py": { + "sha256": "90a35ab5c4d615a387738ebb5f6a71f7ef0d0b3c96f77f7f1ab7ea6d3f0b4ee6", + "bytes": 2264 + }, + "scripts/host_wait.py": { + "sha256": "4999bf8e882b0de18d971be0194e9eda5c0f8ecef9dadb98268a7c27b1374a42", + "bytes": 1292 + }, + "scripts/house.py": { + "sha256": "9572cbc303793e4d5851ba70d06ca622a26a8902c0a1c1a2a56aeb2cb0442f8e", + "bytes": 2530 + }, + "scripts/house_sim.py": { + "sha256": "d3991eae455e07329d4337d7f5f8067de7d2cb8946c638d8754f98b1b280f4dd", + "bytes": 2970 + }, + "scripts/idcheck.py": { + "sha256": "adf41abfc238dc4759eb93b76079f24a4232cd099c26394076392ee886667124", + "bytes": 1336 + }, + "scripts/initial_fit.py": { + "sha256": "0592b83b45449d697dc567ea1928c9c71a72fa734dc99477c904f54eb438009d", + "bytes": 5619 + }, + "scripts/kish.py": { + "sha256": "82d9c9ef46515635bf7ab516861e37d4f32919737b510fc35173d401272a254b", + "bytes": 1120 + }, + "scripts/national_cf.py": { + "sha256": "3512de45b6642176ce0949a2f51810903893c2a26355b13737bd937a312c2588", + "bytes": 3450 + }, + "scripts/noise.py": { + "sha256": "9da43627c8426549b002267d22793f1df10f805bfade5d78f037a840c31ee2d7", + "bytes": 2253 + }, + "scripts/noise_ci.py": { + "sha256": "46dc322a34136e6714033a8db94273998649d9ed4656d4a944dcf30e62737360", + "bytes": 4119 + }, + "scripts/overlap.py": { + "sha256": "4bc0751057fc91f7e7694a97c10fac330856b0b354e00f420364481786a7c06c", + "bytes": 7818 + }, + "scripts/paired.py": { + "sha256": "a4461b5e7b31e37386daa9c14d67dda7607e2b93ddda04e09d2c513e6bb9ca77", + "bytes": 3068 + }, + "scripts/parent_blanks.py": { + "sha256": "02fc8c90540875f30b46d8e15d7f71e2eb6ca85b72e301d6579ca4f3b321dbec", + "bytes": 934 + }, + "scripts/part.py": { + "sha256": "fff80ba67a0b9d9cf1efe1228d9521dda26a7463c3a66bda950464965c9bbdc8", + "bytes": 2463 + }, + "scripts/parts_check.sh": { + "sha256": "be064641f25a3554e3a49b91b4ed9602f0329e5603050848584fed7a4bce25ca", + "bytes": 1761 + }, + "scripts/parts_ids.py": { + "sha256": "165f003e0636536fde5bd71c50169723e8b83c745168e1d05a3460a6d6af01aa", + "bytes": 2781 + }, + "scripts/parts_merge.py": { + "sha256": "59f2211aa6eecd935a09791581979b7a8d0bec6b23afc86e749938f872e02200", + "bytes": 1421 + }, + "scripts/persist.py": { + "sha256": "789662c2a493895f382beecff3455a532103f45f5c14089f8a8cc0e7e1534639", + "bytes": 3170 + }, + "scripts/post_acs.sh": { + "sha256": "e5da36c937c1a5a53c70c88a6863ecde7e46cbab560c1d35690790cb228a61e4", + "bytes": 931 + }, + "scripts/post_acsrent.sh": { + "sha256": "472603eac5196d4e20f73f7c748170a59aac668ccd0075e207fa1d38486b4929", + "bytes": 1692 + }, + "scripts/prep_evidence.py": { + "sha256": "4332e98beb1bdaff448da4c88df74bc1b6be3f800a8f8da0ebc5b1b1b0b5a832", + "bytes": 2818 + }, + "scripts/puf_house.py": { + "sha256": "f7055e02c3dfee9d4e2654a60db0754138f76a04a127e0adcd3b6fcc184d7224", + "bytes": 1789 + }, + "scripts/real_fixed_diff.py": { + "sha256": "9b4ebd290e87c0b704a06ca967fd6d5588bab5f8df2a78f81effc5d636ced8f6", + "bytes": 4985 + }, + "scripts/receipts.py": { + "sha256": "cb11e5fc620b1473c263ca71e6dbcbe012d27557ddd88b5dcb2dbafd6940eb85", + "bytes": 3880 + }, + "scripts/remote_fixed.py": { + "sha256": "2a42ebb365e75be4083a3fb150d436e4076a09d32a7cace46a4a3fab9389b2ef", + "bytes": 11428 + }, + "scripts/rent2.py": { + "sha256": "4bc02b7765cd72883e1cd76b9a84c06ff913afa71b1561cf2bc9bab86d5b99e9", + "bytes": 1866 + }, + "scripts/rent3.py": { + "sha256": "600c2edd7db6fcc8d7d4503a33997ce50e341d0b815b8cb9925fc9b0c66b4a61", + "bytes": 1509 + }, + "scripts/rent4.py": { + "sha256": "b26e172b7a994a0ff978d502d3b656a310a9d487a12f1ffc7cf24043ae59974f", + "bytes": 2612 + }, + "scripts/rent5.py": { + "sha256": "fcf8e20954a01630c917ceac604d3fe8deaf9e5ad2e7ff26580410311735d6b8", + "bytes": 2149 + }, + "scripts/rent_eval.py": { + "sha256": "0dc77b80f336a9491214f607137024d8a94052d89cfd10ff36927a11c5ca05f2", + "bytes": 5158 + }, + "scripts/rent_map.py": { + "sha256": "928a6c1e4d0a01fd4a5c2a24fcfbbb429d68f45f893aeb904b997999b6bc516d", + "bytes": 800 + }, + "scripts/rentfix.py": { + "sha256": "4e68da53964d75f3586d2cd281113291ab76383d3f34657984f9ac9d0c00d962", + "bytes": 2672 + }, + "scripts/rep_boot.py": { + "sha256": "87f5956a4af4f08c3ec3e4193cc720878ebc37d81406ac7aad9a371c4160681e", + "bytes": 1707 + }, + "scripts/rep_eval.py": { + "sha256": "20f56043fcc618b04951b08f6e0850a73441326027a87650bae1bee033a7a603", + "bytes": 7266 + }, + "scripts/resource_growth.py": { + "sha256": "e5c0995cdd85a905865ef92bc9fa1cda2fe52a2541c058c209cbfd2cf219e5f9", + "bytes": 2339 + }, + "scripts/runcuts.py": { + "sha256": "4154018a33e122496edaf0dc74bc6947f5b1ccf3d867c7678fbb819d2a3b88d1", + "bytes": 725 + }, + "scripts/sparse_rent.py": { + "sha256": "b8265899609939684777d746f35cceca2bad5377fc10eb21dc87b08148476c69", + "bytes": 2311 + }, + "scripts/split_remote.sh": { + "sha256": "9e24e1a9a209246170cb5e7f3e2bcc998d8d079ba449ed48159895f25fd7a385", + "bytes": 2039 + }, + "scripts/steps.py": { + "sha256": "616c0550ccc8cef2ae3235d2a555407d55ed047a22113c24d4854f6f41f227d8", + "bytes": 2178 + }, + "scripts/test_remote_fixed.py": { + "sha256": "f7a3edda1dd1c2aae0b0f6efa15fb2964c1fc5d308f2964ab4a1c375c73fea44", + "bytes": 25392 + }, + "scripts/thr.py": { + "sha256": "7e5de78ec8313f2ba9cb7b10a849eb1c375944b690f33afa7cae9c963396dcf2", + "bytes": 795 + }, + "scripts/thr_census.py": { + "sha256": "8e8f6fde5c8ef886ea308f773334c099ed4dfd89a8c36d82fe2751ac3ab2a6d6", + "bytes": 2125 + }, + "scripts/two_part_check.sh": { + "sha256": "735cc2c17f13a32a999e0804ae52cbab198b70523b5970ca54c55e00bcb58a14", + "bytes": 2009 + }, + "scripts/two_part_cmp.py": { + "sha256": "9ae78e5bba952e21d39b2e91bf643c91789e5ed7a67dca205f63beaee939b31e", + "bytes": 1263 + }, + "scripts/vardec.py": { + "sha256": "735c8c54eed72a8004657e5f6ff38269771a7d99a76ee2d14614b6bf63e802e7", + "bytes": 6350 + }, + "scripts/with_hold.sh": { + "sha256": "49a08e9788fc00611693c321d106f23c91ee3763e616ce54f7de10350cdabdcc", + "bytes": 1109 + }, + "scripts/year.py": { + "sha256": "ca35dc3ba29b95abe4e07a5921a70ad4b4099cadf7ff35ca4ccca9fe67846986", + "bytes": 4304 + } + } +} diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/ablate_eval.py b/docs/evidence/us-state-child-spm-2026-11/scripts/ablate_eval.py new file mode 100644 index 0000000000..1be6244905 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/ablate_eval.py @@ -0,0 +1,86 @@ +"""State and national child SPM rates under each stored calibration re-solve (weights only; record flags unchanged).""" + +import glob +import json +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +D = os.path.expanduser("~/reviews/pe30-population-2026-09-27/out/calib_resolve") +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +h = pd.read_hdf( + S + "9a814a3b3b53c0ecd6e1737b6ec862c31300ef6f/populace_us_2024.h5", "household" +)[["household_id"]] +pos = pd.Series(np.arange(len(h)), index=h.household_id.values) +u = pd.read_parquet(f"{SP}/run/default_units.parquet") +u = u[u.kids > 0].copy() +ix = pos.reindex(u.household_id.values).values +assert not np.isnan(ix).any() +ix = ix.astype(int) +sr = pd.read_csv(f"{SP}/asec/state_raw.csv", index_col=0) +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +E = (u.SPM_RESOURCES.fillna(0) < u.SPM_POVTHRESHOLD.fillna(0)).values.astype(float) +P25 = u["spm_unit_is_in_spm_poverty__2025"].values.astype(float) +P24 = u["spm_unit_is_in_spm_poverty__2024"].values.astype(float) +st = u.state.values +k = u.kids.values +z = np.load( + S + "8ab57ffc2ca41d8af631ff62ebbce95e966299f3/populace_us_2024_calibration.npz", + allow_pickle=True, +) + + +def ev(w): + W = w[ix] * k + den = pd.Series(W).groupby(st).sum() + out = {} + for n, f in (("E", E), ("P24", P24), ("P25", P25)): + r = 100 * pd.Series(W * f).groupby(st).sum() / den + out[n] = r + out["nat" + n] = 100 * (W * f).sum() / W.sum() + out["kids"] = W.sum() + wh = np.bincount(ix, weights=None) # unused # noqa: F841 + return out + + +rows = [] +base = {"initial": z["initial_household_weight"], "published": z["household_weight"]} +for n, w in base.items(): + rows.append((n, ev(np.asarray(w, float)))) +for f in sorted(glob.glob(D + "/*.npz")): + n = os.path.basename(f)[:-4] + rows.append((n, ev(np.load(f)["weights"]))) +pool = sr["avg_22_24"] +cen = c.rate +T = [] +for n, o in rows: + T.append( + dict( + run=n, + natE=o["natE"], + natP24=o["natP24"], + natP25=o["natP25"], + kids_m=o["kids"] / 1e6, + E_pool_mean=(o["E"] - pool).mean(), + E_pool_mad=(o["E"] - pool).abs().mean(), + E_pool_corr=np.corrcoef(o["E"], pool)[0, 1], + P25_cen_mean=(o["P25"] - cen).mean(), + P25_cen_mad=(o["P25"] - cen).abs().mean(), + P25_cen_corr=np.corrcoef(o["P25"], cen)[0, 1], + ) + ) +T = pd.DataFrame(T).set_index("run") +T.to_csv(f"{SP}/run/ablate_eval.csv") +pd.set_option("display.width", 220) +print(T.round(2).sort_values("natE").to_string()) +pickle_path = f"{SP}/run/ablate_states.pkl" +pd.to_pickle( + {n: {k_: v for k_, v in o.items() if k_ in ("E", "P24", "P25")} for n, o in rows}, + pickle_path, +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/ablate_noise.py b/docs/evidence/us-state-child-spm-2026-11/scripts/ablate_noise.py new file mode 100644 index 0000000000..5bf290f799 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/ablate_noise.py @@ -0,0 +1,153 @@ +"""Weight concentration, clustered SE and gap structure under stored re-solves; initial target misses by family.""" + +import json +import os +import sys + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +D = os.path.expanduser("~/reviews/pe30-population-2026-09-27/") +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +h = pd.read_hdf( + S + "9a814a3b3b53c0ecd6e1737b6ec862c31300ef6f/populace_us_2024.h5", "household" +)[["household_id", "state_fips"]] +pos = pd.Series(np.arange(len(h)), index=h.household_id.values) +u = pd.read_parquet(f"{SP}/run/default_units.parquet") +u = u[u.kids > 0].copy() +ix = pos.reindex(u.household_id.values).values.astype(int) +P = u["spm_unit_is_in_spm_poverty__2025"].values.astype(float) +k = u.kids.values +st = u.state.values +clu = pd.factorize(u.source_year.astype(str) + ":" + u.source_household_id.astype(str))[ + 0 +] +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +cse = c.moe / 1.645 +z = np.load( + S + "8ab57ffc2ca41d8af631ff62ebbce95e966299f3/populace_us_2024_calibration.npz", + allow_pickle=True, +) + + +def dl(y, v): + w = 1 / v + mu = (w * y).sum() / w.sum() + Q = (w * (y - mu) ** 2).sum() + kk = len(y) + t2 = max(0.0, (Q - (kk - 1)) / (w.sum() - (w**2).sum() / w.sum())) + return t2, Q + + +def stats(w): + W = w[ix] * k + rows = [] # noqa: F841 + states = np.unique(st) + r = np.empty(51) + se = np.empty(51) + for i, s in enumerate(states): + m = st == s + Wm = W[m] + pm = P[m] + T = Wm.sum() + rr = (Wm * pm).sum() / T + zz = Wm * (pm - rr) / T + cc = np.bincount(pd.factorize(clu[m])[0], weights=zz) + n = len(cc) + r[i] = 100 * rr + se[i] = 100 * np.sqrt(n / (n - 1) * (cc**2).sum()) + return ( + pd.Series(r, index=states), + pd.Series(se, index=states), + w.sum() ** 2 / (w**2).sum(), + ) + + +runs = {"initial": z["initial_household_weight"], "published": z["household_weight"]} +for n in [ + "R0_full", + "keep_pep", + "keep_pep_ctc_only", + "keep_pep_ctc_actc_count", + "keep_pep_all_soi", + "keep_pep_snap_ssi_aca", + "keep_pep_medicaid", + "drop_snap", + "drop_medicaid_chip", + "drop_soi_return_count", + "drop_ctc_actc", + "drop_soi_other", +]: + runs[n] = np.load(f"{D}out/calib_resolve/{n}.npz")["weights"] +out = [] +for n, w in runs.items(): + r, se, kish = stats(np.asarray(w, float)) + g = r - c.rate + v = se**2 + cse**2 + t2, Q = dl(g, v) + out.append( + dict( + run=n, + kish=kish, + med_se=se.median(), + mean_gap=g.mean(), + sd_gap=g.std(), + mad=g.abs().mean(), + corr=np.corrcoef(r, c.rate)[0, 1], + tau=np.sqrt(t2), + Q=Q, + ) + ) +print(pd.DataFrame(out).set_index("run").round(2).to_string()) +# Initial misses by family on Build P and dense +sys.path.insert(0, D + "scripts") +diag = json.load(open(D + "rel/calibration_diagnostics.json")) +T = diag["targets"] + + +def fam(t): + m = t["metadata"] + rg = t["registry"]["family"] + src = m.get("source_variable") + role = m.get("target_role") + return f"{rg}:{role or src}" + + +d = pd.DataFrame( + { + "fam": [fam(t) for t in T], + "t": [t["target"] for t in T], + "i": [t["initial_estimate"] for t in T], + "f": [t["final_estimate"] for t in T], + "geo": [t["metadata"].get("geography_scope") for t in T], + } +) +d["ri"] = d.i / d.t - 1 +d["rf"] = d.f / d.t - 1 +g = ( + d[d.t != 0] + .groupby(["fam", "geo"]) + .agg( + n=("t", "size"), + t=("t", "sum"), + i=("i", "sum"), + f=("f", "sum"), + med_ri=("ri", "median"), + med_rf=("rf", "median"), + ) +) +g["agg_ri"] = g.i / g.t - 1 +g["agg_rf"] = g.f / g.t - 1 +pd.set_option("display.width", 200) +pd.set_option("display.max_rows", 200) +print( + g[g.n >= 1] + .sort_values("agg_ri") + .round(3)[["n", "agg_ri", "agg_rf", "med_ri", "med_rf"]] + .to_string() +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_eval.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_eval.py new file mode 100644 index 0000000000..92cd915948 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_eval.py @@ -0,0 +1,262 @@ +"""ACS-local state rates at current policyengine-us: clustered SE, channel split, reform delta, and alternative #1078 solves.""" + +import glob +import json +import os +import sys + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +TAG = sys.argv[1] if len(sys.argv) > 1 else "acs" +B = os.path.expanduser( + "~/PolicyEngine/_build_artifacts/acs-local-l2-basis-20260928/runs/" +) +FIPS = { + "AL": 1, + "AK": 2, + "AZ": 4, + "AR": 5, + "CA": 6, + "CO": 8, + "CT": 9, + "DE": 10, + "DC": 11, + "FL": 12, + "GA": 13, + "HI": 15, + "ID": 16, + "IL": 17, + "IN": 18, + "IA": 19, + "KS": 20, + "KY": 21, + "LA": 22, + "ME": 23, + "MD": 24, + "MA": 25, + "MI": 26, + "MN": 27, + "MS": 28, + "MO": 29, + "MT": 30, + "NE": 31, + "NV": 32, + "NH": 33, + "NJ": 34, + "NM": 35, + "NY": 36, + "NC": 37, + "ND": 38, + "OH": 39, + "OK": 40, + "OR": 41, + "PA": 42, + "RI": 44, + "SC": 45, + "SD": 46, + "TN": 47, + "TX": 48, + "UT": 49, + "VT": 50, + "VA": 51, + "WA": 53, + "WV": 54, + "WI": 55, + "WY": 56, +} +INV = {v: k for k, v in FIPS.items()} +h = pd.read_parquet(f"{SP}/run/acs_hh.parquet") +uh = pd.read_parquet(f"{SP}/run/acs_unit_hh.parquet").drop_duplicates( + "person_spm_unit_id" +) +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +stored = pd.read_csv(f"{SP}/run/acs_stored.csv", index_col=0) +fs = sorted(glob.glob(f"{SP}/run/{TAG}/*.parquet")) +u = pd.concat([pd.read_parquet(f) for f in fs], ignore_index=True) +rf = sorted(glob.glob(f"{SP}/run/{TAG}_r/*.parquet")) +if rf: + u = u.drop(columns=[c for c in ("poor_r",) if c in u]).merge( + pd.concat([pd.read_parquet(f) for f in rf], ignore_index=True), + on="spm_unit_id", + how="left", + ) +if "poor_r" not in u: + u["poor_r"] = np.nan +# A state with no reform run carries no reform delta. +u["poor_r_ran"] = u.poor_r.notna() +u["poor_r"] = u.poor_r.fillna(u.poor) +u = ( + u[u.kids > 0] + .merge(uh, left_on="spm_unit_id", right_on="person_spm_unit_id") + .merge(h, left_on="person_household_id", right_on="household_id") +) +u["state"] = u.state_fips.map(INV) +# An ASEC donor and its PUF clone share one source household, so they form one cluster. +u["src"] = np.where( + u.household_support_channel.astype(str) == "acs_2024_1yr", "acs:", "donor:" +) + u.household_source_id.astype(str) + + +def lin(g, w, f): + W = g[w] * g.kids + T = W.sum() + r = (W * f).sum() / T + z = W * (f - r) / T + cc = z.groupby(g.src).sum().values + n = len(cc) + return 100 * r, 100 * np.sqrt(n / (n - 1) * (cc**2).sum()) + + +rows = [] +for st, g in u.groupby("state"): + r, se = lin(g, "household_weight", g.poor) + d = g.poor_r - g.poor + dr, dse = lin(g, "household_weight", d) + W = g.household_weight * g.kids + kish = W.groupby(g.src).sum() + kish = kish.sum() ** 2 / (kish**2).sum() + ac = g[g.household_support_channel == "acs_2024_1yr"] + dn = g[g.household_support_channel != "acs_2024_1yr"] + ra, sa = lin(ac, "household_weight", ac.poor) + rd, sd = lin(dn, "household_weight", dn.poor) + rows.append( + dict( + state=st, + census=c.rate[st], + moe=c.moe[st], + acs_local=r, + se=se, + kish_src=kish, + acs_share=W[g.household_support_channel == "acs_2024_1yr"].sum() / W.sum(), + acs_only=ra, + acs_only_se=sa, + donor_only=rd, + donor_only_se=sd, + delta=dr, + delta_se=dse, + stored_2301=stored["o1017@2.30.1 2025"][st], + ) + ) +d = pd.DataFrame(rows).set_index("state") +d["gap"] = d.acs_local - d.census +unrun = [st for st, g in u.groupby("state") if not g.poor_r_ran.any()] +d.loc[unrun, ["delta", "delta_se"]] = np.nan +print(d.round(2).to_string()) +print( + "median se", + d.se.median().round(2), + "median delta se", + d.delta_se.median().round(2), + "current vs stored 2.30.1 mean abs", + (d.acs_local - d.stored_2301).abs().mean().round(2), +) +d.to_csv(f"{SP}/run/{TAG}_eval.csv") +for lab, col in ( + ("all rows", "acs_local"), + ("ACS rows", "acs_only"), + ("donor rows", "donor_only"), +): + e = d[col] - d.census + print( + lab, + "states", + len(d), + "mean gap", + round(e.mean(), 2), + "sd", + round(e.std(), 2), + "MAD", + round(e.abs().mean(), 2), + "corr", + round(np.corrcoef(d[col], d.census)[0, 1], 3), + "beyond", + int((e.abs() > d.moe).sum()), + "median se", + round( + d[ + { + "acs_local": "se", + "acs_only": "acs_only_se", + "donor_only": "donor_only_se", + }[col] + ].median(), + 2, + ), + ) +print( + "reform delta median", + round(d.delta.median(), 2), + "min", + round(d.delta.min(), 2), + "max", + round(d.delta.max(), 2), + "median se", + round(d.delta_se.median(), 2), +) +# Alternative solves. Stored solves used an earlier frame with the same household ids. +key = pd.read_hdf( + os.path.dirname(B[:-1]) + "/checkpoint/target_frame_lean.h5", "household" +)[["household_id"]] +pos = pd.Series(np.arange(len(key)), index=key.household_id.values) +ix = pos.reindex(u.household_id.values).values.astype(int) +out = [] +u = u.copy() +names = [ + "dup_release_repro", + "proj_chi_s050_0.03", + "soft_chi_s050_0.1", + "soft_chi_s700_0", + "soft_chi_s700_0.03", + "soft_chi_s700_0.1", + "soft_chi_s900_0", + "soft_chi_s900_0.03", + "soft_chi_s900_0.1", + "soft_chi_s964_0", + "soft_chi_s964_0.03", +] +st = u.state.values +for n in names: + p = B + n + "/weights.npz" + if not os.path.exists(p): + continue + w = np.load(p)["weights"] + u["w"] = w[ix] + R = [] + for s, g in u.groupby("state"): + r, se = lin(g, "w", g.poor) + dd, dse = lin(g, "w", g.poor_r - g.poor) + W = g.w * g.kids + a = W[g.household_support_channel == "acs_2024_1yr"].sum() / W.sum() + R.append(dict(state=s, r=r, se=se, a=a, dd=dd, dse=dse)) + R = pd.DataFrame(R).set_index("state") + g_ = R.r - c.rate.reindex(R.index) + out.append( + dict( + run=n, + mean_gap=g_.mean(), + mad=g_.abs().mean(), + beyond=int((g_.abs() > c.moe.reindex(R.index)).sum()), + corr=np.corrcoef(R.r, c.rate.reindex(R.index))[0, 1], + med_se=R.se.median(), + med_delta=R.dd.median(), + med_delta_se=R.dse.median(), + acs_share=R.a.mean(), + DE=R.r["DE"], + DC=R.r["DC"], + TN=R.r["TN"], + MD=R.r["MD"], + LA=R.r["LA"], + MT=R.r["MT"], + HI=R.r["HI"], + MA=R.r["MA"], + ) + ) +o = pd.DataFrame(out).set_index("run") +if unrun: + o[[c_ for c_ in o.columns if "delta" in c_]] = np.nan +o.to_csv(f"{SP}/run/{TAG}_solves.csv") +print(o.round(2).to_string()) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_hh_split.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_hh_split.py new file mode 100644 index 0000000000..80997b8a79 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_hh_split.py @@ -0,0 +1,61 @@ +"""Household and SPM-unit keys for clustering, from the per-state split of the ACS-local file. Also checks the split's size and the rent totals.""" + +import glob +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +D = f"{SP}/run/acs_split/" +right = ( + pd.read_parquet(f"{SP}/run/rent_right.parquet") + .set_index("household_source_id") + .rent_right +) +hs, us = [], [] +was = now = 0.0 +n_p = cols = 0 +for f in sorted(glob.glob(D + "*-household.pkl.gz")): + h = pd.read_pickle(f) + p = pd.read_pickle(f.replace("-household", "-person")) + hs.append( + h[ + [ + "household_id", + "state_fips", + "household_support_channel", + "household_source_id", + "household_weight", + "TYPEHUGQ", + ] + ] + ) + us.append(p[["person_household_id", "person_spm_unit_id"]].drop_duplicates()) + acs = h.household_support_channel.astype(str).str.startswith("acs").values + hr = pd.Series( + np.where( + acs, + 12 + * pd.to_numeric(h.acs_monthly_contract_rent, errors="coerce") + .fillna(0) + .values, + h.household_source_id.map(right).values, + ), + index=h.household_id.values, + ) + assert hr.notna().all() + head = p.is_household_head.astype(bool).values + was += p.pre_subsidy_rent.sum() + now += p.person_household_id[head].map(hr).sum() + n_p += len(p) + cols = p.shape[1] +h = pd.concat(hs, ignore_index=True) +u = pd.concat(us, ignore_index=True) +h.to_parquet(f"{SP}/run/acs_hh.parquet", compression="zstd") +u.to_parquet(f"{SP}/run/acs_unit_hh.parquet", compression="zstd") +print( + "households", h.shape, "unit keys", u.shape, "people", n_p, "person columns", cols +) +print("rent was", round(was / 1e9, 2), "now", round(now / 1e9, 2)) +print("weight total", round(h.household_weight.sum())) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_parts.sh b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_parts.sh new file mode 100644 index 0000000000..1f262d30f0 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_parts.sh @@ -0,0 +1,21 @@ +#!/bin/zsh +# Run one ACS-local state in household parts, each part in acs_rerun.py's two steps under the 8 GiB stop, then merge the parts +# into the state's output: for states whose baseline alone passes 8 GiB (Texas and California). +# Each step waits for 48 GiB available and 58 GB free first, on Fleet ops' terms. A finished part skips on a rerun. +# Usage: acs_parts.sh [>] +SP=${0:a:h}; cd $SP +F=$1; TAG=$2; K=$3; DEST=${4:-run/$TAG} +FF=${(l:2::0:)F} +export OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 VECLIB_MAXIMUM_THREADS=1 NUMEXPR_NUM_THREADS=1 OMP_WAIT_POLICY=PASSIVE +LOG=${PARTS_LOG:-run/acs_parts.log}; PY=env/.venv/bin/python +DIR=run/parts/${DEST//\//_}/$FF-k$K +note() { print -r -- "$(date -u +%TZ) $*" >> $LOG; } +[[ -e $DEST/$FF.parquet ]] && { note "$FF $TAG already in $DEST"; exit 0; } +gate() { python3 -I host_wait.py 48 58 $LOG; } +gate +nice -n 5 $PY parts_ids.py $F $K $DIR >> $LOG 2>&1 || { note "failed $FF $TAG parts_ids exit $?"; exit 1; } +for (( k = 0; k < K; k++ )); do + gate + env TWO_PART=1 OUT=$DIR/p$k HOUSEHOLDS=$DIR/p$k.npy nice -n 5 $PY acs_rerun.py $F $TAG >> $LOG 2>&1 || { note "failed $FF $TAG part $k exit $?"; exit 1; } +done +nice -n 5 $PY parts_merge.py $F $TAG $K $DIR $DEST >> $LOG 2>&1 || { note "failed $FF $TAG merge exit $?"; exit 1; } diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_parts_cmp.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_parts_cmp.py new file mode 100644 index 0000000000..07e22ae977 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_parts_cmp.py @@ -0,0 +1,32 @@ +"""Check that a state run in household parts (acs_parts.sh) writes exactly what a whole-state run writes: every column, value, +dtype and row order. The whole-state files come from the rerun itself. +""" + +import sys + +import pandas as pd + +PAIRS = [ + ("run/acs/56.parquet", "run/parts_check/acs/56.parquet"), + ("run/acs/10.parquet", "run/parts_check/acs/10.parquet"), + ("run/acs/05.parquet", "run/parts_check/acs/05.parquet"), + ("run/acsrent/56.parquet", "run/parts_check/acsrent/56.parquet"), + ("run/acsrent/50.parquet", "run/parts_check/acsrent/50.parquet"), +] +differ = 0 +for whole, parts in PAIRS: + a, b = pd.read_parquet(whole), pd.read_parquet(parts) + try: + pd.testing.assert_frame_equal(a, b, check_exact=True) + print( + "same", + whole, + parts, + a.shape, + " ".join(f"{c}:{t}" for c, t in a.dtypes.items()), + flush=True, + ) + except AssertionError as error: + differ += 1 + print("differ", whole, parts, str(error)[:600], flush=True) +sys.exit(1 if differ else 0) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_reform_cmp.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_reform_cmp.py new file mode 100644 index 0000000000..bab1c951bc --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_reform_cmp.py @@ -0,0 +1,68 @@ +import pandas as pd + +a = pd.read_csv("run/acs_eval.csv") +r = pd.read_csv("run/acsrent_eval.csv") +key = [c for c in a.columns if c.lower() in ("state", "st", "abbr")][0] +print(list(a.columns)) +dc = [c for c in a.columns if "delta" in c.lower() and "se" not in c.lower()][0] +sc = [c for c in a.columns if "delta" in c.lower() and "se" in c.lower()][0] +m = a[[key, dc, sc]].merge(r[[key, dc, sc]], on=key, suffixes=("_pub", "_rent")) +m = m[m[dc + "_rent"].notna()].copy() +m["diff"] = m[dc + "_rent"] - m[dc + "_pub"] +print(m.round(2).to_string(index=False)) +print( + "n", + len(m), + "median pub", + m[dc + "_pub"].median().round(2), + "median rent", + m[dc + "_rent"].median().round(2), + "mean abs diff", + m["diff"].abs().mean().round(2), + "max", + m["diff"].abs().max().round(2), + "mean diff", + m["diff"].mean().round(2), +) +print( + "median se pub", + m[sc + "_pub"].median().round(2), + "rent", + m[sc + "_rent"].median().round(2), +) +out = m.rename( + columns={ + dc + "_pub": "ctc_effect_published", + sc + "_pub": "ctc_effect_se_published", + dc + "_rent": "ctc_effect_corrected_rent", + sc + "_rent": "ctc_effect_se_corrected_rent", + "diff": "corrected_minus_published", + } +) +out.to_csv("run/acsrent_reform.csv", index=False) +# Like for like: how far the fix moves baselines and reform effects on the same states and on all 51. +base = a[[key, "acs_local"]].merge( + r[[key, "acs_local"]], on=key, suffixes=("_pub", "_rent") +) +base["move"] = (base.acs_local_rent - base.acs_local_pub).abs() +same = base[base[key].isin(m[key])] +print( + f"baseline move, the {len(same)} states with reform runs: mean", + same.move.mean().round(3), + "median", + same.move.median().round(3), + "| all 51: mean", + base.move.mean().round(3), + "median", + base.move.median().round(3), +) +print( + f"reform move, {len(m)} states: mean", + m["diff"].abs().mean().round(3), + "median", + m["diff"].abs().median().round(3), + "| without FL: mean", + m[m[key] != "FL"]["diff"].abs().mean().round(3), + "| above 1 point", + m.loc[m["diff"].abs() > 1, key].tolist(), +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun.py new file mode 100644 index 0000000000..a0ca71af88 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun.py @@ -0,0 +1,210 @@ +"""One ACS-local state from the per-state split: baseline and the 2021 CTC reform for 2025, keyed for clustering. + +Every donor in the file leaves its parent links blank. The model reads 0 as unknown (parent_1_id.py), so blanks take 0. +Usage: acs_rerun.py . Tag acs keeps the published rent. Tag acsrent gives donors the base record's right rent +and ACS renter heads twelve times native monthly contract rent, with weights unchanged. +FILL overrides the fill for the checks in acs_rerun.sh: -1 repeats the earlier runs, and none leaves the blanks in place. +Such a check skips the reform unless WITH_REFORM=1, which runs it too: the South Dakota trace compares reform effects that way. +Stops itself with exit 75 if peak RSS passes RSS_CAP_GIB (default 8). + +Texas passed 8 GiB holding the baseline and then the reform in one image. So once run/two_part_ok exists (two_part_check.sh +writes it after two steps reproduce one process exactly), a state whose person split reaches TWO_PART_MB (default 12) runs in +two steps. The baseline step writes its results to .base and re-executes this process for the reform step, which reads +them back: the process holds one simulation at a time, under the same stop. A run stopped after the baseline step starts at the +reform. TWO_PART=1 or 0 forces either way, and OUT sends the output to another folder, for the check. +While run/hold exists, a run waits at its start, before any heavy import, unless IGNORE_HOLD is set: two_part_check.sh +holds the rerun between states that way. +HOUSEHOLDS names a .npy file of household ids, and the run then covers only those households: acs_parts.sh runs a state +in parts that way. +""" + +import gc +import os +import resource +import sys +import threading +import time +import warnings + +SP = os.path.dirname(os.path.abspath(__file__)) +if os.path.exists(f"{SP}/run/hold") and not os.environ.get("IGNORE_HOLD"): + # two_part_check.sh holds the rerun between states: wait here, before any heavy import, until it lets go. + mark = f"{SP}/run/held.{os.getpid()}" + open(mark, "w").close() + while os.path.exists(f"{SP}/run/hold"): + time.sleep(15) + os.remove(mark) +import numpy as np +import pandas as pd + +warnings.filterwarnings("ignore") +sys.path.insert(0, SP) +fips, TAG = int(sys.argv[1]), sys.argv[2] +FILL = os.environ.get("FILL", "0") +CAP = float(os.environ.get("RSS_CAP_GIB", "8")) * 2**30 + + +def peak(): + return resource.getrusage(resource.RUSAGE_SELF).ru_maxrss + + +def watch(): + while True: + time.sleep(2) + if peak() > CAP: + print(f"rss stop {fips} {TAG} peak {peak() / 2**30:.2f} GiB", flush=True) + os._exit(75) + + +threading.Thread(target=watch, daemon=True).start() +import extract_state as ex +from policyengine_core.data import Dataset +from policyengine_core.reforms import Reform +from policyengine_us import CountryTaxBenefitSystem, Microsimulation + +Y = 2025 +checking = FILL != "0" +with_reform = not checking or os.environ.get("WITH_REFORM") == "1" +folder = os.environ.get("OUT") or ( + f"{SP}/run/check_fill{FILL}" if checking else f"{SP}/run/{TAG}" +) +os.makedirs(folder, exist_ok=True) +target = f"{folder}/{fips:02d}.parquet" +if os.path.exists(target): + sys.exit(0) +partial = f"{target}.base" +forced = os.environ.get("TWO_PART") +if checking: + two_part = False +elif forced in ("0", "1"): + two_part = forced == "1" +else: + size_mb = os.path.getsize(f"{SP}/run/acs_split/{fips:02d}-person.pkl.gz") / 1e6 + two_part = os.path.exists(f"{SP}/run/two_part_ok") and size_mb >= float( + os.environ.get("TWO_PART_MB", "12") + ) +step = ("reform" if os.path.exists(partial) else "baseline") if two_part else "both" +t0 = float(os.environ.get("TWO_PART_T0", time.time())) +ex.known = set(CountryTaxBenefitSystem().variables) +ex.tables = { + n: pd.read_pickle(f"{SP}/run/acs_split/{fips:02d}-{n}.pkl.gz") + for n in ("household", "person", *ex.GROUPS) +} +if TAG == "acsrent": + h, p = ex.tables["household"], ex.tables["person"] + right = ( + pd.read_parquet(f"{SP}/run/rent_right.parquet") + .set_index("household_source_id") + .rent_right + ) + acs = h.household_support_channel.astype(str).str.startswith("acs").values + hr = pd.Series( + np.where( + acs, + 12 + * pd.to_numeric(h.acs_monthly_contract_rent, errors="coerce") + .fillna(0) + .values, + h.household_source_id.map(right).values, + ), + index=h.household_id.values, + ) + assert hr.notna().all() + head = p.is_household_head.astype(bool).values + rent = np.zeros(len(p)) + rent[head] = p.person_household_id[head].map(hr).values + p["pre_subsidy_rent"] = rent +if os.environ.get("HOUSEHOLDS"): + # One part of the state (acs_parts.sh): only these households reach the simulation. + households = ex.tables["household"] + ex.tables["household"] = households[ + households.household_id.isin(np.load(os.environ["HOUSEHOLDS"])) + ] +frame = ex.state_file(fips) +ex.tables = None +gc.collect() +if FILL != "none": + for c in frame.columns: + if c.startswith("parent_") and c.endswith("_id__2024"): + frame[c] = frame[c].fillna(int(FILL)).astype(np.int64) +if "spm_unit_spm_universe_status__2024" not in frame: + # policyengine-us 2.90.2 ignores this column, so every SPM unit stays in the run. + frame["spm_unit_spm_universe_status__2024"] = "INCLUDED" +d = "2025-01-01.2025-12-31" +ref = Reform.from_dict( + { + "gov.irs.credits.ctc.amount.arpa[0].amount": {d: 3600}, + "gov.irs.credits.ctc.amount.arpa[1].amount": {d: 3000}, + "gov.irs.credits.ctc.refundable.fully_refundable": {d: True}, + "gov.irs.credits.ctc.phase_out.arpa.in_effect": {d: True}, + }, + country_id="us", +) + + +def unit(sim, name, period=Y): + return np.asarray(sim.calculate(name, period, map_to="spm_unit").values, float) + + +if step == "reform": + res = pd.read_parquet(partial) +else: + base = Microsimulation(dataset=Dataset.from_dataframe(frame, 2024)) + ids = base.calculate("spm_unit_id", 2024).values + age = base.calculate("age", 2024).values + pu = base.calculate("person_spm_unit_id", 2024).values + res = { + "spm_unit_id": ids, + "kids": pd.Series(age < 18).groupby(pu).sum().reindex(ids).values, + } + res["poor"] = unit(base, "spm_unit_is_in_spm_poverty") + res["net"] = unit(base, "spm_unit_net_income") + res["thr"] = unit(base, "spm_unit_spm_threshold") + if TAG == "acsrent": + res["snap"] = unit(base, "snap", 2024) + res["house"] = unit(base, "spm_unit_capped_housing_subsidy", 2024) + del base + gc.collect() +if step == "baseline": + pd.DataFrame(res).to_parquet(partial + ".tmp", compression="zstd") + os.replace(partial + ".tmp", partial) + print( + fips, + TAG, + "baseline step seconds", + round(time.time() - t0), + "peak GiB", + round(peak() / 2**30, 2), + flush=True, + ) + os.execve( + sys.executable, + sys.orig_argv, + dict(os.environ, TWO_PART_T0=repr(t0), TWO_PART_PEAK=str(peak())), + ) +if with_reform: + sim = Microsimulation(dataset=Dataset.from_dataframe(frame, 2024), reform=ref) + res["poor_r"] = unit(sim, "spm_unit_is_in_spm_poverty") + if step == "reform": + assert np.array_equal( + sim.calculate("spm_unit_id", 2024).values, res["spm_unit_id"].values + ) + del sim + gc.collect() +pd.DataFrame(res).to_parquet(target + ".tmp", compression="zstd") +os.replace(target + ".tmp", target) +if step == "reform": + os.remove(partial) +top = max(peak(), int(os.environ.get("TWO_PART_PEAK", "0"))) +print( + fips, + TAG, + "fill", + FILL, + "seconds", + round(time.time() - t0), + "peak GiB", + round(top / 2**30, 2), + *(["two steps"] if two_part else []), + flush=True, +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun.sh b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun.sh new file mode 100755 index 0000000000..0e4c2d42fd --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun.sh @@ -0,0 +1,22 @@ +#!/bin/zsh +# Every ACS-local state, one process at a time, smallest first: rent as published, then rent on the right households. +# Fleet ops' terms for this run: one process, one thread, nice 5, an 8 GiB stop and under 300 MB of new disk. +# Before each state it waits for 48 GiB available and RERUN_FREE_GB (default 65) GB free, and while a host booking refuses this caller. +SP=${0:a:h}; cd $SP +export OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 VECLIB_MAXIMUM_THREADS=1 NUMEXPR_NUM_THREADS=1 OMP_WAIT_POLICY=PASSIVE +LOG=run/acs_rerun.log; PY=env/.venv/bin/python +gate() { python3 -I host_wait.py 48 ${RERUN_FREE_GB:-65} $LOG; } +ORDER=(${(f)"$(ls -Sr run/acs_split/*-person.pkl.gz | sed -E 's#.*/([0-9]{2})-person.pkl.gz#\1#')"}) +print "start $(date -u +%FT%TZ) states ${#ORDER}" >> $LOG +# What the model does with a blank, on the smallest state, and two states that must repeat the earlier -1 runs. +gate; print "blank check on ${ORDER[1]}" >> $LOG; FILL=none nice -n 5 $PY acs_rerun.py ${ORDER[1]} acs 2>&1 | tail -3 | cut -c1-300 >> $LOG +for f in 10 6; do gate; FILL=-1 nice -n 5 $PY acs_rerun.py $f acs >> $LOG 2>&1; done +for TAG in acs acsrent; do + for f in $ORDER; do + gate + nice -n 5 $PY acs_rerun.py $f $TAG >> $LOG 2>&1 + rc=$?; [ $rc = 0 ] || print "failed $f $TAG exit $rc $(date -u +%TZ)" >> $LOG + done + print "pass $TAG done $(date -u +%TZ) MB $(du -sm run/$TAG | cut -f1)" >> $LOG +done +print "done $(date -u +%FT%TZ)" >> $LOG diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun_check.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun_check.py new file mode 100644 index 0000000000..cf3a0b42c0 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_rerun_check.py @@ -0,0 +1,100 @@ +"""Check the rerun: 51 rates against the deck's fill-0 run, and two states under -1 against the earlier runs. Then trace which units the fill moves.""" + +import json +import os +import re +import subprocess + +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +S = os.path.expanduser("~/PolicyEngine/policyengine-slides") +FIPS = eval( + re.search(r"FIPS\s*=\s*(\{.*?\})", open(f"{SP}/acs_eval.py").read(), re.S).group(1) +) +AB = {v: k for k, v in FIPS.items()} +deck = ( + pd.DataFrame( + json.loads( + subprocess.run( + [ + "git", + "-C", + S, + "show", + "99ee5b354:slideshows/appam-2026/data/state_baseline.json", + ], + capture_output=True, + text=True, + ).stdout + )["rows"] + ) + .set_index("state") + .child_spm_percent +) +earlier = pd.read_csv(f"{SP}/run/acs_eval_fill_minus1.csv", index_col=0).acs_local +h = pd.read_parquet(f"{SP}/run/acs_hh.parquet") +uh = pd.read_parquet(f"{SP}/run/acs_unit_hh.parquet").drop_duplicates( + "person_spm_unit_id" +) + + +def rates(folder): + u = pd.concat( + [ + pd.read_parquet(f"{SP}/run/{folder}/{f}") + for f in sorted(os.listdir(f"{SP}/run/{folder}")) + if f.endswith(".parquet") + ], + ignore_index=True, + ) + u = ( + u[u.kids > 0] + .merge(uh, left_on="spm_unit_id", right_on="person_spm_unit_id") + .merge(h, left_on="person_household_id", right_on="household_id") + ) + u["W"] = u.household_weight * u.kids + return u, ( + 100 + * (u.W * u.poor).groupby(u.state_fips).sum() + / u.W.groupby(u.state_fips).sum() + ).rename(index=AB) + + +u0, r0 = rates("acs") +a = pd.DataFrame({"rerun": r0, "deck_99ee5b354": deck}) +a["diff"] = a.rerun - a.deck_99ee5b354 +print( + "rates against the deck's fill-0 run: states", + int(a.rerun.notna().sum()), + "largest difference", + a["diff"].abs().max(), +) +a.to_csv(f"{SP}/run/acs_rerun_vs_deck.csv") +u1, r1 = rates("check_fill-1") +print( + "the split under -1 against the earlier -1 runs:", + {s: (round(r1[s], 6), round(earlier[s], 6)) for s in r1.index}, +) +for st in r1.index: + fips = FIPS[st] + m = u0[u0.state_fips == fips][ + ["spm_unit_id", "poor", "W", "household_support_channel", "household_source_id"] + ].merge(u1[["spm_unit_id", "poor"]], on="spm_unit_id", suffixes=("_0", "_m1")) + mv = m[m.poor_0 != m.poor_m1] + T = m.W.sum() + print( + st, + "units that change", + len(mv), + "by channel", + mv.household_support_channel.astype(str).value_counts().to_dict(), + "source households", + mv.household_source_id.nunique(), + "rate move", + round(100 * (mv.W * (mv.poor_0 - mv.poor_m1)).sum() / T, 4), + "largest source household's share of the state's child weight, percent", + round(100 * mv.groupby("household_source_id").W.sum().max() / T, 3) + if len(mv) + else 0, + ) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_split.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_split.py new file mode 100644 index 0000000000..b9dd5cf5e1 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_split.py @@ -0,0 +1,203 @@ +"""Split the ACS-local file by state, one table per file, as state_baseline.py's split_by_state does. + +The source is a local H5 path or an https URL. A URL reads through range requests (remote_fixed.py), so no copy of the file lands anywhere. +The person table reads in chunks, so the whole table never sits in memory, and rows keep file order within each state. +A group that spans states goes to every state it touches, so no member loses its group's row. +With SPLIT_GATE set to " ", it waits at host_wait.py before each table and each chunk. +A run that stops keeps its finished chunks, and the next run with the same chunk size starts after them. +Stops itself with exit 75 if peak RSS passes RSS_CAP_GIB (default 8). +Usage: acs_split.py
+A URL also needs SPLIT_SIZE and SPLIT_SHA256, which it checks against what the URL reports. +""" + +import glob +import json +import os +import resource +import shutil +import subprocess +import sys +import threading +import time + +import numpy as np +import pandas as pd + +HERE = os.path.dirname(os.path.abspath(__file__)) +source, out = sys.argv[1], sys.argv[2] +GROUPS = ("tax_unit", "spm_unit", "family", "marital_unit") +CHUNK = int(os.environ.get("SPLIT_CHUNK", "400000")) +GATE = os.environ.get("SPLIT_GATE", "").split() +GZ = {"method": "gzip", "compresslevel": 1} +finished = f"{out}/parts.finished" +if os.path.exists(finished): + shutil.rmtree(finished) + print("an earlier run finished this split", flush=True) + sys.exit(0) +os.makedirs(f"{out}/parts", exist_ok=True) +t0 = time.time() +CAP = float(os.environ.get("RSS_CAP_GIB", "8")) + + +def peak(): + return round(resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 2**30, 2) + + +def watch(): + while True: + time.sleep(2) + if peak() > CAP: + print("rss stop, peak GiB", peak(), flush=True) + os._exit(75) + + +def gate(): + if GATE: + subprocess.run(["python3", "-I", f"{HERE}/host_wait.py", *GATE], check=True) + + +def open_store(): + if not source.startswith("https://") and not source.startswith("http://"): + return pd.HDFStore(source, "r") + sys.path.insert(0, HERE) + from remote_fixed import RemoteStore + + return RemoteStore( + source, + size=int(os.environ["SPLIT_SIZE"]), + sha256=os.environ["SPLIT_SHA256"], + rate=int(os.environ.get("SPLIT_RATE", "3000000")), + patience=int(os.environ.get("SPLIT_PATIENCE", "7200")), + ) + + +def nrows(store, key): + if not isinstance(store, pd.HDFStore): + return store.nrows(key) + node = store.get_node(key) + return node.table.nrows if "table" in node else node.axis1.shape[0] + + +def replace_when_written(frame, path): + frame.to_pickle(f"{path}.tmp", compression=GZ) + os.replace(f"{path}.tmp", path) + + +threading.Thread(target=watch, daemon=True).start() + + +with open_store() as store: + n = nrows(store, "person") + print("source", type(store).__name__, "people", n, "chunk", CHUNK, flush=True) + # A stopped run's finished chunks count only if the next run cuts the table the same way. + plan, wanted = f"{out}/parts/plan.json", {"people": int(n), "chunk": CHUNK} + if os.path.exists(plan): + with open(plan) as f: + held = json.load(f) + if held != wanted: + sys.exit( + f"{out}/parts holds a run cut as {held}, and this run wants {wanted}; remove it to start over" + ) + else: + with open(f"{plan}.tmp", "w") as f: + json.dump(wanted, f) + os.replace(f"{plan}.tmp", plan) + state_file = f"{out}/parts/states.pkl" + if os.path.exists(state_file): + states = pd.read_pickle(state_file) + else: + gate() + households = store.select("household") + print("households", households.shape, "peak GiB", peak(), flush=True) + for state, rows in households.groupby("state_fips", sort=False): + replace_when_written(rows, f"{out}/{int(state):02d}-household.pkl.gz") + states = households.set_index("household_id")["state_fips"] + del households + states.to_pickle(f"{state_file}.tmp") + os.replace(f"{state_file}.tmp", state_file) + ids = {g: [] for g in GROUPS} + fips_all, columns, seen = [], None, 0 + for i, a in enumerate(range(0, n, CHUNK)): + marker = f"{out}/parts/chunk-{i:05d}.npz" + if os.path.exists(marker): + with np.load(marker) as kept: + fips = kept["fips"] + for g in GROUPS: + ids[g].append(kept[g]) + seen += len(fips) + fips_all.append(fips) + print("chunk", i, "already done", flush=True) + continue + gate() + people = store.select("person", start=a, stop=min(a + CHUNK, n)) + columns = people.shape[1] + seen += len(people) + fips = people["person_household_id"].map(states) + assert fips.notna().all() + for state, rows in people.groupby(fips.values, sort=False): + rows.to_pickle( + f"{out}/parts/{int(state):02d}-person-{i:05d}.pkl.gz", compression=GZ + ) + chunk_ids = {g: people[f"person_{g}_id"].values for g in GROUPS} + for g in GROUPS: + ids[g].append(chunk_ids[g]) + fips_all.append(fips.values) + np.savez(f"{marker}.tmp.npz", fips=fips.values, **chunk_ids) + os.replace(f"{marker}.tmp.npz", marker) + del people, fips, chunk_ids + print( + "chunk", + i, + "seconds", + round(time.time() - t0), + "peak GiB", + peak(), + flush=True, + ) + assert seen == n + print("people", seen, "person columns", columns, flush=True) + fips = np.concatenate(fips_all) + for g in GROUPS: + gate() + pairs = pd.DataFrame( + {"id": np.concatenate(ids[g]), "state": fips} + ).drop_duplicates() + print( + g, + "groups", + pairs.id.nunique(), + "spanning states", + int(pairs.id.duplicated().sum()), + flush=True, + ) + table = store.select(g) + for state, members in pairs.groupby("state", sort=False): + replace_when_written( + table[table[f"{g}_id"].isin(members.id)], + f"{out}/{int(state):02d}-{g}.pkl.gz", + ) + del table, pairs, members + print(g, "peak GiB", peak(), flush=True) +for state in sorted({int(s) for s in states.unique()}): + final, merged = ( + f"{out}/{state:02d}-person.pkl.gz", + f"{out}/parts/merged-{state:02d}", + ) + parts = sorted(glob.glob(f"{out}/parts/{state:02d}-person-*.pkl.gz")) + if not os.path.exists(merged): + replace_when_written(pd.concat([pd.read_pickle(p) for p in parts]), final) + open(merged, "w").close() + for p in parts: + os.remove(p) +# The rename settles that the split is whole, so no stop can leave a chunk's marker without its parts for a later run to trust. +os.replace(f"{out}/parts", finished) +shutil.rmtree(finished) +print( + "done files", + len(glob.glob(f"{out}/*.pkl.gz")), + "seconds", + round(time.time() - t0), + "peak GiB", + peak(), + flush=True, +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_stored.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_stored.py new file mode 100644 index 0000000000..f5e7c571d2 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_stored.py @@ -0,0 +1,89 @@ +"""Stored dashboard audits (real Modal microsim runs, pe-us 2.30.1 and 1.825.2) against Table 18, and against the deck's default cut.""" + +import json +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +n = pd.read_csv(f"{SP}/run/default_noise.csv", index_col=0) + + +def load(f): + d = pd.DataFrame(json.load(open(f"{SP}/dash/{f}.json"))).set_index("state") + return d + + +F = { + "o1017@2.30.1 2025": "state_audit_o1017_2301_y25_2025_raw", + "buildp@1.825.2 2025": "state_audit_buildp_v2_y25_2025_raw", + "o1017@1.825.2 2025": "state_audit_o1017_18252_2025_raw", + "o1017@2.30.1 2024": "state_audit_o1017_2301_2024_raw", + "buildp@1.825.2 2024": "state_audit_buildp_v2_2024_raw", + "o1017@2.2.1 2024": "state_audit_o1017_221_2024_raw", +} +res = {} +for k, f in F.items(): + d = load(f) + col = "poverty_child_measured" if "poverty_child_measured" in d else "poverty_child" + print( + f, + {x: d[x].iloc[0] for x in ("pe_us", "slice_tag", "year")}, + "hh median", + d.n_households.median(), + "hh min", + d.n_households.min(), + d.status.value_counts().to_dict(), + ) + r = d[col] + g = r - c.rate + nat = (r * d.pop_under_18).sum() / d.pop_under_18.sum() + res[k] = r + print( + f"{k:24s} mean {g.mean():+.2f} MAD {g.abs().mean():.2f} sd {g.std():.2f} corr {np.corrcoef(r, c.rate)[0, 1]:.3f} beyond MOE {(g.abs() > c.moe).sum()} national {nat:.2f} corr(gap,defaultgap) {np.corrcoef(g, n.gap)[0, 1]:.2f}" + ) +R = pd.DataFrame(res) +R["census"] = c.rate +R["moe"] = c.moe +R["default"] = n.model +R["default_se"] = n.se +R["gap_acs"] = R["o1017@2.30.1 2025"] - R.census +R.to_csv(f"{SP}/run/acs_stored.csv") +print( + R[ + [ + "census", + "moe", + "default", + "default_se", + "o1017@2.30.1 2025", + "buildp@1.825.2 2025", + "gap_acs", + ] + ] + .sort_values("gap_acs") + .round(1) + .to_string() +) +# Noise-only check for ACS-local: what MAD would Census's sampling error alone produce? +rng = np.random.default_rng(1) +cse = c.moe / 1.645 +print( + "MAD from Census error alone", + np.abs(rng.standard_normal((20000, 51)) * cse.values).mean(1).mean(), + "with common shift of", + R.gap_acs.mean(), +) +sh = R.gap_acs.mean() +print( + "MAD Census error + shift", + np.abs(sh + rng.standard_normal((20000, 51)) * cse.values).mean(1).mean(), + "beyond", + (np.abs(sh + rng.standard_normal((20000, 51)) * cse.values) > c.moe.values) + .sum(1) + .mean(), +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acs_w.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_w.py new file mode 100644 index 0000000000..916f342c87 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acs_w.py @@ -0,0 +1,32 @@ +import os + +SP = os.path.dirname(os.path.abspath(__file__)) +import glob +import json +import os + +import h5py +import numpy as np +import pandas as pd + +B = os.path.expanduser( + os.path.expanduser("~/PolicyEngine/_build_artifacts/acs-local-l2-basis-20260928") +) +ns = sorted(os.listdir(B + "/runs")) +print(len(ns), [n for n in ns if not n.startswith("hold")][:60]) +z = np.load(B + "/runs/dup_release_repro/weights.npz") +print({k: z[k].shape for k in z.files}) +m = json.load(open(B + "/runs/dup_release_repro/metrics.json")) +print(list(m)[:30]) +f = glob.glob(B + "/checkpoint/*.h5") +print(f) +with h5py.File(f[0], "r") as h: + print(list(h.keys())[:20]) + print(list(h["household"].keys()) if "household" in h else "") +c = pd.read_hdf(f[0], "household") +print(c.shape, list(c.columns)[:20]) +print(c.head(3).to_string()[:600]) +a = pd.read_parquet(f"{SP}/run/acs_hh.parquet") +print(a.head(3).to_string()[:500]) +s = set(c.household_id) +print("overlap ids", len(s & set(a.household_id)), len(a)) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acsrent.py b/docs/evidence/us-state-child-spm-2026-11/scripts/acsrent.py new file mode 100644 index 0000000000..8e4be80ccd --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acsrent.py @@ -0,0 +1,94 @@ +"""ACS-local file: corrected rent per household. Donors take the base record's right rent; ACS rows take twelve times native monthly contract rent.""" + +import glob +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +f = S + "725d89993f6b2dc4821fd5c3620f0f3d4d630102/populace_us_2024_acs_local.h5" +h = pd.read_hdf(f, "household") +p = ( + pd.read_hdf(f, "person")[ + [ + "person_household_id", + "is_household_head", + "pre_subsidy_rent", + "person_support_channel" if False else "person_household_id", + ] + ] + if False + else pd.read_hdf(f, "person") +) +p = p[["person_household_id", "is_household_head", "pre_subsidy_rent"]] +ch = h.household_support_channel.astype(str) +print(ch.value_counts().to_dict()) +de = pd.read_hdf( + [x for x in glob.glob(S + "15cefac4*/*.h5") if "calib" not in x][0], "household" +)[["household_id", "household_source_id"]] +fx = ( + pd.read_parquet(f"{SP}/run/rentfix_dense.parquet") + .merge(de, on="household_id") + .drop_duplicates("household_source_id") + .set_index("household_source_id") +) +print( + "ACS rows", + h[ch.str.startswith("acs")][ + ["TEN", "RNTP", "GRNTP", "acs_monthly_contract_rent", "acs_monthly_gross_rent"] + ] + .describe() + .loc[["count", "mean", "50%", "max"]] + .round(1) + .to_string(), +) +print( + h[ch.str.startswith("acs")] + .groupby(h.TEN.astype(str)) + .agg( + n=("RNTP", "size"), + rntp_pos=( + "RNTP", + lambda s: (pd.to_numeric(s, errors="coerce").fillna(0) > 0).mean(), + ), + cr_pos=( + "acs_monthly_contract_rent", + lambda s: (pd.to_numeric(s, errors="coerce").fillna(0) > 0).mean(), + ), + ) + .round(3) + .to_string() +) +print( + pd.crosstab( + h.TEN[ch.str.startswith("acs")].astype(str), + h.tenure_type[ch.str.startswith("acs")].astype(str), + ).to_string() +) +hd = ( + p[p.is_household_head.astype(bool)] + .set_index("person_household_id") + .pre_subsidy_rent +) +h["was"] = h.household_id.map(hd) +print( + "heads per household: households with no head", + int(h.was.isna().sum()), + "by channel", + h.was.isna().groupby(ch).sum().to_dict(), +) +don = ~ch.str.startswith("acs") +m = h.household_source_id[don].map(fx.rent_was) +print( + "donor source found", + round(m.notna().mean(), 4), + "donor rent equal", + round( + float(np.isclose(m.dropna(), h.was[don][m.notna()], rtol=1e-3, atol=1).mean()), + 4, + ), +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/acsrent_parts.sh b/docs/evidence/us-state-child-spm-2026-11/scripts/acsrent_parts.sh new file mode 100644 index 0000000000..af4e66a251 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/acsrent_parts.sh @@ -0,0 +1,10 @@ +#!/bin/zsh +# The corrected-rent states whose baseline step passed the 8 GiB stop (New York, Florida, Texas, California), each in household +# parts through acs_parts.sh, one process at a time. The corrected-rent baseline computes SNAP and housing subsidy too, so it +# needs more parts than the published-rent pass did. +SP=${0:a:h}; cd $SP +LOG=run/acs_parts.log +for f k in 36 3 12 3 48 4 6 5; do + zsh acs_parts.sh $f acsrent $k || print -r -- "$(date -u +%TZ) $f acsrent parts failed" >> $LOG +done +print -r -- "$(date -u +%TZ) corrected-rent parts ended" >> $LOG diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/asec_extract.py b/docs/evidence/us-state-child-spm-2026-11/scripts/asec_extract.py new file mode 100644 index 0000000000..8450f3ce2d --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/asec_extract.py @@ -0,0 +1,103 @@ +import os +import zipfile + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +ROOT = os.path.expanduser("~/PolicyEngine/_buildm-runtime/inputs/asec_education") +SPMC = [ + "SPM_ACTC", + "SPM_BBSUBVAL", + "SPM_CAPHOUSESUB", + "SPM_CAPWKCCXPNS", + "SPM_CHILDCAREXPNS", + "SPM_CHILDSUPPD", + "SPM_EITC", + "SPM_ENGVAL", + "SPM_EQUIVSCALE", + "SPM_FAMTYPE", + "SPM_FEDTAX", + "SPM_FEDTAXBC", + "SPM_FICA", + "SPM_GEOADJ", + "SPM_ID", + "SPM_MEDXPNS", + "SPM_NUMADULTS", + "SPM_NUMKIDS", + "SPM_NUMPER", + "SPM_POOR", + "SPM_POVTHRESHOLD", + "SPM_RESOURCES", + "SPM_SCHLUNCH", + "SPM_SNAPSUB", + "SPM_STTAX", + "SPM_TENMORTSTATUS", + "SPM_TOTVAL", + "SPM_WEIGHT", + "SPM_WICVAL", + "SPM_WKXPNS", +] +out = [] +for sy in (23, 24, 25, 26): + z = zipfile.ZipFile(f"{ROOT}/asecpub{sy}csv.zip") + names = z.namelist() + pn = [n for n in names if n.lower().endswith(f"pppub{sy}.csv")][0] + hn = [n for n in names if n.lower().endswith(f"hhpub{sy}.csv")][0] + with z.open(pn) as f: + hdr = pd.read_csv(f, nrows=0).columns.tolist() + cols = [ + c + for c in hdr + if c + in set( + ["PERIDNUM", "PH_SEQ", "A_AGE", "A_FNLWGT", "MARSUPWT", "A_LINENO", "P_SEQ"] + + SPMC + ) + or c in ("SPM_Poor",) + ] + # case-insensitive map + u = {c.upper(): c for c in hdr} + want = [ + "PERIDNUM", + "PH_SEQ", + "A_AGE", + "A_FNLWGT", + "MARSUPWT", + "P_SEQ", + "A_LINENO", + ] + SPMC + cols = [u[c] for c in want if c in u] + miss = [c for c in want if c not in u] + print(sy, "missing", miss) + with z.open(pn) as f: + p = pd.read_csv(f, usecols=cols, dtype={u["PERIDNUM"]: str}) + p.columns = [c.upper() for c in p.columns] + with z.open(hn) as f: + h0 = pd.read_csv(f, nrows=0).columns.tolist() + uh = {c.upper(): c for c in h0} + with z.open(hn) as f: + h = pd.read_csv(f, usecols=[uh["H_SEQ"], uh["GESTFIPS"], uh["HSUP_WGT"]]) + h.columns = ( + ["H_SEQ", "GESTFIPS", "HSUP_WGT"] + if list(h.columns)[0].upper() == "H_SEQ" + else [c.upper() for c in h.columns] + ) + h.columns = [c.upper() for c in h.columns] + p = p.merge(h, left_on="PH_SEQ", right_on="H_SEQ", how="left") + p["income_year"] = 2000 + sy - 1 + print(sy, p.shape, p.GESTFIPS.isna().sum()) + ch = p[p.A_AGE < 18] + print( + " child SPM rate MARSUPWT", + np.average(ch.SPM_POOR, weights=ch.MARSUPWT), + " A_FNLWGT", + np.average(ch.SPM_POOR, weights=ch.A_FNLWGT), + " SPM_WEIGHT", + np.average(ch.SPM_POOR, weights=ch.SPM_WEIGHT), + ) + print(" all SPM rate MARSUPWT", np.average(p.SPM_POOR, weights=p.MARSUPWT)) + out.append(p) +a = pd.concat(out, ignore_index=True) +a.to_parquet(SP + "/asec/raw_asec_2022_2025.parquet") +print(a.shape) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/assemble.py b/docs/evidence/us-state-child-spm-2026-11/scripts/assemble.py new file mode 100644 index 0000000000..e264064fc1 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/assemble.py @@ -0,0 +1,143 @@ +"""Join each state's microsimulation output to Census's fields on the same units.""" + +import glob +import json +import os +import sys + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +B = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +FIPS = { + "AL": 1, + "AK": 2, + "AZ": 4, + "AR": 5, + "CA": 6, + "CO": 8, + "CT": 9, + "DE": 10, + "DC": 11, + "FL": 12, + "GA": 13, + "HI": 15, + "ID": 16, + "IL": 17, + "IN": 18, + "IA": 19, + "KS": 20, + "KY": 21, + "LA": 22, + "ME": 23, + "MD": 24, + "MA": 25, + "MI": 26, + "MN": 27, + "MS": 28, + "MO": 29, + "MT": 30, + "NE": 31, + "NV": 32, + "NH": 33, + "NJ": 34, + "NM": 35, + "NY": 36, + "NC": 37, + "ND": 38, + "OH": 39, + "OK": 40, + "OR": 41, + "PA": 42, + "RI": 44, + "SC": 45, + "SD": 46, + "TN": 47, + "TX": 48, + "UT": 49, + "VT": 50, + "VA": 51, + "WA": 53, + "WV": 54, + "WI": 55, + "WY": 56, +} +INV = {v: k for k, v in FIPS.items()} +CENSUS = """SPM_POOR SPM_RESOURCES SPM_POVTHRESHOLD SPM_TOTVAL SPM_SNAPSUB SPM_CAPHOUSESUB SPM_SCHLUNCH SPM_ENGVAL SPM_WICVAL SPM_BBSUBVAL +SPM_FICA SPM_FEDTAXBC SPM_EITC SPM_ACTC SPM_STTAX SPM_CAPWKCCXPNS SPM_MEDXPNS SPM_CHILDSUPPD SPM_GEOADJ SPM_EQUIVSCALE SPM_TENMORTSTATUS SPM_WEIGHT SPM_NUMPER""".split() + + +def people_table(h5, npz=None): + with pd.HDFStore(h5, "r") as s: + h = s.select("/household") + keep = [ + "person_household_id", + "person_spm_unit_id", + "age", + "source_year", + "source_household_id", + ] + [c for c in CENSUS] + pp = s.select("/person") + pp = pp[[c for c in keep if c in pp.columns]] + if npz: + z = np.load(npz, allow_pickle=True) + assert np.allclose(h.household_weight.values, z["household_weight"]) + h["w0"] = z["initial_household_weight"] + h["w1"] = h.household_weight + h["state"] = h.state_fips.map(INV) + return h, pp + + +def units(h, pp): + """One row per SPM unit, with its Census fields from the first member.""" + pp = pp.merge( + h[ + ["household_id", "state", "household_support_channel"] + + (["w0"] if "w0" in h else []) + + ["w1"] + ], + left_on="person_household_id", + right_on="household_id", + ) + g = pp.groupby("person_spm_unit_id", sort=False) + u = g.first().reset_index().rename(columns={"person_spm_unit_id": "spm_unit_id"}) + u["kids"] = g.age.apply(lambda a: (a < 18).sum()).values + u["people"] = g.size().values + return u + + +if __name__ == "__main__": + tag = sys.argv[1] + h5 = sys.argv[2] + npz = sys.argv[3] if len(sys.argv) > 3 and sys.argv[3] else None + h, pp = people_table(h5, npz) + u = units(h, pp) + files = sorted(glob.glob(f"{SP}/run/{tag}/*.parquet")) + pe = pd.concat([pd.read_parquet(f) for f in files], ignore_index=True) + print(len(files), "states", len(pe), "units", len(u)) + m = u.merge(pe, on="spm_unit_id", how="inner", validate="one_to_one") + assert (m.kids == m.n_children).all() + m.to_parquet(f"{SP}/run/{tag}_units.parquet") + # Reproduce the published run. + base = pd.DataFrame(json.load(open(SP + "/state_baseline.json"))["rows"]).set_index( + "state" + ) + k = m[m.kids > 0] + r = k.groupby("state").apply( + lambda d: ( + 100 + * np.average(d["spm_unit_is_in_spm_poverty__2025"], weights=d.w1 * d.kids) + ), + include_groups=False, + ) + cmp = pd.DataFrame({"mine": r, "slides": base.child_spm_percent}).dropna() + cmp["d"] = cmp.mine - cmp.slides + print( + "reproduction of state_baseline.json: max abs diff", + cmp.d.abs().max(), + "n", + len(cmp), + ) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/assemble_dense.py b/docs/evidence/us-state-child-spm-2026-11/scripts/assemble_dense.py new file mode 100644 index 0000000000..2f489ac24b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/assemble_dense.py @@ -0,0 +1,29 @@ +import os + +SP = os.path.dirname(os.path.abspath(__file__)) +import sys + +sys.argv = ["x"] +import glob + +import assemble as a +import pandas as pd + +h, pp = a.people_table( + os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/15cefac484174ae0ee11a82b164f58023ad05c84/populace_us_2024.h5" + ), + os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/15cefac484174ae0ee11a82b164f58023ad05c84/populace_us_2024_calibration.npz" + ), +) +u = a.units(h, pp) +print(len(u)) +pe = pd.concat( + [pd.read_parquet(f) for f in sorted(glob.glob(f"{SP}/run/dense/*.parquet"))], + ignore_index=True, +) +m = u.merge(pe, on="spm_unit_id", how="inner", validate="one_to_one") +assert (m.kids == m.n_children).all() +print(len(m), len(pe)) +m.to_parquet(f"{SP}/run/dense_units.parquet") diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/blank_holders.py b/docs/evidence/us-state-child-spm-2026-11/scripts/blank_holders.py new file mode 100644 index 0000000000..59fc99253b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/blank_holders.py @@ -0,0 +1,87 @@ +"""Who holds a blank parent link in the ACS-local file, by channel, household and state. Reads the split's tables, with no simulation. +Usage: blank_holders.py """ + +import glob +import os +import sys + +import pandas as pd + +d = sys.argv[1] +rows = [] +for f in sorted(glob.glob(d + "/*-person.pkl.gz")): + fips = int(os.path.basename(f)[:2]) + p = pd.read_pickle(f) + q = p[ + [ + "parent_1_id", + "parent_2_id", + "person_support_channel", + "person_household_id", + "age", + ] + ].copy() + del p + h = pd.read_pickle(f.replace("-person", "-household"))[ + ["household_id", "household_weight"] + ] + q = q.merge(h, left_on="person_household_id", right_on="household_id", how="left") + q["fips"] = fips + rows.append(q) +a = pd.concat(rows, ignore_index=True) +print("people", len(a), "households", a.person_household_id.nunique()) +b1, b2 = a.parent_1_id.isna(), a.parent_2_id.isna() +a["blank"] = b1 | b2 +w = a.household_weight +kids = a.age < 18 +print( + "blank parent_1", + int(b1.sum()), + "parent_2", + int(b2.sum()), + "both", + int((b1 & b2).sum()), + "either", + int(a.blank.sum()), +) +print( + "weighted share of people", + round(float((w * a.blank).sum() / w.sum()), 4), + "of children", + round(float((w * (a.blank & kids)).sum() / (w * kids).sum()), 4), +) +print( + "parent_1 zero", + int((a.parent_1_id == 0).sum()), + "positive", + int((a.parent_1_id > 0).sum()), + "negative", + int((a.parent_1_id < 0).sum()), +) +print( + a.groupby("person_support_channel", observed=True) + .blank.agg(["size", "sum"]) + .to_string() +) +hh = a.groupby("person_household_id").agg(blank=("blank", "sum"), n=("blank", "size")) +print( + "households with a blank", + int((hh.blank > 0).sum()), + "of them all blank", + int(((hh.blank > 0) & (hh.blank == hh.n)).sum()), +) +st = a.groupby("fips").apply( + lambda g: pd.Series( + { + "people": len(g), + "blank": int(g.blank.sum()), + "weighted_share": round( + float((g.household_weight * g.blank).sum() / g.household_weight.sum()), + 4, + ), + } + ), + include_groups=False, +) +st.to_csv(sys.argv[2]) +print(st.loc[[6, 10, 12, 25, 29]].to_string()) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/cf_eval.py b/docs/evidence/us-state-child-spm-2026-11/scripts/cf_eval.py new file mode 100644 index 0000000000..2e3988ae94 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/cf_eval.py @@ -0,0 +1,142 @@ +"""Aged pooled incomes and the 2021 CTC reform on the default file, from national simulations, against the state cuts.""" + +import json +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +u = pd.read_parquet( + f"{SP}/run/default_units.parquet", + columns=[ + "spm_unit_id", + "kids", + "w1", + "state", + "household_support_channel", + "source_household_id", + "spm_unit_is_in_spm_poverty__2025", + "spm_unit_is_in_spm_poverty__2024", + ], +) +Y = 2025 +b = pd.read_parquet(f"{SP}/run/cf_base.parquet") +a = pd.read_parquet(f"{SP}/run/cf_aged.parquet") +r = pd.read_parquet(f"{SP}/run/cf_reform.parquet") +print(list(b.columns)[:8], len(b), len(a), len(r)) +d = u[u.kids > 0].copy() +for tag, t in (("base", b), ("aged", a), ("reform", r)): + d = d.merge( + t[["spm_unit_id", f"spm_unit_is_in_spm_poverty__{Y}"]].rename( + columns={f"spm_unit_is_in_spm_poverty__{Y}": f"p_{tag}"} + ), + on="spm_unit_id", + ) +d["W"] = d.w1 * d.kids +d["cluster"] = ( + d.household_support_channel.astype(str).str[:4] + + ":" + + d.source_household_id.astype(str) +) +print( + "state cuts vs national base: units differing", + int((d.p_base != d[f"spm_unit_is_in_spm_poverty__{Y}"]).sum()), + "of", + len(d), +) +nat = lambda v: 100 * np.average(d[v], weights=d.W) +print( + "national base", + round(nat("p_base"), 2), + "aged", + round(nat("p_aged"), 2), + "reform", + round(nat("p_reform"), 2), +) +rows = [] +for st, g in d.groupby("state"): + W = g.W + T = W.sum() + rate = lambda v: 100 * (W * g[v]).sum() / T + + def se(f): + rr = (W * f).sum() / T + z = W * (f - rr) / T + cc = z.groupby(g.cluster).sum().values + n = len(cc) + return 100 * np.sqrt(n / (n - 1) * (cc**2).sum()) + + rows.append( + dict( + state=st, + census=c.rate[st], + base=rate("p_base"), + aged=rate("p_aged"), + reform=rate("p_reform"), + aged_d=rate("p_aged") - rate("p_base"), + aged_se=se(g.p_aged - g.p_base), + ref_d=rate("p_reform") - rate("p_base"), + ref_se=se(g.p_reform - g.p_base), + ) + ) +t = pd.DataFrame(rows).set_index("state") +t.to_csv(f"{SP}/run/cf_state.csv") +for v in ("base", "aged"): + e = t[v] - t.census + print( + v, + "mean gap", + round(e.mean(), 2), + "MAD", + round(e.abs().mean(), 2), + "sd", + round(e.std(), 2), + "corr", + round(np.corrcoef(t[v], t.census)[0, 1], 3), + "beyond", + int((e.abs() > c.moe.reindex(t.index)).sum()), + ) +print( + "aged step mean", + round(t.aged_d.mean(), 2), + "min", + round(t.aged_d.min(), 2), + "max", + round(t.aged_d.max(), 2), + "median se", + round(t.aged_se.median(), 2), +) +print( + t.loc[ + ["DC", "DE", "TN", "MD", "FL", "LA", "MT", "MA", "HI"], + ["base", "aged", "aged_d", "aged_se"], + ] + .round(2) + .to_string() +) +print( + "reform delta: national", + round(nat("p_reform") - nat("p_base"), 2), + "state median", + round(t.ref_d.median(), 2), + "min", + round(t.ref_d.min(), 2), + "max", + round(t.ref_d.max(), 2), + "median se", + round(t.ref_se.median(), 2), + "p90 se", + round(t.ref_se.quantile(0.9), 2), +) +print( + t.loc[ + ["DC", "DE", "TN", "MD", "FL", "LA", "MT", "MA", "HI", "CA", "TX", "NY"], + ["ref_d", "ref_se"], + ] + .round(2) + .T.to_string() +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/chi_eval.py b/docs/evidence/us-state-child-spm-2026-11/scripts/chi_eval.py new file mode 100644 index 0000000000..d4ec905d15 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/chi_eval.py @@ -0,0 +1,81 @@ +"""State fit and noise under the chi-square re-solves of the Build P support.""" + +import glob +import json +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +h = pd.read_hdf( + S + "9a814a3b3b53c0ecd6e1737b6ec862c31300ef6f/populace_us_2024.h5", "household" +)[["household_id"]] +pos = pd.Series(np.arange(len(h)), index=h.household_id.values) +u = pd.read_parquet(f"{SP}/run/default_units.parquet") +u = u[u.kids > 0].copy() +ix = pos.reindex(u.household_id.values).values.astype(int) +P = u["spm_unit_is_in_spm_poverty__2025"].values.astype(float) +E = (u.SPM_RESOURCES.fillna(0) < u.SPM_POVTHRESHOLD.fillna(0)).values.astype(float) +k = u.kids.values +st = u.state.values +clu = pd.factorize(u.source_year.astype(str) + ":" + u.source_household_id.astype(str))[ + 0 +] +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +cse = c.moe / 1.645 +z = np.load( + S + "8ab57ffc2ca41d8af631ff62ebbce95e966299f3/populace_us_2024_calibration.npz", + allow_pickle=True, +) +states = np.unique(st) + + +def stats(w): + W = w[ix] * k + r = [] + se = [] + for s in states: + m = st == s + Wm = W[m] + pm = P[m] + T = Wm.sum() + rr = (Wm * pm).sum() / T + zz = Wm * (pm - rr) / T + cc = np.bincount(pd.factorize(clu[m])[0], weights=zz) + n = len(cc) + r.append(100 * rr) + se.append(100 * np.sqrt(n / (n - 1) * (cc**2).sum())) + r = pd.Series(r, index=states) + se = pd.Series(se, index=states) + g = r - c.rate + v = se**2 + cse**2 + wt = 1 / v + mu = (wt * g).sum() / wt.sum() + Q = (wt * (g - mu) ** 2).sum() + t2 = max(0, (Q - 50) / (wt.sum() - (wt**2).sum() / wt.sum())) + return dict( + kish=w.sum() ** 2 / (w**2).sum(), + natE=100 * (W * E).sum() / W.sum(), + natP25=100 * (W * P).sum() / W.sum(), + kids_m=W.sum() / 1e6, + med_se=se.median(), + mean_gap=g.mean(), + sd_gap=g.std(), + mad=g.abs().mean(), + corr=np.corrcoef(r, c.rate)[0, 1], + tau=np.sqrt(t2), + ) + + +runs = {"published": z["household_weight"], "initial": z["initial_household_weight"]} +for f in sorted(glob.glob(f"{SP}/run/chi/*.npz")): + runs[os.path.basename(f)[:-4]] = np.load(f)["weights"] +T = pd.DataFrame({n: stats(np.asarray(w, float)) for n, w in runs.items()}).T +print(T.round(2).to_string()) +T.to_csv(f"{SP}/run/chi_eval.csv") diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/chi_solve.py b/docs/evidence/us-state-child-spm-2026-11/scripts/chi_solve.py new file mode 100644 index 0000000000..0a1320461b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/chi_solve.py @@ -0,0 +1,92 @@ +"""Build P support: the published solver plus microcosm's chi-square design-weight penalty. Usage: chi_solve.py """ + +import os +import sys +import time + +import numpy as np + +sys.path.insert(0, os.path.expanduser("~/reviews/pe30-population-2026-09-27/scripts")) +import calib_resolve as cr + +OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), "run", "chi") +os.makedirs(OUT, exist_ok=True) +lam = float(sys.argv[1]) + + +def solve( + A, # noqa: N803 + b, + lw, + w0, + lam, + epochs=6000, + lr=0.02, + ratio=5.0, + cap=1.0, + beta1=0.9, + beta2=0.999, + eps=1e-8, +): + keep = lw > 0 + A = A[keep].astype(np.float32).tocsr() + AT = A.T.tocsr() + b = b[keep].astype(np.float32) + s = np.maximum(np.abs(b), 1.0).astype(np.float32) + lwn = (lw[keep] / lw[keep].sum()).astype(np.float32) + log_w = np.log(w0).astype(np.float32) + upper = np.log(ratio * w0).astype(np.float32) + total0 = float(w0.sum()) + dsum = float(w0.sum()) + m = np.zeros_like(log_w) + v = np.zeros_like(log_w) + d = w0.astype(np.float32) + for ep in range(epochs): + w = np.exp(log_w) + est = A @ w + z = (est - b) / s + az = np.abs(z) + ge = (lwn * np.sign(z) * (az < cap) / s).astype(np.float32) + g = (AT @ ge) * w + # d/dlog w of lambda*sum(d*(w/d-1)^2)/sum(d) = lambda*2*(w/d-1)*w/sum(d) + g = g + lam * 2 * (w / d - 1) * w / dsum + t = ep + 1 + m = beta1 * m + (1 - beta1) * g + v = beta2 * v + (1 - beta2) * g * g + bc1 = 1 - beta1**t + bc2 = 1 - beta2**t + log_w = (log_w - (lr / bc1) * m / (np.sqrt(v) / np.sqrt(bc2) + eps)).astype( + np.float32 + ) + log_w = np.minimum(log_w, upper) + cur = float(np.exp(log_w).sum(dtype=np.float64)) + if cur > 0: + log_w = (log_w + np.float32(np.log(total0 / cur))).astype(np.float32) + log_w = np.minimum(log_w, upper) + final = np.exp(log_w.astype(np.float64)) + final = np.minimum(final, ratio * w0) + return cr.project_to_total(final, total0, ratio, w0) + + +diag, T, A, z, lw, fam, b = cr.load() +lw = lw.copy() +lw[fam == "jct"] = 0.0 +w0 = z["initial_household_weight"].astype(np.float64) +t = time.time() +w = solve(A, b, lw, w0, lam) +keep = lw > 0 +est = A @ w +e = np.abs(est - b) / np.maximum(np.abs(b), 1.0) +print( + lam, + "seconds", + round(time.time() - t), + "loss", + round(float((np.minimum(e[keep], 1) * lw[keep]).sum() / lw[keep].sum()), 4), + "within10", + round(float((e[keep] < 0.1).mean()), 3), + "kish", + round(w.sum() ** 2 / (w**2).sum()), + flush=True, +) +np.savez_compressed(f"{OUT}/l{lam}.npz", weights=w) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/cols.py b/docs/evidence/us-state-child-spm-2026-11/scripts/cols.py new file mode 100644 index 0000000000..6b805da673 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/cols.py @@ -0,0 +1,78 @@ +import os + +SP = os.path.dirname(os.path.abspath(__file__)) +import os + +import numpy as np +import pandas as pd + +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +f = S + "9a814a3b3b53c0ecd6e1737b6ec862c31300ef6f/populace_us_2024.h5" +for t in ("person", "tax_unit", "spm_unit", "household", "family"): + d = pd.read_hdf(f, t) + x = [] + for c in d.columns: + s = d[c] + if ( + s.dtype.kind == "f" + and s.abs().max() > 1000 + and not c.endswith("_id") + and "weight" not in c + and not c.startswith("SPM_") + and "id" not in c + ): + x.append(f"{c}:{s.abs().sum() / 1e9:.1f}") + print(t, d.shape, len(x)) + print(" ".join(x)) +u = pd.read_parquet(f"{SP}/run/default_units.parquet") +u = u[u.kids > 0] +print( + u.groupby("SPM_TENMORTSTATUS")[ + [ + "spm_unit_reference_spm_threshold__2025", + "spm_unit_reference_spm_threshold__2024", + "spm_unit_unadjusted_spm_threshold__2025", + ] + ] + .median() + .round(0) + .to_string() +) +print( + (u.spm_unit_spm_threshold__2025 / (u.spm_unit_reference_spm_threshold__2025)) + .describe() + .round(3) + .to_dict() +) +a = pd.read_parquet(f"{SP}/asec/raw_asec_2022_2025.parquet") +k = a[a.A_AGE < 18] + + +def wq(d, q, col="SPM_TOTVAL"): + d = d.sort_values(col) + c = d.MARSUPWT.cumsum() / d.MARSUPWT.sum() + return d[col].values[np.searchsorted(c.values, q)] + + +print( + { + y: [round(wq(d, q)) for q in (0.1, 0.2, 0.3, 0.5)] + for y, d in k.groupby("income_year") + } +) +print( + "mean TOTVAL", + k.groupby("income_year") + .apply(lambda d: np.average(d.SPM_TOTVAL, weights=d.MARSUPWT), include_groups=False) + .round(0) + .to_dict(), +) +print( + "mean RESOURCES q", + { + y: [round(wq(d, q, "SPM_RESOURCES")) for q in (0.1, 0.2, 0.3, 0.5)] + for y, d in k.groupby("income_year") + }, +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/ctc_ssn.py b/docs/evidence/us-state-child-spm-2026-11/scripts/ctc_ssn.py new file mode 100644 index 0000000000..85b2e80b44 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/ctc_ssn.py @@ -0,0 +1,78 @@ +"""Do units that lose the refundable child tax credit between 2024 and 2025 lack an adult with a valid SSN card? +pe-us: gov.irs.credits.ctc.adult_ssn_requirement_applies turns true on 2025-01-01; eligible cards are CITIZEN and NON_CITIZEN_VALID_EAD.""" + +import glob +import os + +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +f = glob.glob(S + "9a814a3b*/populace_us_2024.h5")[0] +p = pd.read_hdf(f, "person") +print([c for c in p.columns if "ssn" in c.lower() or "immigration" in c.lower()][:8]) +col = [c for c in p.columns if c.startswith("ssn_card_type")][0] +print(p[col].astype(str).value_counts(normalize=True).round(4).to_dict()) +p["valid"] = ( + p[col].astype(str).isin(["CITIZEN", "NON_CITIZEN_VALID_EAD"]) + if p[col].dtype == object or str(p[col].dtype) in ("str", "string", "category") + else False +) +agecol = [c for c in p.columns if c == "age" or c.startswith("age__")][0] +a = p[p[agecol] >= 18] +unitcol = [c for c in p.columns if c.startswith("person_spm_unit_id")][0] +ok = a.groupby(unitcol).valid.any() +pk = p[p[agecol] < 18].groupby(unitcol).size() +u = pd.read_parquet( + f"{SP}/run/default_units.parquet", + columns=[ + "spm_unit_id", + "kids", + "w1", + "state", + "refundable_ctc__2024", + "refundable_ctc__2025", + "spm_unit_is_in_spm_poverty__2024", + "spm_unit_is_in_spm_poverty__2025", + "household_support_channel", + ], +) +u = u[u.kids > 0].copy() +u["W"] = u.w1 * u.kids +u["adult_ok"] = u.spm_unit_id.map(ok).fillna(False).astype(bool) +lost = (u.refundable_ctc__2024 > 0) & (u.refundable_ctc__2025 <= 0) +print( + "lost share of child weight", + round(u.W[lost].sum() / u.W.sum() * 100, 2), + "units", + int(lost.sum()), +) +print( + "lost units with no adult holding a valid card, share of lost child weight", + round(u.W[lost & ~u.adult_ok].sum() / u.W[lost].sum(), 3), +) +print( + "all child units with no valid-card adult, share of child weight", + round(u.W[~u.adult_ok].sum() / u.W.sum() * 100, 2), +) +print( + u[~u.adult_ok] + .groupby("household_support_channel") + .W.sum() + .div(u.W[~u.adult_ok].sum()) + .round(3) + .to_dict() +) +fl = (u.spm_unit_is_in_spm_poverty__2024 == 0) & ( + u.spm_unit_is_in_spm_poverty__2025 == 1 +) +print( + "flips into poverty, child weight share", + round(u.W[fl].sum() / u.W.sum() * 100, 2), + "of which lost CTC", + round(u.W[fl & lost].sum() / u.W[fl].sum(), 3), + "of which lost and no valid adult", + round(u.W[fl & lost & ~u.adult_ok].sum() / u.W[fl].sum(), 3), +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/cutrun.py b/docs/evidence/us-state-child-spm-2026-11/scripts/cutrun.py new file mode 100644 index 0000000000..a084e9de97 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/cutrun.py @@ -0,0 +1,106 @@ +"""Cut a Populace file into one flat frame per state in one process, then simulate each state in workers. + +The flat frame matches state_baseline.py's state_file. Workers load only their state's frame, so a large file needs +no whole-table load in each worker. Usage: cutrun.py
[years] [order] +""" + +import os +import sys +import time +import warnings +from importlib.metadata import version +from multiprocessing import Pool +from pathlib import Path + +import numpy as np +import pandas as pd + +warnings.filterwarnings("ignore") +SP = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, SP) +import extract_state as ex +from policyengine_core.data import Dataset +from policyengine_us import Microsimulation + +DATA_YEAR = 2024 + + +def cut(h5, d): + ex.load(h5) + t = ex.tables + print({k: v.shape for k, v in t.items()}, flush=True) + fips = sorted(int(v) for v in t["household"]["state_fips"].unique()) + only = os.environ.get("ONLY_FIPS") + if only: + fips = [f for f in fips if f in {int(v) for v in only.split(",")}] + for f in fips: + p = d / f"{f:02d}.pkl" + if p.exists(): + continue + frame = ex.state_file(f) + frame.to_pickle(p) + return fips + + +def fix(frame): + """Blank parent links fail integer casts from pe-us 2.30.2, and the model reads 0 as unknown. The default and dense files store no blanks, so this leaves them unchanged.""" + for c in frame.columns: + if c.startswith("parent_") and c.endswith("_id__2024"): + frame[c] = frame[c].fillna(0).astype(np.int64) + return frame + + +def run(a): + fips, d, out, years = a + target = Path(out) / f"{fips:02d}.parquet" + if target.exists(): + return fips, "cached" + started = time.time() + frame = pd.read_pickle(Path(d) / f"{fips:02d}.pkl") + frame = fix(frame) + sim = Microsimulation(dataset=Dataset.from_dataframe(frame, DATA_YEAR)) + ids = sim.calculate("spm_unit_id", DATA_YEAR).values + res = {"spm_unit_id": ids} + age = sim.calculate("age", DATA_YEAR).values + pu = sim.calculate("person_spm_unit_id", DATA_YEAR).values + res["n_children"] = pd.Series(age < 18).groupby(pu).sum().reindex(ids).values + res["n_people"] = pd.Series(age).groupby(pu).size().reindex(ids).values + extra = os.environ.get("REFORM_YEAR") # noqa: F841 + for y in years: + for n in ex.SPM_VARS + ex.UP_VARS: + res[f"{n}__{y}"] = np.asarray( + sim.calculate(n, y, map_to="spm_unit").values, dtype=float + ) + res = pd.DataFrame(res) + res["state_fips"] = fips + res.to_parquet(target) + return fips, round(time.time() - started) + + +if __name__ == "__main__": + tag, h5, workers = sys.argv[1], sys.argv[2], int(sys.argv[3]) + years = tuple( + int(y) for y in (sys.argv[4] if len(sys.argv) > 4 else "2024,2025").split(",") + ) + d = Path(SP) / "run" / f"{tag}_cuts" + d.mkdir(parents=True, exist_ok=True) + out = Path(SP) / "run" / tag + out.mkdir(parents=True, exist_ok=True) + fips = cut(h5, d) + ex.tables = None + sizes = {f: (d / f"{f:02d}.pkl").stat().st_size for f in fips} + order = sorted(fips, key=sizes.get) + print( + "policyengine-us", + version("policyengine-us"), + "states", + len(order), + "cut GB", + round(sum(sizes.values()) / 1e9, 2), + flush=True, + ) + with Pool(workers, maxtasksperchild=1) as pool: + for done, sec in pool.imap_unordered( + run, [(f, str(d), str(out), years) for f in order] + ): + print(done, sec, flush=True) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/dash_swing.py b/docs/evidence/us-state-child-spm-2026-11/scripts/dash_swing.py new file mode 100644 index 0000000000..27d95e5d3b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/dash_swing.py @@ -0,0 +1,88 @@ +"""How far the stored dashboard audits move each state's 2021 CTC effect between builds, against the sampling error of one build.""" + +import json +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +pd.set_option("display.width", 200) +if os.path.isdir(f"{SP}/dash"): + d = {} + for tag, f in ( + ("p24", "state_audit_buildp_v2_2024_raw.json"), + ("p25", "state_audit_buildp_v2_y25_2025_raw.json"), + ("o24", "state_audit_o1017_2301_2024_raw.json"), + ("o25", "state_audit_o1017_2301_y25_2025_raw.json"), + ("o25_18252", "state_audit_o1017_18252_2025_raw.json"), + ("o24_221", "state_audit_o1017_221_2024_raw.json"), + ): + x = json.load(open(f"{SP}/dash/{f}")) + if tag == "p24": + print(list(x[0].keys())[:20]) + key = [k for k in x[0] if k in ("state", "state_code", "state_abbr")][0] + d[tag] = pd.Series( + {r[key]: r.get("ref_ctc2021_child_pov_change_pp_measured") for r in x}, + dtype=float, + ) + t = pd.DataFrame(d) +else: + # A host restart wiped the stored audits; dash_swing.csv holds the same columns, written from them. + t = pd.read_csv(f"{SP}/run/dash_swing.csv", index_col=0) +print(t.isna().sum().to_dict(), len(t)) +for a, b in (("p24", "o24"), ("p25", "o25")): + e = (t[a] - t[b]).dropna() + print( + a, + b, + "states", + len(e), + "mean abs swing", + round(e.abs().mean(), 2), + "sd", + round(e.std(), 2), + "max", + round(e.abs().max(), 2), + e.abs().idxmax(), + "corr", + round(np.corrcoef(t.loc[e.index, a], t.loc[e.index, b])[0, 1], 3), + ) +a = pd.read_csv(f"{SP}/run/acs_eval.csv", index_col=0) +print( + "this run vs stored o25, mean abs", + round((a.delta - t.o25.reindex(a.index)).abs().mean(), 3), +) +e = (t.p25 - t.o25).reindex(a.index) +print( + "implied sd of between-build noise per build", + round(e.std() / np.sqrt(2), 2), + "median delta se", + round(a.delta_se.median(), 2), + "rms delta se", + round(np.sqrt((a.delta_se**2).mean()), 2), +) +same = (t.p25 - t.o25_18252).dropna() +print( + "same model 1.825.2, Build P against Build O, 2025: mean abs", + round(same.abs().mean(), 2), + "sd", + round(same.std(), 2), + "per build", + round(same.std() / np.sqrt(2), 2), + "max", + round(same.abs().max(), 2), + same.abs().idxmax(), +) +ver = (t.o25 - t.o25_18252).dropna() +print( + "same file across 1.825.2 and 2.30.1, 2025: mean abs", + round(ver.abs().mean(), 2), + "sd", + round(ver.std(), 2), + "max", + round(ver.abs().max(), 2), + ver.abs().idxmax(), +) +print(t.loc[["AZ", "DC", "NC"]].round(2).to_string()) +t.to_csv(f"{SP}/run/dash_swing.csv") diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/decomp.py b/docs/evidence/us-state-child-spm-2026-11/scripts/decomp.py new file mode 100644 index 0000000000..65265b1c61 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/decomp.py @@ -0,0 +1,152 @@ +"""Waterfall and exact Shapley decomposition of the state child SPM gap.""" + +import itertools +import math +import os +import sys + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +TAG = sys.argv[1] if len(sys.argv) > 1 else "default" +u = pd.read_parquet(f"{SP}/run/{TAG}_units.parquet") +u = u[u.kids > 0].copy() +Y0, Y1 = 2024, 2025 +c = lambda n: u[n].fillna(0).values.astype(float) +p = lambda n, y=Y0: u[f"{n}__{y}"].values.astype(float) +# Census's identity, verified to the dollar on all four ASEC files. +census_cash = c("SPM_TOTVAL") +census_inkind = ( + c("SPM_SNAPSUB") + + c("SPM_CAPHOUSESUB") + + c("SPM_SCHLUNCH") + + c("SPM_ENGVAL") + + c("SPM_WICVAL") + + c("SPM_BBSUBVAL") +) +census_fed = c("SPM_FEDTAXBC") - c("SPM_EITC") - c("SPM_ACTC") +census_payst = c("SPM_FICA") + c("SPM_STTAX") +census_exp = c("SPM_CAPWKCCXPNS") + c("SPM_MEDXPNS") + c("SPM_CHILDSUPPD") +check = census_cash + census_inkind - census_fed - census_payst - census_exp +print("identity max abs", np.abs(check - c("SPM_RESOURCES")).max()) +INKIND = [ + "snap", + "wic", + "free_school_meals", + "reduced_price_school_meals", + "spm_unit_capped_housing_subsidy", + "spm_unit_energy_subsidy", + "acp", + "ebb", +] + + +def pe_parts(y): + inkind = sum(p(n, y) for n in INKIND) + # spm_unit_benefits holds cash and in-kind together. + cash = ( + p("spm_unit_market_income", y) + + p("spm_unit_benefits", y) + + p("acp", y) + + p("ebb", y) + - inkind + ) + fed = p("spm_unit_federal_tax", y) + payst = ( + p("spm_unit_payroll_tax", y) + + p("spm_unit_self_employment_tax", y) + + p("spm_unit_state_tax", y) + + p("spm_unit_local_tax", y) + ) + exp = p("spm_unit_spm_expenses", y) + return dict(cash=cash, inkind=inkind, fed=fed, payst=payst, exp=exp) + + +pe24, pe25 = pe_parts(Y0), pe_parts(Y1) +net = pe24["cash"] + pe24["inkind"] - pe24["fed"] - pe24["payst"] - pe24["exp"] +print( + "PE identity: max abs diff to spm_unit_net_income 2024", + np.abs(net - p("spm_unit_net_income")).max(), + "taxes parts vs spm_unit_taxes", + np.abs(pe24["fed"] + pe24["payst"] - p("spm_unit_taxes")).max(), +) +census = dict( + cash=census_cash, + inkind=census_inkind, + fed=census_fed, + payst=census_payst, + exp=census_exp, +) +T_c, T_p = c("SPM_POVTHRESHOLD"), p("spm_unit_spm_threshold") +# National source-year price factor from Census thresholds to PE's 2024 thresholds. +ratio = T_p / T_c +priceyear = pd.Series(ratio).groupby(u.source_year.values).transform("median").values +print( + "median T_PE/T_Census by source year", + pd.Series(ratio).groupby(u.source_year.values).median().round(4).to_dict(), +) +T_c_y = T_c * priceyear +FACT = ["priceyear", "threshold_rest", "cash", "inkind", "fed", "payst", "exp"] + + +def poor(sw): + T = T_c if not sw["priceyear"] else T_c_y + if sw["threshold_rest"]: + T = T_p if sw["priceyear"] else T_p / priceyear + R = 0.0 + for k in ("cash", "inkind"): + R = R + (pe24[k] if sw[k] else census[k]) + for k in ("fed", "payst", "exp"): + R = R - (pe24[k] if sw[k] else census[k]) + return R < T + + +st = u.state.values +states = sorted(set(st)) +W = (u.w1 * u.kids).values + + +def bystate(flag): + num = pd.Series(flag * W).groupby(st).sum() + den = pd.Series(W).groupby(st).sum() + return 100 * num / den + + +n = len(FACT) +vals = {} +for bits in itertools.product([0, 1], repeat=n): + vals[bits] = bystate(poor(dict(zip(FACT, bits)))) +out = pd.DataFrame(index=states) +for i, f in enumerate(FACT): + tot = 0 + for bits in itertools.product([0, 1], repeat=n - 1): + s = sum(bits) + w = math.factorial(s) * math.factorial(n - s - 1) / math.factorial(n) + a = bits[:i] + (1,) + bits[i:] + b = bits[:i] + (0,) + bits[i:] + tot = tot + w * (vals[a] - vals[b]) + out[f] = tot +out["E_census_flag"] = vals[(0,) * n] +out["pe_2024"] = bystate(p("spm_unit_is_in_spm_poverty")) +out["pe_all_swapped"] = vals[(1,) * n] +out["pe_2025"] = bystate(p("spm_unit_is_in_spm_poverty", Y1)) +out["year"] = out.pe_2025 - out.pe_2024 +print( + "swap reproduces PE 2024: max diff", (out.pe_2024 - out.pe_all_swapped).abs().max() +) +print( + "census flag check", + (bystate(c("SPM_RESOURCES") < c("SPM_POVTHRESHOLD")) - out.E_census_flag) + .abs() + .max(), +) +out.to_csv(f"{SP}/run/{TAG}_shapley.csv") +print(out.round(1).to_string()) +print(out.drop(columns=["pe_all_swapped"]).mean().round(2).to_string()) +nat = {} +Wt = W.sum() +for k, v in {"E": vals[(0,) * n], "pe24": out.pe_2024, "pe25": out.pe_2025}.items(): + wst = pd.Series(W).groupby(st).sum() + nat[k] = float((v * wst).sum() / wst.sum()) +print("national", nat) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/decomp2.py b/docs/evidence/us-state-child-spm-2026-11/scripts/decomp2.py new file mode 100644 index 0000000000..c683f1939b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/decomp2.py @@ -0,0 +1,133 @@ +"""Exact Shapley of Census-flag to PE-2024 by resource component, by state and by support channel, on final weights.""" + +import itertools +import math +import os +import sys + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +TAG = sys.argv[1] if len(sys.argv) > 1 else "default" +CH = sys.argv[2] if len(sys.argv) > 2 else "all" +u = pd.read_parquet(f"{SP}/run/{TAG}_units.parquet") +u = u[u.kids > 0].copy() +if CH != "all": + u = u[u.household_support_channel == CH].copy() +c = lambda n: u[n].fillna(0).values.astype(float) if n in u else np.zeros(len(u)) +p = lambda n, y=2024: u[f"{n}__{y}"].values.astype(float) +Cn = dict( + cash=c("SPM_TOTVAL"), + snap=c("SPM_SNAPSUB"), + housing=c("SPM_CAPHOUSESUB"), + otherkind=c("SPM_SCHLUNCH") + c("SPM_ENGVAL") + c("SPM_WICVAL") + c("SPM_BBSUBVAL"), + fed=-(c("SPM_FEDTAXBC") - c("SPM_EITC") - c("SPM_ACTC")), + payst=-(c("SPM_FICA") + c("SPM_STTAX")), + exp=-(c("SPM_CAPWKCCXPNS") + c("SPM_MEDXPNS") + c("SPM_CHILDSUPPD")), +) +snap = p("snap") +house = p("spm_unit_capped_housing_subsidy") +ok = ( + p("wic") + + p("free_school_meals") + + p("reduced_price_school_meals") + + p("spm_unit_energy_subsidy") + + p("acp") + + p("ebb") +) +Pe = dict( + cash=p("spm_unit_market_income") + + p("spm_unit_benefits") + + p("acp") + + p("ebb") + - snap + - house + - ok, + snap=snap, + housing=house, + otherkind=ok, + fed=-p("spm_unit_federal_tax"), + payst=-( + p("spm_unit_payroll_tax") + + p("spm_unit_self_employment_tax") + + p("spm_unit_state_tax") + + p("spm_unit_local_tax") + ), + exp=-p("spm_unit_spm_expenses"), +) +print( + "identity", + np.abs(sum(Cn.values()) - c("SPM_RESOURCES")).max(), + np.abs(sum(Pe.values()) - p("spm_unit_net_income")).max(), +) +Tc = c("SPM_POVTHRESHOLD") +Tp = p("spm_unit_spm_threshold") +pf = pd.Series(Tp / Tc).groupby(u.source_year.values).transform("median").values +FACT = ["priceyear", "threshold_rest"] + list(Cn) +W = (u.w1 * u.kids).values +states = sorted(set(u.state)) +si = pd.Categorical(u.state, categories=states).codes +den = np.bincount(si, W, minlength=len(states)) + + +def val(bits): + sw = dict(zip(FACT, bits)) + T = ( + (Tp if sw["threshold_rest"] else Tp / pf) + if sw["priceyear"] + else (Tp / pf if sw["threshold_rest"] else Tc) + ) + T = ( + Tp + if (sw["priceyear"] and sw["threshold_rest"]) + else (Tc * pf if sw["priceyear"] else (Tp / pf if sw["threshold_rest"] else Tc)) + ) + R = sum((Pe[k] if sw[k] else Cn[k]) for k in Cn) + f = (R < T).astype(float) * W + return np.append( + np.bincount(si, f, minlength=len(states)) / den * 100, f.sum() / W.sum() * 100 + ) + + +n = len(FACT) +V = {b: val(b) for b in itertools.product([0, 1], repeat=n)} +out = {} +for i, f in enumerate(FACT): + tot = 0 + for bits in itertools.product([0, 1], repeat=n - 1): + s = sum(bits) + w = math.factorial(s) * math.factorial(n - s - 1) / math.factorial(n) + tot = tot + w * (V[bits[:i] + (1,) + bits[i:]] - V[bits[:i] + (0,) + bits[i:]]) + out[f] = tot +o = pd.DataFrame(out, index=states + ["US"]) +o.insert(0, "E", V[(0,) * n]) +o["pe24"] = V[(1,) * n] +o["n"] = list(pd.Series(si).value_counts().sort_index().values) + [len(u)] +o.to_csv(f"{SP}/run/{TAG}_shapley9_{CH}.csv") +pd.set_option("display.width", 200) +print( + CH, + o.loc[ + [ + "US", + "LA", + "MS", + "AR", + "HI", + "MT", + "DE", + "MD", + "MA", + "MO", + "TN", + "IL", + "DC", + "FL", + "CA", + ] + ] + .round(1) + .to_string(), +) +print("mean", o.drop(index="US").mean().round(2).to_dict()) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/dense_fit.py b/docs/evidence/us-state-child-spm-2026-11/scripts/dense_fit.py new file mode 100644 index 0000000000..94f7920a9b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/dense_fit.py @@ -0,0 +1,185 @@ +"""Dense b5db384 state fit, clustered noise, between-state variance, and the join to the sparse gaps.""" + +import json +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +u = pd.read_parquet(f"{SP}/run/dense_units.parquet") +u = u[u.kids > 0].copy() +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +cse = c.moe / 1.645 +u["W"] = u.w1 * u.kids +u["W0"] = u.w0 * u.kids +u["clu"] = pd.factorize( + u.source_year.astype(str) + ":" + u.source_household_id.astype(str) +)[0] +u["P25"] = u["spm_unit_is_in_spm_poverty__2025"].astype(float) +u["P24"] = u["spm_unit_is_in_spm_poverty__2024"].astype(float) +u["E"] = (u.SPM_RESOURCES.fillna(0) < u.SPM_POVTHRESHOLD.fillna(0)).astype(float) + + +def lin(g, W, f): # noqa: N803 + T = g[W].sum() + r = (g[W] * g[f]).sum() / T + z = (g[W] * (g[f] - r) / T).values + cc = np.bincount(pd.factorize(g.clu)[0], weights=z) + n = len(cc) + return 100 * r, 100 * np.sqrt(n / (n - 1) * (cc**2).sum()), n + + +rows = [] +for s, g in u.groupby("state"): + r, se, n = lin(g, "W", "P25") + r24, _, _ = lin(g, "W", "P24") + e, ese, _ = lin(g, "W", "E") + d, dse, _ = lin(g, "W0", "E") + k = g.W.sum() ** 2 / (g.W**2).sum() + kc = g.groupby("clu").W.sum() + kc = kc.sum() ** 2 / (kc**2).sum() + rows.append( + dict( + state=s, + model=r, + se=se, + pe24=r24, + E=e, + E_se=ese, + D=d, + D_se=dse, + clusters=n, + kish_units=k, + kish_src=kc, + ) + ) +d = pd.DataFrame(rows).set_index("state").join(c) +d["cse"] = cse +d["gap"] = d.model - d.rate +sp = pd.read_csv(f"{SP}/run/waterfall.csv", index_col=0) +acs = pd.read_csv(f"{SP}/run/acs_stored.csv", index_col=0) +d["sp57"] = sp.model +d["sp57_se"] = sp.se_model_rep +d["acs_stored"] = acs["o1017@2.30.1 2025"] +d.to_csv(f"{SP}/run/dense_fit.csv") +g = d.gap +print( + "gap mean", + g.mean().round(2), + "sd", + g.std().round(2), + "MAD", + g.abs().mean().round(2), + "corr", + np.corrcoef(d.model, d.rate)[0, 1].round(3), + "beyond", + (g.abs() > d.moe).sum(), +) +print( + "median se", + d.se.median().round(2), + "rms", + np.sqrt((d.se**2).mean()).round(2), + "median Kish source", + d.kish_src.median().round(0), + "units", + d.kish_units.median().round(0), + "min", + d.kish_src.min().round(0), + d.kish_src.idxmin(), +) +v = d.se**2 + d.cse**2 +w = 1 / v +mu = (w * g).sum() / w.sum() +Q = (w * (g - mu) ** 2).sum() +t2 = max(0, (Q - 50) / (w.sum() - (w**2).sum() / w.sum())) +ws = 1 / (v + t2) +print( + "DL Q", + Q.round(1), + "tau", + np.sqrt(t2).round(2), + "mu_re", + ((ws * g).sum() / ws.sum()).round(2), +) +mc = g - g.mean() +sg = d.sp57 - d.rate +ag = d.acs_stored - d.rate +print( + "corr of gaps: dense-sparse", + np.corrcoef(g, sg)[0, 1].round(2), + "dense-acs", + np.corrcoef(g, ag)[0, 1].round(2), + "sparse-acs", + np.corrcoef(sg, ag)[0, 1].round(2), +) +print( + "corr of rates: dense-sparse", + np.corrcoef(d.model, d.sp57)[0, 1].round(2), + "dense-acs", + np.corrcoef(d.model, d.acs_stored)[0, 1].round(2), +) +print( + "E vs pool", + np.corrcoef(d.E, pd.read_csv(f"{SP}/asec/state_raw.csv", index_col=0).avg_22_24)[ + 0, 1 + ].round(3), +) +nat = lambda f, W="W": 100 * (u[W] * u[f]).sum() / u[W].sum() # noqa: N803 +print( + "national D", + nat("E", "W0").round(2), + "E", + nat("E").round(2), + "P24", + nat("P24").round(2), + "P25", + nat("P25").round(2), + "kids m", + (u.W.sum() / 1e6).round(2), + "kids0", + (u.W0.sum() / 1e6).round(2), +) +pd.set_option("display.width", 200) +print( + d.loc[ + [ + "DC", + "DE", + "TN", + "MD", + "FL", + "RI", + "VT", + "MO", + "MA", + "LA", + "MT", + "MS", + "HI", + "AR", + "NM", + "MI", + "CA", + "TX", + ], + [ + "rate", + "moe", + "sp57", + "sp57_se", + "acs_stored", + "D", + "E", + "pe24", + "model", + "se", + "gap", + ], + ] + .round(1) + .to_string() +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/dense_rent.py b/docs/evidence/us-state-child-spm-2026-11/scripts/dense_rent.py new file mode 100644 index 0000000000..18af338a28 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/dense_rent.py @@ -0,0 +1,60 @@ +"""All 51 states of the dense file with rent back on the household it was drawn for. Same variables and years as the dense run. Weights unchanged. +Usage: dense_rent.py """ + +import glob +import os +import sys + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, SP) +from cutrun import Path, Pool, ex, run, version + +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +h5 = [x for x in glob.glob(S + "15cefac4*/*.h5") if "calib" not in x][0] +workers = int(sys.argv[1]) +tag = "denserent" +years = (2024, 2025) +d = Path(SP) / "run" / f"{tag}_cuts" +d.mkdir(parents=True, exist_ok=True) +out = Path(SP) / "run" / tag +out.mkdir(parents=True, exist_ok=True) +ex.load(h5) +right = ( + pd.read_parquet(f"{SP}/run/rentfix_dense.parquet") + .set_index("household_id") + .rent_right +) +p = ex.tables["person"] +head = p.is_household_head.astype(bool).values +rent = np.zeros(len(p)) +rent[head] = p.person_household_id[head].map(right).values +assert np.isfinite(rent).all() +p["pre_subsidy_rent"] = rent +ex.tables["person"] = p +fips = sorted(int(v) for v in ex.tables["household"]["state_fips"].unique()) +for f in fips: + q = d / f"{f:02d}.pkl" + if not q.exists(): + ex.state_file(f).to_pickle(q) +ex.tables = None +sizes = {f: (d / f"{f:02d}.pkl").stat().st_size for f in fips} +order = sorted(fips, key=sizes.get) +print( + "policyengine-us", + version("policyengine-us"), + "states", + len(order), + "cut GB", + round(sum(sizes.values()) / 1e9, 2), + flush=True, +) +with Pool(workers, maxtasksperchild=1) as pool: + for done, sec in pool.imap_unordered( + run, [(f, str(d), str(out), years) for f in order] + ): + print(done, sec, flush=True) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/dl.py b/docs/evidence/us-state-child-spm-2026-11/scripts/dl.py new file mode 100644 index 0000000000..3da86d7842 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/dl.py @@ -0,0 +1,23 @@ +import os + +from huggingface_hub import hf_hub_download + +for rev, f in [ + ("populace-us-2024-b5db384-8b0c1950b65f-20261024T083103Z", "populace_us_2024.h5"), + ( + "populace-us-2024-b5db384-8b0c1950b65f-20261024T083103Z", + "populace_us_2024_calibration.npz", + ), + ( + "populace-us-2024-0fb05b6-4b57d15a287c-20260930T150401Z", + "populace_us_2024_calibration.npz", + ), + ( + "populace-us-2024-buildo-acs-local-766b7c7-20261017T030317Z", + "populace_us_2024_acs_local.h5", + ), +]: + p = hf_hub_download( + "policyengine/populace-us", f, repo_type="dataset", revision=rev + ) + print(rev, f, p, round(os.path.getsize(p) / 1e9, 2), flush=True) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/dmiss.py b/docs/evidence/us-state-child-spm-2026-11/scripts/dmiss.py new file mode 100644 index 0000000000..8852d38ca3 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/dmiss.py @@ -0,0 +1,46 @@ +import os + +import numpy as np +import pandas as pd + +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +z = np.load( + S + "15cefac484174ae0ee11a82b164f58023ad05c84/populace_us_2024_calibration.npz", + allow_pickle=True, +) +print(z.files) +n = pd.Series(z["target_names"].astype(str)) +t = z["target_values"] +i = z["initial_estimates"] +f = z["final_estimates"] +print(n.sample(12, random_state=1).str[:90].to_string()) +d = pd.DataFrame({"n": n, "t": t, "i": i, "f": f}) +keys = { + "snap_spend": r"snap.*(total|cost|benefit)|snap$", + "snap": r"snap", + "medicaid": r"medicaid", + "chip": r"chip", + "eitc": r"eitc", + "aca": r"aca|ptc", + "ctc": r"[^a-z]ctc", + "wages": r"employment_income|wages", + "agi": r"adjusted_gross_income", + "income_tax": r"income_tax", + "pop": r"population|age", +} +for k, p in keys.items(): + m = d.n.str.contains(p, regex=True, case=False) + x = d[m] + if len(x): + print( + k, + len(x), + "agg init miss", + round(x.i.sum() / x.t.sum() - 1, 3), + "agg final", + round(x.f.sum() / x.t.sum() - 1, 3), + "median rel init", + round((x.i / x.t.replace(0, np.nan) - 1).median(), 3), + ) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/extract_state.py b/docs/evidence/us-state-child-spm-2026-11/scripts/extract_state.py new file mode 100644 index 0000000000..dfa4c0fbdb --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/extract_state.py @@ -0,0 +1,130 @@ +"""Run one state's cut of a Populace file and store SPM-unit results. + +Follows state_baseline.py on PolicyEngine/policyengine-slides#95: one state at a +time, as a flat file with group columns on each member's row. +""" + +import sys +import time +import warnings +from importlib.metadata import version +from multiprocessing import Pool +from pathlib import Path + +import numpy as np +import pandas as pd + +warnings.filterwarnings("ignore") +from policyengine_core.data import Dataset +from policyengine_us import CountryTaxBenefitSystem, Microsimulation + +DATA_YEAR = 2024 +YEARS = (2024, 2025) +GROUPS = ("tax_unit", "spm_unit", "family", "marital_unit") +SPM_VARS = """spm_unit_is_in_spm_poverty spm_unit_net_income spm_unit_spm_threshold +spm_unit_reference_spm_threshold spm_unit_unadjusted_spm_threshold spm_unit_geographic_adjustment +spm_measurement_adults spm_measurement_children spm_unit_market_income spm_unit_benefits +spm_unit_taxes spm_unit_spm_expenses spm_unit_payroll_tax spm_unit_self_employment_tax +spm_unit_federal_tax spm_unit_state_tax spm_unit_local_tax child_support_expense +spm_unit_medical_out_of_pocket_expenses spm_unit_capped_work_childcare_expenses +snap wic free_school_meals reduced_price_school_meals spm_unit_capped_housing_subsidy +spm_unit_energy_subsidy tanf ssi social_security total_unemployment_compensation +child_support_received workers_compensation educational_assistance acp ebb""".split() +# Mapped up from person or tax unit to the SPM unit. +UP_VARS = """eitc refundable_ctc employment_income self_employment_income capital_gains +partnership_s_corp_income""".split() + +tables = None +known = None +path = None + + +def load(h5): + global tables, known, path + path = h5 + known = set(CountryTaxBenefitSystem().variables) + with pd.HDFStore(h5, "r") as store: + tables = {n: store.select(n) for n in ("household", "person", *GROUPS)} + + +def state_file(fips): + households = tables["household"] + households = households[households["state_fips"] == fips] + people = tables["person"] + people = people[ + people["person_household_id"].isin(households["household_id"]) + ].reset_index(drop=True) + columns = { + n: people[n].values + for n in people.columns + if n in known or n == "person_id" or n.startswith("person_") + } + + def add_group(table, group): + ids = f"{group}_id" + membership = people[f"person_{group}_id"].values + rows = table.set_index(ids).index.get_indexer(membership) + for name in table.columns: + if name in known: + columns[name] = table[name].values[rows] + columns[ids] = membership + + add_group(households, "household") + for group in GROUPS: + add_group(tables[group], group) + return pd.DataFrame({f"{k}__{DATA_YEAR}": v for k, v in columns.items()}) + + +def run(args): + fips, out = args + target = Path(out) / f"{fips:02d}.parquet" + if target.exists(): + return fips, "cached" + started = time.time() + sim = Microsimulation(dataset=Dataset.from_dataframe(state_file(fips), DATA_YEAR)) + ids = sim.calculate("spm_unit_id", DATA_YEAR).values + frame = {"spm_unit_id": ids} + age = sim.calculate("age", DATA_YEAR).values + # Children per SPM unit from the person rows. + person_unit = sim.calculate("person_spm_unit_id", DATA_YEAR).values + frame["n_children"] = ( + pd.Series(age < 18).groupby(person_unit).sum().reindex(ids).values + ) + frame["n_people"] = pd.Series(age).groupby(person_unit).size().reindex(ids).values + for year in YEARS: + for name in SPM_VARS: + frame[f"{name}__{year}"] = np.asarray( + sim.calculate(name, year, map_to="spm_unit").values, dtype=float + ) + for name in UP_VARS: + frame[f"{name}__{year}"] = np.asarray( + sim.calculate(name, year, map_to="spm_unit").values, dtype=float + ) + frame = pd.DataFrame(frame) + frame["state_fips"] = fips + frame.to_parquet(target) + return fips, round(time.time() - started) + + +def main(h5, out, only=None, workers=3): + Path(out).mkdir(parents=True, exist_ok=True) + load(h5) + fips = sorted(int(v) for v in tables["household"]["state_fips"].unique()) + if only: + fips = [f for f in fips if f in only] + print( + "policyengine-us", version("policyengine-us"), "states", len(fips), flush=True + ) + with Pool(workers, initializer=load, initargs=(h5,)) as pool: + for fips_done, seconds in pool.imap_unordered(run, [(f, out) for f in fips]): + print(fips_done, seconds, flush=True) + + +if __name__ == "__main__": + only = ( + [int(v) for v in sys.argv[3].split(",")] + if len(sys.argv) > 3 and sys.argv[3] + else None + ) + workers = int(sys.argv[4]) if len(sys.argv) > 4 else 3 + main(sys.argv[1], sys.argv[2], only, workers) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/fam.py b/docs/evidence/us-state-child-spm-2026-11/scripts/fam.py new file mode 100644 index 0000000000..7c4c95882c --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/fam.py @@ -0,0 +1,51 @@ +import json +import os + +import numpy as np +import pandas as pd + +D = os.path.expanduser("~/reviews/pe30-population-2026-09-27/") +diag = json.load(open(D + "rel/calibration_diagnostics.json")) +T = diag["targets"] +print( + T[1000]["name"], + T[1000]["metadata"].get("geography_scope"), + list(T[1000]["metadata"])[:14], +) + + +def row(t): + m = t["metadata"] + return dict( + reg=t["registry"]["family"], + src=m.get("source_variable"), + role=m.get("target_role"), + geo=m.get("geography_scope") + or ("state" if "state" in t["name"] else "national"), + t=t["target"], + i=t["initial_estimate"], + f=t["final_estimate"], + name=t["name"], + ) + + +d = pd.DataFrame([row(x) for x in T]) +d["ri"] = d.i / d.t.replace(0, np.nan) - 1 +d["rf"] = d.f / d.t.replace(0, np.nan) - 1 +g = d.groupby(["reg", "role", "src"], dropna=False).agg( + n=("t", "size"), + t=("t", "sum"), + i=("i", "sum"), + f=("f", "sum"), + med_ri=("ri", "median"), + med_rf=("rf", "median"), +) +g["agg_ri"] = g.i / g.t - 1 +g["agg_rf"] = g.f / g.t - 1 +pd.set_option("display.width", 200) +pd.set_option("display.max_rows", 300) +print( + g.sort_values("agg_ri") + .round(3)[["n", "agg_ri", "agg_rf", "med_ri", "med_rf"]] + .to_string() +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/fill_cmp.py b/docs/evidence/us-state-child-spm-2026-11/scripts/fill_cmp.py new file mode 100644 index 0000000000..feeda1b962 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/fill_cmp.py @@ -0,0 +1,52 @@ +"""What the fill moves: each ACS-local evaluation under the -1 fill against the same evaluation under fill 0.""" + +import os + +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +rows = [] +for name in ("acs_eval", "acsrent_eval"): + a = pd.read_csv(f"{SP}/run/{name}_fill_minus1.csv", index_col=0) + b = pd.read_csv(f"{SP}/run/{name}.csv", index_col=0) + for col in ( + "acs_local", + "se", + "acs_only", + "acs_only_se", + "donor_only", + "donor_only_se", + "delta", + "delta_se", + "kish_src", + "acs_share", + ): + both = pd.concat([a[col], b[col]], axis=1, keys=("m1", "z")).dropna() + d = both.z - both.m1 + rows.append( + dict( + file=name, + measure=col, + states=len(both), + largest_move=d.abs().max(), + state=d.abs().idxmax(), + states_past_1e6=int((d.abs() > 1e-6).sum()), + states_past_01=int((d.abs() > 0.1).sum()), + ) + ) +t = pd.DataFrame(rows) +t.to_csv(f"{SP}/run/fill_moves.csv", index=False) +print(t.round(4).to_string(index=False)) +for name in ("acs_solves", "acsrent_solves"): + a = pd.read_csv(f"{SP}/run/{name}_fill_minus1.csv", index_col=0) + b = pd.read_csv(f"{SP}/run/{name}.csv", index_col=0) + print(name) + print( + pd.concat( + [a[["mean_gap", "mad", "beyond"]], b[["mean_gap", "mad", "beyond"]]], + axis=1, + keys=("fill_minus1", "fill_0"), + ) + .round(2) + .to_string() + ) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/fill_trace.py b/docs/evidence/us-state-child-spm-2026-11/scripts/fill_trace.py new file mode 100644 index 0000000000..6ff0f7cd94 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/fill_trace.py @@ -0,0 +1,84 @@ +"""Which units carry a state's move between the -1 fill and fill 0, for the baseline and for the 2021 CTC reform. + +Usage: fill_trace.py []. The folders sit under run/; the second defaults to acs. +A unit counts as moved when its baseline or reform poverty status differs between the fills. The rate and effect moves come +from the units, weighted by household weight times children, as acs_eval.py weights them. +It prints each moved source household's channel, status changes and share of the state's child weight, as fl_reform.py +does, and no incomes. UNIT_DETAIL=1 adds each unit's net income and threshold, for a local check only. +""" + +import os +import re +import sys + +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +FIPS = eval( + re.search(r"FIPS\s*=\s*(\{.*?\})", open(f"{SP}/acs_eval.py").read(), re.S).group(1) +) +st, m1 = sys.argv[1], sys.argv[2] +z = sys.argv[3] if len(sys.argv) > 3 else "acs" +fips = FIPS[st] +h = pd.read_parquet(f"{SP}/run/acs_hh.parquet") +uh = pd.read_parquet(f"{SP}/run/acs_unit_hh.parquet").drop_duplicates( + "person_spm_unit_id" +) +a = pd.read_parquet(f"{SP}/run/{z}/{fips:02d}.parquet") +b = pd.read_parquet(f"{SP}/run/{m1}/{fips:02d}.parquet") +assert a.spm_unit_id.is_unique and set(a.spm_unit_id) == set(b.spm_unit_id), ( + "the fills hold different units" +) +m = a.merge(b, on="spm_unit_id", suffixes=("_0", "_m1")) +assert (m.kids_0 == m.kids_m1).all(), "the fills count children differently" +m = ( + m[m.kids_0 > 0] + .merge(uh, left_on="spm_unit_id", right_on="person_spm_unit_id") + .merge(h, left_on="person_household_id", right_on="household_id") +) +assert (m.state_fips == fips).all() +m["W"] = m.household_weight * m.kids_0 +T = m.W.sum() + + +def rate(col): + return 100 * (m.W * m[col]).sum() / T + + +out = {"state": st, "child_units": len(m)} +for f in ("0", "m1"): + out[f"rate_{f}"] = rate(f"poor_{f}") + if f"poor_r_{f}" in m: + out[f"reform_rate_{f}"] = rate(f"poor_r_{f}") + out[f"effect_{f}"] = out[f"reform_rate_{f}"] - out[f"rate_{f}"] +moved = m.poor_0 != m.poor_m1 +if "poor_r_0" in m and "poor_r_m1" in m: + moved |= m.poor_r_0 != m.poor_r_m1 +mv = m[moved].copy() +out["units_moved"] = len(mv) +out["source_households"] = mv.household_source_id.nunique() +out["by_channel"] = mv.household_support_channel.astype(str).value_counts().to_dict() +out["moved_child_weight_share_pct"] = 100 * mv.W.sum() / T +out["largest_source_household_share_pct"] = ( + 100 * mv.groupby("household_source_id").W.sum().max() / T if len(mv) else 0.0 +) +for k, v in out.items(): + print(k, round(v, 6) if isinstance(v, float) else v) +status = ["poor_0", "poor_m1"] + [c for c in ("poor_r_0", "poor_r_m1") if c in mv] +mv["share_pct"] = 100 * mv.W / T +mv["src"] = ( + mv.household_support_channel.astype(str) + ":" + mv.household_source_id.astype(str) +) +by_src = mv.groupby("src").agg( + units=("spm_unit_id", "size"), + share_pct=("share_pct", "sum"), + **{c: (c, "max") for c in status}, +) +print(by_src.sort_values("share_pct", ascending=False).round(4).to_string()) +if os.environ.get("UNIT_DETAIL") == "1": + mv["net_move"] = mv.net_m1 - mv.net_0 + print( + mv[["src", "kids_0"] + status + ["share_pct", "net_0", "net_move", "thr_0"]] + .round(4) + .to_string(index=False) + ) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/fl_reform.py b/docs/evidence/us-state-child-spm-2026-11/scripts/fl_reform.py new file mode 100644 index 0000000000..a694729619 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/fl_reform.py @@ -0,0 +1,168 @@ +"""Why the rent fix moves a state's 2021 CTC effect: which source households carry the change. + +It traces every state whose effect moves more than a point in run/acsrent_reform.csv (acs_reform_cmp.py writes it), largest +move first, and ends with one summary row per state. It prints source ids, channels and shares of child weight, and no incomes. +""" + +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) + + +def load(tag, fips): + u = pd.read_parquet(f"{SP}/run/{tag}/{fips:02d}.parquet") + f = f"{SP}/run/{tag}_r/{fips:02d}.parquet" + if not os.path.exists(f): + return u + return u.drop(columns=[c for c in ("poor_r",) if c in u]).merge( + pd.read_parquet(f), on="spm_unit_id" + ) + + +h = pd.read_parquet(f"{SP}/run/acs_hh.parquet") +uh = pd.read_parquet(f"{SP}/run/acs_unit_hh.parquet").drop_duplicates( + "person_spm_unit_id" +) +FIPS = { + "AL": 1, + "AK": 2, + "AZ": 4, + "AR": 5, + "CA": 6, + "CO": 8, + "CT": 9, + "DE": 10, + "DC": 11, + "FL": 12, + "GA": 13, + "HI": 15, + "ID": 16, + "IL": 17, + "IN": 18, + "IA": 19, + "KS": 20, + "KY": 21, + "LA": 22, + "ME": 23, + "MD": 24, + "MA": 25, + "MI": 26, + "MN": 27, + "MS": 28, + "MO": 29, + "MT": 30, + "NE": 31, + "NV": 32, + "NH": 33, + "NJ": 34, + "NM": 35, + "NY": 36, + "NC": 37, + "ND": 38, + "OH": 39, + "OK": 40, + "OR": 41, + "PA": 42, + "RI": 44, + "SC": 45, + "SD": 46, + "TN": 47, + "TX": 48, + "UT": 49, + "VT": 50, + "VA": 51, + "WA": 53, + "WV": 54, + "WI": 55, + "WY": 56, +} +rc = pd.read_csv(f"{SP}/run/acsrent_reform.csv") +rc = rc[rc.corrected_minus_published.abs() > 1].sort_values( + "corrected_minus_published", key=abs, ascending=False +) +rows = [] +for st in rc.state: + fips = FIPS[st] + a = load("acs", fips) + b = load("acsrent", fips) + m = a[["spm_unit_id", "kids", "poor", "poor_r"]].merge( + b[["spm_unit_id", "poor", "poor_r"]], + on="spm_unit_id", + suffixes=("_pub", "_rent"), + ) + m = ( + m[m.kids > 0] + .merge(uh, left_on="spm_unit_id", right_on="person_spm_unit_id") + .merge(h, left_on="person_household_id", right_on="household_id") + ) + m["W"] = m.household_weight * m.kids + T = m.W.sum() + m["channel"] = np.where( + m.household_support_channel.astype(str) == "acs_2024_1yr", "acs", "donor" + ) + m["src"] = m.channel + ":" + m.household_source_id.astype(str) + m["d_base"] = 100 * m.W * (m.poor_rent - m.poor_pub) / T + m["d_ref"] = 100 * m.W * (m.poor_r_rent - m.poor_r_pub) / T + m["d_eff"] = m.d_ref - m.d_base + print( + st, + "baseline", + round(m.d_base.sum(), 2), + "reform world", + round(m.d_ref.sum(), 2), + "effect change", + round(m.d_eff.sum(), 2), + ) + print( + " by channel", + m.groupby("channel")[["d_base", "d_ref", "d_eff"]] + .sum() + .round(2) + .to_dict("index"), + ) + print( + " units whose status changes: baseline", + int((m.poor_rent != m.poor_pub).sum()), + "reform world", + int((m.poor_r_rent != m.poor_r_pub).sum()), + ) + g = m.groupby("src").agg( + d_ref=("d_ref", "sum"), + d_base=("d_base", "sum"), + d_eff=("d_eff", "sum"), + W=("W", "sum"), + ) + g["share_child_weight"] = 100 * g.W / T + top = g.reindex(g.d_eff.abs().sort_values(ascending=False).index).head(6) + print(top.round(2).to_string()) + c = g.d_eff.abs().sort_values(ascending=False) + print( + " top 1, 5, 10, 25 clusters of gross change", + [round(100 * c.head(k).sum() / c.sum()) for k in (1, 5, 10, 25)], + "gross", + round(c.sum(), 2), + "n", + int((c > 0).sum()), + ) + rows.append( + { + "state": st, + "effect_change": round(m.d_eff.sum(), 2), + "donor_part": round(m.loc[m.channel == "donor", "d_eff"].sum(), 2), + "acs_part": round(m.loc[m.channel == "acs", "d_eff"].sum(), 2), + "gross": round(c.sum(), 2), + "clusters": int((c > 0).sum()), + "top1_pct": round(100 * c.head(1).sum() / c.sum()), + "top10_pct": round(100 * c.head(10).sum() / c.sum()), + "donor_gross_pct": round( + 100 + * g.loc[g.index.str.startswith("donor"), "d_eff"].abs().sum() + / c.sum() + ), + } + ) +print() +print(pd.DataFrame(rows).to_string(index=False)) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/flip.py b/docs/evidence/us-state-child-spm-2026-11/scripts/flip.py new file mode 100644 index 0000000000..de725c505f --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/flip.py @@ -0,0 +1,74 @@ +"""Which SPM units flip poverty between PE 2024 and PE 2025, and how much weight they carry.""" + +import os + +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +u = pd.read_parquet(f"{SP}/run/default_units.parquet") +u = u[u.kids > 0].copy() +u["W"] = u.w1 * u.kids +p24 = u["spm_unit_is_in_spm_poverty__2024"].astype(bool) +p25 = u["spm_unit_is_in_spm_poverty__2025"].astype(bool) +u["in"] = (~p24) & p25 +u["out"] = p24 & (~p25) +g = u.groupby("state") +tot = g.W.sum() +s = pd.DataFrame( + { + "pe24": 100 * (u.W * p24).groupby(u.state).sum() / tot, + "pe25": 100 * (u.W * p25).groupby(u.state).sum() / tot, + "in_pts": 100 * (u.W * u["in"]).groupby(u.state).sum() / tot, + "out_pts": 100 * (u.W * u["out"]).groupby(u.state).sum() / tot, + "n_in": u["in"].groupby(u.state).sum(), + "n_out": u["out"].groupby(u.state).sum(), + } +) +s["top1_in_share"] = ( + u[u["in"]].groupby("state").W.max() / u[u["in"]].groupby("state").W.sum() +) +s["top1_in_pts"] = 100 * u[u["in"]].groupby("state").W.max() / tot +print(s.sort_values("in_pts", ascending=False).round(2).head(16).to_string()) +print( + "all states: in", + (u.W * u["in"]).sum() / u.W.sum() * 100, + "out", + (u.W * u["out"]).sum() / u.W.sum() * 100, + "n_in", + u["in"].sum(), + "n_out", + u["out"].sum(), +) +cols = [ + "state", + "kids", + "n_people__x" if "n_people__x" in u else "people", + "w1", + "w0", + "source_year", + "household_support_channel", + "SPM_TENMORTSTATUS" if "SPM_TENMORTSTATUS" in u else "SPM_POOR", +] +for st in ["MD", "DC"]: + x = u[(u.state == st) & u["in"]].sort_values("W", ascending=False).head(6) + show = x[ + ["kids", "w0", "w1", "W", "source_year", "household_support_channel"] + ].copy() + for n in [ + "spm_unit_net_income", + "spm_unit_spm_threshold", + "spm_unit_market_income", + "spm_unit_benefits", + "spm_unit_taxes", + "spm_unit_spm_expenses", + "snap", + "spm_unit_state_tax", + "spm_unit_federal_tax", + "refundable_ctc", + "eitc", + "employment_income", + ]: + for y in (2024, 2025): + show[f"{n[:18]}_{y % 100}"] = x[f"{n}__{y}"] + print(st) + print(show.round(0).T.to_string()) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/host_wait.py b/docs/evidence/us-state-child-spm-2026-11/scripts/host_wait.py new file mode 100644 index 0000000000..f59b9418e4 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/host_wait.py @@ -0,0 +1,34 @@ +"""Wait until this host may take the next step, on Fleet ops' terms: no booking refuses this caller, and available memory +(psutil's virtual_memory().available) and free disk (statvfs, decimal GB) clear their floors. + +Usage: host_wait.py . Returns as soon as all three hold. Writes a line to the log every 30 minutes while it waits. +""" + +import os +import subprocess +import sys +import time +from datetime import UTC, datetime + +import psutil + +need_mem, need_disk, log = float(sys.argv[1]), float(sys.argv[2]), sys.argv[3] +CALLER = "claude-state-child-spm" +RES = os.path.expanduser("~/reviews/fleet-ops/tools/reservation.py") +t = 0 +while True: + mem = psutil.virtual_memory().available / 2**30 + s = os.statvfs("/System/Volumes/Data") + disk = s.f_bavail * s.f_frsize / 1e9 + booked = subprocess.run( + [sys.executable, RES, "allowed", CALLER], capture_output=True + ).returncode + if mem >= need_mem and disk >= need_disk and booked == 0: + sys.exit(0) + if t % 30 == 0: + with open(log, "a") as f: + f.write( + f"{datetime.now(UTC):%H:%M:%SZ} hold: available {mem:.1f} GiB of {need_mem:.0f}, free {disk:.1f} GB of {need_disk:.0f}, booking exit {booked}\n" + ) + t += 1 + time.sleep(60) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/house.py b/docs/evidence/us-state-child-spm-2026-11/scripts/house.py new file mode 100644 index 0000000000..a1c57dfb00 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/house.py @@ -0,0 +1,83 @@ +"""Where do Census housing subsidy recipients drop out of the PE chain? Default file, asec rows, child units.""" + +import glob +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +f = glob.glob(S + "9a814a3b*/populace_us_2024.h5")[0] +s = pd.read_hdf(f, "spm_unit") +print([c for c in s.columns if "hous" in c.lower() or "take" in c.lower()][:20]) +sid = [c for c in s.columns if c.startswith("spm_unit_id")][0] +cols = [c for c in s.columns if "housing" in c.lower()] +print( + { + c: ( + round( + float( + pd.to_numeric(s[c], errors="coerce").fillna(0).astype(float).mean() + ), + 4, + ) + ) + for c in cols + } +) +u = pd.read_parquet( + f"{SP}/run/default_units.parquet", + columns=[ + "spm_unit_id", + "kids", + "w1", + "state", + "household_support_channel", + "SPM_CAPHOUSESUB", + "SPM_RESOURCES", + "SPM_POVTHRESHOLD", + "spm_unit_capped_housing_subsidy__2024", + ], +) +u = u[(u.kids > 0) & (u.household_support_channel == "asec")].copy() +u["W"] = u.w1 * u.kids +u = u.merge(s[[sid] + cols], left_on="spm_unit_id", right_on=sid, how="left") +rec = u.SPM_CAPHOUSESUB.fillna(0) > 0 +print( + "census recipient share of child weight", + round(u.W[rec].sum() / u.W.sum(), 4), + "PE subsidy>0 share", + round(u.W[u.spm_unit_capped_housing_subsidy__2024 > 0].sum() / u.W.sum(), 4), +) +for c in cols: + v = pd.to_numeric(u[c], errors="coerce").fillna(0) + print( + c, + "among census recipients", + round(np.average(v[rec] > 0, weights=u.W[rec]), 3), + "among others", + round(np.average(v[~rec] > 0, weights=u.W[~rec]), 3), + ) +print( + "census recipients with PE subsidy>0", + round( + np.average(u.spm_unit_capped_housing_subsidy__2024[rec] > 0, weights=u.W[rec]), + 3, + ), +) +print( + "mean subsidy among census recipients: census", + round(np.average(u.SPM_CAPHOUSESUB[rec], weights=u.W[rec])), + "PE", + round(np.average(u.spm_unit_capped_housing_subsidy__2024[rec], weights=u.W[rec])), +) +both = rec & (u.spm_unit_capped_housing_subsidy__2024 > 0) +print( + "mean among both: census", + round(np.average(u.SPM_CAPHOUSESUB[both], weights=u.W[both])), + "PE", + round(np.average(u.spm_unit_capped_housing_subsidy__2024[both], weights=u.W[both])), +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/house_sim.py b/docs/evidence/us-state-child-spm-2026-11/scripts/house_sim.py new file mode 100644 index 0000000000..ac6cbdf37b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/house_sim.py @@ -0,0 +1,102 @@ +"""Why do Census housing recipients get no subsidy in the model? Real state cuts of the default file, 2024.""" + +import glob +import os +import sys +import warnings + +import numpy as np +import pandas as pd + +warnings.filterwarnings("ignore") +SP = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, SP) +import extract_state as ex +from policyengine_core.data import Dataset +from policyengine_us import Microsimulation + +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +ex.load(glob.glob(S + "9a814a3b*/populace_us_2024.h5")[0]) +VARS = "receives_housing_assistance takes_up_housing_assistance_if_eligible is_eligible_for_housing_assistance housing_assistance hud_hap hud_max_subsidy hud_ttp hud_gross_rent spm_unit_allocated_housing_subsidy spm_unit_allocated_tenant_payment spm_unit_capped_housing_subsidy spm_unit_tenure_type".split() +rows = [] +for fips in (25, 17, 6, 48): + sim = Microsimulation(dataset=Dataset.from_dataframe(ex.state_file(fips), 2024)) + d = {"spm_unit_id": sim.calculate("spm_unit_id", 2024).values, "state": fips} + for v in VARS: + try: + d[v] = sim.calculate(v, 2024).values + except Exception as e: + print("fail", v, str(e)[:90]) + rows.append(pd.DataFrame(d)) + del sim +d = pd.concat(rows, ignore_index=True) +d["spm_unit_tenure_type"] = d.spm_unit_tenure_type.astype(str) +d.to_parquet(f"{SP}/run/house_sim.parquet") +u = pd.read_parquet( + f"{SP}/run/default_units.parquet", + columns=[ + "spm_unit_id", + "kids", + "w1", + "household_support_channel", + "SPM_CAPHOUSESUB", + "SPM_TENMORTSTATUS", + ], +) +d = d.merge(u, on="spm_unit_id") +d = d[ + (d.kids > 0) + & (d.household_support_channel == "asec") + & (d.SPM_CAPHOUSESUB.fillna(0) > 0) +].copy() +d["W"] = d.w1 * d.kids +a = lambda m: round(float(np.average(m, weights=d.W)), 3) +print( + "census recipients", + len(d), + "flag", + a(d.receives_housing_assistance), + "eligible", + a(d.is_eligible_for_housing_assistance), + "takeup", + a(d.takes_up_housing_assistance_if_eligible), +) +print( + "housing_assistance>0", + a(d.housing_assistance > 0), + "hap>0", + a(d.hud_hap > 0), + "max_subsidy>0", + a(d.hud_max_subsidy > 0), + "gross_rent>0", + a(d.hud_gross_rent > 0), + "gross_rent>ttp", + a(d.hud_gross_rent > d.hud_ttp), + "capped>0", + a(d.spm_unit_capped_housing_subsidy > 0), +) +print( + "tenure", + d.groupby("spm_unit_tenure_type").W.sum().div(d.W.sum()).round(3).to_dict(), +) +print( + "Census tenure code", + d.groupby("SPM_TENMORTSTATUS").W.sum().div(d.W.sum()).round(3).to_dict(), +) +for n in ( + "hud_gross_rent", + "hud_ttp", + "hud_max_subsidy", + "hud_hap", + "spm_unit_capped_housing_subsidy", + "SPM_CAPHOUSESUB", +): + print( + n, + "mean", + round(float(np.average(d[n], weights=d.W))), + "p50", + round(float(d[n].median())), + ) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/idcheck.py b/docs/evidence/us-state-child-spm-2026-11/scripts/idcheck.py new file mode 100644 index 0000000000..ed8dde7475 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/idcheck.py @@ -0,0 +1,54 @@ +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +u = pd.read_parquet(f"{SP}/run/dense_units.parquet") +u = u[u.kids > 0] +p = lambda n, y=2024: u[f"{n}__{y}"].values.astype(float) +snap = p("snap") +net = p("spm_unit_net_income") +R = ( + p("spm_unit_market_income") + + p("spm_unit_benefits") + + p("acp") + + p("ebb") + - p("spm_unit_federal_tax") + - p("spm_unit_payroll_tax") + - p("spm_unit_self_employment_tax") + - p("spm_unit_state_tax") + - p("spm_unit_local_tax") + - p("spm_unit_spm_expenses") +) +d = net - R +print( + "n off by >1", + (np.abs(d) > 1).sum(), + "of", + len(d), + "weight share", + (u.w1 * u.kids)[np.abs(d) > 1].sum() / (u.w1 * u.kids).sum(), + "max", + np.abs(d).max(), +) +x = u[np.abs(d) > 1] +print(x[["state", "kids", "household_support_channel", "w1"]].head(8).to_string()) +print(pd.Series(d[np.abs(d) > 1]).describe().round(1).to_dict()) +print( + x[ + [ + "spm_unit_taxes__2024", + "spm_unit_federal_tax__2024", + "spm_unit_state_tax__2024", + "spm_unit_local_tax__2024", + "spm_unit_payroll_tax__2024", + "spm_unit_self_employment_tax__2024", + "acp__2024", + "ebb__2024", + ] + ] + .head(4) + .T.round(0) + .to_string() +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/initial_fit.py b/docs/evidence/us-state-child-spm-2026-11/scripts/initial_fit.py new file mode 100644 index 0000000000..4dbd0f9883 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/initial_fit.py @@ -0,0 +1,169 @@ +"""State fit at initial and published weights on the dense and default files, with clustered noise and a random-effects fit.""" + +import json +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +cse = c.moe / 1.645 + + +def lin(g, W, f): # noqa: N803 + T = g[W].sum() + r = (g[W] * g[f]).sum() / T + z = (g[W] * (g[f] - r) / T).values + cc = np.bincount(pd.factorize(g.clu)[0], weights=z) + n = len(cc) + return 100 * r, 100 * np.sqrt(n / (n - 1) * (cc**2).sum()) + + +def dl(g, se): + v = se**2 + cse.reindex(g.index) ** 2 + w = 1 / v + mu = (w * g).sum() / w.sum() + Q = (w * (g - mu) ** 2).sum() + k = len(g) + t2 = max(0, (Q - (k - 1)) / (w.sum() - (w**2).sum() / w.sum())) + return Q, np.sqrt(t2) + + +rows = [] +out = {} +for tag in ("dense", "default"): + u = pd.read_parquet(f"{SP}/run/{tag}_units.parquet") + u = u[u.kids > 0].copy() + u["clu"] = pd.factorize( + u.source_year.astype(str) + ":" + u.source_household_id.astype(str) + )[0] + u["P25"] = u["spm_unit_is_in_spm_poverty__2025"].astype(float) + u["P24"] = u["spm_unit_is_in_spm_poverty__2024"].astype(float) + u["E"] = (u.SPM_RESOURCES.fillna(0) < u.SPM_POVTHRESHOLD.fillna(0)).astype(float) + u["W1"] = u.w1 * u.kids + u["W0"] = u.w0 * u.kids + u["ch"] = np.where( + u.household_support_channel.astype(str).str.lower().str.contains("puf"), + "puf", + "asec", + ) + for W in ("W0", "W1"): + for ch in ("all", "asec", "puf"): + x = u if ch == "all" else u[u.ch == ch] + r = {} + for s, g in x.groupby("state"): + m, se = lin(g, W, "P25") + r[s] = (m, se) + d = pd.DataFrame(r, index=["model", "se"]).T + g = d.model - c.rate.reindex(d.index) + Q, t = dl(g, d.se) + k = x[W].groupby(x.clu).sum() + nat = lambda f: 100 * (x[W] * x[f]).sum() / x[W].sum() + rows.append( + dict( + file=tag, + weights={"W0": "initial", "W1": "published"}[W], + rows=ch, + natP25=nat("P25"), + natP24=nat("P24"), + natE=nat("E"), + mean_gap=g.mean(), + sd=g.std(), + mad=g.abs().mean(), + corr=np.corrcoef(d.model, c.rate.reindex(d.index))[0, 1], + beyond=int((g.abs() > c.moe.reindex(d.index)).sum()), + med_se=d.se.median(), + Q=Q, + tau=t, + ) + ) + if ch == "all": + out[f"{tag}_{W}"] = g + out[f"{tag}_{W}_se"] = d.se +r = pd.DataFrame(rows) +pd.set_option("display.width", 220) +print(r.round(2).to_string()) +s = pd.DataFrame(out) +s.to_csv(f"{SP}/run/initial_fit_states.csv") +r.to_csv(f"{SP}/run/initial_fit.csv", index=False) +print( + s.loc[ + ["DC", "DE", "TN", "MD", "FL", "MA", "LA", "MT", "MS", "HI", "RI", "VT", "MO"], + ["dense_W0", "dense_W1", "default_W0", "default_W1"], + ] + .round(1) + .to_string() +) +print( + "corr dense W0 gap vs W1 gap", round(np.corrcoef(s.dense_W0, s.dense_W1)[0, 1], 3) +) +# Independent check: ACS rows share no households with ASEC or PUF rows, so gaps they share point to the model or the benchmark. +e = pd.read_csv(f"{SP}/run/acs_eval.csv", index_col=0) +ag = (e.acs_only - e.census).reindex(s.index) +for tag in ("dense", "default"): + for W in ("W0", "W1"): + print( + "corr with ACS-row gaps", + tag, + W, + round(np.corrcoef(s[f"{tag}_{W}"], ag)[0, 1], 3), + ) +# Calibration step by flag, state means +rows = [] +for tag in ("dense", "default"): + u = pd.read_parquet(f"{SP}/run/{tag}_units.parquet") + u = u[u.kids > 0].copy() + u["P25"] = u["spm_unit_is_in_spm_poverty__2025"].astype(float) + u["P24"] = u["spm_unit_is_in_spm_poverty__2024"].astype(float) + u["E"] = (u.SPM_RESOURCES.fillna(0) < u.SPM_POVTHRESHOLD.fillna(0)).astype(float) + u["W1"] = u.w1 * u.kids + u["W0"] = u.w0 * u.kids + r = lambda W, f: ( # noqa: N803 + 100 * (u[W] * u[f]).groupby(u.state).sum() / u[W].groupby(u.state).sum() + ) + for f in ("E", "P24", "P25"): + d = r("W1", f) - r("W0", f) + rows.append( + dict( + file=tag, + flag=f, + state_mean=d.mean(), + sd=d.std(), + mad=d.abs().mean(), + lo=d.min(), + hi=d.max(), + nat0=100 * (u.W0 * u[f]).sum() / u.W0.sum(), + nat1=100 * (u.W1 * u[f]).sum() / u.W1.sum(), + ) + ) + k = lambda W: pd.Series( # noqa: N803 + { + st: g[W].sum() ** 2 / (g[W] ** 2).sum() + for st, g in u.assign( + src=u.source_year.astype(str) + ":" + u.source_household_id.astype(str) + ) + .groupby(["state", "src"])[["W0", "W1"]] + .sum() + .reset_index() + .groupby("state") + } + ) + print( + tag, + "median child Kish initial", + round(k("W0").median()), + "published", + round(k("W1").median()), + "initial min", + k("W0").idxmin(), + round(k("W0").min()), + "max", + k("W0").idxmax(), + round(k("W0").max()), + ) +c2 = pd.DataFrame(rows) +print(c2.round(2).to_string()) +c2.to_csv(f"{SP}/run/calibration_step.csv", index=False) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/kish.py b/docs/evidence/us-state-child-spm-2026-11/scripts/kish.py new file mode 100644 index 0000000000..aab4a7c966 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/kish.py @@ -0,0 +1,29 @@ +"""Child-weighted Kish effective sample by state, clustered on source household, on each file.""" + +import os + +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +out = {} +for tag in ("default", "dense"): + u = pd.read_parquet( + f"{SP}/run/{tag}_units.parquet", + columns=["kids", "w0", "w1", "state", "source_year", "source_household_id"], + ) + u = u[u.kids > 0].copy() + # An ASEC record and its PUF clone share one source household, so they form one cluster. + u["src"] = u.source_year.astype(str) + ":" + u.source_household_id.astype(str) + for w, suffix in (("w1", ""), ("w0", "_initial")): + u["W"] = u[w] * u.kids + k = {} + for s, g in u.groupby("state"): + v = g.W.groupby(g.src).sum() + k[s] = v.sum() ** 2 / (v**2).sum() + out[tag + suffix] = pd.Series(k) +out["acs_local"] = pd.read_csv(f"{SP}/run/acs_eval.csv", index_col=0).kish_src +t = pd.DataFrame(out) +t.to_csv(f"{SP}/run/kish.csv") +print(t.median().round(0).to_dict()) +print(t.agg(["min", "max"]).round(0).to_dict()) +print(t.idxmin().to_dict(), t.idxmax().to_dict()) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/national_cf.py b/docs/evidence/us-state-child-spm-2026-11/scripts/national_cf.py new file mode 100644 index 0000000000..bad2009123 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/national_cf.py @@ -0,0 +1,108 @@ +"""One national simulation of the default file per process: base, aged pooled incomes, or the 2021 CTC reform. +Usage: national_cf.py mode in base, aged, reform""" + +import os +import re +import sys +import time +import warnings + +import numpy as np +import pandas as pd + +warnings.filterwarnings("ignore") +SP = os.path.dirname(os.path.abspath(__file__)) +sys.path.insert(0, SP) +import extract_state as ex +from policyengine_core.data import Dataset +from policyengine_core.reforms import Reform +from policyengine_us import Microsimulation + +mode = sys.argv[1] +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +H5 = S + "9a814a3b3b53c0ecd6e1737b6ec862c31300ef6f/populace_us_2024.h5" +ex.load(H5) +t = ex.tables +people = t["person"] +households = t["household"] +if mode == "aged": + # Census resources of the child at the 20th percentile, 2022 and 2023 to 2024 (raw ASEC, this session). + F = {2022: 46508 / 42020, 2023: 46508 / 44342, 2024: 1.0} + hc = households.set_index("household_id")["household_support_channel"] + ch = people["person_household_id"].map(hc).values + pat = re.compile( + r"(income|dividend|_distributions|^social_security_|benefits|compensation|capital_gains|non_sch_d)" + ) + cols = [ + c + for c in people.columns + if c in ex.known + and pat.search(c) + and "last_year" not in c + and people[c].dtype.kind == "f" + ] + print("aged columns", len(cols), cols, flush=True) + f = people["source_year"].map(F).values + f = np.where(ch == "asec", f, 1.0) + people = people.copy() + for c in cols: + people[c] = people[c].values * f + t["person"] = people + print("asec share aged >1", (f > 1).mean(), flush=True) +# Same flat frame as state_file, with no state filter. +orig = households + + +class All: + pass + + +columns = { + n: people[n].values + for n in people.columns + if n in ex.known or n == "person_id" or n.startswith("person_") +} + + +def add_group(table, group): + ids = f"{group}_id" + membership = people[f"person_{group}_id"].values + rows = table.set_index(ids).index.get_indexer(membership) + for name in table.columns: + if name in ex.known: + columns[name] = table[name].values[rows] + columns[ids] = membership + + +add_group(households, "household") +for g in ex.GROUPS: + add_group(t[g], g) +frame = pd.DataFrame({f"{k}__2024": v for k, v in columns.items()}) +kw = {} +if mode == "reform": + d = "2025-01-01.2025-12-31" + kw["reform"] = Reform.from_dict( + { + "gov.irs.credits.ctc.amount.arpa[0].amount": {d: 3600}, + "gov.irs.credits.ctc.amount.arpa[1].amount": {d: 3000}, + "gov.irs.credits.ctc.refundable.fully_refundable": {d: True}, + "gov.irs.credits.ctc.phase_out.arpa.in_effect": {d: True}, + }, + country_id="us", + ) +t0 = time.time() +sim = Microsimulation(dataset=Dataset.from_dataframe(frame, 2024), **kw) +res = {"spm_unit_id": sim.calculate("spm_unit_id", 2024).values} +for y in (2024, 2025) if mode != "reform" else (2025,): + for n in ( + "spm_unit_is_in_spm_poverty", + "spm_unit_net_income", + "spm_unit_spm_threshold", + ): + res[f"{n}__{y}"] = np.asarray( + sim.calculate(n, y, map_to="spm_unit").values, float + ) +pd.DataFrame(res).to_parquet(f"{SP}/run/cf_{mode}.parquet") +print(mode, "seconds", round(time.time() - t0), flush=True) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/noise.py b/docs/evidence/us-state-child-spm-2026-11/scripts/noise.py new file mode 100644 index 0000000000..b61c6ff58b --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/noise.py @@ -0,0 +1,70 @@ +"""Sampling noise in state child SPM rates: clustered linearization, cluster bootstrap, DL between-state variance.""" + +import json +import os +import sys + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +TAG = sys.argv[1] if len(sys.argv) > 1 else "default" +YEAR = 2025 +u = pd.read_parquet(f"{SP}/run/{TAG}_units.parquet") +u = u[u.kids > 0].copy() +u["W"] = u.w1 * u.kids +u["poor"] = u[f"spm_unit_is_in_spm_poverty__{YEAR}"].astype(float) +u["epoor"] = (u.SPM_RESOURCES.fillna(0) < u.SPM_POVTHRESHOLD.fillna(0)).astype(float) +u["clu"] = u.source_year.astype(str) + ":" + u.source_household_id.astype(str) +census = json.load(open(f"{SP}/census_child_spm.json")) +census = census.get("states", census) if isinstance(census, dict) else census +rows = [] +rng = np.random.default_rng(20261101) + + +def lin(g, col): + r = (g.W * g[col]).sum() / g.W.sum() + z = g.W * (g[col] - r) / g.W.sum() + c = z.groupby(g.clu).sum().values + n = len(c) + return r, np.sqrt(n / (n - 1) * (c**2).sum()), n + + +def boot(g, col, B=400): # noqa: N803 + a = g.groupby("clu").agg( + wp=("W", lambda s: (s * g.loc[s.index, col]).sum()), w=("W", "sum") + ) + wp, w = a.wp.values, a.w.values + n = len(w) + idx = rng.integers(0, n, size=(B, n)) + return np.std(wp[idx].sum(1) / w[idx].sum(1), ddof=1) + + +for st, g in u.groupby("state"): + r, se, n = lin(g, "poor") + re, see, _ = lin(g, "epoor") + w = g.w1.values + hh = g.groupby("household_id" if "household_id" in g else "clu").w1.first().values + kish = hh.sum() ** 2 / (hh**2).sum() + wc = g.W.values + kc = wc.sum() ** 2 / (wc**2).sum() + rows.append( + dict( + state=st, + model=100 * r, + se=100 * se, + clusters=n, + boot=100 * boot(g, "poor"), + E=100 * re, + E_se=100 * see, + kish_units=kish, + kish_child=kc, + se_kish=100 * np.sqrt(r * (1 - r) / kc), + top5_share=np.sort(wc)[-5:].sum() / wc.sum(), + max_share=wc.max() / wc.sum(), + ) + ) +d = pd.DataFrame(rows).set_index("state") +d.to_csv(f"{SP}/run/{TAG}_noise_raw.csv") +print(d.round(2).to_string()) +print(d.median(numeric_only=True).round(2).to_string()) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/noise_ci.py b/docs/evidence/us-state-child-spm-2026-11/scripts/noise_ci.py new file mode 100644 index 0000000000..88684ab6fd --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/noise_ci.py @@ -0,0 +1,133 @@ +"""How much of the state gap variance noise explains: null test with exact tail probabilities, a Q-profile interval on tau, and the same fits on the ACS-local file.""" + +import json +import os + +import numpy as np +import pandas as pd +from scipy import optimize, stats + +SP = os.path.dirname(os.path.abspath(__file__)) +cen = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +cse = cen.moe / 1.645 +T = pd.read_csv(f"{SP}/run/waterfall.csv", index_col=0) +out = {} + + +def fit(g, se, lab): + v = se**2 + cse.reindex(g.index) ** 2 + k = len(g) + + def Q(t2): # noqa: N802 + w = 1 / (v + t2) + m = (w * g).sum() / w.sum() + return (w * (g - m) ** 2).sum() + + Q0 = Q(0.0) + w = 1 / v + dl = max(0, (Q0 - (k - 1)) / (w.sum() - (w**2).sum() / w.sum())) + + def bound(p): + target = stats.chi2.ppf(p, k - 1) + if Q(0.0) < target: + return 0.0 + return optimize.brentq(lambda t: Q(t) - target, 0.0, 400.0) + + lo, hi = bound(0.975), bound(0.025) + var = g.var(ddof=1) + r = dict( + Q=Q0, + df=k - 1, + p=float(stats.chi2.sf(Q0, k - 1)), + tau=np.sqrt(dl), + tau_lo=np.sqrt(lo), + tau_hi=np.sqrt(hi), + var=var, + noise_share=1 - dl / var, + noise_share_lo=1 - hi / var, + noise_share_hi=1 - lo / var, + mean_v=float(v.mean()), + ) + out[lab] = r + print(lab, {a: round(b, 3) for a, b in r.items()}) + + +g = T.model - T.census +se = T.se_model_rep +fit(g, se, "default_replicate") +fit(g, np.sqrt(T.se_model_rep**2 + T.rep_bias**2), "default_replicate_rmse") +fit(g, T.se_model_lin, "default_linearized") +print( + "replicate over linearized: median", + round((T.se_model_rep / T.se_model_lin).median(), 2), + "range", + round((T.se_model_rep / T.se_model_lin).min(), 2), + round((T.se_model_rep / T.se_model_lin).max(), 2), +) +print( + "mean abs replicate bias", + round(T.rep_bias.abs().mean(), 2), + "largest", + T.rep_bias.abs().sort_values().tail(3).round(2).to_dict(), +) +d = pd.read_csv(f"{SP}/run/dense_fit.csv", index_col=0) +fit(d.model - d.rate, d.se, "dense_published") +e = pd.read_csv(f"{SP}/run/acs_eval.csv", index_col=0) +fit(e.acs_local - e.census, e.se, "acs_local_all") +fit(e.acs_only - e.census, e.acs_only_se, "acs_rows") +fit(e.donor_only - e.census, e.donor_only_se, "acs_local_donors") +# null test on the default file: common shift plus noise +rng = np.random.default_rng(1) +S = 20000 +sy = cen.rate.reindex(T.index) +cv = cse.reindex(T.index) ** 2 +w_ = 1 / cv +m0 = (w_ * sy).sum() / w_.sum() +q0 = (w_ * (sy - m0) ** 2).sum() +t0 = max(0, (q0 - 50) / (w_.sum() - (w_**2).sum() / w_.sum())) +Bc = t0 / (t0 + cv) +tr = m0 + Bc * (sy - m0) +ps = np.sqrt(Bc * cv) +moe = cen.moe.reindex(T.index).values + + +def null(se, sh, tx, obs_g): + Tr = tr.values + ps.values * rng.standard_normal((S, 51)) + C = Tr + np.sqrt(cv.values) * rng.standard_normal((S, 51)) + M = Tr + sh + tx * rng.standard_normal((S, 51)) + se * rng.standard_normal((S, 51)) + h = M - C + mad = np.abs(h).mean(1) + sd = h.std(1, ddof=1) + b = (np.abs(h) > moe).sum(1) + q = lambda a: [round(float(x), 2) for x in np.percentile(a, [2.5, 5, 50, 95, 97.5])] + ob = dict( + mad=float(obs_g.abs().mean()), + sd=float(obs_g.std()), + beyond=int((obs_g.abs() > moe).sum()), + ) + return dict( + mad=q(mad), + sd=q(sd), + beyond=q(b), + obs=ob, + p_mad=float((mad >= ob["mad"]).mean()), + p_sd=float((sd >= ob["sd"]).mean()), + p_beyond=float((b >= ob["beyond"]).mean()), + ) + + +n0 = null(T.se_model_rep.values, g.mean(), 0.0, g) +n1 = null(T.se_model_rep.values, g.mean(), out["default_replicate"]["tau"], g) +print("null shift+noise", n0) +print("null shift+noise+tau", n1) +out["null_shift_noise"] = n0 +out["null_shift_noise_tau"] = n1 +# the ACS-local file under the same null +ea = e.reindex(T.index) +ga = ea.acs_local - ea.census +na = null(ea.se.values, ga.mean(), 0.0, ga) +print("ACS-local null", na) +out["acs_null_shift_noise"] = na +json.dump(out, open(f"{SP}/run/noise_ci.json", "w"), indent=1) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/overlap.py b/docs/evidence/us-state-child-spm-2026-11/scripts/overlap.py new file mode 100644 index 0000000000..1b5d23dcaf --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/overlap.py @@ -0,0 +1,261 @@ +"""Sample overlap between the ASEC pool and Table 18, and state misses that persist. + +The pool holds income years 2022 to 2024 and Table 18 averages 2023 to 2025, so the two share +households. Three checks follow: raw ASEC shows the overlap, a refit subtracts the covariance +from shared clusters, and a benchmark built from later years shares no household with 2022 records. +""" + +import json +import os + +import numpy as np +import pandas as pd +from scipy import optimize, stats + +SP = os.path.dirname(os.path.abspath(__file__)) +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +cse = c.moe / 1.645 +FIPS = { + 1: "AL", + 2: "AK", + 4: "AZ", + 5: "AR", + 6: "CA", + 8: "CO", + 9: "CT", + 10: "DE", + 11: "DC", + 12: "FL", + 13: "GA", + 15: "HI", + 16: "ID", + 17: "IL", + 18: "IN", + 19: "IA", + 20: "KS", + 21: "KY", + 22: "LA", + 23: "ME", + 24: "MD", + 25: "MA", + 26: "MI", + 27: "MN", + 28: "MS", + 29: "MO", + 30: "MT", + 31: "NE", + 32: "NV", + 33: "NH", + 34: "NJ", + 35: "NM", + 36: "NY", + 37: "NC", + 38: "ND", + 39: "OH", + 40: "OK", + 41: "OR", + 42: "PA", + 44: "RI", + 45: "SC", + 46: "SD", + 47: "TN", + 48: "TX", + 49: "UT", + 50: "VT", + 51: "VA", + 53: "WA", + 54: "WV", + 55: "WI", + 56: "WY", +} +a = pd.read_parquet( + f"{SP}/asec/raw_asec_2022_2025.parquet", + columns=[ + "A_AGE", + "MARSUPWT", + "SPM_RESOURCES", + "SPM_POVTHRESHOLD", + "GESTFIPS", + "income_year", + ], +) +k = a[a.A_AGE < 18].copy() +k["pov"] = (k.SPM_RESOURCES < k.SPM_POVTHRESHOLD).astype(float) +k["state"] = k.GESTFIPS.astype(int).map(FIPS) +raw = ( + (k.pov * k.MARSUPWT).groupby([k.state, k.income_year]).sum().unstack() + / k.MARSUPWT.groupby([k.state, k.income_year]).sum().unstack() + * 100 +) +raw = raw.reindex(c.index) +print("raw ASEC against Table 18") +for lab, ys in ( + ("2023-25, Table 18's window", [2023, 2024, 2025]), + ("2022-24, the pool's window", [2022, 2023, 2024]), +): + m = raw[ys].mean(axis=1) + g = m - c.rate + print( + f" {lab}: corr {m.corr(c.rate):.3f}, gap sd {g.std():.2f}, mean abs gap {g.abs().mean():.2f}" + ) +print( + f" 2022 against 2025, no shared income year: corr {raw[2022].corr(raw[2025]):.2f}, difference sd {(raw[2022] - raw[2025]).std():.2f}" +) + + +def load(tag): + u = pd.read_parquet( + f"{SP}/run/{tag}_units.parquet", + columns=[ + "kids", + "w0", + "w1", + "state", + "source_year", + "source_household_id", + "household_support_channel", + "SPM_RESOURCES", + "SPM_POVTHRESHOLD", + "spm_unit_is_in_spm_poverty__2025", + ], + ) + u = u[u.kids > 0].copy() + u["y"] = u["spm_unit_is_in_spm_poverty__2025"].astype(float) + u["E"] = (u.SPM_RESOURCES.fillna(0) < u.SPM_POVTHRESHOLD.fillna(0)).astype(float) + u["clu"] = u.source_year.astype(str) + ":" + u.source_household_id.astype(str) + u["ch"] = np.where( + u.household_support_channel.astype(str).str.contains("puf"), "puf", "asec" + ) + u["W0"] = u.w0 * u.kids + u["W1"] = u.w1 * u.kids + return u + + +def influence(x, W, v): # noqa: N803 + T = x.groupby("state")[W].transform("sum") + R = (x[W] * x[v]).groupby(x.state).transform("sum") / T + return x[W] * (x[v] - R) / T + + +def fit(gap, v): + wt = 1 / v + m = (wt * gap).sum() / wt.sum() + Q = (wt * (gap - m) ** 2).sum() + t2 = max(0, (Q - 50) / (wt.sum() - (wt**2).sum() / wt.sum())) + + def Qf(t): # noqa: N802 + w = 1 / (v + t) + m_ = (w * gap).sum() / w.sum() + return (w * (gap - m_) ** 2).sum() + + bound = lambda p: ( + 0.0 + if Qf(0) < stats.chi2.ppf(p, 50) + else optimize.brentq(lambda t: Qf(t) - stats.chi2.ppf(p, 50), 0, 400) + ) + return Q, np.sqrt(t2), np.sqrt(bound(0.975)), np.sqrt(bound(0.025)) + + +dense = load("dense") +# Dense ASEC rows at initial weights stand in for Census's estimator on the two shared income years. +cen = dense[(dense.ch == "asec") & dense.source_year.isin([2023, 2024])] +zc = ( + pd.concat( + [ + pd.DataFrame( + {"clu": g.clu, "state": g.state, "zc": influence(g, "W0", "E") / 3} + ) + for _, g in cen.groupby("source_year") + ] + ) + .groupby(["state", "clu"]) + .zc.sum() +) +rows = [] +covs = {} +for tag, u in (("dense", dense), ("default", load("default"))): + for W, wlab in (("W0", "initial"), ("W1", "published")): + for ch in ("all", "asec", "puf"): + x = u if ch == "all" else u[u.ch == ch] + zm = influence(x, W, "y").groupby([x.state, x.clu]).sum().rename("zm") + j = pd.concat([zm, zc], axis=1).dropna() + cov = (j.zm * j.zc).groupby(level=0).sum() * 1e4 + covs[(tag, wlab, ch)] = cov + sem = np.sqrt((zm**2).groupby(level=0).sum()) * 100 + gap = (x[W] * x.y).groupby(x.state).sum() / x[W].groupby( + x.state + ).sum() * 100 - c.rate + v0 = sem**2 + cse**2 + v1 = (v0 - 2 * cov).clip(lower=0.05) + q0 = fit(gap, v0) + q1 = fit(gap, v1) + rows.append( + dict( + file=tag, + weights=wlab, + rows=ch, + mean_cov=cov.mean(), + median_rho=(cov / (sem * cse)).median(), + Q=q0[0], + tau=q0[1], + tau_lo=q0[2], + tau_hi=q0[3], + Q_adj=q1[0], + tau_adj=q1[1], + tau_adj_lo=q1[2], + tau_adj_hi=q1[3], + ) + ) +f = pd.DataFrame(rows) +f.to_csv(f"{SP}/run/overlap_fits.csv", index=False) +print(f.round(2).to_string(index=False)) + +# Income years 2024 and 2025 share no household with income year 2022: the CPS keeps a household for +# one month in consecutive Marches at most, so a two-year separation leaves no rotation overlap. +bench = raw[[2024, 2025]].mean(axis=1) +bse = cse * np.sqrt(3 / 2) +for y in (2022, 2023, 2024): + x = dense[(dense.source_year == y) & (dense.ch == "asec")] + m = (x.W0 * x.E).groupby(x.state).sum() / x.W0.groupby(x.state).sum() * 100 + print( + f"Census's flag on ASEC rows at initial weights against raw ASEC, {y}: corr {m.corr(raw[y]):.3f}" + ) +print(f"benchmark 2024-25 against Table 18: corr {bench.corr(c.rate):.3f}") +rows = [] +for lab, x in ( + ("all", dense[dense.source_year == 2022]), + ("asec", dense[(dense.source_year == 2022) & (dense.ch == "asec")]), + ("puf", dense[(dense.source_year == 2022) & (dense.ch == "puf")]), +): + for W, wlab in (("W0", "initial"), ("W1", "published")): + m = (x[W] * x.y).groupby(x.state).sum() / x[W].groupby(x.state).sum() * 100 + se = ( + np.sqrt( + (influence(x, W, "y").groupby([x.state, x.clu]).sum() ** 2) + .groupby(level=0) + .sum() + ) + * 100 + ) + g = m - bench + rows.append( + dict( + rows=lab, + weights=wlab, + records=len(x), + mean_gap=g.mean(), + sd=g.std(), + mad=g.abs().mean(), + mad_demeaned=(g - g.mean()).abs().mean(), + corr=m.corr(bench), + median_se=se.median(), + beyond_2se=int((g.abs() > 1.96 * np.sqrt(se**2 + bse**2)).sum()), + ) + ) +b = pd.DataFrame(rows) +b.to_csv(f"{SP}/run/overlap_benchmark.csv", index=False) +print(b.round(2).to_string(index=False)) + +# persist.py holds the test of state misses that persist, so it can rerun from saved fits. diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/paired.py b/docs/evidence/us-state-child-spm-2026-11/scripts/paired.py new file mode 100644 index 0000000000..10f5c656d3 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/paired.py @@ -0,0 +1,113 @@ +"""Paired record-level comparison of PE and Census resource parts by state. Pairing cancels most sampling noise.""" + +import os +import sys + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +TAG = sys.argv[1] if len(sys.argv) > 1 else "default" +u = pd.read_parquet(f"{SP}/run/{TAG}_units.parquet") +u = u[u.kids > 0].copy() +u = u[ + u.household_support_channel == "asec" +].copy() # Census flags and PE inputs share a source only on asec rows +W = (u.w1 * u.kids).values +c = lambda n: u[n].fillna(0).values.astype(float) +p = lambda n: u[f"{n}__2024"].values.astype(float) +low = c("SPM_RESOURCES") < 2 * c("SPM_POVTHRESHOLD") +d = pd.DataFrame( + { + "state": u.state.values, + "W": W, + "low": low, + "snap_c": c("SPM_SNAPSUB"), + "snap_p": p("snap"), + "house_c": c("SPM_CAPHOUSESUB"), + "house_p": p("spm_unit_capped_housing_subsidy"), + "lunch_c": c("SPM_SCHLUNCH"), + "lunch_p": p("free_school_meals") + p("reduced_price_school_meals"), + "wic_c": c("SPM_WICVAL"), + "wic_p": p("wic"), + "eng_c": c("SPM_ENGVAL"), + "eng_p": p("spm_unit_energy_subsidy"), + "T_c": c("SPM_POVTHRESHOLD"), + "T_p": p("spm_unit_spm_threshold"), + "geo_c": c("SPM_GEOADJ"), + "geo_p": p("spm_unit_geographic_adjustment"), + "exp_c": c("SPM_CAPWKCCXPNS") + c("SPM_MEDXPNS") + c("SPM_CHILDSUPPD"), + "exp_p": p("spm_unit_spm_expenses"), + "eitc_c": c("SPM_EITC"), + "eitc_p": p("eitc"), + "actc_c": c("SPM_ACTC"), + "actc_p": p("refundable_ctc"), + "sttax_c": c("SPM_STTAX"), + "sttax_p": p("spm_unit_state_tax"), + "cash_c": c("SPM_TOTVAL"), + "cash_p": p("spm_unit_market_income"), + } +) + + +def wm(g, n): + return np.average(g[n], weights=g.W) + + +out = [] +for s, g in list(d.groupby("state")) + [("US", d)]: + l = g[g.low] # noqa: E741 + r = dict(state=s, n=len(g)) + for k in ("snap", "house", "lunch", "wic", "eng", "eitc", "actc", "sttax", "exp"): + r[k + "_c"] = wm(l, k + "_c") + r[k + "_p"] = wm(l, k + "_p") + r["geo_ratio"] = np.exp( + np.average(np.log(g.geo_p / g.geo_c.replace(0, np.nan)).fillna(0), weights=g.W) + ) + out.append(r) +o = pd.DataFrame(out).set_index("state") +pd.set_option("display.width", 230) +show = o[ + [ + "n", + "snap_c", + "snap_p", + "house_c", + "house_p", + "lunch_c", + "lunch_p", + "eitc_c", + "eitc_p", + "actc_c", + "actc_p", + "sttax_c", + "sttax_p", + "exp_c", + "exp_p", + "geo_ratio", + ] +] +print( + show.loc[ + [ + "US", + "LA", + "MS", + "AR", + "HI", + "MT", + "DE", + "MD", + "MA", + "MO", + "TN", + "IL", + "DC", + "FL", + ] + ] + .round(0) + .assign(geo_ratio=show.geo_ratio.round(3)) + .to_string() +) +o.to_csv(f"{SP}/run/{TAG}_paired.csv") diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/parent_blanks.py b/docs/evidence/us-state-child-spm-2026-11/scripts/parent_blanks.py new file mode 100644 index 0000000000..b4b739150c --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/parent_blanks.py @@ -0,0 +1,34 @@ +"""Blank, zero, negative and positive parent links on the default and dense files, which take no fill.""" + +import glob +import os + +import pandas as pd + +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +for tag, rev in (("default", "9a814a3b"), ("dense", "15cefac4")): + p = pd.read_hdf( + [x for x in glob.glob(S + rev + "*/*.h5") if "calib" not in x][0], "person" + ) + print(tag, "people", len(p)) + cols = [c for c in ("parent_1_id", "parent_2_id") if c in p] + if not cols: + print(" stores no parent columns") + for c in cols: + v = p[c] + print( + " ", + c, + v.dtype, + "blank", + int(v.isna().sum()), + "zero", + int((v == 0).sum()), + "negative", + int((v < 0).sum()), + "positive", + int((v > 0).sum()), + ) + del p diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/part.py b/docs/evidence/us-state-child-spm-2026-11/scripts/part.py new file mode 100644 index 0000000000..4e5dc6bcfb --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/part.py @@ -0,0 +1,75 @@ +"""Arithmetic on real simulation output, not a re-simulation: what if partnership and S-corp income entered SPM resources before tax?""" + +import glob +import os + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +S = os.path.expanduser( + "~/.cache/huggingface/hub/datasets--policyengine--populace-us/snapshots/" +) +for tag, pat, fn in ( + ("dense", "15cefac4*", "*.h5"), + ("default", "9a814a3b*", "populace_us_2024.h5"), +): + f = [x for x in glob.glob(S + pat + "/" + fn) if "calib" not in x][0] + p = pd.read_hdf(f, "person") + cols = [ + c + for c in ( + "partnership_income", + "s_corp_income", + "partnership_s_corp_income", + "partnership_se_income", + ) + if c in p + ] + print(tag, cols, {c: round(float(p[c].abs().sum() / 1e9), 1) for c in cols}) + use = [c for c in ("partnership_income", "s_corp_income") if c in p] or [ + "partnership_s_corp_income" + ] + a = p.groupby("person_spm_unit_id")[use].sum().sum(axis=1).rename("ps") + u = pd.read_parquet( + f"{SP}/run/{tag}_units.parquet", + columns=[ + "spm_unit_id", + "kids", + "w1", + "spm_unit_net_income__2024", + "spm_unit_spm_threshold__2024", + "spm_unit_is_in_spm_poverty__2024", + "household_support_channel", + "state", + ], + ) + u = u[u.kids > 0].merge(a, left_on="spm_unit_id", right_index=True, how="left") + u["ps"] = u.ps.fillna(0) + W = u.w1 * u.kids + was = u.spm_unit_net_income__2024 < u.spm_unit_spm_threshold__2024 + now = (u.spm_unit_net_income__2024 + u.ps) < u.spm_unit_spm_threshold__2024 + print( + " check identity", + round( + float((was == u.spm_unit_is_in_spm_poverty__2024.astype(bool)).mean()), 5 + ), + "share child units with nonzero", + round(float(np.average(u.ps != 0, weights=W)), 4), + ) + print( + " child rate was", + round(100 * np.average(was, weights=W), 2), + "with income added", + round(100 * np.average(now, weights=W), 2), + ) + print( + " by channel", + { + k: ( + round(100 * np.average(was[g.index], weights=W[g.index]), 2), + round(100 * np.average(now[g.index], weights=W[g.index]), 2), + ) + for k, g in u.groupby("household_support_channel") + }, + ) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/parts_check.sh b/docs/evidence/us-state-child-spm-2026-11/scripts/parts_check.sh new file mode 100644 index 0000000000..ae12ba6988 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/parts_check.sh @@ -0,0 +1,33 @@ +#!/bin/zsh +# Hold the ACS-local rerun between states, check that states run in household parts give exactly what whole-state runs give, +# run the published-rent states whose baseline alone passes 8 GiB (Texas in 3 parts, California in 4), and let the rerun go +# on. Every exit path releases the hold. +# Usage: parts_check.sh +SP=${0:a:h}; cd $SP +DRIVER=$1 +export IGNORE_HOLD=1 PARTS_LOG=run/parts_check.log +LOG=run/parts_check.log; PY=env/.venv/bin/python +note() { print -r -- "$(date -u +%TZ) $*" >> $LOG; } +[[ "$(ps -p $DRIVER -o args=)" == "zsh acs_rerun.sh" ]] || { note "stopped: pid $DRIVER is not the rerun driver"; exit 1; } +release() { rm -f run/hold && note "hold released"; } +trap release EXIT +trap 'exit 130' INT TERM HUP +: > run/hold +note "hold set" +# The driver's next run waits at its start. Wait for a run that started before the hold, which has no held. mark. +busy() { local pid; for pid in $(pgrep -P $DRIVER -f acs_rerun.py); do [[ -e run/held.$pid ]] || return 0; done; return 1; } +while busy; do sleep 20; done +note "rerun held between states" +fail=0 +zsh acs_parts.sh 56 acs 2 run/parts_check/acs || fail=1 +zsh acs_parts.sh 10 acs 3 run/parts_check/acs || fail=1 +zsh acs_parts.sh 5 acs 2 run/parts_check/acs || fail=1 +zsh acs_parts.sh 56 acsrent 2 run/parts_check/acsrent || fail=1 +zsh acs_parts.sh 50 acsrent 3 run/parts_check/acsrent || fail=1 +$PY -I acs_parts_cmp.py >> $LOG 2>&1 || fail=1 +if (( fail )); then note "parts did not reproduce whole-state runs, so Texas and California wait"; exit 1; fi +: > run/parts_ok +note "parts reproduce whole-state runs" +zsh acs_parts.sh 48 acs 3 || note "Texas did not finish" +zsh acs_parts.sh 6 acs 4 || note "California did not finish" +note "Texas and California runs ended" diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/parts_ids.py b/docs/evidence/us-state-child-spm-2026-11/scripts/parts_ids.py new file mode 100644 index 0000000000..bf3ace0576 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/parts_ids.py @@ -0,0 +1,74 @@ +"""Split one state's households into parts for acs_parts.sh: contiguous in the split's household order, with about equal +numbers of people. + +policyengine-us 2.90.2 resolves parent links within a household or a tax unit, and reads across households only when a tax +unit spans households or a Medicaid claiming tax unit is set (_parent_links.py). Model formulas cannot draw random numbers +(policyengine-core 3.34.2's random raises). So this refuses a state where any tax unit, SPM unit, family or marital unit spans +households, or where any table carries a claiming tax unit column. acs_parts_cmp.py checks the parts against whole-state runs. +Stops itself with exit 75 if peak RSS passes RSS_CAP_GIB (default 8). +Usage: parts_ids.py +""" + +import os +import resource +import sys +import threading +import time + +import numpy as np +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +fips, K, out = int(sys.argv[1]), int(sys.argv[2]), sys.argv[3] +GROUPS = ("tax_unit", "spm_unit", "family", "marital_unit") +CAP = float(os.environ.get("RSS_CAP_GIB", "8")) * 2**30 + + +def watch(): + while True: + time.sleep(2) + if resource.getrusage(resource.RUSAGE_SELF).ru_maxrss > CAP: + print("rss stop parts_ids", fips, flush=True) + os._exit(75) + + +threading.Thread(target=watch, daemon=True).start() +h = pd.read_pickle(f"{SP}/run/acs_split/{fips:02d}-household.pkl.gz") +p = pd.read_pickle(f"{SP}/run/acs_split/{fips:02d}-person.pkl.gz") +claiming = [c for c in [*h.columns, *p.columns] if "claiming" in c] +for g in GROUPS: + claiming += [ + c + for c in pd.read_pickle(f"{SP}/run/acs_split/{fips:02d}-{g}.pkl.gz").columns + if "claiming" in c + ] +assert not claiming, f"claiming tax unit columns {claiming}" +p = p.loc[ + p.person_household_id.isin(h.household_id), + ["person_household_id", *[f"person_{g}_id" for g in GROUPS]], +] +for g in GROUPS: + spans = p.groupby(f"person_{g}_id").person_household_id.nunique() + assert (spans == 1).all(), ( + f"{int((spans > 1).sum())} of {len(spans)} {g}s span households" + ) +people = ( + p.person_household_id.value_counts().reindex(h.household_id, fill_value=0).values +) +edges = np.searchsorted(np.cumsum(people), np.arange(1, K) * people.sum() / K) +parts = np.split(h.household_id.values, edges) +assert len(parts) == K and all(len(ids) for ids in parts), [len(ids) for ids in parts] +os.makedirs(out, exist_ok=True) +for k, ids in enumerate(parts): + np.save(f"{out}/p{k}.tmp.npy", ids) + os.replace(f"{out}/p{k}.tmp.npy", f"{out}/p{k}.npy") + print( + fips, + "part", + k, + "households", + len(ids), + "people", + int(people[np.isin(h.household_id.values, ids)].sum()), + flush=True, + ) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/parts_merge.py b/docs/evidence/us-state-child-spm-2026-11/scripts/parts_merge.py new file mode 100644 index 0000000000..8be92eee97 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/parts_merge.py @@ -0,0 +1,40 @@ +"""Merge one state's parts from acs_parts.sh into the state's output, once the parts hold each of the state's SPM units exactly +once. Rows go in SPM unit id order, the order a whole-state run writes. +Usage: parts_merge.py +""" + +import os +import sys + +import pandas as pd + +SP = os.path.dirname(os.path.abspath(__file__)) +fips, tag, K, parts, dest = ( + int(sys.argv[1]), + sys.argv[2], + int(sys.argv[3]), + sys.argv[4], + sys.argv[5], +) +u = pd.concat( + [pd.read_parquet(f"{parts}/p{k}/{fips:02d}.parquet") for k in range(K)], + ignore_index=True, +) +assert u.spm_unit_id.is_unique, "an SPM unit sits in two parts" +hh = pd.read_parquet(f"{SP}/run/acs_hh.parquet", columns=["household_id", "state_fips"]) +uh = pd.read_parquet(f"{SP}/run/acs_unit_hh.parquet") +want = set( + uh.person_spm_unit_id[ + uh.person_household_id.isin(hh.household_id[hh.state_fips == fips]) + ] +) +got = set(u.spm_unit_id) +assert got == want, ( + f"parts hold {len(got)} SPM units and the state has {len(want)}: {len(got - want)} extra, {len(want - got)} missing" +) +u = u.sort_values("spm_unit_id", kind="stable").reset_index(drop=True) +os.makedirs(dest, exist_ok=True) +target = f"{dest}/{fips:02d}.parquet" +u.to_parquet(target + ".tmp", compression="zstd") +os.replace(target + ".tmp", target) +print(fips, tag, "parts", K, "units", len(u), "merged into", dest, flush=True) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/persist.py b/docs/evidence/us-state-child-spm-2026-11/scripts/persist.py new file mode 100644 index 0000000000..d14b4e2434 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/persist.py @@ -0,0 +1,97 @@ +"""State misses that persist: dense initial-weight gaps against ACS-row gaps, which share no household. + +The covariance comes from overlap_fits.csv, which overlap.py writes. +""" + +import json +import os + +import numpy as np +import pandas as pd +from scipy import stats + +SP = os.path.dirname(os.path.abspath(__file__)) +c = pd.DataFrame(json.load(open(f"{SP}/census_child_spm.json"))["rows"]).set_index( + "state" +) +cse = c.moe / 1.645 +fits = pd.read_csv(f"{SP}/run/overlap_fits.csv") + + +def cov(weights): + return fits[ + (fits.file == "dense") & (fits.weights == weights) & (fits.rows == "all") + ].mean_cov.iloc[0] + + +s = pd.read_csv(f"{SP}/run/initial_fit_states.csv", index_col=0) +e = pd.read_csv(f"{SP}/run/acs_eval.csv", index_col=0) +t = pd.DataFrame( + { + "dense_initial": s.dense_W0, + "dense_initial_se": s.dense_W0_se, + "acs_rows": e.acs_only - e.census, + "acs_rows_se": e.acs_only_se, + "census_se": cse, + } +) +t["z_dense"] = t.dense_initial / np.sqrt(t.dense_initial_se**2 + t.census_se**2) +t["z_acs"] = t.acs_rows / np.sqrt(t.acs_rows_se**2 + t.census_se**2) +t.to_csv(f"{SP}/run/state_persistence.csv") +# ACS rows share no household with Census, so the gaps' sampling covariance equals Var(Census) less Cov(dense, Census). +print( + f"gap corr dense initial, ACS rows {t.dense_initial.corr(t.acs_rows):.2f}; p {stats.pearsonr(t.dense_initial, t.acs_rows)[1]:.3f}" +) +print( + f" Census noise alone would give about {((t.census_se**2).mean() - cov('initial')) / (t.dense_initial.std() * t.acs_rows.std()):.2f}" +) +print(f"gap corr dense published, ACS rows {s.dense_W1.corr(t.acs_rows):.2f}") +print( + f" Census noise alone would give about {((t.census_se**2).mean() - cov('published')) / (s.dense_W1.std() * t.acs_rows.std()):.2f}" +) +rng = np.random.default_rng(0) +same = lambda z1, z2, th: ( + (np.sign(z1) == np.sign(z2)) & (np.abs(z1) > th) & (np.abs(z2) > th) +).sum() +for th in (1.28, 1.645, 1.96): + obs = same(t.z_dense.values, t.z_acs.values, th) + sim = np.array( + [ + same(t.z_dense.values, t.z_acs.values[rng.permutation(51)], th) + for _ in range(20000) + ] + ) + pick = t.index[ + (np.sign(t.z_dense) == np.sign(t.z_acs)) + & (t.z_dense.abs() > th) + & (t.z_acs.abs() > th) + ].tolist() + print( + f"|z|>{th}: {obs} states {pick}, permutation mean {sim.mean():.2f}, p {(sim >= obs).mean():.3f}" + ) +t["joint_z"] = np.where( + np.sign(t.z_dense) == np.sign(t.z_acs), + np.minimum(t.z_dense.abs(), t.z_acs.abs()), + 0, +) + + +def largest(z2): + return np.where( + np.sign(t.z_dense.values) == np.sign(z2), + np.minimum(np.abs(t.z_dense.values), np.abs(z2)), + 0, + ).max() + + +sim = np.array([largest(t.z_acs.values[rng.permutation(51)]) for _ in range(200000)]) +print( + f"largest joint z {t.joint_z.max():.3f}, permutation median {np.median(sim):.2f}, p {(sim >= t.joint_z.max()).mean():.3f}" +) +t.to_csv(f"{SP}/run/state_persistence.csv") +print( + t.sort_values("joint_z", ascending=False) + .head(8)[["dense_initial", "acs_rows", "z_dense", "z_acs", "joint_z"]] + .round(2) + .to_string() +) diff --git a/docs/evidence/us-state-child-spm-2026-11/scripts/post_acs.sh b/docs/evidence/us-state-child-spm-2026-11/scripts/post_acs.sh new file mode 100644 index 0000000000..dbe1a47028 --- /dev/null +++ b/docs/evidence/us-state-child-spm-2026-11/scripts/post_acs.sh @@ -0,0 +1,15 @@ +#!/bin/zsh +# The post-run scripts that need only the published-rent pass, one at a time: the 51-state check against the deck, then the +# ACS-local evaluation and the scripts that read it. Each script's output goes to run/logs/