The CheckDigit package provides a set of functions to calculate check digits according to various algorithms and to verify whether a value ends in a valid check digit.

The following algorithms have been implemented:

  • Verhoeff The Verhoeff algorithm is appropriate for numerical data and detects all single-digit substitutions (x to y) and adjacent digit transpositions (xy to yx). In addition, the Verhoeff check digit can detect most twin errors (xx to yy), jump twin errors (xyx to zyz), jump transpositions (xyz to zyx), and phonetic errors (‘sixty’ to ‘sixteen’).


Verhoeff, J. “Error Detecting Decimal Codes”, Mathematical Centre Tract 29, The Mathematical Centre, Amsterdam, 1969.