14  Combined granularity and bounds methods ✎ Draft

Chapter 12 and Chapter 13 describe two families of checks on reported means and SDs. Granularity checks ask whether a reported value can be produced by whole-number data at all: GRIM for the mean and GRIMMER for the SD. Bounds checks ask whether a reported value lies within the range that the scale and the other reported values allow: BRIM for the mean and BRIMMER for the SD (Hussey et al., 2026). The two families divide along two axes, the statistic being checked and the kind of constraint used, which gives four tests.

Table 14.1: The four granularity and bounds tests.
Mean SD
Granularity (can whole-number data produce this value?) GRIM GRIMMER
Bounds (is the value within the range the other values allow?) BRIM BRIMMER

This chapter is about using the two families together. They answer different questions, so a reported mean and SD can pass one family and fail the other, and checking both rules out many more impossible values than checking either one alone. Even together they are necessary rather than sufficient conditions, and a fifth test, BRIMMEST, settles exactly whether any set of whole-number scores has the reported mean and SD.

14.1 Granularity and bounds are different questions

Granularity and bounds are not nested, with one a stricter version of the other. They are orthogonal: each can pass or fail independently of the other (Hussey et al., 2026). GRIMMER asks whether the reported SD lies on the lattice of values that whole-number data can produce: the sum of the squared scores must be a whole number, with the same parity, odd or even, as the sum of the scores. It does not ask how large or small that SD is relative to the scale. BRIMMER asks only about magnitude: whether the SD lies between the smallest and largest values that the scale, the sample size, and the mean allow. It does not ask whether the SD lies on the lattice.

Three examples, all for five people answering a single item on a 1–5 scale, with means and SDs reported to two decimal places, show the possibilities:

  • A mean of 3.00 and an SD of 2.12 passes GRIM and GRIMMER, but fails BRIMMER. Five whole numbers with a mean of 3 can have a sum of squares that gives an SD of 2.12, so GRIMMER is satisfied. But no five scores between 1 and 5 with a mean of 3 can have an SD above 2.00, which is reached by two scores of 1, one of 3, and two of 5. GRIMMER does not know the scale’s limits, so it cannot see this.
  • A mean of 3.00 and an SD of 1.50 passes BRIMMER, but fails GRIMMER. An SD of 1.50 is comfortably within the bounds of 0 to 2.00, but the sum of squares it implies is even, whereas the sum of five scores with a mean of 3 is odd, so no whole-number data can produce it.
  • A mean of 3.00 and an SD of 1.73 passes GRIM, GRIMMER, and BRIMMER, but is still impossible. The squared deviations from the mean would have to add up to 12, and no five whole numbers between 1 and 5 with a mean of 3 have deviations whose squares add up to 12. All of the tests are necessary conditions, and none of them is sufficient.

The last example is why Hussey et al. (2026) add an exact test, BRIMMEST. For whole-number data, it works out every combination of mean and SD, after rounding, that some sample of whole-number scores on the scale can produce, and checks whether the reported pair is one of them. Unlike the other tests, passing BRIMMEST proves that a report is possible, rather than only failing to rule it out. It gives the same answer as the CLOSURE algorithm, which reconstructs every possible data set, but without reconstructing them.

14.2 How much each check rules out

With values reported to two decimal places, the possible reports of a mean and SD form a finite grid, so it is possible to count how many of them each check rules out (Hussey et al., 2026). The plot below shows this for a small design, with a narrow scale and a small sample, so that the reports that survive are few enough to see individually. Each point is a pair of a reported mean and a reported SD that passes GRIM and GRIMMER. Pairs that fail either of these are not drawn, because there are far more of them. The orange points pass GRIM and GRIMMER, but fail BRIM or BRIMMER: they are the impossible values that granularity checks alone would let through. The plot extends half a scale point beyond each end of the scale and above the largest SD that any sample can have, to show that GRIM and GRIMMER, which know nothing about the scale, accept many reports there too. The table only counts reports with means within the scale and SDs up to that largest value. The purple crosses pass GRIM, GRIMMER, and BRIMMER, but no sample of whole-number scores can produce them. The blue points pass BRIMMEST: some sample of whole-number scores has exactly these values after rounding. Hover anywhere in the plot to see which checks the reported pair under the pointer passes, including pairs whose mean fails GRIM, which are not drawn. For the blue points, the description includes an example set of scores that produces them. The solid lines are the bounds for whole-number data: the largest and smallest possible SD at each mean. The dotted curve is the uniform-spread bound (Section 13.2): reports above it are possible, but need the scores to pile up at the ends of the scale, so they are less plausible for most measures. The table under the plot counts the reports that each combination of checks leaves standing. Change the scale and the sample size to see how the counts change.

