Claudeで賞味期限と消費期限別の値引きルールを組む手順
消費期限と賞味期限では、期限を過ぎたときの意味が違います。区分ごとに値引きと撤去の基準日を決め、期限別の在庫リストから当日の値引き対象リストをClaudeに作らせる手順です。
値引きの開始日を「期限の3日前」のように一律で決めると、消費期限の惣菜と賞味期限の菓子が同じ物差しで扱われます。この2つは、期限を過ぎたときの意味が違います。ルール表を作る前に区分の定義を踏まえておけば、Claudeに任せる作業は「在庫リストを表に当てはめる」だけになります。
この記事では、消費者庁が示す期限表示の区別、区分ごとの値引き・撤去ルール表の例、期限別在庫リストから当日の値引き対象リストを作る依頼文までを順に示します。
消費期限は撤去の基準、賞味期限は品質の目安
消費者庁の資料は、2つの期限を食品表示基準の定義で説明しています。
| 区分 | 定義の要点 | 表示されている食品の例 |
|---|---|---|
| 消費期限 | 定義の要点定められた方法で保存した場合に、腐敗・変敗などの品質劣化で安全性を欠くおそれがないと認められる期限 | 表示されている食品の例弁当、サンドイッチ、惣菜 |
| 賞味期限 | 定義の要点定められた方法で保存した場合に、期待されるすべての品質の保持が十分に可能と認められる期限。超えても品質が保たれていることがある | 表示されている食品の例菓子、カップめん、缶詰 |
消費者庁のとりまとめには、消費期限を過ぎた食品は安全性を欠くおそれがあるため食べてはいけない、と書かれています。一方で賞味期限を過ぎた食品は、定められた方法で保存していれば、必ずしもすぐに食べられなくなるわけではありません。
この差は、値引き運用の設計にそのまま効きます。
- 消費期限の品: 期限日が売場に置ける最終日です。値引きは「期限までに売り切る」ための手段で、期限を過ぎた分は撤去しか選べません
- 賞味期限の品: 期限が近づくほど価値は下がりますが、期限を過ぎてすぐ食べられなくなるわけではありません。値引きの開始日を早めに置けるぶん、ルールの幅が広がります
賞味期限を過ぎた商品を売場に置いてよいか、いつ撤去するかは、消費者庁のこれらの資料には記載がありません。自店やチェーンの方針で決める項目です。ルール表には「賞味期限当日の閉店時に撤去」のように、方針を数字で書いておきます。
ルールを作る前に決める3つのこと
区分は日数で推測せず、商品の表示から入力する
消費者庁の実態調査では、消費期限と賞味期限を、定義ではなく単に「5日」で区別していた品目が約18%ありました。期限表示が導入された平成7年に通知された「5日で区別する」考え方は、現在は継承されていないと、とりまとめに明記されています。
在庫リストの区分の列は、「賞味期間が短いから消費期限だろう」とClaudeや担当者に推測させず、商品の表示のとおりに入力します。区分が分からない商品は、空欄のまま渡して「区分が不明」と返させるほうが安全です。
賞味期間の長短でルールを分ける
同じ賞味期限でも、期間が14日の焼き菓子と、365日の缶詰を、同じ残日数で値引きすると不自然になります。賞味期限の品は、製造日から期限までの賞味期間で2つに分けると扱いやすくなります。この分け方は自店の運用例で、公的な基準ではありません。
値引きは価格だけを変え、期限は書き換えない
平成21年の消費者庁の通知は、売れ残った商品の期限を延ばして再表示する事例を挙げ、食品衛生法違反ではないが消費者の信頼を損なうとして好ましくないとしています。値引きシールには価格だけを書き、期限の欄には触れません。この点はルール表にも1行入れておきます。
値引き・撤去ルール表の例
以下は、区分と残日数から動作を決める表の一例です。数値はすべて例で、売場の客足や廃棄コストに合わせて調整します。
| 区分 | 条件 | 動作 |
|---|---|---|
| 消費期限 | 条件残日数が1日以上 | 動作定価 |
| 消費期限 | 条件期限当日 | 動作17時に20%引き、19時に半額 |
| 消費期限 | 条件期限を過ぎている | 動作撤去(販売しない) |
| 賞味期限(賞味期間61日以上) | 条件残7日以下 | 動作30%引き |
| 賞味期限(賞味期間61日以上) | 条件残14日以下 | 動作10%引き |
| 賞味期限(賞味期間60日以下) | 条件残1日以下 | 動作半額 |
| 賞味期限(賞味期間60日以下) | 条件残3日以下 | 動作20%引き |
| 賞味期限 | 条件期限を過ぎている | 動作撤去(閉店時に回収) |
賞味期限の品の条件は、上から見て最初に当てはまる行を使います。「残7日以下」は「残14日以下」にも含まれるため、動作の強い行を上に置いてあります。残5日・賞味期間200日の品は、最初の行「残7日以下」に当てはまるので30%引きです。残10日なら「残7日以下」に当てはまらず、次の「残14日以下」の10%引きになります。行の順番を入れ替えると結果が変わるので、貼るときは順番ごと渡します。
Claudeに渡すときは、この表を文章でなく、そのまま貼ります。表の読み間違いが少なく、あとで閾値だけを書き換えられるからです。Projectsを使えるなら、ルール表を指示(project instructions)に入れておくと、毎回貼らずに同じ基準で作業させられます。Projectsには、指示とは別にファイルをナレッジとして置く機能もあります。
期限別の在庫リストを渡す
Claudeにはデータ分析用のPythonスクリプトを作らせられ、CSVやTSVのアップロードに対応しています。アップロードとダウンロードの上限は、1ファイル30MBです。売場1店舗の期限別在庫なら、この上限に届きません。使うには、アカウントでコード実行とファイル作成が有効になっている必要があります。
在庫リストの列は、次のとおりです。
| 列 | 内容 |
|---|---|
| 品目コード、品名 | 内容商品の識別 |
| 区分 | 内容消費期限か賞味期限か(表示のとおり) |
| 期限日 | 内容商品に表示された年月日 |
| 製造日 | 内容賞味期限の品のみ。賞味期間の算出に使う |
| 数量、売価 | 内容値引き額の見積りに使う |
期限日が複数ある商品、つまり同じ品目で期限の違うロットが並ぶ場合は、ロットごとに1行にします。ロットをまとめた行だと、最も近い期限に合わせた値引きが全数にかかるか、逆に近いロットが見逃されます。
当日の値引き対象リストを作る
ここからが依頼文です。基準日は、Claudeに「今日」を推測させず、日付で明示します。
添付の stock.csv は、期限別の在庫リストです。基準日は2026-10-17です。
次の手順でお願いします。
1. 期限日 - 基準日 を「残日数」として列に追加する
2. 賞味期限の品は 期限日 - 製造日 を「賞味期間」として追加する
3. 下の表に従い、各行の動作(定価/値引き率/撤去)を決める
4. 区分が空欄、期限日が空欄、製造日がない賞味期限品は、
動作を決めずに「要確認」として別に一覧にする
5. 動作が定価以外の行だけを、売場の作業順(撤去→半額→
30%引き→その他)に並べ、数量と値引き後の売価を付ける
(ここに上のルール表を貼る)4番の指定が重要です。区分や日付が抜けた行を、Claudeが「たぶんこうだろう」と補って処理すると、撤去すべき商品が定価のまま残ります。
要確認の一覧は、返す列も指定しておくと、現物を見に行く人がそのまま使えます。
「要確認」の一覧には、品目コード、品名、足りない項目
(区分/期限日/製造日のどれか)、数量の4列を付けてください。
足りない項目を推測で埋めた値は書かないでください。足りない項目が列で分かれば、売場の担当者は商品の表示を見て、区分と期限日を書き足して戻すだけで済みます。書き足した行は、同じ依頼文でもう一度処理します。
基準日が2026-10-17のとき、サンプルの在庫から次のような対象リストが得られます(例示で、実際の出力そのものではありません)。
| 品名 | 区分 | 残日数 | 賞味期間 | 動作 |
|---|---|---|---|---|
| ポテトサラダ | 区分消費期限 | 残日数-1 | 賞味期間- | 動作撤去 |
| 唐揚げ弁当 | 区分消費期限 | 残日数0 | 賞味期間- | 動作17時20%引き、19時半額 |
| ロールケーキ(個包装) | 区分賞味期限 | 残日数2 | 賞味期間7日 | 動作20%引き |
| 焼き菓子詰合せ | 区分賞味期限 | 残日数3 | 賞味期間14日 | 動作20%引き |
| クッキー缶 | 区分賞味期限 | 残日数6 | 賞味期間183日 | 動作30%引き |
| サバ缶 | 区分賞味期限 | 残日数13 | 賞味期間365日 | 動作10%引き |
サンドイッチ(消費期限が翌日、残1日)とカップめん(賞味期限まで85日)は、この日は定価のままなので載りません。ポテトサラダの期限は昨日で、撤去し忘れた商品です。この行が最上位に出ることが、リストの最初の効果です。
Claudeが内部で書くコードは、おおよそ次のような形になります(公式の機能説明に沿った例示で、実際のコードそのものではありません)。
import pandas as pd
base = pd.Timestamp("2026-10-17")
df = pd.read_csv("stock.csv", parse_dates=["due", "made"])
df["left"] = (df["due"] - base).dt.days
df["span"] = (df["due"] - df["made"]).dt.days
def action(r):
if r["kind"] == "消費期限":
if r["left"] < 0: return "撤去"
return "20%→半額" if r["left"] == 0 else "定価"
if r["left"] < 0: return "撤去"
if r["span"] > 60:
return "30%引" if r["left"] <= 7 else (
"10%引" if r["left"] <= 14 else "定価")
return "半額" if r["left"] <= 1 else (
"20%引" if r["left"] <= 3 else "定価")値引き後の売価と見込み額を出す
対象リストに値引き後の売価を付けるときは、端数の扱いを決めておきます。198円の10%引きは178.2円です。178円にするのか、10円単位に丸めるのかは、レジやシール発行機の仕様に左右されます。
値引き後の売価は、売価×(1-値引き率)を計算し、1の位を
切り捨てて10円単位にしてください。切り捨て前の値も別の列に
残してください。そのうえで、値引き対象全体の「定価ベースの金額」と「値引き後の金額」の差を出させると、値引きで減る売上の上限が分かります。ここで出る数字は、売り切れた場合の想定です。実際に売れる数は、値引きの効果を後から検証する必要があります。セールや値引きの効果を前年同週と比べる方法は、Claudeでセールを効果検証する手順にまとめています。
つまずきやすい点
落とし穴
基準日を渡さないと、Claudeの「今日」で計算される
会話の中で「今日」「今週」と書くと、Claudeが前提にした日付と店舗の日付がずれることがあります。残日数は基準日で決まるので、依頼文には必ず「基準日は2026-10-17です」のように日付を書きます。
期限日の書式が混ざる
「26.10.17」と「2026/10/17」が同じ列にあると、読み違えます。CSVを渡す前に書式をそろえるか、依頼文で「期限日の列には複数の書式が混ざっています」と先に伝え、変換結果を一覧で返させます。
区分の取り違え
弁当の区分が賞味期限になっていれば、撤去が1日遅れます。リストの作成元(発注システムの商品マスタなど)で、区分が商品の表示と一致しているかを点検します。点検は、消費期限の品を一覧にして、賞味期限の表示の品が混ざっていないかを目で見るところから始められます。逆に、賞味期限の品の一覧に弁当や惣菜が入っていないかも見ます。
閉店時刻と値引き時刻のずれ
「19時に半額」は、閉店が20時の店と22時の店では意味が違います。時刻は絶対時刻で書かず、閉店時刻からの逆算で書くと、店舗ごとの差を吸収できます。
| 動作 | 絶対時刻で書いた例 | 閉店時刻からの逆算で書いた例 |
|---|---|---|
| 20%引き | 絶対時刻で書いた例17時 | 閉店時刻からの逆算で書いた例閉店の3時間前 |
| 半額 | 絶対時刻で書いた例19時 | 閉店時刻からの逆算で書いた例閉店の1時間前 |
閉店20時の店なら17時と19時、22時の店なら19時と21時になります。ルール表の動作欄を「閉店3時間前に20%引き、閉店1時間前に半額」と書き換え、依頼文に「閉店時刻は20時です」と添えれば、Claudeは時刻まで計算した作業リストを返せます。
値引き後の在庫を、翌日にまた値引きする
賞味期限の品は、10%引きの缶詰が7日後に30%引きになる、という二重の値引きが起こります。値引きシールの重ね貼りを許すか、貼り替えるかを決めておきます。
検算と、人が決める範囲
Claudeが出したリストは、そのまま売場に回さず、次の3点を確かめます。
- 在庫リストの行数と、動作を付けた行数(要確認を含む)が一致するか
- 数行を選び、残日数と動作を手で計算し直して、表と合うか
- 「撤去」の行の期限日が、すべて基準日より前か
人が決めるのは、次の項目です。
- ルール表の閾値(何日前に何%引きにするか)。売れ行きと廃棄コストに依存し、Claudeには決められません
- 賞味期限を過ぎた商品を、何時に売場から外すか
- 要確認の行の扱い。区分が不明な商品は、現物の表示を見て決めます
閾値の見直しには、廃棄の実績が役に立ちます。値引きを始める日を変えたとき、廃棄数がどう動いたかを日別に追う方法は、Claudeで廃棄ロスを日別に分析する手順が扱っています。売場の在庫と帳簿を突き合わせる作業はClaudeで棚卸差異を分析する手順、POSの売上を週ごとに見直す方法はClaudeでPOSの売上CSVを週次で振り返る手順にあります。CSVの渡し方そのものはClaudeで行うCSV分析のコツで扱っています。
まとめ
期限表示は、消費期限が撤去の基準、賞味期限が品質の目安という違いを持っています。値引きルールもこの違いに沿って、区分ごとに表を分けます。Claudeには、表と基準日と在庫リストを渡し、区分や日付が欠けた行は「要確認」に回させます。閾値と撤去の時刻は、売場の事情で人が決める部分として残ります。