JF favors an accessible body within the 60-page limit. Put the 3–6 decisive checks in the main text and move the exhaustive battery to the Internet Appendix, which is bundled at the end of the same PDF and does not count toward 60 pages (see jf-internet-appendix). This main-text/IA split is a JF hallmark; do not bury a load-bearing check.
JF published the canonical "factor zoo" critique (Harvey, Liu & Zhu, "…and the Cross-Section of Expected Returns," JF). Reviewers therefore expect:
jf-empirical-design)The hardest robustness decision at JF is not which checks to run but which earn a place in the lean body. Triage by how load-bearing each check is to the headline claim:
| Check | Lives in body if… | Otherwise → Internet Appendix |
|---|---|---|
| The single most threatening alternative explanation | A skeptic's first objection turns on it | never hide it in the IA |
| Multiple-testing-adjusted threshold (anomalies) | The discovery was mined from many candidates | full grid of signals → IA |
| Value-weighted / NYSE-breakpoint version | Microcap concentration is plausible | EW + alt breakpoints → IA |
| Alternative key-variable measure | The measure is contestable and pivotal | the other 4 measures → IA |
| Subsample / excluded-period | A specific event could drive the result | exhaustive subsamples → IA |
| Placebo / falsification | One clean falsification clinches credibility | the rest of the battery → IA |
The cultural signal at JF: 3–6 decisive checks plus a deep Internet Appendix reads as confident; twenty robustness tables in the body read as defensive.
Illustrative numbers. An anomaly paper reports a long-short spread of 0.58%/month, raw t = 3.2, found after screening (honestly disclosed) ~40 candidate signals. JF's published "factor zoo" lens (Harvey, Liu & Zhu) means t = 3.2 is not automatically decisive:
The editor sees a robust effect, a transparent search, and a magnitude that survives the multiple-testing haircut.
| Pushback you will hear | JF-specific fix |
|---|---|
| "How many specifications did you try?" | State the count; report an FDR-/Bonferroni-adjusted threshold |
| "This is a microcap effect" | Value-weighted, NYSE-breakpoint version in the body |
| "You buried the failing robustness check" | Surface the load-bearing check in the body, not the appendix |
Run the battery, don't just list it. Full map:
shared-resources/empirical-methods/execution-with-mcp.md. JF-specific instantiation:
romano_wolf (step-down, accounts for cross-test correlation — the right tool for a
factor-zoo screen) or benjamini_hochberg / holm; report the adjusted threshold
and the alpha that survives it, in the body. The full grid of signals → Internet Appendix.oster_delta / sensemakr to state how strong a
confounder would need to be to overturn the result — a decisive body exhibit.wild_cluster_bootstrap when clusters are few; twoway_cluster /
conley where the dependence structure demands it.audit_result(result_id) enumerates the missing
checks; run each suggest_function it emits rather than guessing the battery.etable / did_summary_to_latex for the decisive tables;
hand off formatting to jf-tables-figures.Triage the output by the body-vs-Internet-Appendix table above: 3–6 executed, decisive checks in the body; the exhaustive (now actually-run) battery in the bundled IA.
【Decisive checks in body】[3–6]
【Specifications tried disclosed?】yes / no
【Multiple-testing adjustment?】yes / no — method
【Placebo/falsification present?】yes / no
【Body ≤60 pp after split?】yes / no
【Next step】jf-tables-figures