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 01-04: The date in MMDD format.

Digits 05-06: The hour in 24-hour notation.

Digits 07-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 barcode 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 16 and July 3.

0209 - Store 0209 is in Pembroke Pines, Florida.

003/091 - I paid at lane number 3 and the self-checkout, respectively.

00581358/00000091 - Unknown

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.

Return to $2600 Index