With the default design, five people on a 1–5 scale, there are 88,621 reportable pairs of a mean and an SD. GRIM alone rules out all but 5% of them, because five people can only produce means that are multiples of 0.2. GRIMMER rules out most of the rest, leaving 210. But 89 of those 210, 42%, are still impossible, because their SDs lie outside the bounds. These are the orange points, and all of them lie above the ceiling: GRIMMER, which knows nothing about the limits of the scale, admits SDs that are larger than any five scores between 1 and 5 can produce. The bounds alone, without granularity, rule out only about a third of the grid. Combining the two families leaves 121 pairs, of which 102 are attainable. Of those 102, only 48 have an SD at or below the uniform-spread bound, allowing for rounding. The other 54 are possible, but only if the scores pile up at the ends of the scale.

With five people, there are no orange points below the floor. This is not because GRIMMER checks the floor, but because with so few people its lattice is sparse at small SDs: the sum of squares must be a whole number of the right parity, and the smallest such sum of squares above zero happens to give exactly the floor. With five people and a mean of 2.20, for example, the smallest SD that GRIMMER accepts is 0.45, which is the floor. With larger samples the lattice is denser, and GRIMMER accepts SDs below the floor. Set the sample size to 8: a mean of 1.50 with an SD of 0.00 now passes GRIMMER, because the sum of squares it implies, 18, is a whole number with the same parity as the sum of the scores, 12. But it is impossible, because an SD of zero means that everyone had the same score, and eight people with the same whole-number score cannot have a mean of 1.50. Only the floor rules it out.

These percentages are illustrative, not general. They depend on the scale, the sample size, and the reporting precision, and they shift as any of these change. With larger samples, more means pass GRIM, and once the number of people times the number of items reaches 100, every two-decimal mean does, so the bounds carry more of the burden (Hussey et al., 2026). What generalises is the pattern: each check rules out reports that the others let through, so they are most informative together.

14.3 Checking reported values

The app below runs all of these checks on reported values, using the {strait} R package (Hussey, 2026), inside your browser, using webR, as in the other apps in this book. It combines the bounds with granularity, and allows for the rounding of the reported values. With integer responses, it runs GRIM, which checks whether the mean could have come from whole-number data (Section 12.2), and GRIMMER, which does the same for the SD (Section 12.3), alongside BRIMMER, which checks the SD against the bounds, and BRIM, which checks that the mean lies within the scale. A report is consistent only if it passes every check. The Certify (BRIMMEST) button goes one step further, and settles exactly whether any set of whole-number scores has the reported mean and SD. Enter the scale’s minimum and maximum, the sample size, and the reported mean and SD. Enter the mean and SD exactly as reported, including trailing zeros, because the number of decimal places sets how much rounding is allowed for. Choose whether the responses are whole numbers: integer means that every response is a whole number, and quasi-integer, the default, relaxes this by one response, which gives a floor that is defined at every mean and never rules out anything integer data could produce. For a score made up of several items, choose whether it is a sum or a mean of the items. For a sum score, the scale limits are those of the sum; for a mean score, they are those of a single item. Optionally, add a reported Cronbach’s α, or the observed minimum and maximum. strait has no joint bounds for α and observed extremes, so when both are given the app combines the two sets of bounds, taking the higher floor and the lower ceiling. This is valid, but may not be as sharp as possible. The plot shows the possible combinations of mean and SD as a shaded band, with the reported values as a point. The first check takes several seconds, because R and strait have to be downloaded.

Try the examples. With the default report, a mean of 2.97 and an SD of 2.83 from 30 people on a 1–7 scale, the SD is close to its ceiling but possible: twenty people answering 1, nine answering 7, and one answering 6 give exactly these values. An SD of 0.10 is too small for whole-number data with this mean. With an observed minimum of 1 and maximum of 6, an SD of 0.50 is impossible, although it would be possible if only the scale limits were known. And for a mean of three items with a reported α of .80, an SD of 2.60 is impossible given that α, although it would be possible for items that disagreed more.

14.4 Test yourself

Answer all the questions, then click the button below the quiz to see why each answer is right.

Granularity and bounds

  1. GRIM and BRIM both check the reported mean, but GRIM asks whether whole-number data can produce it, and BRIM asks whether it lies within the range that is possible.
  2. A reported mean and SD that pass GRIMMER must also pass BRIMMER.
  3. A reported mean and SD that pass BRIMMER must also pass GRIMMER.
  4. Five people answer a single item on a 1–5 scale, and the article reports a mean of 3.00 and an SD of 2.12. Which check rules this out?
  5. For the same design, a mean of 3.00 and an SD of 1.50. Which check rules this out?
  6. For the same design, a mean of 3.00 and an SD of 1.73 passes GRIM, GRIMMER, and BRIMMER, so it is possible.
  7. GRIMMER can accept SDs that are larger than any data on the scale can produce, because it does not use the scale’s limits.
  8. Eight people report a mean of 1.50 and an SD of 0.00. This passes GRIMMER, but is impossible.
  9. With five people, GRIMMER happens to reject every SD below the floor, but with larger samples it accepts some SDs below the floor.

