Check Digit Algorithms Explained

Check digits are calculated using mathematical algorithms to detect errors in identifiers. Below you'll find detailed explanations of how each algorithm works, complete with step-by-step examples.

ISBN-10 (Modulo 11)

Algorithm

ISBN-10 uses a weighted sum algorithm with modulo 11:

  1. Multiply each of the first 9 digits by its position (10, 9, 8, ..., 2)
  2. Sum all the products
  3. Calculate the remainder when dividing by 11
  4. Subtract the remainder from 11 to get the check digit
  5. If the result is 10, use 'X'; if 11, use 0

Example: 0-306-40615-?

Step 1: Multiply by position

0 × 10 = 0

3 × 9 = 27

0 × 8 = 0

6 × 7 = 42

4 × 6 = 24

0 × 5 = 0

6 × 4 = 24

1 × 3 = 3

5 × 2 = 10

Step 2: Sum products

0 + 27 + 0 + 42 + 24 + 0 + 24 + 3 + 10 = 130

Step 3: Modulo 11

130 ÷ 11 = 11 remainder 9

Step 4: Check digit

11 - 9 = 2

✓ Check digit: 2

Complete ISBN-10: 0-306-40615-2

ISBN-13 / ISMN (EAN-13 Modulo 10)

Algorithm

ISBN-13 and ISMN use the EAN-13 algorithm with modulo 10:

  1. Multiply digits in odd positions (1st, 3rd, 5th...) by 1
  2. Multiply digits in even positions (2nd, 4th, 6th...) by 3
  3. Sum all the products
  4. Calculate the remainder when dividing by 10
  5. Subtract the remainder from 10 to get the check digit
  6. If the result is 10, use 0

Example: 978-0-306-40615-?

Step 1-2: Multiply alternating 1 and 3

9 × 1 = 9

7 × 3 = 21

8 × 1 = 8

0 × 3 = 0

3 × 1 = 3

0 × 3 = 0

6 × 1 = 6

4 × 3 = 12

0 × 1 = 0

6 × 3 = 18

1 × 1 = 1

5 × 3 = 15

Step 3: Sum products

9+21+8+0+3+0+6+12+0+18+1+15 = 93

Step 4: Modulo 10

93 ÷ 10 = 9 remainder 3

Step 5: Check digit

10 - 3 = 7

✓ Check digit: 7

Complete ISBN-13: 978-0-306-40615-7

ISSN (Modulo 11)

Algorithm

ISSN uses a similar modulo 11 algorithm to ISBN-10:

  1. Multiply each of the first 7 digits by its position (8, 7, 6, ..., 2)
  2. Sum all the products
  3. Calculate the remainder when dividing by 11
  4. Subtract the remainder from 11 to get the check digit
  5. If the result is 10, use 'X'; if 11, use 0

Example: 0378-595?

Step 1: Multiply by position

0 × 8 = 0

3 × 7 = 21

7 × 6 = 42

8 × 5 = 40

5 × 4 = 20

9 × 3 = 27

5 × 2 = 10

Step 2: Sum products

0 + 21 + 42 + 40 + 20 + 27 + 10 = 160

Step 3: Modulo 11

160 ÷ 11 = 14 remainder 6

Step 4: Check digit

11 - 6 = 5

✓ Check digit: 5

Complete ISSN: 0378-5955

ISNI / ORCID (ISO 7064 Mod 11-2)

Algorithm

ISNI and ORCID use the ISO 7064 Mod 11-2 algorithm:

  1. Start with a sum of 0
  2. For each of the first 15 digits: sum = (sum + digit) × 2 (keeping only the last calculation)
  3. Calculate check digit: (12 - (sum mod 11)) mod 11
  4. If the result is 10, use 'X'

Example: 0000-0002-1825-009?

Step 2: Process each digit

sum = 0

sum = (0 + 0) × 2 = 0

sum = (0 + 0) × 2 = 0

sum = (0 + 0) × 2 = 0

sum = (0 + 0) × 2 = 0

sum = (0 + 0) × 2 = 0

sum = (0 + 0) × 2 = 0

sum = (0 + 0) × 2 = 0

sum = (0 + 2) × 2 = 4

sum = (4 + 1) × 2 = 10

sum = (10 + 8) × 2 = 36

sum = (36 + 2) × 2 = 76

sum = (76 + 5) × 2 = 162

sum = (162 + 0) × 2 = 324

sum = (324 + 0) × 2 = 648

sum = (648 + 9) × 2 = 1314

Step 3: Calculate check digit

1314 mod 11 = 2

(12 - 2) mod 11 = 10 mod 11 = 10

10 → 'X'

✓ Check digit: X

Complete ORCID: 0000-0002-1825-009X

Why Check Digits?

Check digits are the last digit in an identifier, calculated from the preceding digits using a mathematical algorithm. They serve several important purposes:

  • Error Detection: Catch transcription errors when identifiers are manually entered
  • Data Integrity: Verify that an identifier hasn't been corrupted during storage or transmission
  • Transposition Detection: Detect when adjacent digits are accidentally swapped
  • Quality Assurance: Provide a quick validation check before looking up records in databases

While check digits don't catch all errors, they detect the vast majority of common mistakes, making them an essential part of bibliographic identifier systems.