ここにセブンイレブンのレシートがある。レシートを眺めてみると、買い物からその人の生活風景を垣間見ることができる。
例えば、購入物や購入時間から読み取れるのは、
・サラリーマンが仕事帰りに晩ごはんを買った
・少しカロリーに気をつかっている様子なのに2個買えば割引という誘惑に負けてチキンを買ってしまった
・カロリーを気にしているくせに自分へのご褒美にフレンチトーストを買った
そういう俗っぽさが滲み出ています。これは良いレシートですね。
このようにレシートにはその人の素顔を映す側面があり、この商品を買った背景、その前後にどんな出来事があったのかを想像してみると、中々おもしろい。
が、本日そんなことはどうでも良いのです。
こちらを見てください。レシートの下部分です。
こちらには支払い情報等が記載されており、今回の買い物はnanacoで支払いをしたことや、この人が次の買い物でnanacoに残高チャージしそうなこと等が読み取れるかと思います。
そんな支払い情報の中で今回はこちらに用があります。
セブンイレブンのレシート最下部にある伝票番号です。
会社・商店では、取引内容を記録するために伝票を作成し、その伝票番号と紐付いたレシートや領収書を顧客に渡します。当然、顧客の持つレシート等と会社の持つ取引伝票で内容の違いがあってはいけません。伝票番号も共通の番号を使用されます。
セブンイレブンの取引において13桁あるこの番号は、後日何らかの事情で取引内容を照会する場合に必要となることが予想されますが、内容に誤りがあってもいけませんし、取引情報の管理等が煩雑になるのを避けるなら、なるべく他の取引と番号が被らないようにする必要があるわけです。
例えば、これは私の勤める会社の取引伝票です。
こちらの8桁ある伝票番号について見てみましょう。
拙い手書きで申し訳ないのですがご覧ください。
①部分の6桁数字で取引年月日を表しています。2022年04月03日の取引であることがわかります。
そして②部分の2桁数字でその日の取引順を表しています。この日01番目の取引ということですね。取引内容の入力操作を確定するとこの番号が発行され、伝票を発行する毎に1つずつ数字が増えていきます。
そして、日付が変わると下2桁の数字がリセットされ、再び01から順に印字されていくというわけです。通し番号になっていますから、この番号を見るだけで、同日のこの取引以前に何件の取引があったのかを知ることができます。さらに、その日一発目の取引であれば下2桁01を狙って取ることができるということがわかりますね。
24時間営業のセブンイレブンにおいても、その日一発目の買い物をすれば伝票番号01番を狙えるのではないか。そう思ったんです。私は、一番風呂が好きなんです。セブンイレブンの一番風呂レシートが、見たい…!
やってみました。
日付が変わるタイミングを狙って、一旦23:59に買い物をし、買い忘れがあった体を装ってすぐさま店に戻り、00:00に再度の買い物をしました。せっかくなので最後風呂もいただこうとしたわけですね。ちょっと怪しい人のように映ったかもしれませんが、ちょうど他のお客さんもいなかったのでスムーズに会計を済ませることができました。では、その伝票をご覧ください。
まずは最後風呂ですね。
①部分はやはり日付でしょう。この部分は結構どのお店の伝票も似たような数字配列になっているのかもしれません。
となると②部分が取引回数でしょうか?この日2,655,090回目の取引?いや…
このセブンは私もよく利用するのですが、国道沿いに建っておりどちらかと言えば車でやってくるお客さんが多い印象です。しかしいくらお客さんの入りが多かったとしても、さすがに多過ぎです。公表しているデータによるとあの東京ディズニーリゾートでさえコロナ前の2019年度年間入場者数が29,008,000人、1日あたり入場者数は約79,000人です。いくらコンビニが身近で便利でも、こんなに多くの人が来る店舗あるはずがありません。この店舗がオープンしてから通算2,655,090回目ということならわからないでもないですが、それだと伝票番号にわざわざ日付を入れる必要性もありません。
それに24時間は86,400秒です。百歩譲って月ごとに番号の締めを行っているのだと仮定して1ヶ月30日と計算しても2,592,000秒ですから、2,655,090というのは一度の会計を1秒で完了させたとしても物理的に不可能な数。(※年間で締めても365日の間中ずっと平均11秒おきにレシートを発行し続ける必要がある。無理。)
まあ、下4桁は何か別の番号なのだとして、この日265回目の取引。うん、これなら自然な気がします。この店舗にはレジが2台ありますから、レジ別に番号が違えば少し苦しいですが、2台合わせて共通の通し番号だったならばぜんぜん自然な通常営業でしょう。いや、もしかすると下3桁あたりを取って90回目の取引でしょうか。これも自然ですね。いずれにしても、001-XXXXあるいはXXX-X001が一番風呂レシートの伝票番号下7桁となる可能性が高いですね!
では、日付が変わった瞬間のその日一発目のレシートを見てみましょう。
239-2803!!
…???
あれ?1番は?1番じゃないの??
まごうことなきこの日一発目の取引ですよ!完全に予想外の伝票番号が現れて困惑しています。予想のどちらでもないってなんだ。それに、どこかしらの数字は1になるんじゃないのか。なんだこの脈絡の無い数字配列は!
と思って冒頭の3月31日19:00のレシートを見返してみると
3月31日19:00 284-7143
3月31日23:59 265-5090
4月01日00:00 239-2803
なるほど、わからん
数字配列の法則が何もわかりません。なんだこれ。もしかして7桁の数字は時間が経つほど減るのか?あとよくわからんけど、頭の番号は2で固定なのかな?よくわからないのでもう一度買い物をしてみよう。一旦寝て、朝ごはんでも買いに行こう。
3月31日19:00 284-7143
3月31日23:59 265-5090
4月01日00:00 239-2803
4月01日09:25 243-5951 ←増えちゃった⭐︎
なんで増えるんだよ!!
順調に減ってきてたじゃん。どうして増えるのよ!
…いやでも、頭の番号は2で固定っぽいし。そうだ、家の中を探せばここ数日のレシートが何枚かあるはず…ちょっと探してみよう…
3月19日23:32 244-4852
3月25日23:14 201-2076
3月29日20:33 187-6844
頭は2で固定じゃないんかい!
頭の番号は2の固定ではない。つまり0〜9のどの番号でもあり得るということ。これでもう何もわからなくなってしまいました。
ただ、一つだけわかったことがあります。
これは友人と一緒に同じ物を購入した際、私がnanacoで、友人が現金で支払ったレシートなのです。
右はnanacoでの支払い。左は現金での支払い。
気付きましたか?現金で支払った場合は伝票番号が印字されないんです。
友人のツテでセブンイレブンの店員さんに聞いたのですが、現金での返品・返金は商品とレシートが揃っていれば対応できるので番号が無くても良くて、意外なことに現金での取引に伝票番号はそもそも登録されていないのだそうです。取引の日時と内容がレジスターに記録されているから、わざわざ番号を割り当てる必要性が無いということなのでしょうか。
この記事を書いている2022年5月現在、ほとんどのセブンイレブン店舗で『お会計セルフレジ』が導入されています。客側が支払い方法を選択して会計処理を行うというものですが、その支払い方法は大きく分けて6種類あります。
こちらがその支払い方法ですが、さらに細分化するとかなり多くの方法があります。キャッシュレス化の時代ですから、多くの現金を持ち歩く人も減ってきました。さまざまな支払い方法が確立され、今後も増えることでしょう。かく言う私もクレジットカードの愛用者ですから、いつも親切に対応していただき頭が下がる思いです。
ちなみに、現金以外ではQUOカードを除くほとんどの支払い方法でレシートに伝票番号が印字されました。全てを試したわけではありませんが、ほとんどのキャッシュレス決済では伝票番号が印字されると考えて良いでしょう。
今回は、伝票番号の割り当て法則を探し、一番風呂レシートを入手するというテーマで調査した記録をお届けしたいと思います。(※その日一発目の取引ではなかったので厳密には一番風呂ではないのですが、本記事では便宜上、一番風呂レシートと呼称することとします)
改めましてこんにちは。りきすいと申します。西日の眩しいところから失礼します。
早速、本格的な調査に移りたいと思います。
まず、調査のためにここ数日分のレシートを整理し、Excelでデータにまとめました。
ただ、まとめてみるとあまりにも乱雑です。
購入時刻、金額、購入物、支払い方法…記していませんがついでに言えば店舗まで、あらゆる要素がバラバラです。こんなレシートを並べても法則なんてわかるはずがありません。何の要素で番号が変化するのかを知るためにも、まずはとにかくデータを集めなければなりません。
一応、会社の同僚の身近にセブンイレブンの店員さんがいるとのことだったので、番号の法則を知らないか聞いてもらったんですが、わからなかったそうです。「考えたことも無かった。何でそんなこと知りたいの?」と気味悪がられたそうです。
それはそうと、ここまでで14件のデータしかないとは言え下7桁の頭の数は1と2だけでそれ以外の数が無いんですよね。ABC-DEFGと数があって、ABCの部分は100~299の間でランダムに配列されているのか?そうなると000~099、あるいは300~999の範囲は無いのか?あるなら見てみたいけれど、どうすれば見れるのか…
「店舗のエリアで分けてたりしないのかな?」
そう言うのは私が勤める会社の社長。私がこのような調査をしているのだと相談すると快く一緒に頭を悩ませてくれました。
「ちょうど大阪に知ってる人がいるから、連絡してレシート持ってないか聞いてみるよ!」
持つべきものは理解のある上司とよく言いますが、まったくその通りですね。自分で言うのもなんですが、こんなよくわからない相談をされて更に他人に連絡できる行動力を持つ社長の器に感服です。チョロいもんですね。
とは言え、私の持つレシートは今のところすべて私の生活圏内にある店舗のものです。社長の言うとおり、地方区分等で分けられている可能性があるのも十分に考えられますから、ここは私も情報を集めないといけません。私が住んでいる広島県は中国地方ですから、それ以外の地方の情報を集めましょう。
私が最も利用しているSNSのTwitterで書き込みをしました。県外のフォロワーさんも何人かいらっしゃいますから、これである程度の情報が集まるはずです。後で気付いたんですが、中部地方が抜けていましたね。大変申し訳ありません、中部の人。
結局、大阪・愛知・沖縄とレシートの情報があつまったのですが、
大阪府 225-0521
愛知県 118-6760
103-5670
沖縄県 291-6783
という結果となりました。あまり大きな違いはありませんね。どうやら、店舗エリアも関連性は薄いようです。
しかしへこたれている暇はありません。潰せる可能性を潰すためにも、どんどん動きましょう。
というわけで、同じ時刻のレシートを用意してみました。複数の商品を持って「お会計、別でお願いします」と魔法の言葉を唱えるだけでレシートは2枚手に入るのです。
左 104-5173
右 190-7280
そしてこのデータによって取引の通し番号ではないことが確定しましたし、購入時刻も伝票番号に影響しない可能性が高まりました。同じ時刻なのに番号はかなりバラけてしまいましたからね。とは言え、もしかすると時間帯によっては番号の傾向が変わるかもしれません。まだ可能性を捨て切ることはできません。
残った主な要素としてはこれくらいでしょうか。これらの要素について検証していくこととしましょう。
しかし私は飽きっぽく自堕落な性分です。なるべく楽に検証するためにも、実現可能な範囲でこれらの4つの要素を調べられる最も効率的な買い物の仕方をしなければなりません。そうして私はたった一つの方法に辿り着きました。
それこそが24時間耐久30分リレーです。
ルールを説明します。
1.丸一日、30分おきにセブンイレブンで買い物をすること。
以上!!
購入物は区切りを付けて買う物を決めておけば良いですし、支払方法は前半12時間と後半12時間で変えれば良いでしょう。これなら金額も同じ物を買えば固定ですし、30分区切りとは言え時間帯で番号に変化があるかも調査できます。完璧な作戦です!
30分おきの買い物というのは、人によっては面倒に感じるかもしれませんが、幸い私には地の利があります。
なんたって目と鼻の先にセブン、ありますからね!
最速1分というお買い物タイムを叩き出せる好立地。これなら30分おきの買い物も一切苦にはならないでしょう。
実施日時は4月5日21:00〜4月6日20:30です。
途中の買い物忘れ防止のため、アラームもセット!これで準備は万全ですね。
それでは、行ってきまーす!
品物を買って…
エクセルに打ち込みます。後でまとめて打ち込むのも手間ですからね。こうして都度入力すれば、耐久リレーが終わる頃には立派な調査記録が完成している寸法です。我ながら無駄のない動きですね。
買って…
打ち込み…
買って…
打ち込み…
買って…
打ち込んでいきます。
ただでさえ終わっていた机周りが取り返しのつかない状態になりつつありますが、これも調査のためです、仕方ありません。
買っている品物に偏りがありますね。具体的に言うと4月4日に新発売したばかりの綾鷹カフェ ほうじ茶ラテ440mlを重点的に買いました。
綾鷹カフェ 抹茶ラテ440mlの無料引換券が付くキャンペーンを行なっていたためです。これで当面の飲み物と糖分に困ることはありません。
買い物の半分以上はほうじ茶ラテを買っていました。そんなわけなので私は30分おきにほうじ茶ラテを購入しに来る不審人物として店員に通報されないかを心配していました。何せ最低2人体制の店員のシフトは6〜7時間くらいで交代するようなので、6回くらい連続で同じ店員が対応するのもザラ、3回目くらいからもう既に不審そうな目を向けてきていました。しかしどれだけ不審そうな目を向けようとも毎回律儀に「またお越しくださいませ」と言う姿は不憫でした。申し訳ないのですが、ちょっと面白かったですね。
"通報されないかを心配する私"と"仕事とは言え得体の知れない輩を30分おきに相手しないといけない店員"との静かな闘いが巻き起こっていました。『30分おきに同じ店舗で買い物をしてはいけない』という条例が無くて助かりました。
ただ、私の懸念をよそに特に何事も無く調査は進んでいき、そうこうしているとあっという間に24時間が過ぎました。
そうして集まったレシートが48枚。
色々買ったので置き場所に困るほど多くの品物があります。諸事情のために栄養ドリンク等が既に開封済みとなっていますが、残るものは少しずつ消費していくとしましょう。
ただ残念なことに、24時間耐久リレーではほとんど情報を得ることができませんでした。
こちらをご覧ください。30分の間隔を空けて同じ物を購入したレシートですが、
左から 210-4968
223-1121
118-2066
244-4354
という下7桁番号です。ほぼ全ての要素が同じであるにも関わらず、見事に番号がバラけてしまいました。つまり、取引内容の要素とはほとんど関係のない割り当て方法によって番号が割り当てられている可能性が高まったのです。
しかし、一つだけ判明しました!
結局、24時間の調査をしても頭の数は1と2のどちらかしか見ることができませんでした。しかしその数はどうやら打ち込んだレジによって変わることがわかったのです。
こちらをご覧ください。冒頭のレシートです。下7桁の番号は 284-7143 でしたね。
右側に印字されているレジ#○の番号によってその店舗内のどのレジで処理したかを分けているようなのですが、このレジ番号が下7桁の頭部分だと判明しました。つまりこのレジ#2のレジで処理されたレシートの下7桁は全て2XX-XXXXとなるのです。
私が出没したセブンイレブンではこのようなレジ配置をしているのですが、奥側のレジが#1、入口側のレジが#2でした。どう足掻いても1と2のどちらかしか出なかったわけですね。ということはレジが3台以上ある店舗ならば3以上の数字を見ることができるわけです。
それでは別店舗でお買い物です。
350-3433
来ました!300番台です!
これで不明なのは残り下6桁になりました。偉大な進歩です!
ちなみに、レジ#○以外にも責○○○という項目があります。これは入力業務を行った店員コードのようですが、集めた情報から見ても伝票番号には関係無さそうです。
せっかくなので店員コードも含めて項目を増やし、エクセルの調査表をパワーアップしました。他にも税抜金額、品数等の項目を増やしてみたのですが、どの要素で見ても番号の割り当てに共通点らしきものはありませんでした。
やはり下6桁の番号には統一性が無く不規則な割り当てをされているようです。どの桁でも0〜9の全ての番号が出現しているのです。ランダム、なのかなあ…
しかし、ランダムではない場合の仮説も一つ立ちました。
この仮説は、特定処理Xが完了した時点でのレジスター内部時計におけるコンマ以下の秒数第6位までの数を伝票番号下6桁とするものです。少し小難しい話をしますので、トラさんの画像まで読み飛ばしていただいて構いません。
伝票番号下6桁を毎秒00-0000〜99-9999の範囲で変化している変数だと仮定します。変数は00-0000から始まり、100万分の1秒つまり1マイクロ秒ごとに変数を1ずつ加算し、ちょうど999,999マイクロ秒を迎える頃には99-9999。1マイクロ秒後(1,000,000マイクロ秒時点)に1を加算するとオーバーフローを起こして00-0000に戻り、以降は毎秒同じ処理をループするプログラムが組み込まれているのではないかと考えました。
はい、みなさん揃いましたね。眠たいですが頑張りましょうね!
もしもレジの特定処理Xが完了するタイミングで番号の割り当て処理が発生するならば、割り当て処理のタイミングを合わせることで、同じ番号を出すことができるかもしれません。特定処理Xの完了時期が、例えば1.086294秒時点と28.086294秒時点で同一の伝票番号(下6桁08-6294)が出るとする説です。(※伝票番号はなるべく被らないようにした方が良いですが、法律上被ったらダメというわけではないようです。取引内容がレジスターに記録されてるので番号一緒でも困るわけではないですしね)
仮説通りならば、特定処理Xの完了時期が000001マイクロ秒時点になるようタイミングを調節すれば、当初の目的である一番風呂レシートを入手することができるというわけですね!
ちなみに、オリンピックのオフィシャルタイムキーパーを務める時計メーカーブランド、オメガのクアンタム・タイマーというのを使えばマイクロ秒単位の測定もできるようです。まあ、どのみち1マイクロ秒の差をピンポイントで狙うことは人力ではほとんど不可能に近いです。よく、格闘ゲームなどでは1フレームの誤差が命取りと言われますが、このフレームという単位は1秒間を60分割した表現だそうです(1フレーム=約0.017秒)。比べて100万分割(1マイクロ秒=0.000001秒)というのがどれほど途方もない数字なのかは、わかっていただけると思います。
こんなことを言っていますが私にプログラミングの知識はほとんどありませんので、今熱弁した内容はただの戯言に過ぎません。あしからず。
ですが検証するには十分な仮説です。となれば、特定処理Xの処理内容が何かを突き止めなければいけません。
お会計処理の大まかな流れはこのようになっています。
まず、レジ打ちを始める前に店員さんが何かしらのスイッチを押しているのを見ました。これが会計スタートの処理と思われます。
次に、商品を全て打ち込み終わったあと支払い画面に移るためのスイッチを押しています。これが打ち込み完了の処理でしょう。
最後に、支払い完了の処理です。今回はクレジットカードを使用しましたが「カードをお取りください」というアナウンスが発生するタイミングが完了の処理ではないかと予想されます。
その後にレシートが発行されるわけですが、仮説が正しければこの3つの内どれかが特定処理Xというわけです。
ストップウォッチを起動し、.00秒を狙って指定の処理を各5回ずつ実行してもらい、そのレシートの伝票番号を見てみます。仮説通りならばある程度近しい数字が番号に割り当てられるはず。誤差もあるので下4桁を揃えるのは難しいですが、残る上2桁で大きなズレが無ければ仮説立証です。こちらは友人のツテで実際にセブンイレブンの店員さんに協力していただきました。
では、結果をまとめてご覧ください。
どのタイミングでも番号に大きなズレが起こっています。少なくとも、会計スタートと打ち込み完了の処理は関係無いようです。
支払い完了ですが、こちらはクレジットカード払いの特性なのか、カードを差し込むタイミングを統一しても「カードをお取りください」のアナウンスが発生するのに体感でわかるほどの不規則なラグがありました。仮説立証とまではいきませんでしたが、特定処理Xはこの支払い完了処理である可能性が高いです。
さすがにここまで飛ばしちゃダメでしょう。トラさんも怒ってます。ごめんごめん!ごめんってば!
あ!許してくれたみたいですね!
これなら先へ進めそうです。行きますよみなさん!
ということで、伝票番号割り当ての法則について2つの仮説が立ちました!
あとは、このどちらでもない第3の説があるかもしれませんが、私の力ではこれが精一杯です。
ここでこれ以上検証しても埒があきませんから、ここらでレジスターのメーカーに問い合わせてみましょう。
調査の結果、セブンイレブンのレジは東芝テックという電機メーカーのものだとわかりましたので、東芝テックの公式ページにあるお問い合わせフォームから質問を投げてみました。
あっさりお返事は来たのですが、顧客の仕様情報を開示することはできないとのことでした。そりゃそっか。
ではセブンイレブンに問い合わせましょう。お返事が来るまで待つことしかできませんが、いつまででも待つ所存です!!
本記事を投稿した5月7日現在、残念ながらお返事は来ておりません。ある事情からこの記事は5月7日に投稿しなければならなかったため、本記事では返答を明らかにすることはできませんでした。お返事が来たらまた別記事にて公開できたらと思います。
トラさんも残念そうです。かわいそう…
各桁の番号がそれぞれ何回出現したか等を集計してみました。集めたレシートは3月17日〜5月5日の計141枚分です。極端に出現の少ない番号などがあれば面白かったのですが、やはり偏りはほとんど見られませんでした。
最後に、今回の検証中一番風呂レシートに最も近かった伝票番号を載せます。せめてもの供養になれば…
さて、当初は一番風呂レシートを狙うという目的でしたが、結局自力で下6桁00-0001の番号を持つレシートを入手することはできませんでした。
しかし、今回の検証から100万分の1の確率で00-0001が出現する可能性は示唆されました。
2022年5月現在では、セブンイレブンの国内店舗数は20,000店を超えるそうです。各店舗での1日平均取引数が100回くらいだと仮定して、そのうちキャッシュレス決済が半分の50回だとしても、全国では100万回を超える伝票番号の割り当てが毎日のように行われるのです。
00-0001は毎日のようにどこかで現れているのです。今、あなたが要らないと捨てたレシートが、100万分の1の確率で割り当てられた番号を持つレシートなのです。特に何も考えず捨てられる一番風呂レシートがあると思うと…悔しくて仕方ありません!!
私は生涯の中で、あと何度、セブンイレブンのレシートを受け取るだろうか。生きているうちに、一番風呂レシートに、出会えるだろうか…
不安だけれど、私にはたくさんの仲間がいます!
今回出会ったこのレシートたちを、その軌跡を、私は決して忘れない。共に歩み、いつか必ず、一番風呂レシートに辿り着いてみせます!
その時まで、お前たち、よろしくな!
それでは、またいつかお会いしましょう!
パラ…
TO BE CONTINUED … ?