Using the checks together

  1. Passing BRIMMEST shows that some sample of whole-number scores on the scale has the reported mean and SD, after rounding.
  2. A report that passes GRIM, GRIMMER, BRIM, and BRIMMER has been shown to be possible.
  3. BRIMMEST works by reconstructing every possible data set, as CLOSURE does.
  4. For five people on a 1–5 scale, roughly what share of the reported pairs that pass GRIM and GRIMMER fail BRIMMER?
  5. The share of reports ruled out by each check is roughly the same for any scale and sample size.
  6. With 100 or more people answering a single item, every mean reported to two decimal places passes GRIM.
  7. When GRIM can no longer rule anything out, the bounds checks become:

Using the app

  1. Why does the app default to quasi-integer rather than integer responses?
  2. When both a Cronbach’s α and an observed minimum and maximum are entered, the app takes the higher of the two floors and the lower of the two ceilings. These bounds are valid, but may not be as sharp as possible.
  3. Thirty people on a 1–7 scale report a mean of 2.97 and an SD of 2.83, which is close to the ceiling. This report is possible.
  1. True. The two families divide along two axes: the statistic being checked, and the kind of constraint. GRIM checks the mean’s granularity, and BRIM checks its range (Chapter 14).
  2. False. GRIMMER only asks whether the SD lies on the lattice of values that whole-number data can produce. It does not ask how large or small the SD is relative to the scale, so it accepts many SDs that the bounds rule out (Section 14.1).
  3. False. BRIMMER only asks about magnitude. An SD comfortably within the bounds can still be one that no whole-number data can produce (Section 14.1).
  4. BRIMMER. Five whole numbers with a mean of 3 can have a sum of squares that gives an SD of 2.12, so GRIM and GRIMMER pass. But no five scores between 1 and 5 with a mean of 3 can have an SD above 2.00 (Section 14.1).
  5. GRIMMER. An SD of 1.50 is within the bounds of 0 to 2.00, but the sum of squares it implies is even, whereas the sum of five scores with a mean of 3 is odd, so no whole-number data can produce it (Section 14.1).
  6. False. The squared deviations from the mean would have to add up to 12, and no five whole numbers between 1 and 5 with a mean of 3 have deviations whose squares add up to 12. All of these tests are necessary conditions, and none is sufficient (Section 14.1).
  7. True. With five people on a 1–5 scale, all of the reports that pass GRIM and GRIMMER but fail BRIMMER lie above the ceiling, and GRIM and GRIMMER also accept many reports beyond the ends of the scale (Section 14.2).
  8. True. The sum of squares it implies, 18, is a whole number with the same parity as the sum of the scores, 12, so GRIMMER passes. But an SD of zero means that everyone had the same score, and eight identical whole numbers cannot have a mean of 1.50. Only the floor rules it out (Section 14.2).
  9. True. GRIMMER does not check the floor. With five people its lattice is sparse at small SDs, so the smallest SD it accepts happens to equal the floor. With larger samples the lattice is denser, and it accepts SDs below the floor (Section 14.2).
  10. True. Unlike the other checks, passing BRIMMEST proves that a report is possible, rather than only failing to rule it out (Section 14.1).
  11. False. All four are necessary conditions. Some reports pass every one of them and still correspond to no real set of whole-number scores; only BRIMMEST settles that (Section 14.1).
  12. False. BRIMMEST gives the same answer as CLOSURE, but without reconstructing the data sets: it works out which combinations of mean and SD, after rounding, whole-number samples on the scale can produce (Section 14.1).
  13. About 40%. Of the 210 reported pairs that pass GRIM and GRIMMER, 89, or 42%, fail BRIMMER (Section 14.2).
  14. False. The counts depend on the scale, the sample size, and the reporting precision. What generalises is the pattern: each check rules out reports that the others let through (Section 14.2).
  15. True. Once the number of people times the number of items reaches 100, the possible means are no further apart than the 0.01 reporting step, so every two-decimal mean can be produced (Section 14.2).
  16. Relatively more important. When granularity can no longer rule out any mean, the bounds carry more of the burden of detecting impossible values (Section 14.2).
  17. It never rules out what integer data could produce. Quasi-integer gives a floor that is defined at every mean. It relaxes the whole-number requirement by one response, which makes the floor slightly more lenient, so it errs on the side of not flagging a possible report (Section 14.3).
  18. True. {strait} has no joint bounds for α and observed extremes, so the app combines the two sets of bounds. Every report they rule out is impossible, but some impossible reports may slip through (Section 14.3).
  19. True. Twenty people answering 1, nine answering 7, and one answering 6 give exactly these values (Section 14.3).