Install
$ agentstack add skill-brycewang-stanford-aer-skills-aer-identification ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
AER Identification
Overview
In AER-track empirical economics, identification is the paper. This skill routes among canonical designs, modern defaults, and referee-facing diagnostics.
If the design is fragile, return to aer-topic-selection; writing cannot save it.
When to Use
- Designing the empirical strategy for a new project
- The current strategy is TWFE / first-stage F / naive RDD and the referee will flag it
- A prior submission was rejected on identification grounds and the design needs rebuilding
- Choosing between two candidate identification strategies for the same question
Master Decision Tree
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 10 rule is **obsolete**. Modern conventions:
- Just-identified models: report **Anderson-Rubin (AR) confidence sets** as primary inference; AR keeps size under weak instruments.
- For F 1 are discouraged (Gelman-Imbens 2019).
- **MSE-optimal bandwidth (Calonico-Cattaneo-Titiunik 2014)** with the robust bias-corrected confidence interval. Use `rdrobust`.
- **Donut RDD** if bunching near the cutoff is a concern.
- **Covariate adjustment** for efficiency; main result must hold without it.
### Required Diagnostics
1. McCrary (2008) / Cattaneo-Jansson-Ma (2020) density test for manipulation of the running variable
2. Balance tests on predetermined covariates at the cutoff
3. Placebo cutoffs away from the true threshold
4. Bandwidth sensitivity — show the estimate across at least three bandwidths
5. Visual RD plot using `rdplot` with the binning method explicitly stated
## Synthetic Control
### When Appropriate
- One (or few) treated units
- Long pre-treatment outcome series (≥ 10 periods)
- A large donor pool of plausibly comparable untreated units
- Aggregate intervention (policy at the country, state, city level)
### Modern Extensions
- **Generalized synthetic control (Xu 2017)** for multiple treated units
- **Augmented synthetic control (Ben-Michael, Feller, Rothstein 2021)** for bias correction
- **Synthetic DiD (Arkhangelsky et al. 2021)** combining SCM and DiD weighting
### Required Diagnostics
1. Placebo (in-time): apply SCM to pre-treatment fake intervention dates
2. Placebo (in-space): apply SCM to every donor as if it were treated; report the distribution of placebo effects
3. Permutation inference / Fisher exact p-value
4. Weight vector reported in the appendix; donors with > 10% weight discussed
## Field Experiments and RCTs
If the paper uses a field experiment:
- **Register with AEA RCT Registry** before the intervention begins. AEA journals require this prior to submission.
- **Pre-analysis plan (PAP)** posted before unblinding. Per Olken and others, keep the PAP moderate in scope — pre-specify primary outcomes and the analysis specification, leave exploratory work clearly labeled as such.
- **Power calculations** in the manuscript or appendix.
- **Multiple-hypothesis correction** if more than one primary outcome.
- **Attrition** documented and tested for differential attrition by treatment arm.
## Mechanism vs. Identification
A common confusion: **identification answers whether X causes Y; mechanism answers why.** Mechanism evidence should not weaken the identification of the main effect. Run:
- Subgroup heterogeneity (does the effect concentrate where theory predicts?)
- Mediation analysis only if the mediator is itself plausibly exogenous (rare)
- Auxiliary outcomes consistent with the proposed channel
## Red Flags for Referees
- TWFE on staggered data with no Goodman-Bacon decomposition
- First-stage F = 12 cited as evidence of instrument strength
- RDD with a polynomial of order 4
- Synthetic control with no placebo inference
- DiD with a "control group" of eventually-treated units
- IV exclusion restriction defended only by "we control for X"
- Quoting an Angrist-Pischke citation as a substitute for showing the diagnostic
## Repository Resources
When working from the repo or plugin bundle, load only the relevant resource:
- Estimator defaults, package calls, diagnostics, and citations: `docs/methods-reference.md`
- Staggered DiD implementation: `templates/stata/03_main_did.do`, `templates/r/03_main_did.R`, or `templates/python/main_did.py`
- Worked empirical examples: `examples/aer-exemplars.md` and `examples/modern-aer-exemplars.md`
Use the methods reference before prose: it fixes the estimand,
diagnostic, inference method, and citation that the manuscript must report.
## Identification Gate
Do not advance to robustness or writing until, for the chosen design, **all** are true:
- [ ] A modern estimator is used — no TWFE on staggered data, no first-stage-F-only IV, no high-order-polynomial RDD
- [ ] Every required diagnostic for the design (see the per-design lists above) is run and reported
- [ ] Inference matches the design — cluster-robust / AR / wild bootstrap / permutation, not default OLS SEs by reflex
- [ ] The identifying assumption is stated in one sentence, ready to drop into the introduction
- [ ] No item in "Red Flags for Referees" is present
### Gate Record Mini-Example
Write the gate decision before routing onward:
```text
STRATEGY: IV
FIRST STAGE: effective F = 7.8; 2SLS CI is not primary
ROBUST INFERENCE: AR 95% CI = [-0.14, 0.52]
PLACEBO: beta = 0.003 (p = 0.71)
DECISION: advance with directional headline only
Handoff
STRATEGY:
MODERN ESTIMATOR USED:
REQUIRED DIAGNOSTICS REPORTED:
INFERENCE METHOD:
WEAK-IV / TWFE / POLY-ORDER RED FLAGS:
NEXT SKILL: aer-robustness
Anti-Patterns
- Defending an old design ("the prior literature used TWFE") when modern estimators exist
- Reporting OLS-with-controls as the main specification and IV/RD as "robustness"
- Using more than one identification strategy as if they were independent confirmations when they share identifying variation
- Footnoting the identifying assumption instead of stating it in the introduction
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: brycewang-stanford
- Source: brycewang-stanford/AER-Skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.