Coupon
Considerations and Limitations
The challenge...
You want to build
an application - perhaps web based - that will match grocery store items
with Sunday Newspaper coupons.
The interim
step...(why you came to my site)
Purchase a U.P.C.
Database.
The solution...
There is no solution.
There is no way to cross reference (match) a U.P.C. on a product to a U.P.C.
on a coupon. In other words, what you want to do CAN'T BE DONE.
Why...
Because the content
and structure of a "product" U.P.C. is different from the content
and structure of a "coupon" U.P.C.
Let me explain
-
Look at the following U.P.C.:

The first six digits
above - 012345 (in this example) - are the Company Prefix assigned by the
Uniform Code Council (UCC).
The next five digits
- 67812 - are the Company's internal Stock Keeping Unit (SKU) or product
number.
The final digit
- 7 - is a computer generated check digit.
Now look at the following Coupon U.P.C.

The first digit
- sometimes called a Number System Character (NSC) - is a 5. This tells
the Point of Sale system that the U.P.C. being scanned is a coupon.
The next five digits
- 12345 - are positions two through six of the Company Prefix.
The next three digits - 678 - are the Family Code.
The next two digits
- 90 - are the Coupon Value Code.
The final digit
- 0 - is the check digit.
So, you can see very
quickly that the U.P.C. - 012345678127 bears little resemblance to the
Coupon U.P.C. - 512345678900. Could you still match the Coupon to the Item?
Oh but wait, there's
more:
Company Prefixes can be six, seven, eight, or even nine digits in
length.
For example, the U.P.C. - 01234671234 - could have a Company Prefix of
01234567; but in a Coupon, digits beyond position six are dropped. So,
a Coupon for the above
might be 512345111556.
Family Codes are assigned by the Manufacturer to "group"
products within a "family" together. Some examples - same size
but different flavor frozen meals (think Lean Cuisine or Swansons, etc.),
flavored water (think Gatorade or Powerade), etc.
Yes, in a majority of cases, positions seven through nine of the U.P.C.
are the Family Code, but what if that's not always the case (it's not)?
The Coupon Value Code is a two digit number that identifies the
VALUE of the Coupon.
(For a list of Coupon Vale Codes - click Here.)
Still think you could match the Coupon to the Item?
What would happen if the leading digit of the Company Prefix was NOT
a zero?

Notice the second set of numbers beginning with (8101). The number immediately
following that code IS the first digit of the Company Prefix. But
to insure that your application "works" you have to capture both
sets of data.
Still with me? Let's
assume that all the planets are aligned and you want to plow ahead anyway.
Okay. In Sunday's paper you see a coupon for Campbell's Chunky Soup. The
first set of numbers on the Coupon U.P.C. is 55100121412.
Okay, first you isolate the Company Prefix - 051000 - no problem.
Now, look at the Family Code - 121.
[Coupon Value Code 41 means "Buy Three or More and Get 50 Cents Off
- in case you're interested.]
Finally, let's assume you DID buy my U.P.C. Database, and let's assume
that you were fairly adept at manipulating the numbers. So, you isolated
all of the items that started with 051000121. Guess what - you have about
twenty items to attempt to match.
Had that been Family Code been 111, you would have had more than one hundred
items.
Get the idea?
For what it's worth, I've been approached by everyone from mathematicians
to programming firms to major universities. No one has "made it work".
Will I sell you the data - of course. Will you succeed - not likely. Caveat
Emptor.
For additional reference material, The Uniform Code Council issued a Power
Point presentation two years ago. I've converted it into PDF.