Aer Identification logo

Aer Identification

Community
franklee16
aer-identification

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.

Overview

Publisherfranklee16
Repositoryacademic-research-skills
Skill nameaer-identification
Stars
225
Forks
34
Bundled files
1
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by franklee16 on GitHub. Read the source before you install it.

Installation

Install the Aer Identification AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/franklee16/academic-research-skills/tree/master/Awesome-Journal-Skills-main/AER-Skills-main/skills/aer-identification
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/franklee16/academic-research-skills.git /tmp/academic-research-skills
mkdir -p .claude/skills
cp -r /tmp/academic-research-skills/Awesome-Journal-Skills-main/AER-Skills-main/skills/aer-identification .claude/skills/aer-identification
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Aer Identification in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Aer Identification on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Aer Identification is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

AER Identification

Overview

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.

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 < 50
    ├── One treated unit / aggregate intervention → synthetic control
    └── None of the above → reconsider the question

Difference-in-Differences

Canonical 2×2 (single treatment date, two groups)

Use TWFE if and only if:

  • Treatment timing is simultaneous for all treated units
  • The control group is never treated
  • Treatment-effect heterogeneity is implausible

Otherwise, TWFE produces biased and often sign-flipped estimates.

Staggered Adoption (most modern applications)

Do not use TWFE. Use one of:

  • Callaway and Sant'Anna (2021) — csdid (Stata), did (R). Identifies group-time average treatment effects (ATT(g,t)); estimands are doubly robust; supports event-study aggregation.
  • Borusyak, Jaravel, and Spiess (2024) — imputation estimator.
  • de Chaisemartin and D'Haultfœuille (2020) — did_multiplegt.
  • Sun and Abraham (2021) — interaction-weighted estimator for event studies.

Required diagnostics:

  1. Goodman-Bacon decomposition to show the share of weight from "forbidden" comparisons under TWFE
  2. Event-study plot with the imputation or Callaway-Sant'Anna estimator
  3. Pre-trends test reported as the joint test, not just the visual
  4. Heterogeneity by treatment cohort

Pre-Trends

A flat pre-trend is necessary but not sufficient. Report:

  • Visual event-study plot with 95% confidence intervals
  • Formal joint test of pre-period coefficients (p-value)
  • Honest DiD (Rambachan-Roth 2023) sensitivity bounds for the post-period

Instrumental Variables

Weak Instruments

The first-stage F > 10 rule is obsolete. Modern conventions:

  • For just-identified models: report Anderson-Rubin (AR) confidence sets as the primary inference. AR has correct size regardless of instrument strength.
  • For F < 50: 2SLS confidence intervals are unreliable; AR is required, not optional.
  • Stock-Yogo critical values for TSLS bias assume homoskedasticity and are rarely valid in modern clustered settings.

Use weakivtest (Stata), ivDiag (R), or the Olea-Pflueger effective F statistic.

Exclusion Restriction

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:

  • Institutional narrative (one paragraph)
  • A placebo regression where the instrument predicts an outcome it should not affect
  • Sensitivity analysis: how much exclusion-restriction violation would overturn the result (Conley et al. 2012)

Shift-Share / Bartik

Two valid sources of identification, with very different implications:

  1. Exogenous shares (Goldsmith-Pinkham, Sorkin, Swift 2020) — argue that pre-existing exposure shares are conditionally exogenous; report the Rotemberg weights and inspect the top-5 industries driving identification.
  2. Exogenous shocks (Borusyak, Hull, Jaravel 2022; Adão, Kolesár, Morales 2019) — argue that aggregate shocks are as-good-as-random; report shock-level inference.

Pick one explicitly. Do not hand-wave between the two.

Regression Discontinuity

Modern Defaults

  • Local linear regression with a triangular kernel. Polynomials of order > 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 AER-skills repository 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 drafting prose: it fixes the estimand, diagnostic, inference method, and citation that the manuscript must report.

Handoff

text
STRATEGY: <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

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

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Aer Identification AI skill do?

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.

Why use Aer Identification on TypingMind?

Because you install it once and use it with any model. Aer Identification is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Aer Identification in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/franklee16/academic-research-skills/tree/master/Awesome-Journal-Skills-main/AER-Skills-main/skills/aer-identification. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Aer Identification?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Aer Identification?

As many as you like. As long as a model supports skills, you can use Aer Identification with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Aer Identification AI skill free?

It is published on GitHub by franklee16. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