Hacking the Winn-Dixie Survey
by Tim K
When I was in college, I lived next door to a Winn-Dixie grocery store.
About 75 percent of the time I made a purchase, the bottom of my receipt would
have the phone number for an automated survey asking me to rate aspects of my
shopping experience in return for the chance to win $5000 (it's since dropped
to $2000). Naturally, as a poor college student, I would do this survey every
single time. Though I never won, I did notice some recurring patterns in the
survey codes.
The code on the receipt is made up of three blocks of six numbers each,
but for simplicity's sake let's treat it as a single 18-digit number. Based on
examining literally hundreds of receipts, here's how the numbers breakdown:
Digits 1-4: The date in mmdd format.
Digits 5-6: The hour in 24-hour notation.
Digits 7-10: The Winn-Dixie store number.
Digits 11-14: The transaction number for the checkout lane for that
date.
Digit 15: Always 0 as far as I can tell, though it may be a leading
zero for...
Digits 16-17: The checkout lane number. This was almost always 93, 94,
or 96 in my data, then one day I realized it's because I
go to the self-checkout almost every time. So I made a
point of going to a human cashier; lo and behold, these
two digits came up as 03.
Digit 18: Some sort of hash or check digit - I have not determined how
this is calculated. In many cases, I noticed that this
corresponded to the number of items purchased mod 10, but not
always, so I discarded that theory. But if you enter this
digit incorrectly, the friendly voice tells you "Invalid
Entry" and you have to enter all 18 digits again.
After I had deciphered all of this information, I noticed a lot of it
repeated in the bar code at the bottom of every receipt, whether there was a
survey or not. However, on a few receipts, there were some numbers that I just
couldn't make sense of - until I had another face-palming moment. Here are two
real sample receipt numbers from my data. See if you see the same thing I did,
based on the information I've given you so far.
44110616020900300581358021300000
44110703020909100000091030600000
Let's break them down together block by block:
4411: Always the same; likely a Winn-Dixie company code.
0616/0703: I did these grocery runs on June 16th and July 3rd.
0209: Store 0209 is in Pembroke Pines, Florida.
003/091: I paid at lane number 3 and the self-checkout, respectively.
00581358/00000091: ????
0213/0306: Considering I was shopping at 8:30-9 o'clock at night, it's
not unrealistic to think 200-300 people had already been
through a particular checkout lane that day.
00000: Filler zeros.
So, the differences? Take a look at the lane number and the "unknown"
number. I believe that eight digit number to be some kind of employee ID,
whether known to them or not. So what's the point of all this (as my wife has
asked several times)? Maybe someone who really wanted to win the cash could
write a dialer program, generating its own valid survey codes. I've also
noticed that recently Winn-Dixie has switched to printing a URL instead. I'm
sure some clever scripting could accomplish the same thing. Or maybe it's just
interesting to find patterns in the seemingly mundane bits of our everyday
lives.