バーコードを読むと栄養成分が出る仕組み — JANコードが持っている情報と、持っていない情報

コンビニで買った商品のバーコードを読み取ると、数秒で熱量とPFCが記録に入る。この動作だけを見ると、バーコードそのものに栄養成分が書き込まれているように見える。実際に含まれている情報は、それよりはるかに少ない。読み取れる商品と読み取れない商品が分かれるのも、出てきた数値が実際に食べた量と食い違うのも、ここから説明がつく。

バーコードに入っているのは商品の番号だけ

GS1 Japan は、JANコード(GTIN)を「どの事業者の、どの商品か」を表す国際標準の商品識別コードと説明している。標準タイプは13桁で、GS1事業者コード、商品アイテムコード、チェックデジットの3つで構成される。GS1事業者コードは45または49で始まり、桁数は7桁、9桁、10桁のいずれかが貸与される。事業者コードが9桁なら商品アイテムコードは3桁、10桁なら2桁、7桁なら5桁と、残りの桁数が決まる。このほかに8桁の短縮タイプがある。

この13桁に含まれるのは、事業者の番号、商品の連番、そして読み取り誤りを検出するための1桁だけである。熱量も原材料も内容量も入っていない。食事記録アプリがスキャン後に表示する数値は、読み取った番号を鍵にして別の食品データベースを照会した結果であって、バーコードから取り出したものではない。精度も網羅性も、照合先のデータベース次第になる。

照合先のデータベースは誰かが登録したもの

多くのアプリが参照している Open Food Facts は、2012年に始まった協働型の食品データベースで、データベース本体は Open Database License、個々の内容は Database Contents License、商品画像は CC BY-SA で公開されている。2026年10月20日時点の収録数は全世界で約482万件、うち日本の商品として登録されているのは46,428件だった。全体の約1%にあたる。

登録作業は利用者が行う。Open Food Facts のサイト自体が、アプリで商品を追加することで参加できると案内している。つまり、スキャンがヒットするかどうかは、その商品を誰かが先に登録していたかに依存する。発売直後の新商品、地域限定品、小売の自社ブランド商品が落ちやすいのは、データベースの作られ方からして避けにくい。

そもそも栄養成分表示がない商品がある

登録者の問題とは別に、参照すべき数値が最初から存在しない商品がある。消費者庁「食品表示法に基づく栄養成分表示のためのガイドライン(第6版)」によれば、一般用加工食品には熱量、たんぱく質、脂質、炭水化物、食塩相当量(ナトリウムを換算したもの)の表示が義務付けられている。ただし、次のいずれかに当たる場合は省略できる。

  • 容器包装の表示可能面積がおおむね30平方センチメートル以下であるもの
  • 酒税法第2条第1項に規定する酒類
  • 栄養の供給源としての寄与の程度が小さいもの(コーヒー豆や茶葉、ハーブ、スパイス等)
  • 極めて短い期間で原材料が変更されるもの(レシピが3日以内に変わる日替わり弁当等)
  • 消費税の納税義務が免除される事業者、および当分の間は小規模企業者(前事業年度の常時使用従業員が20人以下、商業またはサービス業では5人以下)が販売するもの

加えて、食品を製造または加工した場所で販売する場合は表示を要さない。洋菓子店やパン店の店頭販売、店内で加工した総菜や刺身の盛り合わせがこれにあたる。生鮮食品の栄養成分表示も任意である。バーコードは流通のために付いているので、栄養成分表示の有無とは関係なく存在する。読み取れるのに数値が出ない商品があるのはこのためである。

数値が「何あたり」かは商品ごとに違う

表示がある場合も、その数値が何を単位にしているかは一定ではない。食品表示基準が認める食品単位は、100g、100ml、1食分、1包装、その他の1単位のいずれかで、どれを選ぶかは事業者に委ねられている。1食分とする場合の量も、通常1回に摂食する量として事業者が定めたものである。

この違いは記録の数値にそのまま反映される。内容量70gの袋菓子が100g当たりで表示していれば、1袋を食べて表示値をそのまま記録すると約3割多く計上される。1包装当たりの表示なら一致する。スキャンで値が入った後に、食品単位と実際に食べた量を突き合わせる手間はどうしても残る。表示値そのものがどこまで正確かについては栄養成分表示の読み方で整理した。

同じコードの商品が、同じ中身とは限らない

商品がリニューアルされたとき、コードが変わる場合と変わらない場合がある。GS1 の「GTIN設定ガイドライン」は、新しいGTINを設定する条件を10の基準として示している。商品表示の変更をともなう成分や機能の変更、商品表示の変更をともなう正味内容量の変更は、いずれも新しいGTINを設定する基準に含まれる。一方、成分や機能に変更がなく、表示に関わる法令の改正等によって表示内容だけが変わった場合は、GTINを変更する必要はないとされている。

また、2019年1月以降、一度使用したGTINの再利用は認められていない(2018年12月末までに終売となったコードのみ、1回に限る経過措置がある)。番号が使い回されない分、別商品の情報を引き当てる事故は起こりにくい。残るのは逆方向のずれで、商品側が改訂されてもデータベースの登録が古い版のままなら、同じコードから古い数値が返る。スキャンの結果とパッケージの表示が食い違ったときは、手元の表示のほうが新しいと考えるのが順当である。

CaRoot でのバーコード記録

CaRoot のバーコードスキャンは、Open Food Facts との連携と、約2,500件の内蔵食品データベースを照合先にしている。ヒットした場合は表示値を引いて記録に入れ、ヒットしなかった場合は写真からのAIスキャン、名前での概算、登録済みの「いつもの食事」から選ぶ経路に移る。入力方法ごとの性格の違いは食事記録の入力方法は4通りあるにまとめてある。

できないことも同じ仕組みから決まる。未登録の商品はスキャンでは出ない。出た数値も事業者の表示値を引いたものであって実測ではなく、食品単位が100g当たりなら、食べた量への換算は利用者側の確認が必要になる。バーコードが有利なのは、表示が存在してデータベースに登録済みの包装食品に限られる。その範囲では入力の手数が最も少ない方法で、範囲外では他の経路のほうが速い。

出典

本記事は商品識別コードと食品表示制度の仕組み、および一般的な栄養情報の解説であり、特定の疾患に関する食事の指示ではない。治療中の疾患やアレルギーがある場合の食品選択については、医師や管理栄養士に相談されたい。

CaRoot は、写真を撮るだけで
記録が終わる食事管理アプリです。

アプリを見る