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.
Files changed (70) hide show
  1. package/README.md +46 -0
  2. package/dungeons/array-of-object-lookup-schema.json +327 -0
  3. package/dungeons/array-of-object-lookup.js +28 -8
  4. package/dungeons/capstone/capstone-ic3.js +291 -0
  5. package/dungeons/capstone/capstone-ic4.js +598 -0
  6. package/dungeons/capstone/capstone-ic5.js +668 -0
  7. package/dungeons/capstone/generate-product-lookup.js +309 -0
  8. package/dungeons/ecommerce-schema.json +462 -0
  9. package/dungeons/{copilot.js → ecommerce.js} +77 -15
  10. package/dungeons/education-schema.json +2409 -0
  11. package/dungeons/education.js +206 -442
  12. package/dungeons/fintech-schema.json +14034 -0
  13. package/dungeons/fintech.js +110 -389
  14. package/dungeons/foobar-schema.json +403 -0
  15. package/dungeons/foobar.js +27 -4
  16. package/dungeons/food-delivery-schema.json +192 -0
  17. package/dungeons/food-delivery.js +602 -0
  18. package/dungeons/food-schema.json +1152 -0
  19. package/dungeons/food.js +150 -383
  20. package/dungeons/gaming-schema.json +1270 -0
  21. package/dungeons/gaming.js +143 -3
  22. package/dungeons/insurance-application-schema.json +204 -0
  23. package/dungeons/insurance-application.js +605 -0
  24. package/dungeons/media-schema.json +906 -0
  25. package/dungeons/media.js +221 -391
  26. package/dungeons/retention-cadence-schema.json +78 -0
  27. package/dungeons/retention-cadence.js +35 -1
  28. package/dungeons/rpg-schema.json +4526 -0
  29. package/dungeons/rpg.js +130 -388
  30. package/dungeons/sanity-schema.json +255 -0
  31. package/dungeons/sanity.js +21 -10
  32. package/dungeons/sass-schema.json +1291 -0
  33. package/dungeons/sass.js +210 -337
  34. package/dungeons/scd-schema.json +919 -0
  35. package/dungeons/scd.js +38 -10
  36. package/dungeons/simple-schema.json +608 -0
  37. package/dungeons/simple.js +48 -11
  38. package/dungeons/simplest-schema.json +1418 -0
  39. package/dungeons/simplest.js +392 -0
  40. package/dungeons/social-schema.json +1118 -0
  41. package/dungeons/social.js +124 -365
  42. package/dungeons/text-generation-schema.json +3096 -0
  43. package/dungeons/text-generation.js +71 -0
  44. package/index.js +6 -3
  45. package/lib/core/config-validator.js +18 -0
  46. package/lib/core/storage.js +5 -5
  47. package/lib/generators/events.js +4 -4
  48. package/lib/orchestrators/mixpanel-sender.js +12 -7
  49. package/lib/orchestrators/user-loop.js +14 -6
  50. package/lib/templates/soup-presets.js +188 -0
  51. package/lib/utils/utils.js +52 -6
  52. package/package.json +1 -1
  53. package/types.d.ts +20 -3
  54. package/dungeons/adspend.js +0 -117
  55. package/dungeons/anon.js +0 -128
  56. package/dungeons/benchmark-heavy.js +0 -240
  57. package/dungeons/benchmark-light.js +0 -126
  58. package/dungeons/big.js +0 -226
  59. package/dungeons/business.js +0 -391
  60. package/dungeons/complex.js +0 -428
  61. package/dungeons/experiments.js +0 -137
  62. package/dungeons/funnels.js +0 -309
  63. package/dungeons/mil.js +0 -323
  64. package/dungeons/mirror.js +0 -160
  65. package/dungeons/soup-test.js +0 -52
  66. package/dungeons/streaming.js +0 -372
  67. package/dungeons/strict-event-test.js +0 -30
  68. package/dungeons/student-teacher.js +0 -438
  69. package/dungeons/too-big-events.js +0 -203
  70. package/dungeons/user-agent.js +0 -209
