· HARUBOUYA · dataflow · 12 min read

会員データを店舗とECで1つにする手順

同じ人が店舗とECで別の会員として登録されています。統合のキーの選び方、名寄せの進め方、統合後に必ず壊れるレポートについて書きます。

店舗のレジとECの間でデータを同期している図

店舗で入会した会員と、ECで登録した会員が別々に存在しています。同じ人なのに、購入履歴が2つに分かれています。

この状態では、顧客あたりの購入金額も、来店頻度も、実態より低く出ます。分析の精度以前に、事実と違う数字で意思決定しています。

統合は技術的には難しくありません。難しいのは、どこまでを同一人物と見なすかを決めることです。

問題:分かれたまま集計している

見ている数字分かれているとどうなるか
会員数実際より多く出ます
1人あたりの購入金額実際より低く出ます
リピート率実際より低く出ます
新規/既存の比率既存が新規として数えられます

どの数字も「実態より悪い方向」にずれます。改善施策の効果も同じだけ薄く見えます。

統合のキーを決める

同一人物と判定する材料を決めます。1つでは足りません。

キー一致の信頼度問題
会員番号高いです両方に付与されていれば苦労しません
電話番号高いです家族で共有、変更されます
メールアドレス中複数所持、入力ミス
氏名+生年月日中同姓同名、旧姓
氏名+住所中転居、表記ゆれ
クレジットカード情報—使いません。保持してはいけないです

現実的な組み合わせは次の3段階です。

段階条件扱い
確実電話番号が完全一致 かつ 氏名が一致自動で統合
ほぼ確実メールアドレスが完全一致自動で統合
要確認氏名+生年月日が一致、電話が不一致統合しません。候補として保留

迷ったら統合しません。誤って統合すると、他人の購入履歴が混ざります。分けたままなら、数字が低く出るだけで済みます。

表記ゆれの整え方

判定の前に、両側のデータを同じ形に揃えます。

項目揃え方
氏名全角・半角、姓名の間の空白を削除。カナは全角カタカナに統一
電話番号ハイフンと空白を削除。先頭の0を保持(文字列で扱います)
メールアドレス小文字に統一。前後の空白を削除
郵便番号ハイフンを削除。7桁に統一
生年月日日付型に統一。和暦は西暦に変換

電話番号を数値型で扱わないでください。先頭の0が消え、一致しなくなります。

進め方

1. 両側のデータを別々のテーブルとして取り込む(元データは変更しない)
2. 表記を揃えた列を追加する(元の列は残す)
3. 判定ルールで候補を作る
4. 候補の件数を確認する
5. 統合用のID(共通ID)を発行する
6. 分析はこの共通IDで行う

要点は、元のシステムのデータを書き換えないことです。統合は分析基盤の上だけで行い、店舗側・EC側のシステムはそのままにします。書き換えると、戻せなくなります。

統合表の形

共通ID元のシステム元のID判定に使ったキー判定日
U000001店舗S-12345電話+氏名2025-08-01
U000001ECE-98765電話+氏名2025-08-01

判定に使ったキーを残します。後から「なぜこの2件が同一人物なのか」を説明できる状態にしておきます。

統合したあとに壊れるもの

ここを想定していないと、統合の直後に混乱します。

壊れるもの何が起きるか対処
会員数のレポート数が減ります減った理由を先に周知します
過去との比較統合前後で不連続になります過去分も同じルールで再計算します
リピート率上がります定義の変更として説明します
顧客リストの件数配信対象が減ります配信設定を見直します
重複除外の集計ルールが二重になります統合後のIDに一本化します

会員数が減ることを、事前に関係部署へ伝えます。何も言わずに数字が減ると、集計ミスを疑われます。

個人情報の扱い

やること内容
利用目的の確認統合して分析することが、取得時の利用目的に含まれるか
保持する項目の最小化判定に使わない項目は分析基盤に持ち込みません
権限の設定氏名・連絡先が見える人を限定します
判定結果の保存統合の根拠を記録し、取り消せるようにします

取得時の利用目的を先に確認します。技術的にできることと、してよいことは別です。

やること

手順1. 重複の規模を先に数える

統合の前に、どのくらい重なっているかを数えます。

-- 電話番号が両方に存在する件数
SELECT COUNT(DISTINCT phone_normalized)
FROM store_members
WHERE phone_normalized IN (
  SELECT phone_normalized FROM ec_members
)

重複が1%なら、統合の優先度は低いです。20%あるなら効果は大きいです。数えてから着手を決めます。

手順2. 100件だけ目で確認する

自動判定の結果から100件を抜き出し、本当に同一人物かを目で見ます。誤判定が1件でもあれば、ルールを緩めすぎています。

手順3. 保留した候補の扱いを決める

「要確認」に落ちた候補は、放置すると永遠に残ります。

対応進め方
店舗で確認します次回来店時に会員情報の更新を案内します
ECで確認しますログイン時に登録情報の確認を促します
統合しません件数を把握したうえで、そのままにします

手順4. 定期実行にする

新しい会員は毎日増えます。判定を月1回など定期的に回します。初回だけで終わらせると、半年で元に戻ります。

失敗例

失敗何が起きるか代わりにやること
元のシステムのデータを書き換えます誤統合を戻せません分析基盤の上だけで統合します
電話番号を数値型で扱います先頭の0が消えて一致しません文字列で扱います
ルールを緩くして統合率を上げます他人の履歴が混ざります迷ったら統合しません
判定の根拠を残しません後から説明できません使ったキーと日付を記録します
会員数が減ることを伝えません集計ミスを疑われます事前に周知します
過去分を再計算しません統合前後で数字が不連続になります同じルールで過去も計算します
初回だけで終わります半年で元の状態に戻ります定期実行にします

まとめ

  • 分かれたままだと、どの数字も実態より悪い方向にずれます
  • 判定は3段階に分け、「要確認」は統合しません。誤統合は戻せません
  • 表記を揃えてから判定します。電話番号は文字列で扱います
  • 元のシステムは書き換えず、分析基盤の上だけで統合します
  • 判定に使ったキーを残します。後から説明できる状態にしておきます
  • 統合すると会員数が減ります。事前に関係部署へ伝えます
  • 取得時の利用目的に、統合して分析することが含まれるかを先に確認します
  • 月1回など定期実行にします。初回だけでは半年で元に戻ります

最初にやることは、重複がどのくらいあるかを数えることです。1%なら後回しでよく、20%あれば最優先になります。

Share:

参考になったら、いいねを押してください。

コメント

    お名前とコメントは、確認後にこのページで公開されます。メールアドレスや電話番号などは書かないでください。

    Back to Blog

    Related Posts

    View All Posts »