Saturday, March 13, 2010

Why Don't Phone Numbers Have Checksums?

I was always intrigued by checksums. Basically, a checksum allows anyone to compute if the transmitted data is correct -- without needing to contact anyone. In other words, checksums give numbers the power of built-in error computation.

Let's first take a look at a simple example of a UPC checksum (in this example, it is better known as a check digit). Suppose the UPC number is 036000241457. To compute whether this is indeed a valid UPC code, we start by adding every second number, starting with the 1st. In other words, take 0+6+0+2+1+5=14. Next, multiply it by 3 = 42. Then, add every other digit (with the exception of the last) to the number we just got: 42+3+0+0+4+4=53. Finally, take the number and divide it by 10 -- the remainder of the division should be the last number (check digit) of the UPC code. In this case it was 7.

That wasn't too difficult was it? In most cases computers are the ones who do this lengthy task, and take fractions of a second to compute it.

Indeed, there are many more numbers that are used by us every single day which contain these marvelous algorithms. From credit cards, to ISBN numbers, and even check routing numbers, checksums are everywhere. That is why I was so surprised to find that phone numbers don't have checksums.

"Why should they?" I hear the skeptical ask. Well for starters, it would be super easy to discover wrong numbers. There would no longer be a need to call someone and only discover the "this number is not in service message." House phones, and more importantly, cell phones, would instantly tell you that you've got it wrong: try again.

Transmitting numbers over the phone ("did you say 659 or 459?") would also be simplified. The person / IVR system on the other end could instantly check if the given number is indeed feasible by applying the necessary formula. Customer service representatives would definitely find ample appreciation for this addition.

Online services would especially benefit from this feature. Any potential users who try to invent a number for a signup form would suddenly find themselves thwarted. The need to verify phone numbers would be substantially reduced. (of course, a simple algorithm would defeat it -- it really just attracts craftier bad guys).

So are there any disadvantages? I can truly only think of one. That is, the reduced availability of numbers per area code. Instead of having a full 7 digits available for the number, there would only be six since the 7th can only be used as the check digit. And, by definition, there can only be one check digit per each 6 digits.

So what do you think? The comments are wide open...

Photo Credit: samantha celera

No comments:

Post a Comment