Slide 1

Slide 1 text

データサイエンスをするつもりが、 KPI数値算出がなーんできてないぜ! 1 ~サブスクリプション型契約の集計の難しさ~ どすこい Burikaigi 2025

Slide 2

Slide 2 text

Table of contents ● ⾃⼰紹介 ● サブスク型契約の難しさ ● サブスク型契約の⼤量で複雑なパターンとその対処 1. 契約と集計期間の無数のパターン 2. 新規契約のパターンの網羅 3. ⼤量な更新契約のパターン ● むすび 2

Slide 3

Slide 3 text

3 新卒1年⽬ Webエンジニア どすこい 武田 大佑 はじめての登壇でやばいです 去年の4⽉に社会⼈になって、 夏頃に事業部配属されました! X: @doskoi64

Slide 4

Slide 4 text

4 ゲームサーバのホスティングサービス リリースしてまだ8ヶ⽉⽬(僕の⽅が社会⼈の先輩)

Slide 5

Slide 5 text

⾃⼰紹介 そんな、新規プロダクトにアサインされた時に挑んだ 最も⼤変だったタスクの時のお話をします... 今⽇話すこと 5

Slide 6

Slide 6 text

⾃⼰紹介 サブスク型契約って複雑だ! この複雑さをさらに深ぼっていって、 具体的にどのように対処したのかをおはなしします 今⽇話すこと 6

Slide 7

Slide 7 text

Table of contents ● ⾃⼰紹介 ● サブスク型契約の難しさ ● サブスク型契約の⼤量で複雑なパターンとその対処 1. 契約と集計期間の無数のパターン 2. 新規契約のパターンの網羅 3. ⼤量な更新契約のパターン ● むすび 7

Slide 8

Slide 8 text

8 サブスク型契約の集計の難しさ

Slide 9

Slide 9 text

サブスク型契約の集計の難しさ サブスク型の契約とは ⽉額、年額など定期的にお⾦を⽀払って サービスを利⽤する契約 例: NETFLIX, Youtube プレミア, 家賃 買い切り型の契約とは ⼀回お⾦を払ったら、それでサービスを受 けられる契約 例: 弁当, 飲み物, PC, Tシャツ, 家(?) まずは⽤語説明 9 KPIとは 事業の⽬標を達成するための進捗を測る定 量的な指標 例: 売上数, 売上額, 契約数, アクセス数 🤔

Slide 10

Slide 10 text

サブスク型契約の集計の難しさ サブスク型の契約とは ⽉額、年額など定期的にお⾦を⽀払って サービスを利⽤する契約 例: NETFLIX, Youtube プレミア, 家賃 買い切り型の契約とは ⼀回お⾦を払ったら、それでサービスを受 けられる契約 例: 弁当, 飲み物, PC, Tシャツ, 家(?) まずは⽤語説明 10 KPIとは 事業の⽬標を達成するための進捗を測る定 量的な指標 例: 売上数, 売上額, 契約数, アクセス数 契約動向とは 新規契約、更新契約、解約などの契約の状 態が変わること 今回はサブスク型の契約のKPIのうち... 新規/更新契約数、解約数、有効契約数 についての話をします! 🤔

Slide 11

Slide 11 text

サブスク型契約の集計の難しさ 説明のまえに概要を⾔っておくと... 買い切り型と⽐較して ● 契約の状態遷移や過去の情報を⾒なければいけない ● 契約の状態は集計期間によって変わる ● 考慮すべきパターンが多い サブスク型の契約動向の集計の難しいんですよ! 11

Slide 12

Slide 12 text

サブスク型契約の集計の難しさ 説明のまえに概要を⾔っておくと... 買い切り型と⽐較して ● 契約の状態遷移や過去の情報を⾒なければいけない ● 契約の状態は集計期間によって変わる ● 考慮すべきパターンが多い 意外と難しいんです😭 サブスク型の契約動向の集計の難しいんですよ! 12

Slide 13

Slide 13 text

サブスク型契約の集計の難しさ ほんまか?? 13 🤔

Slide 14

Slide 14 text

サブスク型契約の集計の難しさ 説明の前に... 使う図の説明します! // TODO: 丁寧に説明する ほんまか?? 14

Slide 15

Slide 15 text

サブスク型契約の集計の難しさ 15 集計期間(端も含む) 始端 終端 新規契約期間(終端を除く) 終端 始端 更新契約期間(終端を除く) 終端 始端

