Use when a Journal of Health Economics (JHE) result must be shown stable to specification, sample, inference, and mechanism threats before submission or in response to referees. Organizes robustness by identifying threat; it does not establish the design (jhe-identification) or build exhibits.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add brycewang-stanford/Awesome-Journal-Skills --skill jhe-robustness --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Jhe Robustness?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/brycewang-stanford-jhe-robustness)More formats (shields.io, HTML) on the badges page.
---
name: jhe-robustness
description: Use when a Journal of Health Economics (JHE) result must be shown stable to specification, sample, inference, and mechanism threats before submission or in response to referees. Organizes robustness by identifying threat; it does not establish the design (jhe-identification) or build exhibits.
---
# Robustness Strategy (jhe-robustness)
## When to trigger
- The headline estimate may be sensitive to specification, sample window, or functional form
- Inference is suspect: few clusters (states), serial correlation, or multiple outcomes/subgroups
- A referee will ask whether the result is a coverage/take-up artifact rather than the claimed effect
- The mechanism story is asserted but not separated from competing explanations
## Robustness the JHE way: organize by threat, not by appendix
A wall of starred alternative specifications persuades no one. JHE referees want each robustness check **mapped to a specific threat to the health-economics claim**, with the point estimate's *stability* — not its significance — as the object. Build the robustness section as a threat-response ledger: name the threat a health economist would raise, run the check that addresses it, and report whether the magnitude moves. The threats that recur at JHE are selection, concurrent policy, measurement of health/utilization, and inference with few policy clusters.
## Threat-to-check ledger
| Threat to the claim | Check that addresses it |
|---------------------|-------------------------|
| Residual selection into insurance/treatment | bounds (Lee/Manski/Oster); selection-on-observables-to-unobservables (Oster δ) |
| Concurrent reform contaminates the policy variation | placebo on ineligible group/period; leave-one-reform-out; pre-period falsification |
| Staggered-timing bias | heterogeneity-robust estimator (CS / SA / dCDH); honest-DID sensitivity |
| Health/utilization mismeasurement (claims coding, self-report) | alternative outcome definitions; administrative vs. survey cross-check; coding-change robustness |
| Functional form / sample window | log vs. level, trimming outliers (skewed health spending!), alternative bandwidths, donut RD |
| Few-cluster inference (states) | wild-cluster bootstrap; randomization inference; correct clustering level |
| Multiple outcomes/subgroups | MHT adjustment (Romano–Wolf / sharpened q-values); pre-specify the primary outcome |
| Mechanism is one of several | horse-race the channels; show the competing story predicts a pattern you do not see |
## Sequencing
1. **Lead with the threat the editor/referee will raise first** — usually selection or concurrent policy at JHE.
2. **Report stability, not stars.** Show the point estimate across checks in one figure or compact table; if it moves, say so and explain.
3. **Right-size the spending/skew problem.** Health expenditure is heavily right-skewed and zero-inflated; defend the estimator (two-part, GLM, IHS) rather than defaulting to OLS on a log.
4. **Treat inference as a first-class robustness item**, not a footnote — few-state clustering is a classic JHE referee catch.
5. **Pre-register the primary outcome** where multiple health outcomes invite cherry-picking.
6. **Show, do not assert, stability.** A single figure plotting the point estimate and CI across every check is worth more than a paragraph claiming robustness; a referee can read it in seconds.
## Execution bridge (StatsPAI / Stata MCP)
Run the battery, don't just enumerate it. Full map:
[`execution-with-mcp`](../../../shared-resources/empirical-methods/execution-with-mcp.md). JHE is health economics — insurance/program reforms and selection; foreground DiD/IV/RDD and selection corrections.
- **Many outcomes / specifications:** `romano_wolf` (step-down FWER) or `benjamini_hochberg`.
- **OVB sensitivity:** `oster_delta` / `sensemakr`.
- **Inference:** `wild_cluster_bootstrap` (few clusters), `twoway_cluster` / `conley`.
- **Re-fit off one handle:** `audit_result(result_id)` lists missing checks + the exact
`suggest_function` for each.
- **Exhibits:** `etable` / `did_summary_to_latex` from the handle — no retyped numbers.
Decisive checks in the body, exhaustive battery in the appendix.
[JF execution walkthrough](../../../Journal-of-Finance-Skills/resources/worked-examples/02-execution-walkthrough.md).
## Checklist
- [ ] Every robustness check is mapped to a named threat to the health-econ claim
- [ ] Point-estimate stability is the reported object (not just significance)
- [ ] Selection and concurrent-policy threats are addressed head-on
- [ ] Skewed/zero-inflated health spending handled with a defended estimator
- [ ] Inference matches the design: correct clustering level + few-cluster correction
- [ ] Multiple outcomes/subgroups get MHT adjustment; primary outcome pre-specified
- [ ] The mechanism is distinguished from at least one competing explanation
## Anti-patterns
- A leave-out or alternative-sample check run but never reconciled when the estimate moves
- An appendix of starred specifications with no map from check to threat
- OLS on log spending with no handling of zeros or skew
- Clustering below the policy level, then claiming significance
- Running every subgroup and reporting the significant ones with no MHT adjustment
- "Results are robust" with no figure showing the point estimate holding
- Dodging the selection threat with more controls instead of a bound or design fix
## The skewed-spending decision, made explicitly
Health spending and utilization are the journal's signature dependent variables, and they are right-skewed, zero-inflated, and heavy-tailed — the estimator choice is itself a robustness question a referee will press. Make it a deliberate, defended choice rather than a default:
- **Many zeros + continuous positive part** → two-part model (probit/logit for any use × GLM for the positive amount); report both parts.
- **Skew without excess zeros** → GLM with a log link (often gamma), which avoids retransformation bias that plagues OLS-on-log.
- **Want to keep zeros and interpret in levels** → IHS or Poisson/PPML, stating the elasticity interpretation honestly.
- Whatever you pick, **show the result is not an artifact of the functional form** by reporting at least one alternative, and never present OLS-on-log as if retransformation were free.
## Worked vignette (illustrative)
A provider-payment paper shows intensity rises after a fee change; a referee suspects it is patient selection, not a true behavioral response. The JHE fix: hold the threat ledger explicit — (a) an Oster δ shows selection on unobservables would need to be 2× the observables to overturn the result; (b) a placebo on a fee-unaffected service shows no jump; (c) the spending outcome is re-run with a two-part model given 30% zeros; (d) inference is wild-cluster bootstrapped over 41 providers. The point estimate holds across all four (say 6.2%, stable within ±0.8pp, illustrative). The mechanism — behavioral response, not selection — now survives.
## Output format
```text
【Journal】Journal of Health Economics
【Skill】jhe-robustness
【Primary threat】selection / concurrent-policy / staggered-bias / measurement / inference
【Threat→check ledger】[threat: check → estimate movement]
【Spending estimator】OLS / two-part / GLM / IHS — defended? [Y/N]
【Inference】clustering level + few-cluster correction
【MHT】adjusted across outcomes/subgroups? [Y/N]
【Verdict】estimate stable / moves (explained) / fragile
【Next skill】jhe-tables-figures
```
## Handoff boundary
This skill stress-tests an already-identified estimate; it does not fix a broken design (that is `jhe-identification`) or present the results (that is `jhe-tables-figures`). If a robustness check reveals the estimate is not actually identified — it swings with the selection bound or fails the placebo — route back to `jhe-identification` rather than papering over it with more specifications. When the point estimate holds across the threat ledger, hand off to `jhe-tables-figures` to make the stability legible.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!