The GRIM test: how to check that a mean is possible with your sample size

Say you write that the mean age of your 28 participants was 5.19 years. It looks like any other figure. But no set of 28 whole-number ages has a mean of 5.19: the nearest possible means are 5.18 and 5.21. That arithmetic impossibility is what the GRIM test detects, and you check it with one multiplication.

GRIM stands for granularity-related inconsistency of means. James Brown and Nicholas Heathers proposed it in 2017 and it rests on a simple idea: if the data are whole numbers, the sum of all of them has to be a whole number, so not every mean is possible for a given n. It is a cheap check that needs no raw data, only the mean and the sample size, and it can be applied by a reviewer by hand or by a verification program on the text.

This guide explains how it works, when it is informative, when it is not, what causes a failure and what to do if a mean in your manuscript does not pass. It is nearly always a transcription or n error, not a problem of substance.

How the GRIM test works

If every value of a variable is a whole number (ages in years, number of children, responses to a 1 to 7 item), the sum of n participants’ values is another whole number. The mean is that sum divided by n. So for a given n the mean can only take values on a grid: sum/n, for whole-number sums. If the mean you wrote is not on the grid, it cannot be correct.

The check is mechanical. Multiply the mean by n and look at the nearest whole numbers; divide each by n and round to the number of decimals you reported the mean with. If none matches your figure, the mean is inconsistent.

Example 1: an impossible mean

n = 28 and mean = 5.19. The product is 145.32, which points to sums of 145 and 146. Divided by 28 they give 5.1786 and 5.2143, which at two decimals are 5.18 and 5.21. Neither is 5.19: the mean is impossible with 28 whole-number data points.

Example 2: a possible mean

n = 25 and mean = 3.48. The product is 87.00: a sum of 87 gives exactly 3.48. It is possible. By contrast, with n = 25 a mean of 3.47 is not: the product is 86.75 and the possible sums give 3.44 (86) or 3.48 (87).

Brown and Heathers (2017), The GRIM test: a simple technique detects numerous anomalies in the reporting of results in psychology, Social Psychological and Personality Science, 8(4), 363–369

When it works and when it does not

GRIM is not a universal test; it works under specific conditions, and it is worth knowing them so you do not draw conclusions where there are none.

Why a mean can fail (almost never bad faith)

A mean that fails GRIM is a signal to check, not an accusation. The most usual causes are ordinary:

How to apply it to your own means

If you want to check your manuscript’s means by hand before submitting, the process for each mean of a whole-number variable is the same. First, find the exact n for that variable, not the total sample. Second, multiply the mean by n and take the two nearest whole numbers. Third, divide each by n, round to the number of decimals in your mean and compare.

In R, for a mean m with d decimals and a given n, it is enough to try the whole numbers around m * n: any(round((floor(m * n) - 1):(ceiling(m * n) + 1) / n, d) == m). If it returns FALSE, the mean is inconsistent. There are also online calculators and packages that run it over a whole table.

And a point of judgement: if you are unsure between two rounding conventions, check both; you should only worry if it fails with neither.

What to do if a mean does not pass

Go back to the program’s original output, not the draft. Check the n for that variable and recompute the mean. The reason nearly always shows up within a minute: a different n, an excluded case, a figure from another version. Correct the manuscript and check that the change does not affect other figures that depended on that mean (a standard deviation, a test, an effect size).

If you have checked everything and the mean still does not fit because your variable is not truly whole-number or you made a transformation, add a short note explaining it. A reviewer who sees the clarification does not have to ask. There are more consistency checks in our guide to p values that do not match the test statistic and in the one on the statistical errors a reviewer spots first.

Run GRIM on your means here

Paste your descriptives table or your results section and the check finds the means of integer variables that come with their n and applies the GRIM test, with the same rule as this guide: counts and age in completed years only, never scale scores, and with n of 100 or less, where the test has power. Every impossible mean comes with the quoted sentence and the n it was checked against.

In the same pass it recomputes every p value from its test statistic and degrees of freedom, and cross-checks the total N between sections. Everything runs in your browser: nothing is sent to any server and no account is needed. If a mean does not show up, check that its n is in the same sentence or the same row.

Frequently asked questions

What does GRIM stand for?

Granularity-related inconsistency of means. It refers to the fact that, with whole-number data and a given n, only certain means are possible, and the rest cannot be correct.

Who created the GRIM test?

James Brown and Nicholas Heathers, who published it in 2017 in Social Psychological and Personality Science. They presented it as a simple check for detecting anomalies in the reporting of results in psychology.

Does a GRIM failure mean the data are fake?

No. It is nearly always a transcription error, an n that changed or missing data that were not accounted for. It is a signal to check, not an accusation. That is why the check should come with the program’s original output.

Does it work with multi-item Likert scales?

With a single whole-number item (1 to 7), yes. With a scale that sums or averages several items it loses power, because each person contributes several data points and almost any mean is possible. In those cases it is not a useful check.

At what sample size is it informative?

With means to two decimals, only with fewer than 100 participants; with one decimal, fewer than 10. Above those sizes any mean is arithmetically possible and the test can detect nothing.

Does Previum apply the GRIM test to my manuscript?

Yes, only to variables that are whole numbers in themselves, such as a count or age in completed years, and against the sample size nearest to the mean in the text. It does not apply it to multi-item scales, where it is uninformative, and each warning appears with the figures that triggered it so you can verify it.

How does it compare to the other tools?

You may also find this useful