Trim and fill is a nonparametric method that estimates how many studies appear to be missing from an asymmetrical funnel plot, imputes mirror-image counterparts to restore symmetry, and re-pools to give an adjusted estimate. Developed by Duval and Tweedie in 2000, it answers a single question in a meta-analysis: if the gap in the funnel really were suppressed null studies, how far would the pooled effect move once you put them back? The answer is a sensitivity analysis, not a corrected truth.

How the imputation actually works

The algorithm runs in three conceptual steps. First it trims the extreme small studies on the heavy side of the funnel, the ones driving the asymmetry, and re-estimates the pooled effect from the remaining symmetrical core. This trimmed centre is a less biased guess at where the funnel’s true axis sits. Second, it uses that centre to estimate the number of missing studies, because the further the observed studies sit from a symmetrical arrangement, the more counterparts must be absent. Third it fills, reflecting each trimmed study across the recalculated centre to create an imputed mirror-image point, then pools the observed and imputed studies together. The procedure iterates until the estimated number of missing studies stabilises, which is why the final count and the adjusted effect are produced jointly rather than in one pass.

The L0 and R0 estimators

The number of missing studies is not observed, so it must be estimated, and Duval and Tweedie offered more than one estimator. The two you meet in practice are L0 and R0. The L0 estimator is based on the sum of the ranks of the studies once they are ordered by effect, and tends to be the default in most software because it is reasonably stable. The R0 estimator counts from the rightmost run of studies on one tail and is more conservative, usually returning fewer imputed studies. They can disagree, and that disagreement is informative: if L0 and R0 give very different numbers of missing studies, the funnel’s shape is ambiguous and any single adjusted estimate should be treated with extra caution. Reporting which estimator you used, and ideally what the alternative returned, is part of a transparent analysis.

The adjusted estimate is a thought experiment

The most important and most misunderstood point is that the adjusted estimate is not a better estimate of the true effect. The imputed studies are fabricated reflections, not recovered data, and the method assumes one specific mechanism, a clean symmetrical suppression of small studies, that rarely holds exactly. The right way to read the output is as a sensitivity check on the pooled estimate: compare the original effect with the adjusted one and ask whether your conclusion survives. If a pooled risk ratio of 0.70 moves to 0.85 and its interval now brushes the line of no effect, the finding is fragile to plausible missing studies. If it barely moves, the conclusion is more robust. Either way, the honest report presents both numbers and calls the second a sensitivity analysis, never a correction.

Why it fails under heterogeneity

Trim and fill rests on the assumption that funnel plot asymmetry is caused by missing studies and nothing else. Real datasets break that assumption constantly. When there is genuine heterogeneity, smaller studies can legitimately show larger effects because they enrol different populations or deliver a more intensive dose, and the funnel is asymmetrical for reasons that have nothing to do with suppression. Fed such data, the algorithm dutifully imputes studies that do not exist and drags the pooled effect toward a value that is more wrong, not less. Simulation studies show it can both add spurious studies when none are missing and miss real gaps, and its performance degrades sharply as between-study variance rises. The practical rule is simple: if your heterogeneity is substantial, treat any trim and fill adjustment as unreliable and lean on the funnel plot and a formal test instead.

A worked example

Picture ten published trials whose effect sizes pool to a standardised mean difference of 0.45, favouring the intervention, with a confidence interval that comfortably excludes zero. The funnel plot leans: the small trials cluster on the favourable side and the lower-left corner, where small unfavourable trials would sit, is bare. Running trim and fill with the L0 estimator imputes three mirror-image studies in that empty corner and re-pools to an adjusted estimate of 0.32, with a wider interval that now approaches zero. The correct reading is not “the true effect is 0.32”. It is “if three small null trials really are missing, the effect could be a third smaller and considerably less certain than the headline suggested”. That sentence, reported alongside the original figure, is what an examiner wants to see. If instead the adjusted estimate had barely moved, from 0.45 to 0.43, you would report that the conclusion is robust to plausible missing studies. Either way the movement, not a single replacement number, is the finding.

Alternatives worth knowing