Slide 16

Slide 16 text

サブスク型契約の集計の難しさ 具体例1 16 1/1 1/31 12/15 1/15 この期間での 新規契約数、解約数、有効契約数は?? 1/20

Slide 17

Slide 17 text

サブスク型契約の集計の難しさ 具体例1 17 1/1 1/31 12/15 1/15 新規契約数: 1 解約数: 1 有効契約数: 1 注:有効契約数は集計期間終端でのものを指します! 1/20 有効! 解約! 新規契 約!

Slide 18

Slide 18 text

サブスク型契約の集計の難しさ 具体例2 18 1/1 1/31 12/15 1/15 この期間での 新規契約数、更新契約数、解約数、有効契約数は?? 1/20 1/19

Slide 19

Slide 19 text

サブスク型契約の集計の難しさ 具体例2 19 1/1 1/31 12/15 1/15 1/20 1/19 新規契約数: 1 更新契約数: 1 解約数: 1 有効契約数: 1 更新!

Slide 20

Slide 20 text

サブスク型契約の集計の難しさ (再掲) 買い切り型と⽐較して ● 契約の状態遷移や過去の情報を⾒なければいけない ● 契約の状態は集計期間によって変わる ● 考慮すべきパターンが多い 意外と難しいんです😭 サブスク型の契約動向の集計の難しいんですよ! 20

Slide 21

Slide 21 text

サブスク型契約の集計の難しさ KPIの数値 = 集計期間における売上数 そのまま数えればよさそう 買い切り型のKPIの数値の求める例 21

Slide 22

Slide 22 text

サブスク型契約の集計の難しさ KPIの数値 = 集計期間における売上数 そのまま数えればよさそう 買い切り型のKPIの数値の求める例 22 3個! 3個! 4個!

Slide 23

Slide 23 text

サブスク型契約の集計の難しさ KPIの数値 = 新規契約数、更新契約数、解約数、有効契約数 そのまま数えればよさそう..... サブスク型のKPIの数値の求める例 23

Slide 24

Slide 24 text

サブスク型契約の集計の難しさ KPIの数値 = 新規契約数、更新契約数、解約数、有効契約数 そのまま数えればよさそう.....??? サブスク型のKPIの数値の求める例 24 新規1, 有効1

Slide 25

Slide 25 text

サブスク型契約の集計の難しさ KPIの数値 = 新規契約数、更新契約数、解約数、有効契約数 そのまま数えればよさそう.....??????????? サブスク型のKPIの数値の求める例 25 新規1, 有効1 😇 😇

Slide 26

Slide 26 text

サブスク型契約の集計の難しさ KPIの数値 = 新規契約数、更新契約数、解約数、有効契約数 そのまま数えればよさそう.....??????????? サブスク型のKPIの数値の求める例 26 新規1, 有効1 新規1, 更新1,有効3 更新1,有効2,解約2

Slide 27

Slide 27 text

買い切り型と⽐較して ● 契約の状態遷移や過去の情報を⾒なければいけない ● 契約の状態は集計期間によって変わる ● 考慮すべきパターンが多い サブスク型のKPIの数値の求める例 27 サブスク型契約の集計の難しさ

Slide 28

Slide 28 text

サブスク型契約の集計の難しさ サブスク型契約って複雑だ! ということがわかっていただけたのですが、 この複雑さをさらに深ぼっていって、 具体的にどのように対処したのかをおはなしします 今⽇話すこと 28 ↑混沌のサブスク契約に光をもたらす

Slide 29

Slide 29 text

サブスク型契約の集計の難しさ 具体例1(復習) 29 1/1 1/31 12/15 1/15 新規契約数: 1 解約数: 1 有効契約数: 1 (先ほどの図を⾒せながら⽔を⼀⼝) 1/20 有効! 解約! 新規契 約!

Slide 30

Slide 30 text

Table of contents ● ⾃⼰紹介 ● サブスク型契約の難しさ ● サブスク型契約の⼤量で複雑なパターンとその対処 1. 契約と集計期間の無数のパターン 2. 新規契約のパターンの網羅 3. ⼤量な更新契約のパターン ● むすび 30

Slide 31

Slide 31 text

31 サブスク型契約の ⼤量で複雑なパターンとその対処

Slide 32

Slide 32 text

32 1. 契約と集計期間の無数のパターン

Slide 33

Slide 33 text

