🆗
【Python・Pysparkで学ぶ!】データ分析の基礎【深掘分析①決済ステータス】
【Python・Pysparkで学ぶ!】データ分析の基礎【深掘分析①決済ステータス】
↓決済ステータステーブル(pay_status_table)のサンプル
shop_id | shop_name | industry | pay_method | pay_status | max_cont_months | user_cnt | pay_mean_raw | pay_mean_without_tax |
---|---|---|---|---|---|---|---|---|
shop0001 | 佐藤レストラン | food | cache | 新規 | 1 | 1 | 2310 | 2100 |
shop0001 | 佐藤レストラン | food | card | 復帰 | 1 | 1 | 3630 | 3300 |
shop0001 | 佐藤レストラン | food | card | 新規 | 1 | 2 | 3080 | 2800 |
shop0001 | 佐藤レストラン | food | code | 新規 | 2 | 1 | 1210 | 1100 |
shop0002 | 鈴木カレー | food | cache | 復帰 | 1 | 1 | 1650 | 1500 |
shop0002 | 鈴木カレー | food | card | 新規 | 1 | 1 | 2090 | 1900 |
shop0003 | 高橋カフェ | food | cache | 新規 | 2 | 2 | 440 | 400 |
shop0003 | 高橋カフェ | food | card | 復帰 | 1 | 1 | 550 | 500 |
shop0003 | 高橋カフェ | food | card | 新規 | 1 | 1 | 770 | 700 |
shop0003 | 高橋カフェ | food | code | 新規 | 1 | 1 | 330 | 300 |
上記のような決済ステータスを集約したテーブルがあると仮定します。
◾️要望
とある日の朝会MTGにて、クライアントから次のような要望を頂きました。
『1~3月決済の決済ステータスから、加盟店向けの深掘分析をまとめてほしい』
本稿では、クライアントからの要望に答えながら、データ分析 について学びます。
よろしくお願いいたします。
◾️AsIs(現状把握)
エンジニアとクライアント間の認識に相違があるとアウトプットのイメージに相違が発生します。
はじめに、 データアセスメントの観点から論点を提示し、クライアントと集計ロジックの認識を擦り合わせるタッチポイント を設けましょう。
◾️タッチポイント議事録
- 店舗ID(shop_id)と店舗名称(shop_name)
- 店舗IDと店舗名称は1対1リレーション
- 店舗IDはユニーク
- 業界(industry)
- 店舗IDと業界は1対多リレーション
- 決済種別(pay_method)
- 決済種別は["cache","card","code"]の3つです。
-
- 決済者のナーチャリングを継続月数クラスを用いて評価
- 1月決済・2月決済・3月決済 → 3
- 1月決済・2月決済・3月未決済 → 2
- 1月決済・2月未決済・3月決済 → 1
- 1月未決済・2月決済・3月決済 → 2
- 1月決済・2月未決済・3月未決済 → 1
- 1月未決済・2月決済・3月未決済 → 1
- 1月未決済・2月未決済・3月決済 → 1
- 1月未決済・2月未決済・3月未決済 → 0
- 決済者のナーチャリングを継続月数クラスを用いて評価
-
- 決済者のナーチャリングをステータスを用いて評価する。
-
過去決済なし・当月決済なし → 未利用
- 例) 1月に決済なしの人は"未利用"。1月決済なしかつ2月決済なしの人は"未利用"。
-
過去決済なし・当月決済あり → 新規
- 例) 1月に決済ありの人は"新規"。1月決済なしかつ2月決済ありの人は"新規"。
-
前月決済あり・当月決済あり → 継続
- 例) 1月決済ありかつ2月決済ありの人は"継続"。
-
過去決済あり・前月決済なし・当月決済あり → 復帰
- 例) 1月決済ありかつ2月決済なしかつ3月決済なしの人は"復帰"。
-
過去決済あり・当月決済なし → 休眠
- 例) 1月決済ありかつ2月決済なしの人は"休眠"。
- 注意:決済ステータスが"未利用"や"休眠"の時、合計金額が0となるため、アウトプットに反映されません。
-
過去決済なし・当月決済なし → 未利用
- 決済者のナーチャリングをステータスを用いて評価する。
- 平均金額(pay_mean_raw,pay_mean_without_tax)
- 税込合計金額(pay_mean_raw) と 税抜合計金額(pay_mean_without_tax)
- 人数の集計(user_cnt)
- 各カテゴリ毎にuser_idのユニーク数をカウントする。
◾️懸念
クライアントから「中村クレカ」について以下の懸念があがりました。
『shop0008:中村クレカは、3ヶ月のみ1回があったが、その金額が例外的に高くなっている。その時の顧客は飲食のオーナーだった』
shop_id | shop_name | industry | pay_method | pay_status | max_cont_months | user_cnt | pay_mean_raw | pay_mean_without_tax |
---|---|---|---|---|---|---|---|---|
shop0008 | 中村クレカ | EC | card | 新規 | 1 | 1 | 121000 | 110000 |
この懸念に対する対応として以下の合意を得ました。
合意『中村クレカを論点として挙げる。それに伴い、他の分析は中村クレカの実績を除外する。』
◾️アウトプットイメージ
タッチポイントより、クライアントとアウトプットイメージを次の通り合意いたしました。
例)
- 深堀観点①
- 論点:
- 仮説:
- ネクストアクション打診:
- 深堀観点②
- 論点:
- …
- 深堀観点N
- 論点:
- 仮説:
- ネクストアクション打診:
◾️ToBe(可視化)
タッチポイント議事録をもとに、**データをリレーショナルテーブルからグラフ・チャートを作成します。
◾️Industry(業界)
業界 | 決済人数 |
---|---|
EC | 5 |
food | 21 |
general | 6 |
総計 | 32 |
決済人数/業界
業界 | 決済平均金額 |
---|---|
EC | 29370 |
food | 81290 |
general | 2750 |
総計 | 113410 |
決済平均金額/業界
◾️Pay method(支払手段)
業界 | cache | card | code | 総計 |
---|---|---|---|---|
EC | 0 | 2 | 3 | 5 |
food | 8 | 9 | 4 | 21 |
general | 4 | 1 | 1 | 6 |
総計 | 12 | 12 | 8 | 32 |
決済人数 [決済手段/業界]
業界 | cache | card | code | 総計 |
---|---|---|---|---|
EC | 0 | 14300 | 15070 | 29370 |
food | 44330 | 34540 | 2420 | 81290 |
general | 1320 | 880 | 550 | 2750 |
総計 | 45650 | 49720 | 18040 | 113410 |
決済平均金額 [決済手段/業界]
◾️Pay status(決済ステータス)
業界 | 継続 | 新規 | 復帰 | 総計 |
---|---|---|---|---|
EC | 0 | 4 | 1 | 5 |
food | 1 | 15 | 5 | 21 |
general | 3 | 2 | 1 | 6 |
総計 | 4 | 21 | 7 | 32 |
決済人数 [決済ステータス/業界]
業界 | 継続 | 新規 | 復帰 | 総計 |
---|---|---|---|---|
EC | 0 | 25410 | 3960 | 29370 |
food | 2310 51040 | 27940 | 81290 | |
general | 1760 | 550 | 440 | 2750 |
総計 | 4070 | 77000 | 32340 | 113410 |
決済平均金額 [決済ステータス/業界]
◾️Max count months(最高継続月数)
業界 | 1 | 2 | 3 | 総計 |
---|---|---|---|---|
EC | 4 | 0 | 1 | 5 |
food | 16 | 5 | 0 | 21 |
general | 3 | 1 | 2 | 6 |
総計 | 23 | 6 | 3 | 32 |
決済人数 [最高継続月数/業界]
業界 | 1 | 2 | 3 | 総計 |
---|---|---|---|---|
EC | 141570 | 0 | 8800 | 150370 |
food | 76010 | 5280 | 0 | 81290 |
general | 990 | 550 | 1210 | 2750 |
総計 | 218570 | 5830 | 10010 | 234410 |
決済平均金額 [最高継続月数/業界]
◾️ToBe(最終アウトプット)
-
深堀観点①
- 論点:飲食事業が一番多く、次にECが強いの決済が多い
- 仮説:飲食が主事業として売上を支え、飲食で成長したブランド力を使用し、ECの売上が成長している。つまり、もし、飲食事業が拡大すれば、ECの売上が連動して増加する。
- ネクストアクション打診:飲食事業の広告を打ち出す。
-
深堀観点②
- 論点:card決済は平均決済金額が高い
- 仮説:EC事業を中心に、実店舗でもカード払いを促進させることで売上向上につながる。
- ネクストアクション打診:カード会社とのコネクションを強め、1ステージ高い加盟店になる条件を聞きに行く。
-
深堀観点③
- 論点:飲食事業の新規率がとても高いが、継続率は低い。
- 仮説:顧客離れが原因にあるため、提供内容を改善することで離脱率を減らす。
- ネクストアクション打診:飲食店舗調査
-
深堀観点④
- 論点:shop0008:中村クレカで例外的な決済が行われた。
- 仮説:中村クレカに訪れたお客様が例外的な可能性もあるが、中村クレカのポテンシャルも評価できる。お客様が飲食のオーナーであることから、もしかすると、そもそも商材が個人向けではなく、法人向けな可能性がある。
- ネクストアクション打診:法人営業の土壌を整えるため、営業代行に販売機会創造を依頼する。
『結論』
◾️論点抽出→仮説立案→ネクストアクションを構築する意義(ビジネスサイド)
- データから高利益分野や成長の可能性が高い事業を特定し、リソースの優先度を示す。
- データ分析を元に仮説を立て、具体的なアクションを提案することで、経営者や事業部の戦略立案を支援する。
◾️論点抽出→仮説立案→ネクストアクションを構築する意義(コンサルサイド)
- 仮説を分かりやすく伝えるレポートを作成し、クライアントの納得感を得るためのスキルを磨く。
- データから仮説を立て、アクションを提案し、その結果を測定・改善するサイクルを確立する。
Discussion
具体的なクライアントとのビジネスシーンを想定しながら分析するのがリアルで面白かったです!
いつもありがとうございます!