# MacroVision: fixed-spec household liquidity association and composition sensitivity (v88)

Follow-up: [the external-source SHED mechanism check (v89)](SHED_EXTERNAL_CHECK_V89.md) uses different resource, exposure and food measures. It is reported separately and is not pooled with the SIPP estimates below.

## Result and scope

Official-source reconstruction reproduces all five v85 strict cohort cell counts: **4,527 fixed-index households, 322 exposed**. Allowing outcome-year roster changes, while keeping event-year roster and annual index-residence rules fixed, yields **5,128 households, 384 exposed**. This adds 601 households and 62 exposed households. The sensitivity is nested within the same event-year ascertainment domain; it does not cover event-year splits or moving indices.

The primary estimand is the equal arithmetic mean of five within-cohort adjusted separation-by-low-deposits interaction coefficients. The outcome is change in binary food insecurity from baseline to outcome year. A positive coefficient indicates a larger separation-associated change for low-deposit households. It is an exploratory conditional association, not a causal protective effect of liquidity.

### Primary strict household domain

Adjusted interaction: **-5.81 percentage points**. The 95% normal interval using the conservative cross-cohort SE envelope is **[-20.31, +8.69] pp**, with half-width 14.50 pp. The 5 pp half-width target is **not met**.

Under the additional independent-cohort assumption, the secondary normal interval is [-12.90, +1.28] pp. This diagnostic is not substituted for the prespecified envelope.

### Prespecified outcome-roster sensitivity

Adjusted interaction: **-6.32 percentage points**. The 95% normal interval using the conservative cross-cohort SE envelope is **[-20.26, +7.61] pp**, with half-width 13.94 pp. The 5 pp half-width target is **not met**.

Under the additional independent-cohort assumption, the secondary normal interval is [-13.03, +0.38] pp. This diagnostic is not substituted for the prespecified envelope.

Both adjusted point estimates are negative, opposite to the hypothesized positive low-deposit interaction; both primary uncertainty intervals span zero. This test therefore provides no clear support for the proposed liquidity-protection mechanism, while its precision is insufficient to establish absence or reversal of that mechanism. The two closely related domains are not independent replications.

## Rules fixed before new household outcome contrasts

