# PUB_BIAS_GATE_CRITERIA.md

**Owner:** Source Integrity Screen (RAM S2)
**Type:** Tool (scope gate + Egger-variant selector + Dissemination Risk Flag)
**Scope:** Publication-bias phase. Scope gate runs FIRST; no computation until the gate permits.

## 1. Framing

Funnel plots and Egger's test diagnose **small-study effects**, not publication bias directly (Sterne 2011, Nuzzo/Finch 2023). Outside meta-analysis, the equivalent is **dissemination-bias awareness** (grey-lit searched, registry checked, field selective-reporting risk). Applying funnel/Egger to a 6-study meta, a qualitative synthesis, or a single primary study produces false positives by construction.

## 2. Scope Gate (all three required)

| Condition | Threshold | Source |
|---|---|---|
| Study count | k >= 10 | Egger 1997; Sterne 2011 |
| Heterogeneity | I^2 < 50% | Higgins/Thompson; Sterne 2011 |
| Variant-metric match | Matches (Section 3) | Harbord 2006; Debray 2018; Zwetsloot 2017 |

| Claim type | Action |
|---|---|
| Meta-analysis, k>=10, I^2 < 50%, matched variant | Apply funnel + Egger variant. Report as `small-study effect`. |
| Meta-analysis, k<10 OR I^2 >= 50% OR SMD OR mismatched | **Skip.** Apply Dissemination Risk Flag. |
| Single primary study | Skip. Apply Ioannidis priors qualitatively. |
| Scoping / narrative review | PRISMA-ScR Dissemination Risk Flag. |
| Qualitative synthesis | GRADE-CERQual Dissemination Risk Flag. |
| Single-source (news, op-ed, blog) | Skip entirely. `pub_bias.status = not-applicable`. |

**Sensitivity band.** I^2 in 25-50%: run sensitivity check; if removing one or two influential studies drops I^2 below 25% AND leaves k>=10, proceed with the trimmed set noted in Ledger. Otherwise skip.

## 3. Egger-Variant Selection

| Outcome metric | Variant |
|---|---|
| Continuous outcomes; log RR | Classical Egger |
| Binary OR | Harbord OR Peters OR arcsine-Thompson |
| Survival / time-to-event | Debray-recommended (RSM 2018) |
| SMD | **Skip.** SMDs mechanically couple effect-size and SE (Zwetsloot 2017). |

Funnel plot: render and store; do NOT rely on visual inspection alone (Terrin/Lau 2005 -- humans cannot reliably detect asymmetry visually). Output: `pub_bias.small_study_effect = present | absent | inconclusive`. **NEVER** write `publication_bias = confirmed`.

## 4. Dissemination Risk Flag (3-question screen)

Used whenever statistical test is skipped.

1. **Grey-lit searched?** (Y/N/Unknown) -- preprints, theses, registered reports.
2. **Registry checked?** (Y/N/Unknown) -- ClinicalTrials.gov, PROSPERO, OSF.
3. **Field selective-reporting?** (Y/N/Uncertain) -- default YES for nutrition, social psychology, trial-registered clinical; UNCERTAIN otherwise.

**Scoring.** Any "N" OR "Y on Q3" -> `elevated`. All "Y" on Q1+Q2 AND N/Uncertain on Q3 -> `baseline`. Three "Unknown" -> `unverifiable`. Ledger rationale names the driving question.

## 5. Ioannidis Priors (single primary)

No statistical test applies. Carry Ioannidis-2005 priors qualitatively: low prior probability; small sample size; high analytic flexibility; financial or reputational interest. Count present -> `pub_bias.ioannidis_priors = low | moderate | high`. Note, not statistical claim.

## 6. Anti-Patterns

- Egger on k<10; on SMD outcomes; on I^2 >= 50%.
- Classical Egger on binary OR data.
- Writing "publication bias confirmed" from funnel asymmetry.
- Funnel/Egger on qualitative, scoping, or single-primary sources.
- Suppressing a Dissemination Risk Flag because the run looks "too cautious."
