Wikipedia covers this well (here).
One of the issues is correctly conveying the letters and numbers over an audio link. If you have any form of data, SMS, etc, you can convey an exact latitude and longitude, and that should always be preferred, but conveyed over a call, or radio, map references are all about people reading and typing the sequence of letters and numbers.
For example: SO 29902 14197
The sequence is no harder to convey than a phone number, which works well, but would help if there was a way of checking what you heard was right. There are alternative ways to convey location, but not with a proper check character, surprisingly.
So what would be really cool is if Ordnance Survey, or some international body, defined a check character for such things. Then apps, and the like could add that.
Make it SO 29902 14197 Q or some such where Q is the check. This could be a simple mod 23 of a sum/multiplier of the letters/numbers, or some such. But the idea is you can quote a location with a check. As a letter on the end (avoid O and I and Z to avoid confusion with digits) you have an optional, and obvious, check.
Please can they define this - it is simple, and no cost to do so, but means we could have apps and devices quoting grid references with an integrity check.
OK, I am going to go ahead and define a standard - it would be nice if Ordnance Survey approved it.
- Each character (ignoring spaces) is assigned a value. For the letters is is 0 to 24 for the position in the 25 letters that are valid (all normal letters except I). Each digit has the value of the digit 0-9.
- The value of each character is multiplied by the position (ignoring spaces), starting with the first character (letter) being 1, then 2, etc.
- The result is added and then modulo 23 (a prime).
- The check character is the position 0-22 in all letters (except I, O, and Z).