Because trim and fill is limited, it should sit alongside better-founded methods rather than stand alone. Selection models specify an explicit function for how a study’s probability of publication depends on its p-value or effect, then estimate the effect after accounting for that selection; they make their assumptions visible and testable in a way trim and fill does not. PET-PEESE, short for the precision-effect test and the precision-effect estimate with standard errors, uses regression on the standard error (PET) and on the variance (PEESE) to estimate the effect that a hypothetically infinitely precise study would report, and is popular in economics and psychology. Neither is a magic fix, and both need a reasonable number of studies, but running two or three methods and seeing whether they agree is far more convincing than any single adjusted figure. Start by confirming asymmetry with Egger’s regression test before you reach for any adjustment at all.

When the method imputes nothing

A frequent and reassuring outcome is that trim and fill imputes zero studies. This happens when the funnel is already close to symmetrical, so the algorithm judges that no counterparts are missing. A zero fill is worth reporting, because it says the pooled effect is not sensitive to the specific selection mechanism the method models, and it strengthens rather than weakens the conclusion. The mirror-image risk is over-reading a large fill: if the algorithm imputes eight studies onto a base of ten, the funnel was severely lopsided and the adjusted estimate is built almost as much on fiction as on data, so it should be treated as a signal that something is badly wrong with the evidence base rather than as a usable number. Between those extremes, the informative cases are the small fills that move the estimate a little, and there the comparison of original and adjusted effects does real work. Always plot the result so a reader can count the imputed points for themselves and see how much of the adjusted funnel is invented.

A note on newer selection-model approaches

The field has moved on since 2000, and the most credible modern treatments of small-study effects lean on selection models and, in Bayesian form, on robust Bayesian meta-analysis, which averages across many plausible publication-selection scenarios and reports how much the data support the presence of bias at all. These methods make their assumptions explicit and quantify uncertainty about the bias itself, which trim and fill cannot do because it commits to one mechanism and returns a single point-adjusted estimate. None of this makes trim and fill worthless: as a quick, assumption-light robustness probe it remains a reasonable first pass, and it is far better than the discredited fail-safe N. The point is to present it as one line of a triangulated argument about missing evidence, reported alongside the funnel, a formal test, and, where the data allow, a selection model, rather than as a standalone correction that closes the question.

Software commands

In R, the metafor package provides trimfill(), which you apply to a fitted rma() model and which lets you choose the estimator as "L0" or "R0"; plotting the result with funnel() shows the imputed points as open circles. The meta package offers trimfill() on a metagen or metabin object. In Stata the meta trimfill command performs the analysis after you declare the data with meta set or meta esize, reporting the number of imputed studies and the adjusted effect. Whatever the tool, show the filled funnel plot so the reader sees which points are real and which are imputed. You can preview the funnel and the imputation quickly in our funnel plot generator and check the pooled figure in the meta-analysis calculator before writing the model up.

Where it fits in the sequence of bias checks

Trim and fill should never be the first thing you reach for. The disciplined order is to build a wide search so that fewer studies are genuinely missing, then draw a contour-enhanced funnel scatter and judge its shape by eye, then run a formal asymmetry test appropriate to your data, and only then, if asymmetry is both present and plausibly caused by missing studies, use trim and fill to quantify how much it might matter. Fitting the method into that chain matters because each earlier step can explain the asymmetry away: a meta-regression on a moderator might reveal that small trials differ systematically in their design, in which case imputing phantom studies would be actively misleading. Trim and fill also assumes the analysis is a random-effects synthesis in most implementations, and the choice of pooling model changes both the estimated number of missing studies and the adjusted effect, so the two decisions should be made together and reported together. Because the method addresses the whole body of evidence rather than any single trial, its result belongs in the discussion of publication bias, not in a per-study appraisal table.

Reporting trim and fill honestly

A defensible write-up names the estimator, reports the number of imputed studies, gives both the original and adjusted effects with their intervals, and states plainly that the adjustment is a sensitivity analysis under one selection assumption. It notes the heterogeneity, because a high I-squared undermines the whole exercise, and it feeds the result into the publication-bias domain of the GRADE certainty rating rather than into the headline. Pre-specifying the method in your PRISMA 2020 reporting keeps it from looking like a post-hoc rescue. The single error to avoid, the one reviewers catch most often, is presenting the adjusted estimate as the corrected effect. It is a guess about what absent studies might have shown, and the value of the whole method lies in that honest framing, not in a tidier number.