# WAVE 2B — M1-D Calibrated Expectation Miss (research only)

**Status:** RESEARCH ONLY — **not** a production formula; **no M1 scoring authorization**  
**Date:** 2026-09-09 ~8:45 AM PT  
**Responds to:** Astra DECISION + NEXT STUDY Hub `c546d0c2` (source `0bdb3b0c`); grok ACK `61660eee`  
**Prior decision:** `SRP-M1-DEC-2026-09-09-A2-RETIRE-PRIMARY` (A2 retired as primary; diagnostic retained)  
**Governance:** standing delegated agent governance; **delegation ≠ M1 acceptance**  
**L1:** `L1-US-v0.1` unchanged  
**score_authorized(M1):** **false / 0**  
**Phase / political-event tuning:** **none**

Hard gates: do **not** freeze M1; do **not** authorize scoring; do **not** treat residual forecast error as automatic subjective disappointment or independent construct validation.

---

## Recommendation (Astra menu)

### **`MODIFY`** (still research)

| Axis | Finding |
|------|---------|
| Coding direction | Expanding OOS mean slope **b≈+1.04**, **100%** of fits b>0 → `max(0, pred−actual)` is the shortfall direction |
| Forecast skill vs baseline | Expanding MAE **10.73** vs intercept baseline **15.58** (ΔMAE **+4.85**); RMSE **13.42** vs **19.08** |
| Calibration | Expanding actual≈ **c0=−4.81 + 1.033·pred** (near unit slope) |
| Contamination risk | Candidate miss ↔ actual PAGO **r=−0.724** (expanding) — still **PAGO-dominated**, echoing A2 concern |
| Income dependence | Miss ↔ A229RX YoY **r=−0.226** (weaker than PAGO channel) |
| Production | **Not** recommended for freeze |

Residual forecast error ≠ subjective disappointment. Continue specification / panel work before any KEEP-as-primary discussion.

---

## 0. Predeclared protocol (locked before fit)

Protocol artifact: `data/m1/m1d_protocol.json` (`m1d_calibrated_miss_protocol_v1`).

| Item | Predeclared value |
|------|-------------------|
| Target | `PAGO_R(t)` |
| Predictor | `PEXP_R(t−12)` |
| Model | OLS `PAGO_expected(t)=a+b·PEXP_R(t−12)` |
| Train rule | **Strictly prior** eligible months only (no future leakage) |
| Expanding | `min_train_n=60` |
| Rolling | window=`120`, `min_train_n=60` |
| Evaluation | first OOS after 60 prior eligible months → through last local eligible month |
| Candidate | `max(0, predictedPAGO − actualPAGO)` after coding-direction check |
| Baseline | intercept / mean of prior-train PAGO |
| Metrics | MAE, RMSE, calibration (actual~c0+c1·pred), mean signed error |
| Eras | 1979–99 / 2000–19 / 2020–26-07; phone `<2024-04`; transition `2024-04..06`; web `≥2024-07` |
| Caveat | **Latest revised** Michigan/BEA archive ≠ true **vintage** backtest; release timing not reconstructed |
| Forbidden | political / phase / outcome labels in train or eval |

Rebuild: `scripts/wave2b_m1d_calibrated_miss.py`.

---

## 1. Sample / coverage

| Item | Value |
|------|-------|
| Eligible monthly rows (pago + pexp_lag12) | from `a2_gap_monthly.csv` |
| OOS n (both schemes) | **511** |
| OOS window | **1984-01 → 2026-07** |
| A229RX YoY join | n=511 (full OOS overlap in archive) |
| Inputs SHA | see `data/m1/m1d_summary.json` → `data_inputs` |

Every predicted/actual row retained:  
`data/m1/m1d_oos_predictions_expanding.csv`, `m1d_oos_predictions_rolling.csv`.

---

## 2. Key OOS metrics

### Expanding (`min_train=60`)

