Empirical & Structural Design (rfs-empirical-design)
When to trigger
- The identification strategy is chosen but sample, variables, and estimator are unsettled
- You must decide between panel FE, Fama–MacBeth, GMM, or a structural estimator
- Portfolio sorts / factor construction choices feel arbitrary
- Measurement of the key variable is contestable (proxy validity)
- A referee will ask "why this sample / this window / this proxy?"
Design decisions that make or break an RFS empirical paper
RFS publishes design-defining empirical templates referees will hold you to — e.g., the q-factor construction in Hou, Xue, and Zhang (2015) "Digesting Anomalies" (RFS 28(3)) and the variance-risk-premium measure in Bollerslev, Tauchen, and Zhou (2009) (RFS 22(11)). Two RFS-specific pressures sharpen every choice below: (1) the public code-release condition means every filter and construction step must be reproducible by a stranger, not just described; (2) the Registered Reports option means a design can be locked at Stage 1, so pre-specify wherever you can.
1. Sample construction
- State the universe, the time span, and every filter, with the resulting N at each step (a sample-attrition table).
- Justify the start/end dates by data availability or regime, not convenience.
- Handle survivorship, look-ahead, and backfill bias explicitly (CRSP/Compustat merge timing, delisting returns, point-in-time fundamentals).
- Winsorize vs. trim: state the rule (e.g., 1%/99%) and apply it consistently.
2. Variable measurement
- For each key variable, give: definition, data source, construction formula, and unit.
- Defend proxy validity — a proxy needs a first-principles or validation argument, not just precedent.
- Avoid mechanical correlation between LHS and RHS (e.g., overlapping accounting items).
3. Estimator choice
| Question type |
Default estimator |
| Treatment effect, panel |
Modern DID estimator + two-way FE as a benchmark |
| Cross-sectional return premium |
Fama–MacBeth (with Shanken / GMM correction) |
| Predictive regression |
Panel/pooled with overlap-robust SEs; OOS tests |
| Risk exposure / factor model |
Time-series spanning regressions, GRS test |
| Structural parameter / counterfactual |
SMM / GMM / MLE with identification argument |
4. Fixed effects and controls
- Saturate fixed effects to absorb the right confounders (firm, industry×year, etc.) — but show the result is not mechanical to the FE choice.
- Distinguish controls that are "bad controls" (post-treatment / outcomes) from legitimate covariates.
5. Standard errors
- Cluster at the level of treatment assignment or the unit of correlation.
- For asset pricing, match SE to the return structure (Newey–West for autocorrelation, Driscoll–Kraay for cross-sectional + serial dependence).
Execution bridge (StatsPAI / Stata MCP)
Run the asset-pricing battery, don't just specify it. Full map:
execution-with-mcp. RFS is finance top-3 (with JF, JFE) — corporate-causal chain for corporate papers, factor-zoo haircut for asset pricing.
- Factor regressions / time-series alphas:
feols with the right SEs (Newey–West /
clustered) — read the alpha and t off the return.
- Factor-zoo haircut: after disclosing how many signals were screened, apply
romano_wolf / benjamini_hochberg and report the alpha that survives.
- Fama–MacBeth + Shanken EIV are Stata-canonical — run via
mcp__stata-mcp__stata_do
with the vendored resources/code/ (asreg / xtfmb).
- Exhibits:
etable; hand formatting to the tables/figures skill.
Report the economic magnitude (bps/month alpha, Sharpe gain); full factor grid → appendix.
JF execution walkthrough.
Checklist
Anti-patterns
- An unexplained sample period or unexplained filters that conveniently strengthen results.
- A proxy defended only by "following prior literature" when its validity is in doubt.
- TWFE reported as if it were a modern staggered-DID estimator.
- Controlling for post-treatment outcomes ("bad controls").
- Standard errors that ignore overlapping returns or treatment-level clustering.
Output format
【Sample】universe / span / filters / final N
【Key measures】variable → source → formula → validity note
【Estimator】... (+ benchmark)
【FE & controls】...
【SE structure】...
【Next step】rfs-robustness
Source: brycewang-stanford/Awesome-Journal-Skills → Review-of-Financial-Studies-Skills/skills/rfs-empirical-design/SKILL.md
1---2name: rfs-empirical-design3description: Use when sample construction, estimator choice, factor/portfolio design, or measurement is the bottleneck for a The Review of Financial Studies (RFS) manuscript. Settles design choices that make the identification credible; does NOT pick the identification strategy or run robustness.4---567# Empirical & Structural Design (rfs-empirical-design)89## When to trigger1011- The identification strategy is chosen but sample, variables, and estimator are unsettled12- You must decide between panel FE, Fama–MacBeth, GMM, or a structural estimator13- Portfolio sorts / factor construction choices feel arbitrary14- Measurement of the key variable is contestable (proxy validity)15- A referee will ask "why this sample / this window / this proxy?"1617## Design decisions that make or break an RFS empirical paper1819RFS publishes design-defining empirical templates referees will hold you to — e.g., the q-factor construction in Hou, Xue, and Zhang (2015) "Digesting Anomalies" (RFS 28(3)) and the variance-risk-premium measure in Bollerslev, Tauchen, and Zhou (2009) (RFS 22(11)). Two RFS-specific pressures sharpen every choice below: (1) the **public code-release condition** means every filter and construction step must be reproducible by a stranger, not just described; (2) the **Registered Reports** option means a design can be locked at Stage 1, so pre-specify wherever you can.2021### 1. Sample construction22- State the universe, the time span, and **every** filter, with the resulting N at each step (a sample-attrition table).23- Justify the start/end dates by data availability or regime, not convenience.24- Handle survivorship, look-ahead, and backfill bias explicitly (CRSP/Compustat merge timing, delisting returns, point-in-time fundamentals).25- Winsorize vs. trim: state the rule (e.g., 1%/99%) and apply it consistently.2627### 2. Variable measurement28- For each key variable, give: definition, data source, construction formula, and unit.29- Defend proxy validity — a proxy needs a first-principles or validation argument, not just precedent.30- Avoid mechanical correlation between LHS and RHS (e.g., overlapping accounting items).3132### 3. Estimator choice33| Question type | Default estimator |34|----------------------------------------|----------------------------------------------------|35| Treatment effect, panel | Modern DID estimator + two-way FE as a benchmark |36| Cross-sectional return premium | Fama–MacBeth (with Shanken / GMM correction) |37| Predictive regression | Panel/pooled with overlap-robust SEs; OOS tests |38| Risk exposure / factor model | Time-series spanning regressions, GRS test |39| Structural parameter / counterfactual | SMM / GMM / MLE with identification argument |4041### 4. Fixed effects and controls42- Saturate fixed effects to absorb the right confounders (firm, industry×year, etc.) — but show the result is not mechanical to the FE choice.43- Distinguish controls that are "bad controls" (post-treatment / outcomes) from legitimate covariates.4445### 5. Standard errors46- Cluster at the level of treatment assignment or the unit of correlation.47- For asset pricing, match SE to the return structure (Newey–West for autocorrelation, Driscoll–Kraay for cross-sectional + serial dependence).4849## Execution bridge (StatsPAI / Stata MCP)5051Run the asset-pricing battery, don't just specify it. Full map:52[`execution-with-mcp`](../../../shared-resources/empirical-methods/execution-with-mcp.md). RFS is finance top-3 (with JF, JFE) — corporate-causal chain for corporate papers, factor-zoo haircut for asset pricing.5354- **Factor regressions / time-series alphas:** `feols` with the right SEs (Newey–West /55 clustered) — read the alpha and t off the return.56- **Factor-zoo haircut:** after disclosing how many signals were screened, apply57 `romano_wolf` / `benjamini_hochberg` and report the alpha that survives.58- **Fama–MacBeth + Shanken EIV** are Stata-canonical — run via `mcp__stata-mcp__stata_do`59 with the vendored `resources/code/` (`asreg` / `xtfmb`).60- **Exhibits:** `etable`; hand formatting to the tables/figures skill.6162Report the economic magnitude (bps/month alpha, Sharpe gain); full factor grid → appendix.63[JF execution walkthrough](../../../Journal-of-Finance-Skills/resources/worked-examples/02-execution-walkthrough.md).64## Checklist6566- [ ] Sample-attrition table present; every filter justified67- [ ] Survivorship / look-ahead / backfill addressed (point-in-time data)68- [ ] Each key variable has definition + source + formula; proxy validity argued69- [ ] Estimator matches the question; benchmark estimator also reported70- [ ] FE structure justified; no bad controls71- [ ] SE clustering / adjustment matches the data-generating structure72- [ ] Every filter/construction step is reproducible from the to-be-released code (RFS condition)73- [ ] Design choices are pre-committed where possible (Stage-1-ready), not chosen ex post7475## Anti-patterns7677- An unexplained sample period or unexplained filters that conveniently strengthen results.78- A proxy defended only by "following prior literature" when its validity is in doubt.79- TWFE reported as if it were a modern staggered-DID estimator.80- Controlling for post-treatment outcomes ("bad controls").81- Standard errors that ignore overlapping returns or treatment-level clustering.8283## Output format8485```86【Sample】universe / span / filters / final N87【Key measures】variable → source → formula → validity note88【Estimator】... (+ benchmark)89【FE & controls】...90【SE structure】...91【Next step】rfs-robustness92```9394---9596**Source:** [`brycewang-stanford/Awesome-Journal-Skills`](https://github.com/brycewang-stanford/Awesome-Journal-Skills) → `Review-of-Financial-Studies-Skills/skills/rfs-empirical-design/SKILL.md`