1.契約と集計期間の無数のパターン ただでさえ契約期間の選択肢がおおいのに、集計期間もいろいろとらなきゃいけない そもそも考えるパターンが多すぎる! 多くの契約期間と集計期間 33

Slide 34

Slide 34 text

1.契約と集計期間の無数のパターン 💡 多くの契約期間と集計期間 34

Slide 35

Slide 35 text

1.契約と集計期間の無数のパターン 💡契約期間と集計期間、どちらか固定する! = 単純化 多くの契約期間と集計期間 35

Slide 36

Slide 36 text

1.契約と集計期間の無数のパターン 契約期間を固定すると... 多くの契約期間と集計期間 36

Slide 37

Slide 37 text

1.契約と集計期間の無数のパターン 契約期間を固定すると... 多くの契約期間と集計期間 37 新規1, 有効1

Slide 38

Slide 38 text

1.契約と集計期間の無数のパターン 契約期間を固定すると... 多くの契約期間と集計期間 38 新規2,有効2

Slide 39

Slide 39 text

1.契約と集計期間の無数のパターン 契約期間を固定すると... 多くの契約期間と集計期間 39 新規1,更新1,有効2

Slide 40

Slide 40 text

1.契約と集計期間の無数のパターン 契約期間を固定すると... だいぶわかりやすくなった 多くの契約期間と集計期間 40 新規2,更新1,有効3

Slide 41

Slide 41 text

1.契約と集計期間の無数のパターン さらにもう⼀⼯夫 41

Slide 42

Slide 42 text

1.契約と集計期間の無数のパターン あと、いったん新規契約から考える! さらにもう⼀⼯夫 42 新規2,有効2 新規2,有効2,解約2 新規0,有効2,解約0

Slide 43

Slide 43 text

1.契約と集計期間の無数のパターン サブスク契約のパターンが多すぎて、集計している場合じゃない... いったんまとめ 43

Slide 44

Slide 44 text

1.契約と集計期間の無数のパターン ● 契約期間を固定して、集計期間を動かす!(単純化) ● まずは新規契約から集計する いったんまとめ 44 44 新規2,有効2 新規2,有効2,解約2 新規0,有効2,解約0

Slide 45

Slide 45 text

2. 新規契約のパターンの網羅 45

Slide 46

Slide 46 text

2. 新規契約のパターンの網羅 問題 ● 新規事業なのもあって、パターンを網羅したことがなかった ○ ”正しい”ことを証明する必要があった ● ビジネスサイドとの厳密な定義の合意をする必要がある(実施したけど今 回は省略) ● 集計ロジックが少し⽢かった(直したけど今回は省略) ● データマイグレーションが並⾏してたので、動いてたのに壊れた(気合い でなんとかしたので省略) ● ⼈⼿が⾜りなかった(気合いでなんとかしたの省略) そもそもなにしたいんだっけ? 46

Slide 47

Slide 47 text

2. 新規契約のパターンの網羅 最終⽬標 サブスク型契約のパターンを網羅して、 集計ロジックのテストの⼗分性を担保する じゃあつぎは網羅しよう! 47

Slide 48

Slide 48 text

2. 新規契約のパターンの網羅 そもそもテストってどうすればいいんだっけ? 48

Slide 49

Slide 49 text

2. 新規契約のパターンの網羅 境界値テストをしよう 代表的な境界値 を設定し、その前後の値もテストする そもそもテストってどうすればいいんだっけ? 49 解約0 解約1 (境界) 解約1

Slide 50

Slide 50 text

2. 新規契約のパターンの網羅 境界値テストをしよう 代表的な境界値 を設定し、その前後の値もテストする そもそもテストってどうすればいいんだっけ? 50 契約の端と集計の端が重なると境界

Slide 51

Slide 51 text

2. 新規契約のパターンの網羅 では、このような境界値はどれだけあるかな? 51

Slide 52

Slide 52 text

2. 新規契約のパターンの網羅 では、このような境界値はどれだけあるかな? 52 解約0→解約1

Slide 53

Slide 53 text

2. 新規契約のパターンの網羅 では、このような境界値はどれだけあるかな? 53 新規0→新規1

Slide 54

Slide 54 text

2. 新規契約のパターンの網羅 では、このような境界値はどれだけあるかな? 54 解約1→解約0,有効1

Slide 55

Slide 55 text

2. 新規契約のパターンの網羅 では、このような境界値はどれだけあるかな? 55 新規1,有効1→新規0,有効0

Slide 56

Slide 56 text