| Metric | Linear lag-PEXP | Intercept baseline |
|--------|----------------:|-------------------:|
| MAE | **10.733** | 15.583 |
| RMSE | **13.419** | 19.075 |
| Mean signed (pred−actual) | +1.256 | −0.751 |
| Calibration c0 / c1 | −4.806 / **1.033** | — |
| Mean candidate miss | 5.995 | 7.416 (baseline miss) |
| Mean slope b / frac b>0 | **1.041 / 1.000** | — |

### Rolling (`window=120`, `min_train=60`)

| Metric | Linear lag-PEXP | Intercept baseline |
|--------|----------------:|-------------------:|
| MAE | **11.120** | 16.966 |
| RMSE | **13.992** | 20.682 |
| Calibration c0 / c1 | +21.819 / **0.791** | — |
| Mean slope b / frac b>0 | **1.013 / 1.000** | — |

Rolling beats baseline on MAE/RMSE but **calibration slope drifts** (c1≈0.79) vs expanding’s near-unit slope — prefer expanding for calibration diagnostics.

---

## 3. Era stability (expanding)

| Era | n | MAE | RMSE | base MAE | corr(miss,PAGO) |
|-----|--:|----:|-----:|---------:|----------------:|
| 1979–1999 | 192 | 7.44 | 9.31 | 13.69 | −0.721 |
| 2000–2019 | 240 | 13.06 | 15.66 | 15.71 | −0.757 |
| 2020–2026-07 | 79 | 11.69 | 14.45 | 19.80 | −0.529 |
| Phone `<2024-04` | 483 | 10.50 | 13.14 | 14.73 | −0.743 |
| Transition `2024-04..06` | 3 | 6.39 | 7.10 | 18.52 | n tiny |
| Web `≥2024-07` | 25 | 15.76 | 18.45 | 31.78 | −0.044 |

Skill vs baseline holds across eras, but **absolute errors rise** post-2000 and again in the short web-era slice. Web-era n=25 is thin; do not over-interpret.

---

## 4. Dependence (expanding OOS)

| Pair | Pearson r |
|------|----------:|
| candidate_miss ↔ actual PAGO | **−0.724** |
| prediction_error ↔ actual PAGO | **−0.748** |
| candidate_miss ↔ A229RX YoY | −0.226 |
| prediction_error ↔ A229RX YoY | −0.234 |

Interpretation: even after calibrating expectations, the one-sided miss still largely flags **low current PAGO**. That is the same contamination class that retired A2 as primary — hence **MODIFY**, not production KEEP.

---

## 5. Longitudinal-data search (bounded)

**Do not** infer a usable 12-month matched panel solely from respondent IDs without verifying reinterview design, weights, attrition, and horizon alignment.

### Michigan Surveys of Consumers (rotating panel / microdata)

| Item | Finding |
|------|---------|
| Design | Rotating panel: fresh monthly cross-section + recontacts; cases eligible for reinterview ~**6 and 12 months** later; up to **3** interviews at **6-month** intervals (technical report / FAQ) |
| vs 12-month forecast horizon | **12-month reinterview exists by design** (second recontact), but sample mix is ~fresh + 6-month recontacts; not every ID yields a clean 12-month expectation→realization pair without attrition/weight handling |
| Access | Public microdata via SCA Cross-Section Archive / SDA; ICPSR member paths for additional years; weights documented (household vs adult) |
| Coverage | Long monthly history; core PAGO/PEXP items |
| Attrition / weights | Recontact share varies; weight adjustments for rotating-panel design documented — required for person-level change estimates |
| Caution | Aggregate monthly series used in M1-D are **not** person-matched panels |

### 2024 Michigan phone→web sampling break (Astra flag — **verified**)

