Mod 10 vs Mod 11 checksum

$\begingroup$

I know that the modulo checks (e.g. Mod 10 check sum) is designed to identify single data capturing errors. However, can is be used to conclusively differentiate between the account numbers from two different sources, provide that different Modulo check sum are used?

Here is my problem:

  • I have two sets of account numbers which have the same structure, both 11 digits long
  • In both structures the first 10 digits are randomly allocated
  • In both structures the 11th digit is calculated by a modulo check, in the one case using a MOD 10 calculation and in the other case using a MOD 11 calculation
  • I receive a number for processing purposes from either of the two sources but I do not know which source it is coming from

The question - Can I conclusively determine which source it is coming from by doing both the MOD 10 check and the MOD 11 check on the first 10 digits of the number and then comparing it to the 11th digit? - Another way to frame the question: If a MOD 10 check and a MOD 11 check is done on a 10 digit number, will the checksum for the MOD 10 check and the checksum for the MOD 11 check always be different?

$\endgroup$ 1

1 Answer

$\begingroup$

In a nutshell, "No".

Sometimes an input account number can be valid for both MOD10 and MOD11. Because modulus checking is in effect - posh division, it has the same properties that can be seen when considering products.

Imagine your test is simply "Can a number be divided by 3, or 4 with no remainder?". From this you say "It's Bank A or Bank B, or void". The test works really well until you get to 12 ... which can be divided by both. UK Account numbers often choose between DBL Alternative, MOD 10 and MOD 11. Applying a single check typically removes 90% of the possible errors. Some banks though actually use two mod checks as a strategy, which removes 99% of the possible fat-finger errors.

I am also unsure what you mean by different sources. If you mean different banks - then no. Some banks include sort codes in their MOD checks, others don't.

Finally, you can't just randomly choose 10 digits and assume that a valid mod check is possible. It depends on the MOD chosen and the input - i.e. some account numbers will not work with some modulus variants.

It is possible to write a spreadsheet (I've done it), and then input the row number as the account number and calculate the check digit for each of the mod checks given a set of input weights. You can then exhaustively see the patterns.

$\endgroup$

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like