56 2. 新規契約のパターンの網羅 4つの境界値

Slide 57

Slide 57 text

2. 新規契約のパターンの網羅 実は⻑期契約もあるので... これで全部? 57

Slide 58

Slide 58 text

2. 新規契約のパターンの網羅 ちょっと数え⽅が変わります これで全部? 58 (新規1), 解約1 →(新規1),解約0,有効0 (新規0), 解約1 →(新規0),解約0,有効0

Slide 59

Slide 59 text

2. 新規契約のパターンの網羅 ちょっと数え⽅が変わります これで全部? 59 有効1, 新規1 →新規0,有効0 (有効1),新規0 →(有効1),新規1

Slide 60

Slide 60 text

2. 新規契約のパターンの網羅 まとめると 60

Slide 61

Slide 61 text

2. 新規契約のパターンの網羅 新規契約のテストケースは 境界値とその前後: 3 境界値の数: 4 契約の⻑短: 2 なので まとめると 61

Slide 62

Slide 62 text

2. 新規契約のパターンの網羅 新規契約のテストケースは 境界値とその前後: 3 境界値の数: 4 契約の⻑短: 2 なので 3 ✖ 4 ✖ 2 = 24 まとめると 62

Slide 63

Slide 63 text

3. ⼤量な更新契約のパターン 63

Slide 64

Slide 64 text

3. ⼤量な更新契約のパターン 更新契約も同じ感じでできるっしょ 新規契約もできたし 64

Slide 65

Slide 65 text

3. ⼤量な更新契約のパターン 更新(短期)と更新(⻑期)があるので、2倍になる 新規契約もできたし 65

Slide 66

Slide 66 text

3. ⼤量な更新契約のパターン 更新の瞬間にも境界値があるので、4→6(1.5倍)になる 新規契約もできたし 66

Slide 67

Slide 67 text

3. ⼤量な更新契約のパターン 更新契約も同じ感じ...!?!? 3 ✖ 6 ✖ 4 = 72 (3倍) 新規契約もできたし 67

Slide 68

Slide 68 text

3. ⼤量な更新契約のパターン 更新契約も同じ感じ...!?!? 3 ✖ 6 ✖ 4 = 72 (3倍) 新規契約もできたし 68

Slide 69

Slide 69 text

3. ⼤量な更新契約のパターン 境界値を着⽬ この⼤量のパターンをどうするの? 69

Slide 70

Slide 70 text

3. ⼤量な更新契約のパターン 先ほどのテストでカバーしている! この⼤量のパターンをどうするの? 70

Slide 71

Slide 71 text

3. ⼤量な更新契約のパターン この⼤量のパターンをどうするの? 71

Slide 72

Slide 72 text

3. ⼤量な更新契約のパターン 先ほどのテストでカバーしている! この⼤量のパターンをどうするの? 72

Slide 73

Slide 73 text

3. ⼤量な更新契約のパターン 先ほどのテストでカバーしている! この⼤量のパターンをどうするの? 73

Slide 74

Slide 74 text

3. ⼤量な更新契約のパターン 他の更新契約と同じ境界値パターンになる この⼤量のパターンをどうするの? 74

Slide 75

Slide 75 text

3. ⼤量な更新契約のパターン おなじ境界値のパターン 75 どちらかで考えればOK

Slide 76

Slide 76 text

3. ⼤量な更新契約のパターン おなじ境界値のパターン 76 どちらかで考えればOK

Slide 77

Slide 77 text

3. ⼤量な更新契約のパターン これでどれだけ減った? 3 ✖ 6 ✖ 4 = 72 (3倍) だったのが... まとめ 77

Slide 78

Slide 78 text

3. ⼤量な更新契約のパターン これでどれだけ減った? 3 ✖ (6 - 2) / 2 ✖ 4 = まとめ 78

Slide 79

Slide 79 text

3. ⼤量な更新契約のパターン これでどれだけ減った? 3 ✖ (6 - 2) / 2 ✖ 4 = 24 新規の時と同じくらいまで減らせた まとめ 79

Slide 80

Slide 80 text

むすび 80

Slide 81

Slide 81 text

● サブスク契約のKPI数値算出は難しい ● 単純化でパターンを絞ることができる ● 境界値に着⽬することでパターンを網羅できる ● ⼤量の境界値のパターンも、共通な部分がある サブスク型契約って複雑だ! むすび 81

Slide 82

Slide 82 text

82 Thank you!