Choosing an H3 resolution for neighbourhood analysis: your k-ring is not the radius you asked for
17 February 2026
Ask for a 400 m walkable neighbourhood, the standard five-minute walk, and H3 hands you something else. At resolution 9 you get 702 m. That is not a rounding error, it is a neighbourhood 76% too big.
The cause is that k is an integer and the grid step is fixed. A disk grows in
whole rings, so its radius is wherever the grid happens to land, never the
number you asked for. Coarse resolutions land badly.
Grown rather than estimated, at 51.48°N:
k = 1
while disk_reach(cell, k) < 400:
k += 1
Resolution 9 reaches 702 m for 19 cells, resolution 10 reaches 527 m for 61, and only resolution 11, the resolution AnythingPOI blocks on, lands at 401 m, for 217. Measuring the disk a second way, as the radius of the circle of equal area, agrees: 769 m, 521 m, 371 m.
So each step costs roughly 3.5× the cells, and what it buys is boundary accuracy. It is not buying finer cells, which mostly encode precision your input data does not have.
Pick the resolution from the error you will accept on the boundary, then check the cell count you can afford. Choosing on cell size alone is how a 400 m study quietly becomes a 700 m one.
Cells are not equal-area, so these are numbers for 51°N. Rerun them at yours.