@ak--47/dungeon-master 1.1.0 → 1.2.0
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/dungeons/technical/ad-spend-schema.json +2 -2
- package/dungeons/technical/ad-spend.js +1 -1
- package/dungeons/technical/anonymous-users-schema.json +4 -3
- package/dungeons/technical/anonymous-users.js +1 -1
- package/dungeons/technical/array-of-object-lookup-schema.json +1 -1
- package/dungeons/technical/array-of-object-lookup.js +1 -1
- package/dungeons/technical/experiments-schema.json +25 -19
- package/dungeons/technical/experiments.js +1 -1
- package/dungeons/technical/foobar.js +1 -1
- package/dungeons/technical/group-analytics-schema.json +92 -0
- package/dungeons/technical/group-analytics.js +1 -1
- package/dungeons/technical/mirror-strategies-schema.json +4 -4
- package/dungeons/technical/mirror-strategies.js +1 -1
- package/dungeons/technical/nested-objects.js +1 -1
- package/dungeons/technical/retention-cadence.js +1 -2
- package/dungeons/technical/sanity-schema.json +22 -22
- package/dungeons/technical/sanity.js +1 -0
- package/dungeons/technical/scale-test.js +1 -1
- package/dungeons/technical/scd-schema.json +230 -33
- package/dungeons/technical/scd.js +1 -0
- package/dungeons/technical/simple-schema.json +132 -48
- package/dungeons/technical/simple.js +1 -1
- package/dungeons/technical/simplest-schema.json +168 -79
- package/dungeons/technical/simplest.js +1 -1
- package/dungeons/technical/text-generation-schema.json +7 -4
- package/dungeons/technical/text-generation.js +1 -2
- package/dungeons/vertical/community-schema.json +71 -49
- package/dungeons/vertical/community.js +8 -2
- package/dungeons/vertical/devtools-schema.json +69 -48
- package/dungeons/vertical/devtools.js +8 -2
- package/dungeons/vertical/ecommerce-schema.json +126 -108
- package/dungeons/vertical/ecommerce.js +9 -2
- package/dungeons/vertical/education-schema.json +5261 -272
- package/dungeons/vertical/education.js +16 -3
- package/dungeons/vertical/fintech-schema.json +165 -98
- package/dungeons/vertical/fintech.js +16 -3
- package/dungeons/vertical/fitness-schema.json +69 -47
- package/dungeons/vertical/fitness.js +8 -2
- package/dungeons/vertical/food-delivery-schema.json +36237 -187
- package/dungeons/vertical/food-delivery.js +16 -3
- package/dungeons/vertical/gaming-schema.json +103 -59
- package/dungeons/vertical/gaming.js +20 -9
- package/dungeons/vertical/healthcare-schema.json +70 -48
- package/dungeons/vertical/healthcare.js +8 -2
- package/dungeons/vertical/insurance-application-schema.json +66 -47
- package/dungeons/vertical/insurance-application.js +8 -2
- package/dungeons/vertical/logistics-schema.json +60 -38
- package/dungeons/vertical/logistics.js +8 -2
- package/dungeons/vertical/marketplace-schema.json +65 -43
- package/dungeons/vertical/marketplace.js +8 -2
- package/dungeons/vertical/media-schema.json +4085 -123
- package/dungeons/vertical/media.js +9 -3
- package/dungeons/vertical/rpg-schema.json +1984 -147
- package/dungeons/vertical/rpg.js +9 -3
- package/dungeons/vertical/sass-schema.json +2622 -147
- package/dungeons/vertical/sass.js +16 -3
- package/dungeons/vertical/social-schema.json +146 -78
- package/dungeons/vertical/social.js +16 -3
- package/dungeons/vertical/travel-schema.json +57 -35
- package/dungeons/vertical/travel.js +8 -2
- package/index.js +1 -1
- package/lib/core/context.js +9 -0
- package/lib/core/storage.js +2 -0
- package/lib/orchestrators/user-loop.js +4 -1
- package/package.json +1 -1
- package/scripts/extract-dungeon-schema.mjs +64 -18
- package/types.d.ts +3 -0
|
@@ -10,7 +10,7 @@ const chance = u.initChance(SEED);
|
|
|
10
10
|
const num_users = 5_000;
|
|
11
11
|
const days = 100;
|
|
12
12
|
|
|
13
|
-
/** @typedef {import("
|
|
13
|
+
/** @typedef {import("../../types").Dungeon} Config */
|
|
14
14
|
|
|
15
15
|
/*
|
|
16
16
|
* ═══════════════════════════════════════════════════════════════════════════════
|
|
@@ -176,10 +176,23 @@ const config = {
|
|
|
176
176
|
hasAdSpend: false,
|
|
177
177
|
percentUsersBornInDataset: 50,
|
|
178
178
|
hasAvatar: true,
|
|
179
|
-
batchSize: 2_500_000,
|
|
180
179
|
concurrency: 1,
|
|
181
180
|
writeToDisk: false,
|
|
182
|
-
scdProps: {
|
|
181
|
+
scdProps: {
|
|
182
|
+
subscription_tier: {
|
|
183
|
+
values: ["free", "trial", "monthly", "annual"],
|
|
184
|
+
frequency: "month",
|
|
185
|
+
timing: "fuzzy",
|
|
186
|
+
max: 6
|
|
187
|
+
},
|
|
188
|
+
restaurant_tier: {
|
|
189
|
+
values: ["new", "verified", "featured", "premium"],
|
|
190
|
+
frequency: "month",
|
|
191
|
+
timing: "fixed",
|
|
192
|
+
max: 6,
|
|
193
|
+
type: "restaurant_id"
|
|
194
|
+
}
|
|
195
|
+
},
|
|
183
196
|
|
|
184
197
|
funnels: [
|
|
185
198
|
{
|
|
@@ -69,12 +69,14 @@
|
|
|
69
69
|
5
|
|
70
70
|
]
|
|
71
71
|
},
|
|
72
|
-
"used hint":
|
|
73
|
-
"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
72
|
+
"used hint": [
|
|
73
|
+
"no",
|
|
74
|
+
"yes"
|
|
75
|
+
],
|
|
76
|
+
"used boost": [
|
|
77
|
+
"no",
|
|
78
|
+
"yes"
|
|
79
|
+
],
|
|
78
80
|
"level at start": {
|
|
79
81
|
"$range": [
|
|
80
82
|
2,
|
|
@@ -99,15 +101,18 @@
|
|
|
99
101
|
451
|
|
100
102
|
]
|
|
101
103
|
},
|
|
102
|
-
"quest success":
|
|
103
|
-
"
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
"quest success": [
|
|
105
|
+
"yes",
|
|
106
|
+
"no"
|
|
107
|
+
],
|
|
108
|
+
"used hint": [
|
|
109
|
+
"no",
|
|
110
|
+
"yes"
|
|
111
|
+
],
|
|
112
|
+
"used boost": [
|
|
113
|
+
"no",
|
|
114
|
+
"yes"
|
|
115
|
+
],
|
|
111
116
|
"number of deaths": [
|
|
112
117
|
1,
|
|
113
118
|
3
|
|
@@ -247,6 +252,49 @@
|
|
|
247
252
|
}
|
|
248
253
|
}
|
|
249
254
|
],
|
|
255
|
+
"funnels": [
|
|
256
|
+
{
|
|
257
|
+
"sequence": [
|
|
258
|
+
"app install",
|
|
259
|
+
"character creation",
|
|
260
|
+
"join party"
|
|
261
|
+
],
|
|
262
|
+
"isFirstFunnel": true,
|
|
263
|
+
"conversionRate": 0.8,
|
|
264
|
+
"timeToConvert": 0.25
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"sequence": [
|
|
268
|
+
"start quest",
|
|
269
|
+
"gameplay summary",
|
|
270
|
+
"complete quest"
|
|
271
|
+
],
|
|
272
|
+
"conversionRate": 0.99,
|
|
273
|
+
"timeToConvert": 1,
|
|
274
|
+
"props": {
|
|
275
|
+
"quest type": [
|
|
276
|
+
"Rescue",
|
|
277
|
+
"Retrieve",
|
|
278
|
+
"Explore",
|
|
279
|
+
"Destroy",
|
|
280
|
+
"Investigate"
|
|
281
|
+
],
|
|
282
|
+
"quest difficulty": [
|
|
283
|
+
"Easy",
|
|
284
|
+
"Medium",
|
|
285
|
+
"Hard",
|
|
286
|
+
"Legendary"
|
|
287
|
+
],
|
|
288
|
+
"quest location": [
|
|
289
|
+
"Forest",
|
|
290
|
+
"Dungeon",
|
|
291
|
+
"Mountain",
|
|
292
|
+
"City",
|
|
293
|
+
"Desert"
|
|
294
|
+
]
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
],
|
|
250
298
|
"superProps": {
|
|
251
299
|
"platform": [
|
|
252
300
|
"Mobile",
|
|
@@ -319,8 +367,8 @@
|
|
|
319
367
|
],
|
|
320
368
|
"level": {
|
|
321
369
|
"$range": [
|
|
322
|
-
|
|
323
|
-
|
|
370
|
+
3,
|
|
371
|
+
15
|
|
324
372
|
]
|
|
325
373
|
},
|
|
326
374
|
"background": [
|
|
@@ -340,55 +388,51 @@
|
|
|
340
388
|
],
|
|
341
389
|
"subscription MRR": {
|
|
342
390
|
"$range": [
|
|
343
|
-
|
|
344
|
-
|
|
391
|
+
0,
|
|
392
|
+
244
|
|
345
393
|
]
|
|
346
394
|
},
|
|
347
395
|
"archetype": [
|
|
348
396
|
"neutral"
|
|
349
397
|
]
|
|
350
398
|
},
|
|
351
|
-
"
|
|
352
|
-
{
|
|
353
|
-
"
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
"sequence": [
|
|
364
|
-
"start quest",
|
|
365
|
-
"gameplay summary",
|
|
366
|
-
"complete quest"
|
|
367
|
-
],
|
|
368
|
-
"conversionRate": 0.99,
|
|
369
|
-
"timeToConvert": 1,
|
|
370
|
-
"props": {
|
|
371
|
-
"quest type": [
|
|
372
|
-
"Rescue",
|
|
373
|
-
"Retrieve",
|
|
374
|
-
"Explore",
|
|
375
|
-
"Destroy",
|
|
376
|
-
"Investigate"
|
|
377
|
-
],
|
|
378
|
-
"quest difficulty": [
|
|
379
|
-
"Easy",
|
|
380
|
-
"Medium",
|
|
381
|
-
"Hard",
|
|
382
|
-
"Legendary"
|
|
383
|
-
],
|
|
384
|
-
"quest location": [
|
|
385
|
-
"Forest",
|
|
386
|
-
"Dungeon",
|
|
387
|
-
"Mountain",
|
|
388
|
-
"City",
|
|
389
|
-
"Desert"
|
|
399
|
+
"scdProps": {
|
|
400
|
+
"subscription MRR": {
|
|
401
|
+
"type": "user",
|
|
402
|
+
"frequency": "week",
|
|
403
|
+
"timing": "fixed",
|
|
404
|
+
"max": 250,
|
|
405
|
+
"values": {
|
|
406
|
+
"$range": [
|
|
407
|
+
1,
|
|
408
|
+
221
|
|
390
409
|
]
|
|
391
410
|
}
|
|
411
|
+
},
|
|
412
|
+
"player_rank": {
|
|
413
|
+
"type": "user",
|
|
414
|
+
"frequency": "week",
|
|
415
|
+
"timing": "fuzzy",
|
|
416
|
+
"max": 250,
|
|
417
|
+
"values": [
|
|
418
|
+
"bronze",
|
|
419
|
+
"silver",
|
|
420
|
+
"gold",
|
|
421
|
+
"diamond",
|
|
422
|
+
"legendary"
|
|
423
|
+
]
|
|
424
|
+
},
|
|
425
|
+
"guild_rank": {
|
|
426
|
+
"type": "guild_id",
|
|
427
|
+
"frequency": "month",
|
|
428
|
+
"timing": "fixed",
|
|
429
|
+
"max": 6,
|
|
430
|
+
"values": [
|
|
431
|
+
"bronze",
|
|
432
|
+
"silver",
|
|
433
|
+
"gold",
|
|
434
|
+
"legendary"
|
|
435
|
+
]
|
|
392
436
|
}
|
|
393
|
-
|
|
437
|
+
}
|
|
394
438
|
}
|
|
@@ -11,7 +11,7 @@ const chance = u.initChance(SEED);
|
|
|
11
11
|
const num_users = 12_000;
|
|
12
12
|
const days = 180;
|
|
13
13
|
|
|
14
|
-
/** @typedef {import("
|
|
14
|
+
/** @typedef {import("../../types").Dungeon} Config */
|
|
15
15
|
|
|
16
16
|
/*
|
|
17
17
|
* ═══════════════════════════════════════════════════════════════════════════════
|
|
@@ -175,7 +175,6 @@ const config = {
|
|
|
175
175
|
|
|
176
176
|
hasAvatar: true,
|
|
177
177
|
|
|
178
|
-
batchSize: 2_500_000,
|
|
179
178
|
concurrency: 1,
|
|
180
179
|
writeToDisk: false,
|
|
181
180
|
funnels: [
|
|
@@ -384,13 +383,25 @@ const config = {
|
|
|
384
383
|
|
|
385
384
|
},
|
|
386
385
|
scdProps: {
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
386
|
+
"subscription MRR" : {
|
|
387
|
+
frequency: "week",
|
|
388
|
+
values: u.weighNumRange(0, 250, 1, 200),
|
|
389
|
+
timing: "fixed",
|
|
390
|
+
max: 250,
|
|
391
|
+
},
|
|
392
|
+
player_rank: {
|
|
393
|
+
values: ["bronze", "silver", "gold", "diamond", "legendary"],
|
|
394
|
+
frequency: "week",
|
|
395
|
+
timing: "fuzzy",
|
|
396
|
+
max: 250
|
|
397
|
+
},
|
|
398
|
+
guild_rank: {
|
|
399
|
+
values: ["bronze", "silver", "gold", "legendary"],
|
|
400
|
+
frequency: "month",
|
|
401
|
+
timing: "fixed",
|
|
402
|
+
max: 6,
|
|
403
|
+
type: "guild_id"
|
|
404
|
+
}
|
|
394
405
|
},
|
|
395
406
|
userProps: {
|
|
396
407
|
experiment: [
|
|
@@ -411,6 +411,9 @@
|
|
|
411
411
|
},
|
|
412
412
|
{
|
|
413
413
|
"event": "account deactivated",
|
|
414
|
+
"isChurnEvent": true,
|
|
415
|
+
"returnLikelihood": 0.15,
|
|
416
|
+
"isStrictEvent": true,
|
|
414
417
|
"properties": {
|
|
415
418
|
"reason": [
|
|
416
419
|
"switched_provider",
|
|
@@ -422,53 +425,6 @@
|
|
|
422
425
|
}
|
|
423
426
|
}
|
|
424
427
|
],
|
|
425
|
-
"superProps": {
|
|
426
|
-
"subscription_tier": [
|
|
427
|
-
"free",
|
|
428
|
-
"basic",
|
|
429
|
-
"premium"
|
|
430
|
-
],
|
|
431
|
-
"platform": [
|
|
432
|
-
"ios",
|
|
433
|
-
"android",
|
|
434
|
-
"web"
|
|
435
|
-
]
|
|
436
|
-
},
|
|
437
|
-
"userProps": {
|
|
438
|
-
"role": [
|
|
439
|
-
"patient",
|
|
440
|
-
"nurse",
|
|
441
|
-
"doctor"
|
|
442
|
-
],
|
|
443
|
-
"specialty": [
|
|
444
|
-
"none"
|
|
445
|
-
],
|
|
446
|
-
"years_experience": {
|
|
447
|
-
"$range": [
|
|
448
|
-
0,
|
|
449
|
-
5
|
|
450
|
-
]
|
|
451
|
-
},
|
|
452
|
-
"preferred_language": [
|
|
453
|
-
"en",
|
|
454
|
-
"es",
|
|
455
|
-
"pt",
|
|
456
|
-
"de",
|
|
457
|
-
"fr"
|
|
458
|
-
],
|
|
459
|
-
"has_chronic_condition": [
|
|
460
|
-
false,
|
|
461
|
-
true
|
|
462
|
-
],
|
|
463
|
-
"age_range": [
|
|
464
|
-
"18-25",
|
|
465
|
-
"26-35",
|
|
466
|
-
"36-45",
|
|
467
|
-
"46-55",
|
|
468
|
-
"56-65",
|
|
469
|
-
"65+"
|
|
470
|
-
]
|
|
471
|
-
},
|
|
472
428
|
"funnels": [
|
|
473
429
|
{
|
|
474
430
|
"sequence": [
|
|
@@ -477,6 +433,7 @@
|
|
|
477
433
|
"symptom search",
|
|
478
434
|
"appointment booked"
|
|
479
435
|
],
|
|
436
|
+
"name": "Onboarding Flow",
|
|
480
437
|
"isFirstFunnel": true,
|
|
481
438
|
"conversionRate": 45,
|
|
482
439
|
"timeToConvert": 72,
|
|
@@ -488,6 +445,7 @@
|
|
|
488
445
|
"appointment booked",
|
|
489
446
|
"consultation completed"
|
|
490
447
|
],
|
|
448
|
+
"name": "Booking to Consultation",
|
|
491
449
|
"conversionRate": 40,
|
|
492
450
|
"timeToConvert": 48,
|
|
493
451
|
"weight": 5
|
|
@@ -499,6 +457,7 @@
|
|
|
499
457
|
"prescription issued",
|
|
500
458
|
"follow up scheduled"
|
|
501
459
|
],
|
|
460
|
+
"name": "Full Care Journey",
|
|
502
461
|
"conversionRate": 30,
|
|
503
462
|
"timeToConvert": 168,
|
|
504
463
|
"weight": 3
|
|
@@ -509,6 +468,7 @@
|
|
|
509
468
|
"prescription refill",
|
|
510
469
|
"payment processed"
|
|
511
470
|
],
|
|
471
|
+
"name": "Prescription Lifecycle",
|
|
512
472
|
"conversionRate": 55,
|
|
513
473
|
"timeToConvert": 720,
|
|
514
474
|
"weight": 2
|
|
@@ -519,9 +479,71 @@
|
|
|
519
479
|
"provider rated",
|
|
520
480
|
"follow up scheduled"
|
|
521
481
|
],
|
|
482
|
+
"name": "Patient Satisfaction",
|
|
522
483
|
"conversionRate": 25,
|
|
523
484
|
"timeToConvert": 72,
|
|
524
485
|
"weight": 2
|
|
525
486
|
}
|
|
526
|
-
]
|
|
487
|
+
],
|
|
488
|
+
"superProps": {
|
|
489
|
+
"subscription_tier": [
|
|
490
|
+
"free",
|
|
491
|
+
"basic",
|
|
492
|
+
"premium"
|
|
493
|
+
],
|
|
494
|
+
"platform": [
|
|
495
|
+
"ios",
|
|
496
|
+
"android",
|
|
497
|
+
"web"
|
|
498
|
+
]
|
|
499
|
+
},
|
|
500
|
+
"userProps": {
|
|
501
|
+
"role": [
|
|
502
|
+
"patient",
|
|
503
|
+
"nurse",
|
|
504
|
+
"doctor"
|
|
505
|
+
],
|
|
506
|
+
"specialty": [
|
|
507
|
+
"none"
|
|
508
|
+
],
|
|
509
|
+
"years_experience": {
|
|
510
|
+
"$range": [
|
|
511
|
+
0,
|
|
512
|
+
5
|
|
513
|
+
]
|
|
514
|
+
},
|
|
515
|
+
"preferred_language": [
|
|
516
|
+
"en",
|
|
517
|
+
"es",
|
|
518
|
+
"pt",
|
|
519
|
+
"de",
|
|
520
|
+
"fr"
|
|
521
|
+
],
|
|
522
|
+
"has_chronic_condition": [
|
|
523
|
+
false,
|
|
524
|
+
true
|
|
525
|
+
],
|
|
526
|
+
"age_range": [
|
|
527
|
+
"18-25",
|
|
528
|
+
"26-35",
|
|
529
|
+
"36-45",
|
|
530
|
+
"46-55",
|
|
531
|
+
"56-65",
|
|
532
|
+
"65+"
|
|
533
|
+
]
|
|
534
|
+
},
|
|
535
|
+
"scdProps": {
|
|
536
|
+
"care_plan": {
|
|
537
|
+
"type": "user",
|
|
538
|
+
"frequency": "month",
|
|
539
|
+
"timing": "fuzzy",
|
|
540
|
+
"max": 8,
|
|
541
|
+
"values": [
|
|
542
|
+
"preventive",
|
|
543
|
+
"routine",
|
|
544
|
+
"chronic",
|
|
545
|
+
"acute"
|
|
546
|
+
]
|
|
547
|
+
}
|
|
548
|
+
}
|
|
527
549
|
}
|
|
@@ -254,10 +254,16 @@ const config = {
|
|
|
254
254
|
hasAdSpend: false,
|
|
255
255
|
percentUsersBornInDataset: 35,
|
|
256
256
|
hasAvatar: true,
|
|
257
|
-
batchSize: 2_500_000,
|
|
258
257
|
concurrency: 1,
|
|
259
258
|
writeToDisk: false,
|
|
260
|
-
scdProps: {
|
|
259
|
+
scdProps: {
|
|
260
|
+
care_plan: {
|
|
261
|
+
values: ["preventive", "routine", "chronic", "acute"],
|
|
262
|
+
frequency: "month",
|
|
263
|
+
timing: "fuzzy",
|
|
264
|
+
max: 8
|
|
265
|
+
}
|
|
266
|
+
},
|
|
261
267
|
mirrorProps: {},
|
|
262
268
|
lookupTables: [],
|
|
263
269
|
|
|
@@ -364,52 +364,6 @@
|
|
|
364
364
|
}
|
|
365
365
|
}
|
|
366
366
|
],
|
|
367
|
-
"superProps": {
|
|
368
|
-
"platform": [
|
|
369
|
-
"web",
|
|
370
|
-
"ios",
|
|
371
|
-
"android"
|
|
372
|
-
],
|
|
373
|
-
"insurance_type": [
|
|
374
|
-
"auto",
|
|
375
|
-
"home",
|
|
376
|
-
"life",
|
|
377
|
-
"health",
|
|
378
|
-
"renters"
|
|
379
|
-
],
|
|
380
|
-
"app_version": [
|
|
381
|
-
"2.10"
|
|
382
|
-
]
|
|
383
|
-
},
|
|
384
|
-
"userProps": {
|
|
385
|
-
"age_range": [
|
|
386
|
-
"18-25",
|
|
387
|
-
"26-35",
|
|
388
|
-
"36-45",
|
|
389
|
-
"46-55",
|
|
390
|
-
"56-65",
|
|
391
|
-
"65+"
|
|
392
|
-
],
|
|
393
|
-
"risk_profile": [
|
|
394
|
-
"low",
|
|
395
|
-
"medium",
|
|
396
|
-
"high"
|
|
397
|
-
],
|
|
398
|
-
"policy_count": [
|
|
399
|
-
3
|
|
400
|
-
],
|
|
401
|
-
"lifetime_premium": {
|
|
402
|
-
"$range": [
|
|
403
|
-
8131,
|
|
404
|
-
43291
|
|
405
|
-
]
|
|
406
|
-
},
|
|
407
|
-
"preferred_contact": [
|
|
408
|
-
"email",
|
|
409
|
-
"phone",
|
|
410
|
-
"app_notification"
|
|
411
|
-
]
|
|
412
|
-
},
|
|
413
367
|
"funnels": [
|
|
414
368
|
{
|
|
415
369
|
"sequence": [
|
|
@@ -417,6 +371,7 @@
|
|
|
417
371
|
"page viewed",
|
|
418
372
|
"quote requested"
|
|
419
373
|
],
|
|
374
|
+
"name": "Onboarding",
|
|
420
375
|
"isFirstFunnel": true,
|
|
421
376
|
"conversionRate": 85,
|
|
422
377
|
"timeToConvert": 0.5
|
|
@@ -428,6 +383,7 @@
|
|
|
428
383
|
"document uploaded",
|
|
429
384
|
"application submitted"
|
|
430
385
|
],
|
|
386
|
+
"name": "Application Completion",
|
|
431
387
|
"conversionRate": 60,
|
|
432
388
|
"timeToConvert": 48,
|
|
433
389
|
"weight": 4
|
|
@@ -438,6 +394,7 @@
|
|
|
438
394
|
"application approved",
|
|
439
395
|
"policy activated"
|
|
440
396
|
],
|
|
397
|
+
"name": "Application Approval",
|
|
441
398
|
"conversionRate": 70,
|
|
442
399
|
"timeToConvert": 72,
|
|
443
400
|
"weight": 3
|
|
@@ -448,6 +405,7 @@
|
|
|
448
405
|
"claim status checked",
|
|
449
406
|
"support ticket created"
|
|
450
407
|
],
|
|
408
|
+
"name": "Claims Process",
|
|
451
409
|
"conversionRate": 50,
|
|
452
410
|
"timeToConvert": 24,
|
|
453
411
|
"weight": 2
|
|
@@ -458,9 +416,70 @@
|
|
|
458
416
|
"payment made",
|
|
459
417
|
"renewal completed"
|
|
460
418
|
],
|
|
419
|
+
"name": "Policy Renewal",
|
|
461
420
|
"conversionRate": 65,
|
|
462
421
|
"timeToConvert": 72,
|
|
463
422
|
"weight": 3
|
|
464
423
|
}
|
|
465
|
-
]
|
|
424
|
+
],
|
|
425
|
+
"superProps": {
|
|
426
|
+
"platform": [
|
|
427
|
+
"web",
|
|
428
|
+
"ios",
|
|
429
|
+
"android"
|
|
430
|
+
],
|
|
431
|
+
"insurance_type": [
|
|
432
|
+
"auto",
|
|
433
|
+
"home",
|
|
434
|
+
"life",
|
|
435
|
+
"health",
|
|
436
|
+
"renters"
|
|
437
|
+
],
|
|
438
|
+
"app_version": [
|
|
439
|
+
"2.10"
|
|
440
|
+
]
|
|
441
|
+
},
|
|
442
|
+
"userProps": {
|
|
443
|
+
"age_range": [
|
|
444
|
+
"18-25",
|
|
445
|
+
"26-35",
|
|
446
|
+
"36-45",
|
|
447
|
+
"46-55",
|
|
448
|
+
"56-65",
|
|
449
|
+
"65+"
|
|
450
|
+
],
|
|
451
|
+
"risk_profile": [
|
|
452
|
+
"low",
|
|
453
|
+
"medium",
|
|
454
|
+
"high"
|
|
455
|
+
],
|
|
456
|
+
"policy_count": [
|
|
457
|
+
3
|
|
458
|
+
],
|
|
459
|
+
"lifetime_premium": {
|
|
460
|
+
"$range": [
|
|
461
|
+
8131,
|
|
462
|
+
43291
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
"preferred_contact": [
|
|
466
|
+
"email",
|
|
467
|
+
"phone",
|
|
468
|
+
"app_notification"
|
|
469
|
+
]
|
|
470
|
+
},
|
|
471
|
+
"scdProps": {
|
|
472
|
+
"policy_status": {
|
|
473
|
+
"type": "user",
|
|
474
|
+
"frequency": "month",
|
|
475
|
+
"timing": "fuzzy",
|
|
476
|
+
"max": 8,
|
|
477
|
+
"values": [
|
|
478
|
+
"pending",
|
|
479
|
+
"active",
|
|
480
|
+
"lapsed",
|
|
481
|
+
"renewed"
|
|
482
|
+
]
|
|
483
|
+
}
|
|
484
|
+
}
|
|
466
485
|
}
|
|
@@ -153,11 +153,17 @@ const config = {
|
|
|
153
153
|
hasAdSpend: false,
|
|
154
154
|
percentUsersBornInDataset: 35,
|
|
155
155
|
hasAvatar: true,
|
|
156
|
-
batchSize: 2_500_000,
|
|
157
156
|
concurrency: 1,
|
|
158
157
|
writeToDisk: false,
|
|
159
158
|
|
|
160
|
-
scdProps: {
|
|
159
|
+
scdProps: {
|
|
160
|
+
policy_status: {
|
|
161
|
+
values: ["pending", "active", "lapsed", "renewed"],
|
|
162
|
+
frequency: "month",
|
|
163
|
+
timing: "fuzzy",
|
|
164
|
+
max: 8
|
|
165
|
+
}
|
|
166
|
+
},
|
|
161
167
|
mirrorProps: {},
|
|
162
168
|
lookupTables: [],
|
|
163
169
|
|