Answer
POMP scores vs standardized mean differences: when is POMP a sound way to combine scales?
The short answer
POMP rescales each instrument to 0-100 using its possible minimum and maximum; an SMD divides by the sample's observed SD. POMP is sound when the scales' end points mean the same thing and people use their ranges similarly. The SMD is sound when samples are about equally varied. Each fails where the other holds up, so checking both is a good defence.
The short answer
Yes, POMP can be defensible, but only under a specific assumption, and that assumption is different from the one behind a standardized mean difference (SMD). Neither metric is assumption-free. When studies use different questionnaires for the same outcome, every method of putting them on a common scale has to borrow a yardstick from somewhere. POMP borrows it from the instrument (its possible range). The SMD borrows it from the sample (its observed standard deviation).
POMP, short for percent of maximum possible, was proposed by Cohen, Cohen, Aiken and West in 1999. The transformation is simple: POMP = 100 × (score − lowest possible score) / (highest possible score − lowest possible score). A 4 on a 0-10 pain rating becomes 40; a 20 on a 0-50 questionnaire also becomes 40. A treatment effect is then a difference in POMP points, which reads as "percentage points of the scale's full range".
What each metric quietly assumes
- **SMD (Cohen's d, Hedges' g)** assumes the SD in each study is a fair yardstick. That fails when samples differ in how varied they are. A trial recruiting only people with moderate pain has a small SD, so the same raw improvement looks like a much bigger d than in a trial with a broad mix of patients.
- POMP assumes the instruments' end points are comparable anchors, and that a given shift in the underlying trait moves people by a similar share of each scale's range. That fails when one questionnaire spreads people across its range while another bunches nearly everyone into a narrow band, where a real effect shows up as a small POMP change.
The concern that one scale might have a mean near 3 out of 10 with a wide SD while another sits near 5 out of 10 with a narrow SD is exactly the case where POMP is risky. It is equally a case where the SMD is risky, unless you know that the difference in SDs comes from the instruments rather than from the people studied. A sample SD cannot tell those two explanations apart.
A simulation where each metric fails
The code builds two scenarios with 2,000 people per group. In the first, two studies use the same 0-10 pain scale and the treatment lowers pain by the same 1.5 points, but study A has a varied sample (SD 2) and study B a homogeneous one (SD 1). In the second, the same people complete two instruments that measure the same underlying pain: scale X (0-10) spreads people widely, while scale Y (0-50) uses only a narrow band in the middle of its range.
R
set.seed(2026)
n <- 2000 # per group, large so the pattern is not sampling noise
# POMP: rescale a score to 0-100 using the instrument's possible min and max
pomp <- function(x, lo, hi) 100 * (x - lo) / (hi - lo)
smd <- function(t, c) { # Cohen's d with pooled SD
sp <- sqrt(((length(t) - 1) * var(t) + (length(c) - 1) * var(c)) /
(length(t) + length(c) - 2))
(mean(c) - mean(t)) / sp # positive = treatment lowers pain
}
summ <- function(label, t, c, lo, hi)
cat(sprintf("%-26s POMP diff = %5.1f d = %4.2f\n", label,
mean(pomp(c, lo, hi)) - mean(pomp(t, lo, hi)), smd(t, c)))
# Case 1: same 0-10 scale, same 1.5-point benefit,
# but study A has a varied sample and study B a homogeneous one
cA <- rnorm(n, 6, 2.0); tA <- rnorm(n, 4.5, 2.0)
cB <- rnorm(n, 6, 1.0); tB <- rnorm(n, 4.5, 1.0)
summ("Study A (varied sample)", tA, cA, 0, 10)
summ("Study B (narrow sample)", tB, cB, 0, 10)
# Case 2: same people, same latent benefit, two instruments.
# Scale X spreads people over its 0-10 range; scale Y (0-50)
# bunches everyone into the middle of its range.
lat_c <- rnorm(n, 0, 1); lat_t <- rnorm(n, -0.75, 1)
x_c <- 5 + 2 * lat_c; x_t <- 5 + 2 * lat_t
y_c <- 25 + 4 * lat_c; y_t <- 25 + 4 * lat_t
summ("Scale X (0-10, wide use)", x_t, x_c, 0, 10)
summ("Scale Y (0-50, narrow use)", y_t, y_c, 0, 50)Python
import numpy as np
rng = np.random.default_rng(2026)
n = 2000 # per group, large so the pattern is not sampling noise
# POMP: rescale a score to 0-100 using the instrument's possible min and max
def pomp(x, lo, hi):
return 100 * (x - lo) / (hi - lo)
def smd(t, c): # Cohen's d with pooled SD
sp = np.sqrt(((len(t) - 1) * t.var(ddof=1) + (len(c) - 1) * c.var(ddof=1))
/ (len(t) + len(c) - 2))
return (c.mean() - t.mean()) / sp # positive = treatment lowers pain
def summ(label, t, c, lo, hi):
diff = pomp(c, lo, hi).mean() - pomp(t, lo, hi).mean()
print(f"{label:<26} POMP diff = {diff:5.1f} d = {smd(t, c):4.2f}")
# Case 1: same 0-10 scale, same 1.5-point benefit,
# but study A has a varied sample and study B a homogeneous one
cA = rng.normal(6, 2.0, n); tA = rng.normal(4.5, 2.0, n)
cB = rng.normal(6, 1.0, n); tB = rng.normal(4.5, 1.0, n)
summ("Study A (varied sample)", tA, cA, 0, 10)
summ("Study B (narrow sample)", tB, cB, 0, 10)
# Case 2: same people, same latent benefit, two instruments.
# Scale X spreads people over its 0-10 range; scale Y (0-50)
# bunches everyone into the middle of its range.
lat_c = rng.normal(0, 1, n); lat_t = rng.normal(-0.75, 1, n)
x_c = 5 + 2 * lat_c; x_t = 5 + 2 * lat_t
y_c = 25 + 4 * lat_c; y_t = 25 + 4 * lat_t
summ("Scale X (0-10, wide use)", x_t, x_c, 0, 10)
summ("Scale Y (0-50, narrow use)", y_t, y_c, 0, 50)Study A (varied sample) POMP diff = 15.3 d = 0.77
Study B (narrow sample) POMP diff = 14.8 d = 1.46
Scale X (0-10, wide use) POMP diff = 14.8 d = 0.74
Scale Y (0-50, narrow use) POMP diff = 5.9 d = 0.74
These figures come from one seeded run of the R code. Python's random numbers differ from R's, so its figures differ slightly, but they show the same pattern.
- Case 1: the SMD misleads, POMP does not. Both studies show about 15 POMP points (15.3 and 14.8), as they should: the raw effect was 1.5 points on a 0-10 scale in both. Cohen's d nearly doubled, from 0.77 to 1.46, only because study B's patients were more alike. Pooled as SMDs, study B's treatment would look far better.
- Case 2: POMP misleads, the SMD does not. Both instruments capture the same change in the same people, and d is 0.74 on both, because a linear rescaling does not change d. POMP shows 14.8 points on scale X but only 5.9 on scale Y, because scores on Y cover a smaller share of its range (SD 4 on a 50-point range, against SD 2 on a 10-point range).
So when is POMP a reasonable choice?
- The anchors mean the same thing. Pain is a relatively favourable case: many pain ratings run from "no pain" to "worst pain imaginable", so 0% and 100% have a shared meaning. POMP is much harder to justify for scales whose end points are arbitrary, such as a count of symptoms endorsed out of a list whose length differs between questionnaires.
- The instruments are used across a similar share of their range. If published norms show that one scale's scores sit in a narrow band while another's spread widely, POMP differences will not be comparable (case 2 above).
- The samples differ in heterogeneity. If some trials recruit narrowly and others broadly, an SMD is distorted (case 1), and POMP, which does not use the sample SD, can be the better yardstick.
- Direction is aligned. Before rescaling, reverse any scale where a high score means less of the outcome, so that higher POMP always means the same thing.
- Readers need absolute units. A POMP difference stays in the units of the scale, so it can be compared with a known minimal important difference. An SMD cannot be compared that way without converting it back.
In practice, a careful meta-analysis can pool on one metric and report the other as a sensitivity analysis. If the conclusions agree, the choice did not matter much. If they disagree, the disagreement itself shows that either the instruments or the samples are not comparable, and that is worth reporting. For background on reading SMDs, see How do you interpret Cohen's d?; the DASS blog has more plain-language guides to effect sizes.
How to report a POMP mean difference in APA style (7th edition)
Define POMP the first time you use it and say what the possible range was for each instrument, then give the difference with its confidence interval. If you also report d, give it with a leading zero, because d can exceed 1. Using scale X from the example, with placeholders for the interval:
"Scores were converted to percent of maximum possible (POMP; Cohen et al., 1999) using each instrument's possible range. The intervention reduced pain by 14.8 POMP points, 95% CI [LL, UL], corresponding to a standardized mean difference of d = 0.74."
In the method section of a meta-analysis, list each instrument with its minimum and maximum possible scores and its direction, and state which metric was pooled and which was used as a sensitivity analysis.
Related tools and guides
- How do you interpret Cohen's d?
- How do you normalize data to a 0-1 range?
- Do robust standard errors fix floor and ceiling effects?
- Effect size (Wikipedia)
More answered questions
- Can you run a chi-square test on weighted survey estimates?
- Does k-means make assumptions? Its drawbacks explained
- Why can a CI for Cohen's d include zero when the t test is significant?
Working with your own data?
General answers only go so far. Send us your situation and we'll reply by email within two business days.
Ask your questionWritten by AskStats with AI assistance. This is general information, not advice for your specific data or study. When the results matter, check your approach with a qualified statistician.