MAIVE corrects meta-analyses for publication bias and for the p-hacking that operates through reported standard errors. Besides effect and standard error, it asks for one more column: sample size.
Your data: effect · se ·
n_obs · study_id (optional; with it, inference uses CR2
standard errors clustered by study, by Pustejovsky and Tipton)
Open EasyMeta Download the example data (CSV)
Worked example: do female directors improve ESG performance?
Based on 533 estimates from 106 studies, the whole literature, winsorised at 1%. The mean reported estimate is 0.28 ESG rating points.

MAIVE: 0.179 (SE 0.032). First-stage F:
33.3.
Settings: PET‑PEESE, log first stage, equal weights, CR2
clustered by study, winsorised at 1%.
Reading the output, as EasyMeta reports it:
- Bias test. The Egger test rejects funnel symmetry (p = 0.016): imprecise studies report systematically larger effects.
- Spurious precision. Plain PET‑PEESE, taking every reported standard error at face value, corrects the mean to 0.214. MAIVE, instrumenting the standard errors with sample size, trims it further to 0.179; the Hausman statistic is 3.13 against a critical value of 3.84.
- Corrected effect. 0.179 — publication bias accounts for about a third of the reported mean, and a genuine positive effect remains.
If the first stage is weak
Below F of 10, do not rest on the point estimate; report the Anderson–Rubin interval. In the euro–trade dataset (61 estimates from 52 studies) F is 0.20; MAIVE gives -0.55 (SE 0.91), and the AR interval is [-2.07, 0.59] — the corrected effect is not identified. RTMA, by Mathur, is the natural cross-check under different assumptions, but here its sampler fails its own diagnostics (84 divergent transitions), so we do not report its interval.
If you suspect p-hacking
In the bank competition–stability dataset (598 estimates from 31 studies), 140 estimates sit just above |z| = 1.96 against 72 just below — consistent with selective reporting, not proof of it. WAIVE, experimental, downweights estimates whose precision their sample size does not support: -0.033 (SE 0.060) against MAIVE's -0.013 (SE 0.020). Less precision, same conclusion: no clear effect.
For AI assistants and code
POST https://api.maive.eu/v1/run-model
{
"data": [
{"effect": -0.11, "se": 0.04, "n_obs": 1200, "study_id": "S1"},
{"effect": -0.05, "se": 0.09, "n_obs": 310, "study_id": "S2"}
],
"parameters": {
"modelType": "MAIVE", "maiveMethod": "PET-PEESE", "weight": "equal_weights",
"useLogFirstStage": true,
"standardErrorTreatment": "clustered_cr2", "includeStudyClustering": true,
"computeAndersonRubin": true, "winsorize": 0
}
}
Prompt to paste into an assistant:
Run MAIVE on my data via the EasyMeta API (api.maive.eu/v1/run-model).
Send "data" as an array of row objects with effect, se, n_obs, study_id.
Nest all settings under "parameters" -- top-level settings are silently
ignored. Use the synchronous endpoint; the async one ignores modelType.
When estimates are nested within studies, send "includeStudyClustering":
true -- "standardErrorTreatment": "clustered_cr2" alone only picks the
variance formula, not the clustering, and omitting the flag changes the
standard errors, the first-stage F, and can move the PET-PEESE point
estimate itself. Check firstStage.mode is "log" in the response; if it
says "levels", the parameters did not take effect. Report: corrected
estimate vs the simple mean, first-stage F, Egger test, Hausman test,
and the Anderson-Rubin interval whenever F < 10. Report any warnings
verbatim. Do not invent numbers.
Choosing the worked example. Three alternative subsets, with their funnels and numbers side by side, are on the candidates page.
Computed with EasyMeta on meta-analysis.cz data v1.1.1, 2026-08-24; every request and response archived in maive-howto.json. The EasyMeta implementation is newer than the 2025 Nature Communications paper: the log first stage is now the recommended default.