skills/50-brycewang-aer-skills/skills/aer-identification/SKILL.md
Use when selecting, implementing, or stress-testing the causal identification strategy for an empirical economics manuscript — difference-in-differences (including staggered designs), instrumental variables (including weak-IV-robust inference), regression discontinuity, synthetic control, or shift-share / Bartik. Apply before writing the introduction or results.
npx skillsauth add brycewang-stanford/Awesome-Agent-Skills-for-Empirical-Research aer-identificationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
In modern AER-track empirical economics, identification is the paper. A weak design cannot be rescued by clever writing, more controls, or a larger sample. This skill walks through the five canonical design-based strategies, the modern defaults that have replaced naive textbook implementations, and the referee-anticipating tests each demands.
If the identification strategy is fragile, return to aer-topic-selection. There is no point polishing an indefensible empirical strategy.
Is treatment assignment plausibly random conditional on observables?
├── Yes, by design (RCT, lottery) → run the RCT analysis; register PAP via AEA RCT Registry
└── No → identification must come from variation
├── Sharp threshold in a running variable → RDD (sharp or fuzzy)
├── Discrete policy change in some units, not others, over time → DiD
│ ├── Single treatment date → canonical 2×2 DiD
│ └── Staggered adoption → Callaway-Sant'Anna or Borusyak-Jaravel-Spiess
├── Endogenous regressor + plausibly exogenous shifter → IV
│ ├── Shifter × pre-existing exposure shares → shift-share / Bartik
│ └── Single instrument → weak-IV-robust inference if F < 50
├── One treated unit / aggregate intervention → synthetic control
└── None of the above → reconsider the question
Use TWFE if and only if:
Otherwise, TWFE produces biased and often sign-flipped estimates.
Do not use TWFE. Use one of:
csdid (Stata), did (R). Identifies group-time average treatment effects (ATT(g,t)); estimands are doubly robust; supports event-study aggregation.did_multiplegt.Required diagnostics:
A flat pre-trend is necessary but not sufficient. Report:
The first-stage F > 10 rule is obsolete. Modern conventions:
Use weakivtest (Stata), ivDiag (R), or the Olea-Pflueger effective F statistic.
The IV's credibility depends on a story, not a test. State the exclusion restriction in one sentence in the introduction and defend it with:
Two valid sources of identification, with very different implications:
Pick one explicitly. Do not hand-wave between the two.
rdrobust.rdplot with the binning method explicitly statedIf the paper uses a field experiment:
A common confusion: identification answers whether X causes Y; mechanism answers why. Mechanism evidence should not weaken the identification of the main effect. Run:
When working from the AER-skills repository or plugin bundle, load only the relevant resource:
templates/stata/03_main_did.do, templates/r/03_main_did.R, or templates/python/main_did.pyexamples/aer-exemplars.mdSTRATEGY: <DiD | IV | RDD | SCM | shift-share | RCT>
MODERN ESTIMATOR USED: <yes / no / which>
REQUIRED DIAGNOSTICS REPORTED: <list>
INFERENCE METHOD: <robust / cluster-robust / AR / wild bootstrap / permutation>
WEAK-IV / TWFE / POLY-ORDER RED FLAGS: <list or "none">
NEXT SKILL: aer-robustness
tools
Show mcp-stata identity, connected tools, and status. Use when the user asks if mcp-stata is available, asks about access to the toolkit, or asks what Stata tools are connected.
tools
Activate when users mention Stata commands, .do files, regressions, econometrics, stored results, graphs, dataset inspection, replication, or Stata errors. Route the task through mcp-stata tools and the specialized research skills instead of treating it as plain text coding.
development
Build and review paper-ready regression, balance, and summary tables from Stata outputs. Use when the user needs a clean table for a draft, appendix, or coauthor share-out.
tools
Install, configure, update, or verify mcp-stata across Claude Code, Codex, Gemini CLI, Cursor, Windsurf, and VS Code. Activate when users ask to set up the Stata toolkit or troubleshoot the installation.