# MacroVision v196: chapter-support diagnostics

4 November 2026. Descriptive diagnostics on the existing v98/v100 runs used by step 101. No model, input, rule or threshold changes; no new estimation. Purpose: three numbers the results chapter needs.

## 1. Size of the gap to the matched control (42 paired cases)
Percent difference in terminal real nonhousing consumption, actual vs matched control. Median over the 7 financing variants per case (the spread across variants is zero in these cases, confirming the v101 note that credit does not operate in them), then distribution over the 42 cases.

| Cohort | Median | Interquartile range | Range |
|---|---:|---:|---:|
| Retained workers | +16.5% | +14.0% to +26.3% | +6.3% to +36.9% |
| Productive owners | +8.9% | −6.9% to +36.8% | −21.6% to +54.1% |
| Displaced, no initial consumer debt | −25.3% | −41.8% to −21.7% | −66.1% to −13.8% |
| Displaced, initial consumer debt | −20.7% | −45.9% to −16.0% | −85.9% to −6.4% |

The 42 cases are not independent draws: they share price, tax and behavior rules. Controls remove displacement and productivity but keep policy and housing schedules.

## 2. Sensitivity to the 90% floor
Cases (of 202 completed in all variants) in which both displaced cohorts stay at or above the floor in every year and variant: 80% → 95, 85% → 87, **90% → 75** (the v101 figure), 95% → 51. The conditional conclusion does not depend on the 90% choice; the count does.

## 3. Why the strongest productivity setting shows 0 of 24
It is mainly a completion-selection effect, not evidence that productivity harms displaced households.

| Productivity gain | Tax-capture share | Cases | Completed in all variants | Both displaced preserved |
|---:|---:|---:|---:|---:|
| 0.25 | 0.5 | 96 | 0 | 0 |
| 0.25 | 1.0 | 96 | 96 | 40 |
| 0.5 | 0.5 | 96 | 48 | 10 |
| 0.5 | 1.0 | 96 | 34 | 25 |
| 1.0 | 0.5 | 96 | 24 | 0 |
| 1.0 | 1.0 | 96 | 0 | 0 |

At the highest productivity gain, every full-capture case stops (corporate liquidity, real capital or equity-redemption capacity exhausted), so the 24 completed cases are all half-capture cases, the setting with the lowest preservation rate. At the lowest gain the reverse holds: half-capture cases stop on government cash financing, so completers are all full-capture. The productivity rows of step 101 therefore compare different capture mixes. Within half capture, preservation is 10/48 at gain 0.5 and 0/24 at gain 1.0, yet the median minimum consumption index of the displaced cohorts is higher at gain 1.0 (77.0 and 63.2) than at gain 0.5 (61.1 and 45.4). A residual productivity pattern within half capture rests on 24 cases and is not established.

Price pass-through is different. Within each capture share, full pass-through still has the lowest joint preservation: half capture 8/24, 2/24, 0/24 and full capture 22/40, 24/42, 19/48 at pass-through 0, 0.5 and 1 (55%, 57%, 40% under full capture, so not strictly monotone). That pattern is not explained by completion mix.

## 4. Pass-through channel (64 matched pairs, year 10, no-credit variant)
Pairs differ only in pass-through (0 vs 1) and complete in all variants. With full pass-through, real government revenue barely moves (median −1.2%, IQR −3.0% to +1.2%): the cost saving leaves the taxable profit base and reaches consumers through prices. But the residual left for benefits after existing real spending and government interest falls by a median 12.6% (IQR −14.3% to −6.1%), because interest on the existing nominal debt does not fall with prices and existing spending takes first claim. Under the budget-limited benefit rule, a small real revenue loss becomes a large cut in what can be paid. Real benefit spending itself falls less (median −3.2%, IQR −11.7% to +3.3%) because the rule does not bind in every case. This identifies the direction of the channel, not a full decomposition of displaced-household losses; nominal private debt is a further candidate channel not measured here.

## Reproduce
```bash
python scripts/corporate_credit_v98.py
python scripts/corporate_workout_v100.py
python scripts/thesis_chapter_support_v196.py
python -m unittest discover -s scripts -p test_thesis_chapter_support_v196.py -v
```
Regenerating v98/v100 reproduces every v101 statistic exactly; only recorded source-file hashes differ. Output: `data/processed/thesis_chapter_support_v196.json`. No calibration or causal approval.
