

POSレジでは、商品に貼付されたバーコードを読み込んでいるが、そのバーコードは、JANコードと呼ばれ、その商品のIDそのものである。 さてJANコードは流通上、区別すべき商品を区別することを想定して設計されたIDである。特定のメーカの特定の型番(または同じ商品名、同じ中身・量)の商品に、一つのJANコードが割り当てられる。
例えば「○○製菓△△チョコ 内容量:XXグラム」という特定の商品パッケージには、特定のJANコードがIDとなり、商品の中身や内容量が違う場合には、違う商品として違うJANコードが割り当てられることになる。さらに、商品の中身と内容量が同じでも、パッケージのサイズが大きく、陳列棚を変えないといけないなど流通上の違いがでるものには、別のJANコードを割り当てることとなっている。
販促目的で商品にオマケを付ける場合、オマケにより、商品パッケージが大きくなる場合や、オマケが別パッケージになる場合(例えばビールのオマケとなるグラス)は、商品棚の陳列に影響するので、別のJANコードを割り当てられることになる。逆にオマケが小さい試供品や景品で、商品陳列を含む流通に影響がでなければ同じJANコードが割り当てられている。
JANコードの使われ方は以上のような次第なので、前述のA/Bテスト、つまり商品の中身と内容量が同じのまま、パッケージの絵柄だけを変更した商品を同時に流通させた場合、流通上の扱いに違いがないのであれば、パッケージが変わっていても同じJANコードを付けることが求められる。結果として、POSデータからはパッケージ違いの影響をたどることはできない、つまりA/Bテストはできないということだ。
このため、メーカは独自に消費者モニタリングを実施したり、流通する地域をコントロールしてパッケージを変えたり、といったいろいろな手を使って、JANコードでは区別できない対象を区別して、その影響を調べている。当然ながらその手間は大きい。
「それなら、メーカが絵柄を変えただけの商品でも、別々のJANコードを与えればいいだろう」と思われる方も多いだろう。しかし、歴史的な経緯もあって、JANコードの登録、つまりJANコードの番号と商品情報の登録は流通企業がそれぞれ行っている。
例えば大手小売事業者は、JANコードの番号と商品情報のデータベースを管理しており、JANコードの細かい変更は小売事業者にとっては無用なデータベース入力であり、メーカと小売事業者の力関係を考えると、メーカの都合でJANコードを変更することは簡単ではない。
一方、パッケージ絵柄によるA/Bテストができないことを、JANコードの設計に問題があるともなかなか言い難い。というのはJANコードを含めて、IDというものは目的に応じて設計されるものだからだ。JANコードは流通管理のために設計されたIDであり、それ以外の利用は考えていないし、IDの目的外利用はそのIDの効率を下げる可能性がある。
例えばIDの桁数は、そのIDで区別したい対象を区別するのに十分な桁数を想定して設計されている。仮に目的外利用のためにIDの桁数を増やすことになると、IDの読み取り時間は伸び、さらにIDを含む情報を保持するストレージや通信にも余計な負担がかかる。