| Item | Source |
|------|--------|
| Official announcement | UMich SCA method-transition PDF (Apr–Jul 2024 phone→ABS web ramp: Apr 75/25, May 50/50, Jun 25/75 phone/web; Jul 2024 web-only) — https://www.sca.isr.umich.edu/files/methodtransitionannouncement2024.pdf |
| Technical docs | SCA Technical Documentation / Methodological Transition pages — https://data.sca.isr.umich.edu/technical-docs.php ; technical report fetchdoc |
| Reported method effects | UMich parallel-series method-effect notes (ICS ~−6.6 pts; Current Conditions larger); independent analyses (e.g. Cummings–Tedeschi / Econbrowser) argue level break ~8–9 ICS pts — annotate as **external**, not reproduced here |
| Implication for M1-D | Era splits isolate phone / transition / web; web n small; revised aggregate series still ≠ vintage; person-level mode effects unmodeled |

### NY Fed Survey of Consumer Expectations (SCE)

| Item | Finding |
|------|---------|
| Design | Internet rotating panel ~1,300 household heads; participate up to **~12 months**; monthly refresh |
| vs 12-month horizon | Panel tenure up to 12 months supports within-person expectation tracking; **month-ahead / year-ahead** expectation items differ from Michigan PAGO/PEXP wording — not drop-in replacements |
| Access | Public microdata via NY Fed CMD Data Bank; core microdata ~**9-month lag**; some modules **18-month lag** |
| IDs | Unique respondent identifiers support longitudinal link **within published microdata rules** — still must apply weights/attrition; do not assume 12-month complete cases from ID presence alone |
| Coverage | From mid-2013; shorter history than Michigan aggregates |

### PSID (and nearby alternatives)

| Item | Finding |
|------|---------|
| Interval | Annual through 1997; **biennial** since 1999 — **not aligned** to a 12-month survey forecast horizon without interpolation assumptions |
| Content | Rich income/wealth/wellbeing; not a Michigan-style monthly PAGO/PEXP expectation→assessment pair |
| Access | PSID Data Center; public + restricted tiers; complex weights / following rules |
| Verdict for M1-D | Poor primary match for 12-month calibrated miss; useful later for hardship external validity, not for replacing Michigan expectation calibration |
| Other alts (noted only) | CES, SIPP, Understanding America Study — not deep-dived this pass; none obviously replace Michigan 6/12-month rotating design for this construct |

### Longitudinal search conclusion

Best near-term person-level path: **Michigan microdata** using the **documented 6/12-month reinterview design** (not ID-only inference), with weights/attrition, plus mode-break annotation from 2024. SCE is a strong complementary panel (≤12-month tenure) with different instruments and shorter span. PSID is biennial — mismatch for this horizon.

---

## 6. Artifacts

| Path | Role |
|------|------|
| `docs/m1/WAVE2B_M1D_CALIBRATED_MISS.md` | This memo |
| `docs/m1/DECISIONS.md` | Versioned A2 retire decision |
| `data/m1/m1d_protocol.json` | Predeclared protocol |
| `data/m1/m1d_summary.json` | Full OOS summaries + eras |
| `data/m1/m1d_metrics_by_scheme.csv` | Compact metrics |
| `data/m1/m1d_oos_predictions_expanding.csv` | All expanding predicted/actual rows |
| `data/m1/m1d_oos_predictions_rolling.csv` | All rolling predicted/actual rows |
| `scripts/wave2b_m1d_calibrated_miss.py` | Rebuild |

Hub mirrors (kebab-case under `/docs/`): `wave2b-m1d-calibrated-miss` + matching `wave2b-m1d-*` data files; decision record `m1-decisions`.

---

## 7. Gates (reconfirmed)

- **score_authorized(M1) = false / 0** — unchanged; this study does not authorize scoring  
- **No production formula freeze**  
- **L1 untouched**  
- A2 remains **retired as primary**, retained as **diagnostic** per `SRP-M1-DEC-2026-09-09-A2-RETIRE-PRIMARY`  
- Residual / miss ≠ automatic validation of subjective disappointment  

---
