$23 quadrillion cigarette mystery solved

An internet consultant says he’s solved the mystery of how a New Hampshire man was charged $23 quadrillion dollars for cigarettes.

Josh Muszynski hit the headlines after paying for the cigarettes at a gas station on Monday using a prepaid Visa card. He was somewhat surprised when he next logged into his online account and found the purchase had been charged at $23,148,855,308,184,500.

Oh, and another $15 for going overdrawn.

Fortunately, his issuing bank, Bank of America, has refunded the money and the fee, though there was no clear explanation for how it had happened.

Visa later announced that the problem could be widespread with as many as 13,000 transactions coming up with the same unlikely charge. It says it’s now fixed the problem but isn’t saying what caused it. That soon became the question of the week as computer analysts tried to figure out what was so significant about the number.

The race appears to have been won by Frank Wales (pictured right) of British firm Limitless Innovations. Writing on his personal blog he noted that he thought to represent the number in base 16 (or hexadecimal). That’s a system which has 16 units rather than the traditional 10 we use in our daily lives, or the two used in binary.

The hexadecimal system is commonly used in computer systems as it is easily compatible with binary (2 doubles to 4, then to 8, then to 16), but is large enough to represent bytes of computer data.

Once you add on the cents and take out the commas, $23,148,855,308,184,500 becomes 2314885530818450000. Convert that to hexadecimal and you get 2020202020201250.

Wales’ theory is that the last four digits of that number represent $12.50 – which sounds just about right if Musynski bought two pack of cigarettes.

And the string of 20s at the start? Well, as you’ll know if you’ve ever mistakenly typed a space in a website address, many computer systems automatically convert spaces into the number 20.

If Wales’s theory is correct, the problem appears to be that somewhere along the processing line, somebody created a system with too much space in a database field and didn’t set the application to automatically remove any spaces that a user typed in to make it fit. (You may recognize this problem from websites which won’t let you type spaces when you input your credit card number.)

If this is the explanation, and the problem was indeed triggered by people spending $12.50, it’s not entirely clear why that number alone should be so problematic.

Advertisement





8 Responses to $23 quadrillion cigarette mystery solved

  1. Did they say it was happening only when the amount is $12.50? That doesn't seem right it should have happened with any dollar amount. I mean, what would they need to accomplish by treating $12.50 any differently.

    • I've checked with Frank Wales on this point. He can't think of any logistical reason why either $12.50 as an amount, or 1250 as a number, should trigger any problems.

      Bearing in mind this is completely speculation and Wales notes that it's impossible to deduce anything more without seeing further details of the transactions, there are a couple of other possibilities:

      * The number 1250 refers to something other than a cash amount, is present in every affected transaction, but doesn't cause the problem itself. (For example, it could be a bank system code relating to the particular type of pre-paid charge card which was affected.)

      * The number 1250 is not present in the orginal transaction but is instead generated by whatever problem caused the system to go haywire.

  2. Did they say it was happening only when the amount is $12.50? That doesn’t seem right it should have happened with any dollar amount. I mean, what would they need to accomplish by treating $12.50 any differently.

    • I’ve checked with Frank Wales on this point. He can’t think of any logistical reason why either $12.50 as an amount, or 1250 as a number, should trigger any problems.

      Bearing in mind this is completely speculation and Wales notes that it’s impossible to deduce anything more without seeing further details of the transactions, there are a couple of other possibilities:

      * The number 1250 refers to something other than a cash amount, is present in every affected transaction, but doesn’t cause the problem itself. (For example, it could be a bank system code relating to the particular type of pre-paid charge card which was affected.)

      * The number 1250 is not present in the orginal transaction but is instead generated by whatever problem caused the system to go haywire.

  3. If you have to convert the amount he was charged in order to get to that, shouldn't you have to convert back (after removing spaces) to decimal to get the real amount he was charged for the cigarettes? Doing so, (1250 hex = 4688 decimal) you get a sale price of $46.88. If he paid that for two packs of cigs, he needs to move to a different state.

  4. If you have to convert the amount he was charged in order to get to that, shouldn’t you have to convert back (after removing spaces) to decimal to get the real amount he was charged for the cigarettes? Doing so, (1250 hex = 4688 decimal) you get a sale price of $46.88. If he paid that for two packs of cigs, he needs to move to a different state.