🆗

【Python・Pysparkで学ぶ!】データ分析の基礎【深掘分析①決済ステータス】

2025/01/18に公開
2

【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つです。
  • 継続月数クラス(max_cont_months)

    • 決済者のナーチャリングを継続月数クラスを用いて評価
      • 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
  • 決済ステータス(pay_status)

    • 決済者のナーチャリングをステータスを用いて評価する。
      • 過去決済なし・当月決済なし → 未利用
        • 例) 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

fact601fact601

具体的なクライアントとのビジネスシーンを想定しながら分析するのがリアルで面白かったです!