[The v87 membership/weight-planning checkpoint](https://github.com/idop1/macrovision/commit/43e3265b89e512278744c13ae167e8903efe7fc2) fixed the reconstruction and composition sensitivity. [The v88 model checkpoint](https://github.com/idop1/macrovision/commit/e6a882f6e6dd328ca5da6a4b1503a773b56198c7) fixed the outcome model, covariates, sparsity gates and uncertainty aggregation before new household outcome contrasts were inspected. v85/v86 counts and prior v82/v83 person-level results were already known; this is not external preregistration or independent confirmation.

Within each origin cohort, FINYR3-weighted least squares estimates:

`change_food_insecurity ~ intercept + economic_separation + low_deposits + economic_separation:low_deposits + baseline_food_insecure + (index_age-40)/10 + log(annual_household_income/10000) + baseline_household_size`

All covariates are baseline measurements. No post-event income, deposits, household composition or employment control is included. Food insecurity means RFOODS category 2 or 3; both periods must pass the unchanged v85 answer-conditioned reporting, household consistency and official-recode checks. The fixed baseline index is never replaced. Exposure remains any baseline member’s qualifying economic employer separation, and controls have no observed employer ending of any reason. Deposits below one month of baseline income define low liquidity; this is not consumption expenditure, debt service or net wealth.

Availability requires at least five observations and Kish effective N of five in every cohort cell, full rank in all 240 weighted replicate refits, and at least 30 exposed households across the equal-cohort target. These are exploratory computational/sparsity gates; they do not establish good overlap, adequate statistical power or confirmatory validity. They do not retroactively change the separate v83 holdout threshold. Missing prespecified covariates are excluded and counted; failed fits are reported unavailable.

## Cohort estimates and availability

All intervals in this table use the cohort’s matching longitudinal Fay replicates; units are percentage points. They are normal approximations, not causal intervals.

| Origin | Domain | N after covariates | Exposed | Adjusted interaction (pp) | Cohort normal 95% interval (pp) / unavailable reason |
|---|---|---:|---:|---:|---|
| 2018 | Strict | 2,071 | 131 | -2.38 | [-9.86, +5.11] |
| 2018 | Outcome roster relaxed | 2,386 | 149 | -4.94 | [-12.98, +3.09] |
| 2020 | Strict | 693 | 98 | -2.09 | [-9.75, +5.57] |
| 2020 | Outcome roster relaxed | 790 | 124 | -6.07 | [-15.90, +3.75] |
| 2021 | Strict | 469 | 21 | +9.78 | [-6.77, +26.33] |
| 2021 | Outcome roster relaxed | 526 | 26 | +7.74 | [-4.82, +20.30] |
| 2022 | Strict | 823 | 44 | -17.09 | [-41.67, +7.48] |
| 2022 | Outcome roster relaxed | 904 | 54 | -10.19 | [-33.93, +13.56] |
| 2023 | Strict | 471 | 28 | -17.26 | [-33.49, -1.04] |
| 2023 | Outcome roster relaxed | 522 | 31 | -18.15 | [-33.66, -2.64] |

Total covariate exclusions: strict 0; relaxed 0. No effect is recalibrated into the simulation.

## Weight validation and uncertainty interpretation

Each fixed index is matched by SSUID and PNUM to the three-year endpoint’s FINYR3 point weight and REPWGT0–240. Checks enforce FINYR3 type, exact baseline/outcome reference years, complete finite coverage, nonnegative weights and agreement of REPWGT0 with FINYR3. All model covariates are refitted in each replicate, using the Fay variance factor `1/(240*0.5^2)`.

Coherent joint replicate-number alignment across different endpoints has not been established. The primary equal-cohort SE envelope is therefore `sum(cohort_SE)/5`; by the covariance inequality it bounds the aggregate standard error if the marginal cohort variance estimates are valid. Its normal interval additionally assumes an adequate normal approximation. It is **not a jointly replicated cross-cohort survey confidence interval**. The secondary independent-cohort SE is `sqrt(sum(cohort_SE^2))/5`, requiring an additional unverified independence assumption. Neither calculation removes selection, measurement error or confounding.

FINYR3 is a fixed-index person longitudinal weight. The target is a selected index-person domain representing these baseline households, not nationally representative household prevalence. This remains true after relaxing outcome roster stability.

## Membership and precision audit (v87)

| Origin | Strict N / exposed | Relaxed N / exposed | Smallest strict-cell Kish N | Smallest relaxed-cell Kish N |
|---|---:|---:|---:|---:|
| 2018 | 2,071 / 131 | 2,386 / 149 | 46.41 | 50.72 |
| 2020 | 693 / 98 | 790 / 124 | 33.14 | 38.71 |
| 2021 | 469 / 21 | 526 / 26 | 6.91 | 7.87 |
| 2022 | 823 / 44 | 904 / 54 | 13.29 | 16.49 |
| 2023 | 471 / 28 | 522 / 31 | 10.13 | 11.59 |

The v87 linear four-cell contrast uses actual point/replicate weights to derive an expected Fay variance coefficient under a common-variance, independent-household change model. These readiness scenarios remain working-model planning calculations, not observed-outcome model SEs; the actual adjusted cohort SEs are reported above.

For assumed common food-insecurity prevalence 10% and pre/post correlation 0.5:

| Domain | Equal-cohort planning half-width, independent cohorts (pp) | Positive-covariance envelope planning half-width (pp) |
|---|---:|---:|
| Strict | 9.29 | 19.88 |
| Outcome roster relaxed | 8.68 | 18.54 |

No hardship values were used to choose membership or precision scenarios. The v87 output contains sequential counts by cohort, exposure and baseline deposit group: event-domain eligibility, valid annual outcome index residence, exact outcome roster, and strict/relaxed food validity. Sequential order is descriptive, not a causal decomposition of exclusion. Point-weight roster fractions are conditional on valid outcome residence; they are not unconditional retention or national response rates.

## Implication for the thesis

This is a direct household-level test of one limited link in the thesis: baseline deposits and food-insecurity changes around observed employer separation. It does not test actual consumption smoothing, preservation of net wealth, automation-driven job loss, debt-service H2 or fiscal channels. A positive point estimate alone cannot establish the mechanism; an interval spanning zero leaves the direction unresolved. A reversed estimate must not be relabeled as support. Precision and sensitivity must be judged together.

Allowing outcome-year household changes addresses one previously excluded group. It does not repair event-year selection, longitudinal-weight eligibility, annual residence restrictions, reported-food selection or unmeasured education/industry/health differences. No missing-at-random or causal identification assumption has been demonstrated. No selection correction or specification search is performed.

The next research decision must use the full result, including unavailable cohorts and uncertainty: obtain a better-powered independent sample or a defensible broader exposure design if needed, and address event-year composition and confounding before promoting an association to an empirical calibration parameter. Calibration remains closed.

## Reproduction and provenance

```bash
python scripts/sipp_household_readiness_v87.py --data-dir /outside/sipp --output /outside/readiness.json
python scripts/sipp_household_association_v88.py --data-dir /outside/sipp --readiness /outside/readiness.json --output /outside/association.json
python -m unittest discover -s calibration -p "test_sipp_household_*v8*.py" -v
```

The official 2018–2025 primary ZIP archives and 2020/2022/2023/2024/2025 endpoint three-year point/replicate archives stay outside the repository. The eight primary and five point-weight archive hashes match the earlier v85 audit; v87 records hashes for all 18 archives including the five replicate archives. Selected-column caches are bound to archive hashes and extraction columns. Only aggregate outputs, plans, code and this report are published.

- [v87 aggregate membership, weight validation and planning output](data/processed/sipp_household_readiness_v87.json)
- [v87 fixed plan](data/metadata/sipp_household_readiness_plan_v87.json)
- [v88 aggregate association output](data/processed/sipp_household_association_v88.json)
- [v88 fixed model specification](data/metadata/sipp_household_association_spec_v88.json)
- [Preceding count-only precision and selection audit](HOUSEHOLD_PRECISION_V86.md)

v87 tests check nested membership, missing-cohort rejection, incorrect replicate windows and the Fay working-model coefficient against exhaustive independent ±1 outcomes. v88 tests check recovery of a known adjusted interaction, preservation of negative results, missing-cohort unavailability and covariance-envelope aggregation. GitHub CI additionally runs the repository web, frontend and research checks.

## Official references

- [Census 2025 SIPP Users’ Guide, chapter 7](https://www2.census.gov/programs-surveys/sipp/tech-documentation/methodology/2025_SIPP_Users_Guide.pdf): 240 Fay replicates, factor 0.5, weighting and imputation limitations.
- [Census SIPP sampling error](https://www.census.gov/programs-surveys/sipp/methodology/sampling-error.html): complex survey design and variance estimation.
- [Census 2025 data quality concerns](https://www.census.gov/programs-surveys/sipp/tech-documentation/user-notes/2025-usernotes/2025-data-quality-concerns.html): declining response and uncertainty.