@@ -10,12 +10,14 @@ const chance = u.initChance(SEED);
10
10
  const num_users = 5_000;
11
11
  const days = 100;
12
12
 
13
- /** @typedef {import("../../types.js").Dungeon} Config */
13
+ /** @typedef {import("../types.js").Dungeon} Config */
14
14
 
15
- /**
16
- * NEEDLE IN A HAYSTACK - SOCIAL MEDIA APP DESIGN
15
+ /*
16
+ * =====================================================================================
17
+ * DATASET OVERVIEW
18
+ * =====================================================================================
17
19
  *
18
- * Chirp - A Twitter+Instagram-style social media platform with algorithmic feed,
20
+ * Chirp A Twitter+Instagram-style social media platform with algorithmic feed,
19
21
  * creator monetization, communities, and direct messaging.
20
22
  *
21
23
  * CORE LOOP:
@@ -24,73 +26,135 @@ const days = 100;
24
26
  * Power users become "creators" with subscriber tiers. Monetization through
25
27
  * native ads woven into feed and story placements.
26
28
  *
27
- * CONTENT CREATION (events: post created, story created):
28
- * - Five post types: text (classic tweet), image, video, poll, link
29
- * - Character count up to 280, optional media, hashtags for discoverability
30
- * - Stories are ephemeral (photo, video, text) with filters and stickers
31
- * - Creators post 3x more frequently once they start monetizing
29
+ * - 5,000 users over 100 days
30
+ * - 600,000 base events across 18 event types
31
+ * - 8 funnels (onboarding, engagement, discovery, creator journey, ads)
32
+ * - Group analytics (100 communities)
33
+ * - Account types: personal, creator, business
34
+ * =====================================================================================
35
+ */
36
+
37
+ /*
38
+ * =====================================================================================
39
+ * ANALYTICS HOOKS
40
+ * =====================================================================================
41
+ *
42
+ * 8 deliberately architected patterns hidden in the data:
43
+ *
44
+ * -------------------------------------------------------------------------------------
45
+ * 1. VIRAL CONTENT CASCADE (everything hook)
46
+ * -------------------------------------------------------------------------------------
47
+ * 5% of users with 10+ posts become "viral creators." Each of their posts generates
48
+ * 10-20 extra post viewed, post liked, and post shared events (viral_cascade: true).
49
+ *
50
+ * Mixpanel Steps:
51
+ * - Insights > "post viewed" > Total events > Breakdown: "viral_cascade"
52
+ * - Insights > "post liked" > Total events per user > Breakdown: "viral_cascade"
53
+ *
54
+ * -------------------------------------------------------------------------------------
55
+ * 2. FOLLOW-BACK SNOWBALL (everything hook)
56
+ * -------------------------------------------------------------------------------------
57
+ * Users with 5+ "user followed" events become prolific creators. 50% of their posts
58
+ * get duplicated (follow_back_effect: true), plus extra comments are injected.
59
+ *
60
+ * Mixpanel Steps:
61
+ * - Insights > "post created" > Total per user > Breakdown: "follow_back_effect"
62
+ * - Insights > "post created" > Total per user > Cohort: users with 5+ follows
63
+ *
64
+ * -------------------------------------------------------------------------------------
65
+ * 3. ALGORITHM CHANGE (event hook)
66
+ * -------------------------------------------------------------------------------------
67
+ * Day 45: content discovery flips from feed to explore. Before day 45, 70% of
68
+ * post viewed source = "feed." After, 70% shift to source = "explore."
32
69
  *
33
- * CONTENT CONSUMPTION (events: post viewed, story viewed):
34
- * - Algorithmic feed is the primary discovery surface (pre day-45)
35
- * - Explore tab surfaces trending and personalized content
36
- * - Search allows finding users, hashtags, and specific posts
37
- * - View duration is a key quality signal - engagement bait gets short views
70
+ * Mixpanel Steps:
71
+ * - Insights (line) > "post viewed" > Total > Breakdown: "source" > Daily trend
72
+ * - Compare date ranges before/after day 45: feed vs explore ratio inverts
38
73
  *
39
- * SOCIAL GRAPH (events: user followed, user unfollowed):
40
- * - Follow/unfollow mechanics drive the social network
41
- * - Users who receive 5+ follows become prolific creators (follow-back snowball)
42
- * - Discovery sources: suggested, search, post interactions, mutual connections
43
- * - Unfollows track reasons to understand content quality issues
74
+ * -------------------------------------------------------------------------------------
75
+ * 4. ENGAGEMENT BAIT (event hook)
76
+ * -------------------------------------------------------------------------------------
77
+ * 20% of post viewed events are engagement_bait: true with view durations of 1-5 sec.
78
+ * High impressions but terrible engagement quality.
44
79
  *
45
- * ENGAGEMENT (events: post liked, post shared, comment posted):
46
- * - Likes are lightweight engagement (highest volume after views)
47
- * - Shares amplify reach via repost, DM, external, or copy link
48
- * - Comments drive conversation with mentions and threaded replies
49
- * - Viral creators (5% of users) generate 10-20x engagement cascades
80
+ * Mixpanel Steps:
81
+ * - Insights > "post viewed" > Avg "view_duration_sec" > Breakdown: "engagement_bait"
82
+ * - Expected: bait ~2-3 sec avg vs normal ~15-30 sec avg
50
83
  *
51
- * MESSAGING (event: dm sent):
52
- * - Direct messages support text, image, voice, and link content
53
- * - Conversation threads build over time
54
- * - DMs are a key sharing destination for content
84
+ * -------------------------------------------------------------------------------------
85
+ * 5. NOTIFICATION RE-ENGAGEMENT (event hook)
86
+ * -------------------------------------------------------------------------------------
87
+ * After day 30, 30% of post viewed events get source overridden to "notification"
88
+ * with trending_reengagement: true.
55
89
  *
56
- * NOTIFICATIONS (event: notification received):
57
- * - Five types: like, follow, comment, mention, trending
58
- * - Trending notifications drive re-engagement after day 30
59
- * - Click-through rates vary by notification type
90
+ * Mixpanel Steps:
91
+ * - Insights (line) > "post viewed" > Total > Filter: source = "notification" > Daily
92
+ * - Near-zero before day 30, then ~30% of views from notifications
60
93
  *
61
- * DISCOVERY & SEARCH (event: search performed):
62
- * - Three search types: users, hashtags, posts
63
- * - Results count varies; empty results indicate content gaps
64
- * - Search is a secondary discovery surface behind feed/explore
94
+ * -------------------------------------------------------------------------------------
95
+ * 6. CREATOR MONETIZATION (everything hook)
96
+ * -------------------------------------------------------------------------------------
97
+ * Users with any "creator subscription started" event post 3x more. Two extra posts
98
+ * injected per original (monetized_creator: true). Also extra profile-source views.
65
99
  *
66
- * ADVERTISING (events: ad viewed, ad clicked):
67
- * - Four ad formats: feed native, story, banner, video
68
- * - Five ad categories: retail, tech, food, finance, entertainment
69
- * - View duration and click-through tracked for ad effectiveness
100
+ * Mixpanel Steps:
101
+ * - Insights > "post created" > Total per user > Breakdown: "monetized_creator"
102
+ * - Insights > "post viewed" > Filter: source = "profile" > Breakdown: "monetized_creator"
70
103
  *
71
- * CREATOR ECONOMY (event: creator subscription started):
72
- * - Three tiers: basic ($4.99), premium ($9.99), vip ($19.99)
73
- * - Subscribers unlock exclusive content from creators
74
- * - Monetized creators post 3x more (they have financial incentive)
104
+ * -------------------------------------------------------------------------------------
105
+ * 7. TOXICITY CHURN (everything hook)
106
+ * -------------------------------------------------------------------------------------
107
+ * Users with 3+ reports lose 60% of events after day 30. Remaining events tagged
108
+ * toxic_user: true. Simulates churn from toxic content exposure.
109
+ *
110
+ * Mixpanel Steps:
111
+ * - Retention > Segment: users with 3+ "report submitted" vs fewer
112
+ * - Insights (line) > Any event > Total per user > Breakdown: "toxic_user" > Weekly
113
+ *
114
+ * -------------------------------------------------------------------------------------
115
+ * 8. WEEKEND CONTENT SURGE (event + everything hook)
116
+ * -------------------------------------------------------------------------------------
117
+ * Saturday/Sunday post/story events tagged weekend_surge: true. 30% get a duplicate
118
+ * event 1-3 hours later (weekend_duplicate: true).
119
+ *
120
+ * Mixpanel Steps:
121
+ * - Insights (bar) > "post created" > Total > Breakdown: Day of Week
122
+ * - Expected: Sat/Sun bars ~30% taller than weekday bars
123
+ *
124
+ * =====================================================================================
125
+ * EXPECTED METRICS SUMMARY
126
+ * =====================================================================================
75
127
  *
76
- * MODERATION (event: report submitted):
77
- * - Users report spam, harassment, misinformation, hate speech
78
- * - Content types: posts, comments, users, DMs
79
- * - Users who report 3+ times show 60% churn (toxic environment drives them out)
128
+ * Hook | Metric | Baseline | Hook Effect | Ratio
129
+ * --------------------------|-------------------------|--------------|----------------|-------
130
+ * Viral Content Cascade | Engagement per post | 1-2x | 10-20x | ~15x
131
+ * Follow-Back Snowball | Posts per user | ~4 | ~8 | 2x
132
+ * Algorithm Change | Feed vs. Explore source | 70/15 | 15/70 | Flip
133
+ * Engagement Bait | View duration (sec) | 15-30 | 1-5 | ~0.2x
134
+ * Notification Re-engage | Notification source % | ~10% | ~30% | 3x
135
+ * Creator Monetization | Content creation freq | 1x | 3x | 3x
136
+ * Toxicity Churn | Post-day-30 retention | ~80% | ~40% | 0.5x
137
+ * Weekend Content Surge | Weekend vs. weekday vol | 1x | 1.3x | 1.3x
80
138
  *
81
- * COMMUNITIES (group: community_id):
82
- * - 100 communities with categories (tech, entertainment, sports, etc.)
83
- * - Communities aggregate posts, comments, likes, and shares
84
- * - Moderated vs unmoderated communities behave differently
139
+ * =====================================================================================
140
+ * ADVANCED ANALYSIS IDEAS
141
+ * =====================================================================================
85
142
  *
86
- * WHY THESE EVENTS/PROPERTIES?
87
- * - Events model a complete social media loop: signup -> engagement -> creation -> monetization
88
- * - Properties enable cohort analysis: account type, content niche, verification status
89
- * - Funnels reveal friction: onboarding drop-off, content-to-engagement conversion
90
- * - The algorithm change (day 45) creates a clear before/after for A/B analysis
91
- * - Viral cascades and follow-back snowballs simulate real network effects
92
- * - Weekend surges create visible temporal patterns in content creation
93
- * - The "needle in haystack" hooks simulate real product insights hidden in production data
143
+ * - Viral Creators + Algorithm Change: Do viral creators benefit more from the
144
+ * explore-based algorithm? Compare viral cascade engagement before/after day 45.
145
+ * - Follow-Back Snowball + Creator Monetization: Users with both effects compound
146
+ * to ~6x content output (2x from follows * 3x from monetization).
147
+ * - Engagement Bait + Toxicity Churn: Correlation between engagement_bait exposure
148
+ * and toxic_user tagging / report submission rates.
149
+ * - Weekend Surge + Viral Cascade: Compounding creates extreme engagement spikes
150
+ * on weekend days.
151
+ * - Notification Re-engagement + Toxicity Churn: Do trending notifications help
152
+ * retain toxic_user-tagged users, or do they still churn?
153
+ * - Cohort by signup method, content niche, account type, community membership,
154
+ * or join week (users joining during algorithm change see a different product).
155
+ * - Funnel analysis: onboarding by signup method, engagement by source, creator
156
+ * journey before/after algorithm change.
157
+ * =====================================================================================
94
158
  */
