make-mp-data 3.0.4 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -0
- package/dungeons/array-of-object-lookup-schema.json +327 -0
- package/dungeons/array-of-object-lookup.js +28 -8
- package/dungeons/capstone/capstone-ic3.js +291 -0
- package/dungeons/capstone/capstone-ic4.js +598 -0
- package/dungeons/capstone/capstone-ic5.js +668 -0
- package/dungeons/capstone/generate-product-lookup.js +309 -0
- package/dungeons/ecommerce-schema.json +462 -0
- package/dungeons/{copilot.js → ecommerce.js} +77 -15
- package/dungeons/education-schema.json +2409 -0
- package/dungeons/education.js +206 -442
- package/dungeons/fintech-schema.json +14034 -0
- package/dungeons/fintech.js +110 -389
- package/dungeons/foobar-schema.json +403 -0
- package/dungeons/foobar.js +27 -4
- package/dungeons/food-delivery-schema.json +192 -0
- package/dungeons/food-delivery.js +602 -0
- package/dungeons/food-schema.json +1152 -0
- package/dungeons/food.js +150 -383
- package/dungeons/gaming-schema.json +1270 -0
- package/dungeons/gaming.js +143 -3
- package/dungeons/insurance-application-schema.json +204 -0
- package/dungeons/insurance-application.js +605 -0
- package/dungeons/media-schema.json +906 -0
- package/dungeons/media.js +221 -391
- package/dungeons/retention-cadence-schema.json +78 -0
- package/dungeons/retention-cadence.js +35 -1
- package/dungeons/rpg-schema.json +4526 -0
- package/dungeons/rpg.js +130 -388
- package/dungeons/sanity-schema.json +255 -0
- package/dungeons/sanity.js +21 -10
- package/dungeons/sass-schema.json +1291 -0
- package/dungeons/sass.js +210 -337
- package/dungeons/scd-schema.json +919 -0
- package/dungeons/scd.js +38 -10
- package/dungeons/simple-schema.json +608 -0
- package/dungeons/simple.js +48 -11
- package/dungeons/simplest-schema.json +1418 -0
- package/dungeons/simplest.js +392 -0
- package/dungeons/social-schema.json +1118 -0
- package/dungeons/social.js +124 -365
- package/dungeons/text-generation-schema.json +3096 -0
- package/dungeons/text-generation.js +71 -0
- package/index.js +6 -3
- package/lib/core/config-validator.js +18 -0
- package/lib/core/storage.js +5 -5
- package/lib/generators/events.js +4 -4
- package/lib/orchestrators/mixpanel-sender.js +12 -7
- package/lib/orchestrators/user-loop.js +14 -6
- package/lib/templates/soup-presets.js +188 -0
- package/lib/utils/utils.js +52 -6
- package/package.json +1 -1
- package/types.d.ts +20 -3
- package/dungeons/adspend.js +0 -117
- package/dungeons/anon.js +0 -128
- package/dungeons/benchmark-heavy.js +0 -240
- package/dungeons/benchmark-light.js +0 -126
- package/dungeons/big.js +0 -226
- package/dungeons/business.js +0 -391
- package/dungeons/complex.js +0 -428
- package/dungeons/experiments.js +0 -137
- package/dungeons/funnels.js +0 -309
- package/dungeons/mil.js +0 -323
- package/dungeons/mirror.js +0 -160
- package/dungeons/soup-test.js +0 -52
- package/dungeons/streaming.js +0 -372
- package/dungeons/strict-event-test.js +0 -30
- package/dungeons/student-teacher.js +0 -438
- package/dungeons/too-big-events.js +0 -203
- package/dungeons/user-agent.js +0 -209
package/dungeons/gaming.js
CHANGED
|
@@ -11,7 +11,146 @@ const chance = u.initChance(SEED);
|
|
|
11
11
|
const num_users = 12_000;
|
|
12
12
|
const days = 180;
|
|
13
13
|
|
|
14
|
-
/** @typedef {import("../types.
|
|
14
|
+
/** @typedef {import("../types.d.ts").Dungeon} Config */
|
|
15
|
+
|
|
16
|
+
/*
|
|
17
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
18
|
+
* DATASET OVERVIEW
|
|
19
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
20
|
+
*
|
|
21
|
+
* QuestForge — A D&D-inspired action RPG where players create characters,
|
|
22
|
+
* join parties, embark on quests, fight bosses, and level up. Think Baldur's
|
|
23
|
+
* Gate meets a mobile RPG with in-game purchases and seasonal content.
|
|
24
|
+
*
|
|
25
|
+
* CORE USER LOOP:
|
|
26
|
+
* Players install the app, create a character (race + class + alignment),
|
|
27
|
+
* and join a party. They then cycle through quests — starting quests,
|
|
28
|
+
* engaging in gameplay (attacks, defenses, enemy defeats), completing quests
|
|
29
|
+
* for gold rewards, fighting bosses, and leveling up. In-game purchases
|
|
30
|
+
* (gold, gems, weapons, armor, boosts) monetize the experience.
|
|
31
|
+
*
|
|
32
|
+
* SCALE: 12,000 users, ~1.08M events, 180 days
|
|
33
|
+
*
|
|
34
|
+
* KEY DIMENSIONS:
|
|
35
|
+
* - Platform: Mobile, Xbox, Playstation, Switch, Web
|
|
36
|
+
* - Game mode: Single Player vs Multiplayer (biased toward Multiplayer)
|
|
37
|
+
* - Character: 9 races, 12 classes, 9 alignments, 13 backgrounds
|
|
38
|
+
* - Quests: 5 types, 4 difficulties, 5 locations
|
|
39
|
+
* - Experiment: fast leveling / tension economy / free trial with A/B/C/Control
|
|
40
|
+
*
|
|
41
|
+
* FUNNELS:
|
|
42
|
+
* 1. Onboarding: app install → character creation → join party (80% conversion)
|
|
43
|
+
* 2. Quest loop: start quest → gameplay summary → complete quest (99% conversion)
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/*
|
|
47
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
48
|
+
* ANALYTICS HOOKS
|
|
49
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
50
|
+
*
|
|
51
|
+
* This dungeon has 3 deliberate patterns engineered via hooks:
|
|
52
|
+
*
|
|
53
|
+
* ───────────────────────────────────────────────────────────────────────────────
|
|
54
|
+
* 1. GOLD SCALING BY LEVEL (event hook)
|
|
55
|
+
* ───────────────────────────────────────────────────────────────────────────────
|
|
56
|
+
*
|
|
57
|
+
* PATTERN: On "complete quest" events, the quest reward (gold) is multiplied by
|
|
58
|
+
* (1 + level * 0.1), so a level-10 player earns 2x gold and a level-20 player
|
|
59
|
+
* earns 3x gold compared to level-1.
|
|
60
|
+
*
|
|
61
|
+
* HOW TO FIND IT IN MIXPANEL:
|
|
62
|
+
* - Report type: Insights
|
|
63
|
+
* - Event: "complete quest"
|
|
64
|
+
* - Measure: Average of "quest reward (gold)"
|
|
65
|
+
* - Breakdown: "level at end"
|
|
66
|
+
* - Expected: Linear increase — level 1 ≈ 55 gold, level 10 ≈ 110 gold,
|
|
67
|
+
* level 20 ≈ 165 gold. Clear positive correlation between level and reward.
|
|
68
|
+
*
|
|
69
|
+
* ───────────────────────────────────────────────────────────────────────────────
|
|
70
|
+
* 2. WHALE PURCHASES (event hook)
|
|
71
|
+
* ───────────────────────────────────────────────────────────────────────────────
|
|
72
|
+
*
|
|
73
|
+
* PATTERN: ~33% of users (determined by first character of user_id hash) are
|
|
74
|
+
* "whales" who spend 1.8x on in-game purchases and are tagged is_whale: true.
|
|
75
|
+
*
|
|
76
|
+
* HOW TO FIND IT IN MIXPANEL:
|
|
77
|
+
*
|
|
78
|
+
* Report 1: Whale vs Normal Purchase Amounts
|
|
79
|
+
* - Report type: Insights
|
|
80
|
+
* - Event: "in-game purchase"
|
|
81
|
+
* - Measure: Average of "purchase amount"
|
|
82
|
+
* - Breakdown: "is_whale"
|
|
83
|
+
* - Expected: is_whale=true shows ~1.8x higher avg purchase amount than
|
|
84
|
+
* is_whale=false (e.g., ~18 vs ~10)
|
|
85
|
+
*
|
|
86
|
+
* Report 2: Revenue Concentration
|
|
87
|
+
* - Report type: Insights
|
|
88
|
+
* - Event: "in-game purchase"
|
|
89
|
+
* - Measure: Sum of "purchase amount"
|
|
90
|
+
* - Breakdown: "is_whale"
|
|
91
|
+
* - Expected: ~33% of users (whales) contribute disproportionate total revenue
|
|
92
|
+
*
|
|
93
|
+
* ───────────────────────────────────────────────────────────────────────────────
|
|
94
|
+
* 3. ALIGNMENT ARCHETYPE (user hook)
|
|
95
|
+
* ───────────────────────────────────────────────────────────────────────────────
|
|
96
|
+
*
|
|
97
|
+
* PATTERN: User profiles are enriched with an "archetype" property based on
|
|
98
|
+
* alignment. Evil alignments → "villain", Good alignments → "hero", others → "neutral".
|
|
99
|
+
*
|
|
100
|
+
* HOW TO FIND IT IN MIXPANEL:
|
|
101
|
+
*
|
|
102
|
+
* Report 1: Archetype Distribution
|
|
103
|
+
* - Report type: Insights
|
|
104
|
+
* - Event: Any event (e.g., "complete quest")
|
|
105
|
+
* - Measure: Total unique users
|
|
106
|
+
* - Breakdown: User profile "archetype"
|
|
107
|
+
* - Expected: Three segments — "hero" (~22%), "villain" (~22%), "neutral" (~56%)
|
|
108
|
+
* matching the 2/9, 2/9, 5/9 alignment split
|
|
109
|
+
*
|
|
110
|
+
* Report 2: Archetype Behavior Comparison
|
|
111
|
+
* - Report type: Insights
|
|
112
|
+
* - Event: "fight boss"
|
|
113
|
+
* - Measure: Total events per user
|
|
114
|
+
* - Breakdown: User profile "archetype"
|
|
115
|
+
* - Expected: All three archetypes should show similar event volumes
|
|
116
|
+
* (archetype doesn't affect gameplay — just a profiling hook)
|
|
117
|
+
*
|
|
118
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
119
|
+
* EXPECTED METRICS SUMMARY
|
|
120
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
121
|
+
*
|
|
122
|
+
* Hook | Metric | Baseline | Hook Effect | Ratio
|
|
123
|
+
* ────────────────────────|─────────────────────────|──────────|──────────────|──────
|
|
124
|
+
* Gold Scaling | Avg gold at level 1 | ~55 | ~55 | 1.0x
|
|
125
|
+
* Gold Scaling | Avg gold at level 10 | ~55 | ~110 | 2.0x
|
|
126
|
+
* Gold Scaling | Avg gold at level 20 | ~55 | ~165 | 3.0x
|
|
127
|
+
* Whale Purchases | Avg purchase (whale) | ~10 | ~18 | 1.8x
|
|
128
|
+
* Whale Purchases | Revenue share (whale) | ~33% | >50% | disprop.
|
|
129
|
+
* Alignment Archetype | Hero users | — | ~22% | 2/9
|
|
130
|
+
* Alignment Archetype | Villain users | — | ~22% | 2/9
|
|
131
|
+
* Alignment Archetype | Neutral users | — | ~56% | 5/9
|
|
132
|
+
*
|
|
133
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
134
|
+
* ADVANCED ANALYSIS IDEAS
|
|
135
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
136
|
+
*
|
|
137
|
+
* 1. Gold Economy Analysis: Plot avg gold earned by level AND quest difficulty.
|
|
138
|
+
* Do Legendary quests at high levels create outsized gold rewards?
|
|
139
|
+
*
|
|
140
|
+
* 2. Whale Segmentation: Cross-reference is_whale with platform and game mode.
|
|
141
|
+
* Are whales concentrated on mobile? Do multiplayer whales spend more?
|
|
142
|
+
*
|
|
143
|
+
* 3. Archetype × Class Matrix: Do certain class/archetype combos correlate
|
|
144
|
+
* with higher boss fight rates or quest completion?
|
|
145
|
+
*
|
|
146
|
+
* 4. Experiment Impact: Compare "fast leveling" vs "tension economy" vs
|
|
147
|
+
* "free trial" on purchase amounts, level progression, and retention.
|
|
148
|
+
*
|
|
149
|
+
* 5. Quest Difficulty Funnel: How does quest difficulty affect completion
|
|
150
|
+
* rate, death count, and hint/boost usage? Is "Legendary" too hard?
|
|
151
|
+
*
|
|
152
|
+
* ═══════════════════════════════════════════════════════════════════════════════
|
|
153
|
+
*/
|
|
15
154
|
|
|
16
155
|
/** @type {Config} */
|
|
17
156
|
const config = {
|
|
@@ -190,7 +329,7 @@ const config = {
|
|
|
190
329
|
"Impossible",
|
|
191
330
|
],
|
|
192
331
|
"fight duration (mins)": u.weighNumRange(1, 60),
|
|
193
|
-
|
|
332
|
+
|
|
194
333
|
},
|
|
195
334
|
},
|
|
196
335
|
{
|
|
@@ -249,7 +388,7 @@ const config = {
|
|
|
249
388
|
// "type": "number",
|
|
250
389
|
// values: u.weighNumRange(0, 250, 1, 200),
|
|
251
390
|
// timing: "fixed",
|
|
252
|
-
// max: 250,
|
|
391
|
+
// max: 250,
|
|
253
392
|
// }
|
|
254
393
|
},
|
|
255
394
|
userProps: {
|
|
@@ -314,6 +453,7 @@ const config = {
|
|
|
314
453
|
],
|
|
315
454
|
"subscription MRR": u.weighNumRange(0, 250, 1, 200)
|
|
316
455
|
},
|
|
456
|
+
// HOOK: 3 patterns — gold scaling by level, whale purchases, alignment archetype
|
|
317
457
|
hook: function (record, type, meta) {
|
|
318
458
|
|
|
319
459
|
if (type === "event") {
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
{
|
|
2
|
+
"events": [
|
|
3
|
+
{
|
|
4
|
+
"event": "account created",
|
|
5
|
+
"weight": 1,
|
|
6
|
+
"isFirstEvent": true,
|
|
7
|
+
"properties": {
|
|
8
|
+
"signup_source": ["web", "mobile", "agent_referral", "partner"],
|
|
9
|
+
"account_type": ["individual", "family", "business"]
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"event": "page viewed",
|
|
14
|
+
"weight": 10,
|
|
15
|
+
"properties": {
|
|
16
|
+
"page_name": ["home", "quotes", "coverage_options", "claims", "faq", "profile", "payment", "documents"],
|
|
17
|
+
"referrer": ["direct", "google", "email", "social_media"]
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"event": "quote requested",
|
|
22
|
+
"weight": 5,
|
|
23
|
+
"properties": {
|
|
24
|
+
"coverage_level": ["basic", "standard", "premium"],
|
|
25
|
+
"deductible": { "$range": [250, 5000] }
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"event": "quote received",
|
|
30
|
+
"weight": 4,
|
|
31
|
+
"properties": {
|
|
32
|
+
"monthly_premium": { "$range": [30, 800] },
|
|
33
|
+
"coverage_amount": { "$range": [10000, 500000] },
|
|
34
|
+
"quote_comparison_count": { "$range": [1, 5] }
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"event": "application started",
|
|
39
|
+
"weight": 4,
|
|
40
|
+
"properties": {
|
|
41
|
+
"coverage_level": ["basic", "standard", "premium"],
|
|
42
|
+
"estimated_premium": { "$range": [30, 800] }
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"event": "application step completed",
|
|
47
|
+
"weight": 6,
|
|
48
|
+
"properties": {
|
|
49
|
+
"step_name": ["personal_info", "coverage_selection", "medical_history", "vehicle_info", "beneficiary", "review"],
|
|
50
|
+
"step_number": { "$range": [1, 6] },
|
|
51
|
+
"time_on_step_sec": { "$range": [15, 600] }
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"event": "document uploaded",
|
|
56
|
+
"weight": 3,
|
|
57
|
+
"properties": {
|
|
58
|
+
"document_type": ["drivers_license", "proof_of_address", "vehicle_registration", "medical_records", "property_photos"],
|
|
59
|
+
"file_size_kb": { "$range": [50, 5000] }
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"event": "application submitted",
|
|
64
|
+
"weight": 3,
|
|
65
|
+
"properties": {
|
|
66
|
+
"documents_attached": { "$range": [1, 5] },
|
|
67
|
+
"application_time_min": { "$range": [5, 60] }
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"event": "application approved",
|
|
72
|
+
"weight": 2,
|
|
73
|
+
"properties": {
|
|
74
|
+
"approved_premium": { "$range": [30, 800] },
|
|
75
|
+
"approval_time_hours": { "$range": [1, 72] }
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"event": "policy activated",
|
|
80
|
+
"weight": 2,
|
|
81
|
+
"properties": {
|
|
82
|
+
"policy_term_months": [6, 12, 12, 12, 24],
|
|
83
|
+
"effective_date_offset_days": { "$range": [0, 30] }
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"event": "claim filed",
|
|
88
|
+
"weight": 2,
|
|
89
|
+
"properties": {
|
|
90
|
+
"claim_type": ["collision", "theft", "water_damage", "fire", "medical", "liability"],
|
|
91
|
+
"estimated_amount": { "$range": [100, 50000] }
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"event": "claim status checked",
|
|
96
|
+
"weight": 4,
|
|
97
|
+
"properties": {
|
|
98
|
+
"claim_status": ["submitted", "under_review", "approved", "denied", "payment_pending"],
|
|
99
|
+
"days_since_filed": { "$range": [1, 60] }
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"event": "payment made",
|
|
104
|
+
"weight": 5,
|
|
105
|
+
"properties": {
|
|
106
|
+
"payment_method": ["credit_card", "bank_transfer", "auto_pay", "check"],
|
|
107
|
+
"amount": { "$range": [30, 800] },
|
|
108
|
+
"payment_status": ["success", "success", "success", "success", "failed"]
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"event": "support ticket created",
|
|
113
|
+
"weight": 4,
|
|
114
|
+
"properties": {
|
|
115
|
+
"issue_category": ["billing", "claims", "coverage", "technical", "policy_change"],
|
|
116
|
+
"priority": ["low", "medium", "medium", "high"],
|
|
117
|
+
"channel": ["chat", "phone", "email", "web_form"]
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"event": "support ticket resolved",
|
|
122
|
+
"weight": 3,
|
|
123
|
+
"properties": {
|
|
124
|
+
"resolution_type": ["self_service", "agent_assisted", "escalated", "auto_resolved"],
|
|
125
|
+
"satisfaction_score": { "$range": [1, 5] },
|
|
126
|
+
"resolution_time_hours": { "$range": [1, 72] }
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"event": "coverage reviewed",
|
|
131
|
+
"weight": 4,
|
|
132
|
+
"properties": {
|
|
133
|
+
"current_premium": { "$range": [30, 800] },
|
|
134
|
+
"coverage_adequate": [true, true, true, false]
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"event": "profile updated",
|
|
139
|
+
"weight": 2,
|
|
140
|
+
"properties": {
|
|
141
|
+
"field_updated": ["address", "phone", "email", "beneficiary", "payment_method", "vehicle_info"]
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"event": "renewal completed",
|
|
146
|
+
"weight": 2,
|
|
147
|
+
"properties": {
|
|
148
|
+
"renewal_premium": { "$range": [30, 800] },
|
|
149
|
+
"premium_change_pct": { "$range": [-15, 20] },
|
|
150
|
+
"auto_renewed": [true, true, false]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
],
|
|
154
|
+
"superProps": {
|
|
155
|
+
"platform": ["web", "ios", "android"],
|
|
156
|
+
"insurance_type": ["auto", "home", "life", "health", "renters"]
|
|
157
|
+
},
|
|
158
|
+
"userProps": {
|
|
159
|
+
"age_range": ["18-25", "26-35", "36-45", "46-55", "56-65", "65+"],
|
|
160
|
+
"risk_profile": ["low", "medium", "high"],
|
|
161
|
+
"policy_count": { "$range": [0, 5] },
|
|
162
|
+
"lifetime_premium": { "$range": [0, 50000] },
|
|
163
|
+
"preferred_contact": ["email", "phone", "app_notification"]
|
|
164
|
+
},
|
|
165
|
+
"funnels": [
|
|
166
|
+
{
|
|
167
|
+
"name": "Onboarding",
|
|
168
|
+
"sequence": ["account created", "page viewed", "quote requested"],
|
|
169
|
+
"isFirstFunnel": true,
|
|
170
|
+
"conversionRate": 85,
|
|
171
|
+
"timeToConvert": 0.5
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"name": "Application Completion",
|
|
175
|
+
"sequence": ["application started", "application step completed", "document uploaded", "application submitted"],
|
|
176
|
+
"conversionRate": 60,
|
|
177
|
+
"timeToConvert": 48,
|
|
178
|
+
"weight": 4,
|
|
179
|
+
"order": "sequential"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"name": "Application Approval",
|
|
183
|
+
"sequence": ["application submitted", "application approved", "policy activated"],
|
|
184
|
+
"conversionRate": 70,
|
|
185
|
+
"timeToConvert": 72,
|
|
186
|
+
"weight": 3,
|
|
187
|
+
"order": "sequential"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"name": "Claims Process",
|
|
191
|
+
"sequence": ["claim filed", "claim status checked", "support ticket created"],
|
|
192
|
+
"conversionRate": 50,
|
|
193
|
+
"timeToConvert": 24,
|
|
194
|
+
"weight": 2
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"name": "Policy Renewal",
|
|
198
|
+
"sequence": ["coverage reviewed", "payment made", "renewal completed"],
|
|
199
|
+
"conversionRate": 65,
|
|
200
|
+
"timeToConvert": 72,
|
|
201
|
+
"weight": 3
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
}
|