# MacroVision: household exposure and food-measurement audit (v85)

## Result and scope

The fixed household design yields **4,527 households with consistent food coding in both baseline and outcome periods**, including **322 households with a qualifying job separation among their members**. There is one fixed baseline index person per household and no repeated index-person key across the five origin windows.

Food-score reconstruction agrees with **both** official `RFOODR` and `RFOODS` in **119,760 of 119,765 household-release records** with a complete reported response path: **99.9958%**. Five discrepancies in the 2022 release are excluded from the conservative study subset. These are records across release years, **not 119,765 different households**. Retained study records must agree by definition; the agreement fraction above is measured **before** that retention filter.

This stage defines household exposure and checks measurement. It does **not** estimate hardship by liquidity, produce a new H1 coefficient, establish causality, or calibrate the model. Coding agreement is not external validation of respondents' circumstances, proof that an entire release is harmonized, or a substitute for actual consumption expenditure.

## Rules fixed before the checks

[The household and food-audit plan, code and synthetic tests were committed before the checks](https://github.com/idop1/macrovision/commit/b2f86cc9ef58cd5a15283f61e2e312e056d96e62). The plan was not revised after seeing agreement rates or retained sample sizes. This is a repository checkpoint, not an externally registered study.

Origin panels remain **2018, 2020, 2021, 2022, 2023**, each contributing exactly one baseline/event/outcome window: reference years P-1/P/P+1, in releases P/P+1/P+2. No old v82/v83 rows are appended as extra observations.

### Baseline index and resources

Within each December baseline household (`SSUID+ERESIDENCEID`), choose the lowest numeric `PNUM` among baseline people with `TAGE` 25-60, December `RMESR=1 or 2`, all 12 baseline months at their interview residence, complete positive annual household income, and valid household checking/savings shares. The index is selected **before** current-event, outcome and longitudinal-weight restrictions. A missing index is never replaced by a surviving or better-observed member.

Household deposits are the same six ownership shares used previously, summed once per baseline member. Joint spousal shares are already divided between spouses. Unknown owned balances are not treated as zero. The low-deposit threshold remains one month of mean baseline **income**, not expenditure or total safe wealth.

### Household exposure and comparison group

The December baseline roster contains **all household members, including children**, not only the eligible index or employed people. A qualifying separation for **any** roster member makes the household exposed: employer-ending reasons 1, 2, 3 or 6, with the v84 end-month and December-continuation checks. Unknown observed ending reasons exclude the household. A comparison household has **no observed employer ending of any reason** among the roster members. Households with other known endings but no qualifying economic separation are excluded from this comparison.

Prior household economic separations and ambiguous observed endings are excluded. These are observed-event rules; they do not certify that every job-history item is error-free. An employer separation need not lead to unemployment or represent automation.

### Follow-up composition

For all 12 months of both event and outcome years, observed co-residents at the index person's residence must match the baseline roster exactly. Entrants, births, departures, deaths, missing index months and splits fail this deliberately restrictive audit design. Whole-household moves during the event year are allowed if the roster remains together. Baseline and outcome annual food assignment additionally requires the index to reside at the interview address throughout the respective year.

This prevents placing a non-separated partner of an exposed member into the unexposed comparison group. It does **not** establish causal identification. In particular, excluding post-event composition changes can condition on consequences of job loss and create selection bias. The resulting balanced-household domain cannot stand for all households affected by job loss. A broader index-tracking/composition sensitivity must be specified before an effect analysis.

### Weight interpretation

The fixed index must have positive endpoint `FINYR3` for its three-year window. No monthly weight is substituted and no replacement index is chosen. This is an **index-person longitudinal domain describing selected households**, not a nationally representative household-prevalence estimator. Future uncertainty calculations need the matching replicate weights and an explicit target population. No standard error or prevalence is reported here.

## Household sample flow

| Stage | Households |
|---|---:|
| Baseline eligible index selected | 26,411 |
| No prior observed household economic separation/ambiguity | 25,441 |
| Positive fixed-index longitudinal weight | 8,637 |
| Exact roster throughout event year | 7,236 |
| Qualifying economic separation or no employer ending | 5,868 |
| Exact outcome roster and stable index outcome residence | 4,802 |
| Consistent food coding in both periods | **4,527** |
| Qualifying exposed households in final coding subset | **322** |

The weight-eligibility reduction includes longitudinal sample/cohort eligibility and follow-up availability; it is not reported as a pure nonresponse rate. The v84 count of 11,253 candidate **people** and 468 person separations is not a denominator for this flow. The unit, fixed-index choice, whole-household exposure and follow-up rules have changed, so the stages are not a simple attrition percentage from v84.

| Origin panel | Reference baseline/event/outcome | Consistent food pairs | Exposed households | Unexposed comparison households |
|---|---|---:|---:|---:|
| 2018 | 2017 / 2018 / 2019 | 2,071 | 131 | 1,940 |
| 2020 | 2019 / 2020 / 2021 | 693 | 98 | 595 |
| 2021 | 2020 / 2021 / 2022 | 469 | 21 | 448 |
| 2022 | 2021 / 2022 / 2023 | 823 | 44 | 779 |
| 2023 | 2022 / 2023 / 2024 | 471 | 28 | 443 |
| **Total** | One window per origin | **4,527** | **322** | **4,205** |

Resource/exposure **cell counts**, not hardship rates:

| Group | Below one month of baseline income | At least one month |
|---|---:|---:|
| Unexposed comparison | 2,167 | 2,038 |
| Household job separation | 174 | 148 |

No hardship outcome mean or change is compared across these groups. Smaller individual cohorts remain sparse; the pooled counts do not remove calendar heterogeneity, dependence or weak overlap within a cohort.

## Answer-conditioned food scoring

The official USDA six-item short form and SIPP dictionaries define the required response path and affirmative coding. We implement:

1. Always require valid `EFOOD1` and `EFOOD2` codes 1/2/3 and `EFOOD3` code 1/2, with **all three status flags equal to 1 (reported)**.
2. If `EFOOD3=1`, require a valid **reported** `EFOOD4` frequency. “Almost every month” and “some months” are affirmative; “only one or two months” is not.
3. If either of the first two items is affirmative or `EFOOD3=1`, require valid **reported** `EFOOD5` and `EFOOD6` answers.
4. Questions outside the answer-conditioned universe are logical skips. They are not declared reported merely because a status flag is 0. Required allocated, model-imputed or logically imputed items fail this reported path.
5. Sum six affirmatives. Score 0-1 maps to category 1, 2-4 to category 2, 5-6 to category 3. Compare to **both** published raw score and category.

For a non-required item, the score contribution is derived from reported screening answers. Negative/logically inferred skipped answers do not become additional reported questions. A valid meal-cutting frequency on a branch that should be skipped, or an affirmative skipped item5/6 response, is recorded as an anomaly and excluded from the conservative study subset. This avoids treating an older historical flag0 as automatic evidence of an un-imputed structural skip.

We do not edit Census records or silently replace a conflicting official code. The five recode conflicts are excluded pending further diagnosis, rather than labeled confirmed Census errors.

## Household food record selection and audit results

December adult records are grouped by interview household (`SSUID+EHRESIDENCID+SHHADID`). A unique householder (`ERELRPE=1 or 2`) is preferred. If missing or ambiguous, the lowest adult PNUM is used for diagnostics only; such a group is not accepted into the study subset. Food answers and recodes must also be consistent across adult household members. Selection never depends on the food value or its allocation flags.

| Release | Reference year | Interview household records | Complete reported path | Agree with both official recodes | Retained quality records |
|---|---:|---:|---:|---:|---:|
| 2018 | 2017 | 26,215 | 25,204 | 25,204 | 25,204 |
| 2020 | 2019 | 21,982 | 21,050 | 21,050 | 21,050 |
| 2021 | 2020 | 24,044 | 22,925 | 22,925 | 22,920 |
| 2022 | 2021 | 17,448 | 16,665 | 16,660 | 16,660 |
| 2023 | 2022 | 17,584 | 16,873 | 16,873 | 16,873 |
| 2024 | 2023 | 10,844 | 10,360 | 10,360 | 10,360 |
| 2025 | 2024 | 7,017 | 6,688 | 6,688 | 6,688 |

These are **household-release records within the selected origin panels**, not independent household samples or national counts. A household may occur in more than one quality-audit year. The 2019 release is used for event-year composition, not food scoring, in the chosen origin windows.

All complete reported paths have available official codes. Five disagree in release2022. There are no detected within-interview-household value conflicts or screened skip anomalies under the stated rules. Six release2021 groups lack a unique householder; five of those otherwise complete reported paths are excluded, explaining that row's additional reduction.

The conservative retained quality subset therefore contains **119,755 household-release records**. Requiring its records to agree with the official recodes is a retention rule, not an independent validation statistic. The pre-filter 119,760/119,765 agreement is the relevant implementation check. Nonreported paths and ambiguous households are not thereby proven valid or invalid; they remain outside this strict subset.

## What has and has not been resolved

- **Implemented:** one baseline index; any-member household exposure; a comparison rule without a known qualifying household-member shock; exact roster checks; required-question reporting checks; six-item reconstruction; pre-filter agreement and attrition diagnostics.
- **Supported for the retained subset:** consistent raw-score/category coding under the published response routing, with identified conflicts and ambiguous household records excluded.
- **Still open:** selection into stable households and reported responses, historical comparability outside that subset, appropriate population weights, calendar heterogeneity, confounding, and precision under the new design.
- **Not estimated:** the effect or association of liquidity with hardship in this household design; contractual debt-service H2; consumption expenditure; automation unemployment or fiscal channels.

The older v82 flag-only sensitivity is **not retroactively certified** by this new audit: its membership rule differs. The earlier v82/v83 coefficients remain unchanged and inconclusive. The v84 person-level precision scenarios also do not automatically carry over to the new household domain.

## Next estimation gate

Before inspecting a new liquidity-hardship contrast:

1. Assess precision with the **fixed-index matching replicate weights**, household sample and cohort-specific overlap; specify the target effect size and estimand.
2. Fix a primary conditional-association model and cohort weighting before fitting it. Do not pool pandemic and non-pandemic windows as homogeneous independent experiments.
3. Prespecify sensitivity to household composition and response selection, including the consequences of excluding post-event changes. A balanced-household association is not a causal effect for all displaced households.
4. Report null, reversed and unavailable estimates under the fixed rules. Keep model calibration closed until precision, robustness and interpretation warrant it. Food insecurity remains distinct from actual consumption and net-wealth preservation.

## Reproduction

- `data/metadata/sipp_household_food_plan_v85.json`: criteria fixed before the checks.
- `data/metadata/sipp_household_food_crosswalk_v85.json`: selected source fields/hashes, index-weight archive hashes and reused-helper hashes.
- `scripts/sipp_household_food_v85.py`: extraction, household construction and measurement audit; reuses v82/v84 helpers.
- `calibration/test_sipp_household_food_v85.py`: synthetic cases for conditional skips, required missing flags, frequency thresholds, official-code conflicts, entrants/departures, fixed-index missingness and other-member exposure.
- `data/processed/sipp_household_food_v85.json`: aggregate measurement and sample-flow results with code/plan/archive hashes and explicit closed effect/calibration gates.

Supply official `puYYYY_csv.zip` releases2018-2025 outside the checkout, the v84 blinded baseline/event caches or their source files, and endpoint `lgtwgtYYYYyr3_csv.zip` for2020/2022/2023/2024/2025. Install `requirements-research.txt`.

```bash
python scripts/sipp_household_food_v85.py --data-dir /outside/food-audit --prior-data-dir /outside/v84 --output /outside/sipp_household_food_v85.json
python -m unittest discover -s calibration -p 'test_sipp_household_food_v85.py' -v
```

The extractor keeps monthly composition and December food records in separate local caches bound to source hashes and column lists. Only aggregate audit results and metadata enter the repository/site. No participant records, identifiers, food responses or individual scores are published. PSID remains excluded.

## Official sources

- [USDA six-item short form, affirmative coding and categories](https://www.ers.usda.gov/media/xxsjnqd1/short2024.pdf)
- [USDA documentation confirming the annual six-item SIPP module](https://ers.usda.gov/data-products/food-security-in-the-united-states/documentation)
- [SIPP2024 dictionary, food universes, values and recodes](https://www2.census.gov/programs-surveys/sipp/tech-documentation/data-dictionaries/2024/2024_SIPP_Data_Dictionary.pdf)
- [Historical food hot-deck allocation error](https://www.census.gov/programs-surveys/sipp/tech-documentation/user-notes/2020-usernotes/2020-hot-deck-alloc-error.html)
- [SIPP2024 user's guide, household identification and annual adult well-being](https://www2.census.gov/programs-surveys/sipp/tech-documentation/methodology/2024_SIPP_Users_Guide.pdf)
- [Preceding historical-plan audit and earlier-source links](SIPP_HISTORICAL_PLAN_V84.md)