95
159
 
96
160
  // Generate consistent post IDs for lookup tables
@@ -358,20 +422,6 @@ const config = {
358
422
 
359
423
  lookupTables: [],
360
424
 
361
- /**
362
- * ARCHITECTED ANALYTICS HOOKS
363
- *
364
- * This hook function creates 8 deliberate patterns in the data:
365
- *
366
- * 1. VIRAL CONTENT CASCADE: 5% of prolific users generate 10-20x engagement
367
- * 2. FOLLOW-BACK SNOWBALL: Users with 5+ follows become prolific creators
368
- * 3. ALGORITHM CHANGE: Day 45 flips discovery from feed to explore
369
- * 4. ENGAGEMENT BAIT: High-hashtag posts get views but terrible view durations
370
- * 5. NOTIFICATION RE-ENGAGEMENT: Trending notifications drive post views after day 30
371
- * 6. CREATOR MONETIZATION: Subscribed creators post 3x more frequently
372
- * 7. TOXICITY CHURN: Users with 3+ reports lose 60% of activity after day 30
373
- * 8. WEEKEND CONTENT SURGE: 30% more content creation on Saturdays and Sundays
374
- */
375
425
  hook: function (record, type, meta) {
376
426
  const NOW = dayjs();
377
427
  const DATASET_START = NOW.subtract(days, 'days');
@@ -634,294 +684,3 @@ const config = {
634
684
  };
635
685
 
636
686
  export default config;
637
-
638
- /**
639
- * =====================================================================================
640
- * NEEDLE IN A HAYSTACK - CHIRP SOCIAL MEDIA APP ANALYTICS
641
- * =====================================================================================
642
- *
643
- * A Twitter+Instagram-style social media platform with 8 deliberately architected
644
- * analytics insights hidden in the data. This dungeon simulates realistic social
645
- * media behavioral patterns including viral cascades, algorithmic feed changes,
646
- * creator economies, and content moderation challenges.
647
- *
648
- * =====================================================================================
649
- * DATASET OVERVIEW
650
- * =====================================================================================
651
- *
652
- * - 5,000 users over 100 days
653
- * - 360,000 base events across 18 event types
654
- * - 3 funnels (onboarding, content engagement, creator journey)
655
- * - Group analytics (100 communities)
656
- * - Lookup table (1,000 posts with metadata)
657
- * - Account types: personal, creator, business
658
- *
659
- * =====================================================================================
660
- * THE 8 ARCHITECTED HOOKS
661
- * =====================================================================================
662
- *
663
- * Each hook creates a specific, discoverable analytics insight that simulates
664
- * real-world social media product behavior patterns.
665
- *
666
- * -------------------------------------------------------------------------------------
667
- * 1. VIRAL CONTENT CASCADE (everything hook)
668
- * -------------------------------------------------------------------------------------
669
- *
670
- * PATTERN: 5% of users who have created 10+ posts are tagged as "viral creators."
671
- * Each of their posts generates 10-20 extra post viewed, post liked, and post shared
672
- * events, all tagged with viral_cascade: true.
673
- *
674
- * HOW TO FIND IT:
675
- * - Filter events where viral_cascade = true
676
- * - Segment users by viral_cascade presence
677
- * - Compare: engagement metrics (views, likes, shares) per post for viral vs. normal users
678
- *
679
- * EXPECTED INSIGHT: A small minority of users (roughly 250 out of 5,000) drive a
680
- * disproportionate share of total engagement. Viral creators generate 10-20x more
681
- * views, likes, and shares per post than the average user.
682
- *
683
- * REAL-WORLD ANALOGUE: Power-law distribution in social media where a tiny fraction
684
- * of creators generate the majority of platform engagement (the 1% rule).
685
- *
686
- * -------------------------------------------------------------------------------------
687
- * 2. FOLLOW-BACK SNOWBALL (everything hook)
688
- * -------------------------------------------------------------------------------------
689
- *
690
- * PATTERN: Users who receive 5 or more "user followed" events become prolific
691
- * content creators. 50% of their post created events get duplicated (with
692
- * follow_back_effect: true), and extra comment posted events are injected.
693
- *
694
- * HOW TO FIND IT:
695
- * - Segment users by count of "user followed" events (5+ vs. fewer)
696
- * - Compare: post creation frequency and comment frequency
697
- * - Filter: follow_back_effect = true
698
- *
699
- * EXPECTED INSIGHT: Users who gain a following create significantly more content.
700
- * The follow-back snowball creates a positive feedback loop: more followers ->
701
- * more content -> more engagement -> more followers.
702
- *
703
- * REAL-WORLD ANALOGUE: Network effects in social media. Users who gain traction
704
- * become more active, which further accelerates their growth. This is the
705
- * mechanism behind "going viral" on platforms like Twitter/X and Instagram.
706
- *
707
- * -------------------------------------------------------------------------------------
708
- * 3. ALGORITHM CHANGE (event hook)
709
- * -------------------------------------------------------------------------------------
710
- *
711
- * PATTERN: On day 45 of the dataset, the content discovery algorithm changes.
712
- * Before day 45, 70% of post viewed events have source = "feed." After day 45,
713
- * 70% shift to source = "explore."
714
- *
715
- * HOW TO FIND IT:
716
- * - Chart: post viewed events broken down by source over time
717
- * - Look for the crossover point around day 45
718
- * - Compare: engagement metrics before vs. after the algorithm change
719
- *
720
- * EXPECTED INSIGHT: A clear inflection point around day 45 where feed traffic
721
- * drops and explore traffic surges. This simulates a real algorithm deployment
722
- * and its impact on content discovery patterns.
723
- *
724
- * REAL-WORLD ANALOGUE: Platform algorithm changes (e.g., Instagram shifting from
725
- * chronological feed to algorithmic recommendations, Twitter introducing "For You"
726
- * tab). These changes fundamentally alter content distribution.
727
- *
728
- * -------------------------------------------------------------------------------------
729
- * 4. ENGAGEMENT BAIT (event hook)
730
- * -------------------------------------------------------------------------------------
731
- *
732
- * PATTERN: 20% of post viewed events are tagged as engagement_bait: true and
733
- * have very short view durations (1-5 seconds). These represent clickbait or
734
- * hashtag-stuffed content that attracts views but fails to hold attention.
735
- *
736
- * HOW TO FIND IT:
737
- * - Filter: post viewed where engagement_bait = true
738
- * - Compare: average view_duration_sec for engagement_bait vs. normal views
739
- * - Correlate: engagement_bait with downstream actions (likes, comments, shares)
740
- *
741
- * EXPECTED INSIGHT: Engagement bait posts get views but have 5-10x shorter view
742
- * durations. This creates a quality gap: high impression count but poor engagement
743
- * quality. Users who consume engagement bait likely have lower satisfaction.
744
- *
745
- * REAL-WORLD ANALOGUE: Clickbait and hashtag abuse on social platforms. Content
746
- * that games the algorithm for reach but delivers poor user experience.
747
- *
748
- * -------------------------------------------------------------------------------------
749
- * 5. NOTIFICATION RE-ENGAGEMENT (event hook)
750
- * -------------------------------------------------------------------------------------
751
- *
752
- * PATTERN: After day 30, 30% of post viewed events have their source overridden
753
- * to "notification" and are tagged with trending_reengagement: true. This simulates
754
- * the platform using trending notifications to re-engage lapsed users.
755
- *
756
- * HOW TO FIND IT:
757
- * - Chart: post viewed by source over time, focusing on "notification" after day 30
758
- * - Filter: trending_reengagement = true
759
- * - Compare: notification-driven views vs. organic views in engagement quality
760
- *
761
- * EXPECTED INSIGHT: After day 30, notification-driven views spike as the platform
762
- * pushes trending content to re-engage users. This creates a visible shift in the
763
- * source distribution for post views.
764
- *
765
- * REAL-WORLD ANALOGUE: Push notification strategies used by social apps to
766
- * re-engage dormant users with trending or personalized content (e.g., "You're
767
- * missing out on what's trending").
768
- *
769
- * -------------------------------------------------------------------------------------
770
- * 6. CREATOR MONETIZATION (everything hook)
771
- * -------------------------------------------------------------------------------------
772
- *
773
- * PATTERN: Users who have any "creator subscription started" event post 3x more
774
- * frequently. For each post created and story created event, 2 additional copies
775
- * are injected with monetized_creator: true. They also check their own content
776
- * more (extra post viewed events from "profile" source).
777
- *
778
- * HOW TO FIND IT:
779
- * - Segment users by: has "creator subscription started" event
780
- * - Compare: post creation and story creation frequency
781
- * - Filter: monetized_creator = true
782
- * - Compare: post viewed source = "profile" rate (analytics checking behavior)
783
- *
784
- * EXPECTED INSIGHT: Monetized creators produce 3x more content and check their
785
- * own profiles more often. The subscription creates a financial incentive that
786
- * dramatically increases content output.
787
- *
788
- * REAL-WORLD ANALOGUE: Creator monetization programs (YouTube Partner Program,
789
- * TikTok Creator Fund, Twitter/X subscriptions) that incentivize consistent
790
- * content production from top creators.
791
- *
792
- * -------------------------------------------------------------------------------------
793
- * 7. TOXICITY CHURN (everything hook)
794
- * -------------------------------------------------------------------------------------
795
- *
796
- * PATTERN: Users who submit 3 or more reports experience 60% event removal after
797
- * day 30 of the dataset. Remaining events are tagged with toxic_user: true. These
798
- * users encountered enough bad content to file multiple reports, and many of them
799
- * churned as a result.
800
- *
801
- * HOW TO FIND IT:
802
- * - Segment users by: count of "report submitted" events (3+ vs. fewer)
803
- * - Compare: event volume before and after day 30
804
- * - Filter: toxic_user = true
805
- * - Compare: D30+ retention rates
806
- *
807
- * EXPECTED INSIGHT: Users who report 3+ pieces of content show a dramatic drop
808
- * in activity after day 30. This simulates the real pattern where users exposed
809
- * to toxic content eventually leave the platform.
810
- *
811
- * REAL-WORLD ANALOGUE: Content moderation challenges on social platforms.
812
- * Users who encounter repeated toxic content (and report it) eventually churn,
813
- * even though they're the "good actors" trying to improve the platform.
814
- *
815
- * -------------------------------------------------------------------------------------
816
- * 8. WEEKEND CONTENT SURGE (event hook)
817
- * -------------------------------------------------------------------------------------
818
- *
819
- * PATTERN: Post created and story created events that fall on Saturday or Sunday
820
- * are tagged with weekend_surge: true. 30% of these weekend events generate a
821
- * duplicate event 1-3 hours later (tagged weekend_duplicate: true).
822
- *
823
- * HOW TO FIND IT:
824
- * - Chart: post created and story created events by day of week
825
- * - Filter: weekend_surge = true or weekend_duplicate = true
826
- * - Compare: weekday vs. weekend content creation volumes
827
- *
828
- * EXPECTED INSIGHT: Saturdays and Sundays show roughly 30% more content creation
829
- * than weekdays. The weekly pattern is clearly visible in a time-series chart,
830
- * creating a sawtooth pattern in content creation volume.
831
- *
832
- * REAL-WORLD ANALOGUE: Real social media usage patterns where users have more
833
- * leisure time on weekends, leading to increased content creation and consumption.
834
- * Most social platforms see clear weekly seasonality.
835
- *
836
- * =====================================================================================
837
- * EXPECTED METRICS SUMMARY
838
- * =====================================================================================
839
- *
840
- * Hook | Metric | Baseline | Hook Effect | Ratio
841
- * --------------------------|-------------------------|--------------|----------------|-------
842
- * Viral Content Cascade | Engagement per post | 1-2x | 10-20x | ~15x
843
- * Follow-Back Snowball | Posts per user | ~4 | ~8 | 2x
844
- * Algorithm Change | Feed vs. Explore source | 70/15 | 15/70 | Flip
845
- * Engagement Bait | View duration (sec) | 15-30 | 1-5 | ~0.2x
846
- * Notification Re-engage | Notification source % | ~10% | ~30% | 3x
847
- * Creator Monetization | Content creation freq | 1x | 3x | 3x
848
- * Toxicity Churn | Post-day-30 retention | ~80% | ~40% | 0.5x
849
- * Weekend Content Surge | Weekend vs. weekday vol | 1x | 1.3x | 1.3x
850
- *
851
- * =====================================================================================
852
- * CROSS-HOOK ANALYSIS IDEAS
853
- * =====================================================================================
854
- *
855
- * 1. Viral Creators + Algorithm Change:
856
- * Do viral creators benefit more from the explore-based algorithm? Compare viral
857
- * cascade engagement before and after day 45. The explore algorithm may amplify
858
- * viral content even further.
859
- *
860
- * 2. Follow-Back Snowball + Creator Monetization:
861
- * Users who gain followers AND start creator subscriptions should be the most
862
- * prolific content producers. The two hooks compound: 2x from follows * 3x from
863
- * monetization = 6x content output.
864
- *
865
- * 3. Engagement Bait + Toxicity Churn:
866
- * Do users who consume high amounts of engagement bait also submit more reports?
867
- * Is there a correlation between engagement_bait exposure and toxic_user tagging?
868
- *
869
- * 4. Weekend Surge + Viral Cascade:
870
- * Are viral cascades more likely on weekends when more content is created?
871
- * The compounding of weekend surge + viral cascade should create extreme
872
- * engagement spikes on weekend days.
873
- *
874
- * 5. Notification Re-engagement + Toxicity Churn:
875
- * Do trending notifications help retain toxic_user-tagged users, or do they
876
- * still churn despite re-engagement efforts?
877
- *
878
- * 6. Algorithm Change + Engagement Bait:
879
- * Does the shift from feed to explore change the proportion of engagement bait?
880
- * The explore algorithm may surface different content quality than the feed.
881
- *
882
- * 7. Creator Monetization + Viral Cascade:
883
- * Monetized creators who are also viral should have astronomical engagement.
884
- * These are the platform's most valuable users.
885
- *
886
- * 8. Follow-Back Snowball + Toxicity Churn:
887
- * Do users who gain many followers also attract more reports? Is popularity
888
- * correlated with toxicity exposure?
889
- *
890
- * =====================================================================================
891
- * COHORT ANALYSIS IDEAS
892
- * =====================================================================================
893
- *
894
- * - Cohort by signup method: Do google/apple signups retain better than email?
895
- * - Cohort by content niche: Which niches produce the most viral creators?
896
- * - Cohort by account type: How do personal vs. creator vs. business accounts differ?
897
- * - Cohort by community membership: Do community members engage more?
898
- * - Cohort by week: Users who joined during algorithm change (day 45) see a
899
- * fundamentally different product experience
900
- *
901
- * =====================================================================================
902
- * FUNNEL ANALYSIS IDEAS
903
- * =====================================================================================
904
- *
905
- * - Onboarding Funnel: account created -> profile updated -> post created
906
- * How does signup method affect onboarding completion?
907
- * - Content Engagement Funnel: post viewed -> post liked -> comment posted
908
- * Compare conversion by source (feed vs. explore vs. notification)
909
- * - Creator Journey Funnel: post created -> post viewed -> post liked -> post shared
910
- * How does the algorithm change affect creator content reach?
911
- *
912
- * =====================================================================================
913
- * HOW TO RUN THIS DUNGEON
914
- * =====================================================================================
915
- *
916
- * From the dm4 root directory:
917
- *
918
- * npm start
919
- *
920
- * Or programmatically:
921
- *
922
- * import generate from './index.js';
923
- * import config from './dungeons/harness-social.js';
924
- * const results = await generate(config);
925
- *
926
- * =====================================================================================
927
- */