kanmi-perf-revenue 1.0.0 → 1.1.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.
Files changed (90) hide show
  1. package/README.md +196 -186
  2. package/dist/empirical/ab-testing.d.ts +83 -0
  3. package/dist/empirical/ab-testing.d.ts.map +1 -0
  4. package/dist/empirical/ab-testing.js +281 -0
  5. package/dist/empirical/ab-testing.js.map +1 -0
  6. package/dist/empirical/alerting.d.ts +85 -0
  7. package/dist/empirical/alerting.d.ts.map +1 -0
  8. package/dist/empirical/alerting.js +358 -0
  9. package/dist/empirical/alerting.js.map +1 -0
  10. package/dist/empirical/attribution.d.ts +80 -0
  11. package/dist/empirical/attribution.d.ts.map +1 -0
  12. package/dist/empirical/attribution.js +305 -0
  13. package/dist/empirical/attribution.js.map +1 -0
  14. package/dist/empirical/cohort.d.ts +75 -0
  15. package/dist/empirical/cohort.d.ts.map +1 -0
  16. package/dist/empirical/cohort.js +305 -0
  17. package/dist/empirical/cohort.js.map +1 -0
  18. package/dist/empirical/conversion-curve.d.ts +7 -10
  19. package/dist/empirical/conversion-curve.d.ts.map +1 -1
  20. package/dist/empirical/conversion-curve.js +37 -4
  21. package/dist/empirical/conversion-curve.js.map +1 -1
  22. package/dist/empirical/correlation.d.ts +91 -0
  23. package/dist/empirical/correlation.d.ts.map +1 -0
  24. package/dist/empirical/correlation.js +461 -0
  25. package/dist/empirical/correlation.js.map +1 -0
  26. package/dist/empirical/data-import.d.ts +22 -0
  27. package/dist/empirical/data-import.d.ts.map +1 -1
  28. package/dist/empirical/data-import.js +44 -0
  29. package/dist/empirical/data-import.js.map +1 -1
  30. package/dist/empirical/datadog-session-query.d.ts +32 -0
  31. package/dist/empirical/datadog-session-query.d.ts.map +1 -1
  32. package/dist/empirical/datadog-session-query.js +238 -17
  33. package/dist/empirical/datadog-session-query.js.map +1 -1
  34. package/dist/empirical/engagement-analysis.d.ts +112 -0
  35. package/dist/empirical/engagement-analysis.d.ts.map +1 -0
  36. package/dist/empirical/engagement-analysis.js +354 -0
  37. package/dist/empirical/engagement-analysis.js.map +1 -0
  38. package/dist/empirical/export.d.ts +75 -0
  39. package/dist/empirical/export.d.ts.map +1 -0
  40. package/dist/empirical/export.js +392 -0
  41. package/dist/empirical/export.js.map +1 -0
  42. package/dist/empirical/forecasting.d.ts +80 -0
  43. package/dist/empirical/forecasting.d.ts.map +1 -0
  44. package/dist/empirical/forecasting.js +287 -0
  45. package/dist/empirical/forecasting.js.map +1 -0
  46. package/dist/empirical/funnel.d.ts +66 -0
  47. package/dist/empirical/funnel.d.ts.map +1 -0
  48. package/dist/empirical/funnel.js +293 -0
  49. package/dist/empirical/funnel.js.map +1 -0
  50. package/dist/empirical/history.d.ts +198 -0
  51. package/dist/empirical/history.d.ts.map +1 -0
  52. package/dist/empirical/history.js +396 -0
  53. package/dist/empirical/history.js.map +1 -0
  54. package/dist/empirical/index.d.ts +39 -16
  55. package/dist/empirical/index.d.ts.map +1 -1
  56. package/dist/empirical/index.js +95 -13
  57. package/dist/empirical/index.js.map +1 -1
  58. package/dist/empirical/interactions.d.ts +89 -0
  59. package/dist/empirical/interactions.d.ts.map +1 -0
  60. package/dist/empirical/interactions.js +346 -0
  61. package/dist/empirical/interactions.js.map +1 -0
  62. package/dist/empirical/opportunity-calculator.d.ts +6 -18
  63. package/dist/empirical/opportunity-calculator.d.ts.map +1 -1
  64. package/dist/empirical/opportunity-calculator.js +19 -1
  65. package/dist/empirical/opportunity-calculator.js.map +1 -1
  66. package/dist/empirical/report.d.ts +3 -11
  67. package/dist/empirical/report.d.ts.map +1 -1
  68. package/dist/empirical/report.js +11 -7
  69. package/dist/empirical/report.js.map +1 -1
  70. package/dist/empirical/roi-calculator.d.ts +104 -0
  71. package/dist/empirical/roi-calculator.d.ts.map +1 -0
  72. package/dist/empirical/roi-calculator.js +403 -0
  73. package/dist/empirical/roi-calculator.js.map +1 -0
  74. package/dist/empirical/seasonality.d.ts +80 -0
  75. package/dist/empirical/seasonality.d.ts.map +1 -0
  76. package/dist/empirical/seasonality.js +340 -0
  77. package/dist/empirical/seasonality.js.map +1 -0
  78. package/dist/empirical/segmentation.d.ts +135 -0
  79. package/dist/empirical/segmentation.d.ts.map +1 -0
  80. package/dist/empirical/segmentation.js +379 -0
  81. package/dist/empirical/segmentation.js.map +1 -0
  82. package/dist/empirical/statistics.d.ts +118 -0
  83. package/dist/empirical/statistics.d.ts.map +1 -0
  84. package/dist/empirical/statistics.js +344 -0
  85. package/dist/empirical/statistics.js.map +1 -0
  86. package/dist/empirical/sweet-spot.d.ts +81 -0
  87. package/dist/empirical/sweet-spot.d.ts.map +1 -0
  88. package/dist/empirical/sweet-spot.js +198 -0
  89. package/dist/empirical/sweet-spot.js.map +1 -0
  90. package/package.json +1 -1
@@ -10,16 +10,48 @@
10
10
  *
11
11
  * @author Kanmi Obasa <i@kanmiobasa.com>
12
12
  */
13
+ export interface ConversionEvent {
14
+ /** Event name (e.g., 'purchase', 'add_to_cart', 'signup', 'lead') */
15
+ name: string;
16
+ /** Event value (e.g., order total, lead score) */
17
+ value: number;
18
+ /** Timestamp of the event */
19
+ timestamp?: string;
20
+ }
13
21
  export interface SessionData {
14
22
  session_id: string;
15
23
  lcp_ms: number | null;
24
+ fcp_ms: number | null;
16
25
  inp_ms: number | null;
17
26
  cls: number | null;
27
+ ttfb_ms: number | null;
28
+ tti_ms: number | null;
29
+ onload_ms: number | null;
30
+ page_size_kb: number | null;
18
31
  has_purchase: boolean;
19
32
  purchase_value: number;
33
+ conversions: ConversionEvent[];
34
+ bounced: boolean;
35
+ page_views: number;
36
+ session_duration_ms: number | null;
20
37
  device: 'mobile' | 'desktop' | 'tablet';
21
38
  page_type: string;
39
+ country?: string;
40
+ region?: string;
41
+ traffic_source?: 'organic' | 'paid' | 'direct' | 'referral' | 'social' | 'email' | 'other';
42
+ utm_source?: string;
43
+ utm_medium?: string;
44
+ utm_campaign?: string;
45
+ user_id?: string;
46
+ is_new_user?: boolean;
47
+ entry_page?: string;
48
+ exit_page?: string;
49
+ pages_visited?: string[];
50
+ experiment_id?: string;
51
+ experiment_variant?: string;
22
52
  timestamp: string;
53
+ hour_of_day?: number;
54
+ day_of_week?: number;
23
55
  }
24
56
  export interface DatadogQueryConfig {
25
57
  apiKey: string;
@@ -1 +1 @@
1
- {"version":3,"file":"datadog-session-query.d.ts","sourceRoot":"","sources":["../../src/empirical/datadog-session-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IAEnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IAEvB,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,QAAQ,EAAE;QACR,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,yBAAyB,EAAE,MAAM,CAAC;QAClC,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACtD,CAAC;CACH;AAMD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,WAAW,CAAC,CAuItB;AAMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,WAAW,CAsEd"}
1
+ {"version":3,"file":"datadog-session-query.d.ts","sourceRoot":"","sources":["../../src/empirical/datadog-session-query.ts"],"names":[],"mappings":"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"}
@@ -73,31 +73,91 @@ export async function queryDatadogSessions(config) {
73
73
  session = {
74
74
  session_id: sessionId,
75
75
  lcp_ms: null,
76
+ fcp_ms: null,
76
77
  inp_ms: null,
77
78
  cls: null,
79
+ ttfb_ms: null,
80
+ tti_ms: null,
81
+ onload_ms: null,
82
+ page_size_kb: null,
78
83
  has_purchase: false,
79
84
  purchase_value: 0,
85
+ conversions: [],
86
+ bounced: true,
87
+ page_views: 0,
88
+ session_duration_ms: attrs.session?.time_spent || null,
80
89
  device: normalizeDevice(attrs.device?.type),
81
90
  page_type: extractPageType(attrs.view?.url_path),
91
+ country: attrs.geo?.country,
92
+ region: attrs.geo?.region,
93
+ traffic_source: normalizeTrafficSource(attrs.session?.referrer),
94
+ user_id: attrs.usr?.id,
95
+ is_new_user: attrs.session?.is_first_visit,
96
+ entry_page: attrs.session?.initial_view?.url_path,
97
+ pages_visited: [],
82
98
  timestamp: attrs['@timestamp'] || attrs.date,
99
+ hour_of_day: new Date(attrs['@timestamp'] || attrs.date).getHours(),
100
+ day_of_week: new Date(attrs['@timestamp'] || attrs.date).getDay(),
83
101
  };
84
102
  sessionMap.set(sessionId, session);
85
103
  }
86
- // Update CWV if present (take worst/highest values)
104
+ // Track page views and bounce status
105
+ if (attrs.view) {
106
+ session.page_views++;
107
+ if (session.page_views > 1) {
108
+ session.bounced = false;
109
+ }
110
+ }
111
+ // Update performance metrics (take worst/highest values)
87
112
  if (attrs.view?.largest_contentful_paint != null) {
88
113
  session.lcp_ms = Math.max(session.lcp_ms || 0, attrs.view.largest_contentful_paint);
89
114
  }
115
+ if (attrs.view?.first_contentful_paint != null) {
116
+ session.fcp_ms = Math.max(session.fcp_ms || 0, attrs.view.first_contentful_paint);
117
+ }
90
118
  if (attrs.view?.interaction_to_next_paint != null) {
91
119
  session.inp_ms = Math.max(session.inp_ms || 0, attrs.view.interaction_to_next_paint);
92
120
  }
93
121
  if (attrs.view?.cumulative_layout_shift != null) {
94
122
  session.cls = Math.max(session.cls || 0, attrs.view.cumulative_layout_shift);
95
123
  }
96
- // Check for purchase action
97
- if (attrs.action?.type === 'custom' &&
98
- attrs.action?.name === purchaseAction) {
99
- session.has_purchase = true;
100
- session.purchase_value += attrs.action?.custom?.value || 0;
124
+ if (attrs.view?.time_to_first_byte != null) {
125
+ session.ttfb_ms = Math.max(session.ttfb_ms || 0, attrs.view.time_to_first_byte);
126
+ }
127
+ // TTI (Time to Interactive) - Datadog uses dom_interactive
128
+ if (attrs.view?.dom_interactive != null) {
129
+ session.tti_ms = Math.max(session.tti_ms || 0, attrs.view.dom_interactive);
130
+ }
131
+ if (attrs.view?.load_event != null) {
132
+ session.onload_ms = Math.max(session.onload_ms || 0, attrs.view.load_event);
133
+ }
134
+ // Track page size (transferred bytes)
135
+ if (attrs.resource?.size != null) {
136
+ session.page_size_kb = (session.page_size_kb || 0) + attrs.resource.size / 1024;
137
+ }
138
+ // Track pages visited
139
+ if (attrs.view?.url_path && session.pages_visited) {
140
+ if (!session.pages_visited.includes(attrs.view.url_path)) {
141
+ session.pages_visited.push(attrs.view.url_path);
142
+ }
143
+ // Track exit page (last page seen)
144
+ session.exit_page = attrs.view.url_path;
145
+ }
146
+ // Check for any custom action (conversion events)
147
+ if (attrs.action?.type === 'custom') {
148
+ const eventName = attrs.action?.name;
149
+ const eventValue = attrs.action?.custom?.value || 0;
150
+ // Add to conversions array
151
+ session.conversions.push({
152
+ name: eventName,
153
+ value: eventValue,
154
+ timestamp: attrs['@timestamp'],
155
+ });
156
+ // Legacy: track purchase specifically
157
+ if (eventName === purchaseAction) {
158
+ session.has_purchase = true;
159
+ session.purchase_value += eventValue;
160
+ }
101
161
  }
102
162
  }
103
163
  sessions.push(...sessionMap.values());
@@ -134,10 +194,15 @@ export function generateMockSessions(options) {
134
194
  const { count, startDate, endDate, baseConversionRate = 0.03, lcpConversionImpact = 0.85, } = options;
135
195
  const sessions = [];
136
196
  for (let i = 0; i < count; i++) {
137
- // Generate realistic LCP distribution (log-normal)
138
- const lcp = generateLogNormalLcp();
197
+ // Generate realistic performance distributions (log-normal)
198
+ const ttfb = generateLogNormalTtfb();
199
+ const fcp = generateLogNormalFcp(ttfb);
200
+ const lcp = generateLogNormalLcp(fcp);
201
+ const tti = generateLogNormalTti(fcp);
139
202
  const inp = generateLogNormalInp();
140
203
  const cls = generateCls();
204
+ const onload = generateLogNormalOnload(lcp);
205
+ const pageSize = generatePageSize();
141
206
  // Calculate conversion probability based on LCP
142
207
  // Empirical model: CVR drops as LCP increases
143
208
  const lcpSeconds = lcp / 1000;
@@ -156,16 +221,90 @@ export function generateMockSessions(options) {
156
221
  { value: 'checkout', weight: 0.15 },
157
222
  { value: 'homepage', weight: 0.15 },
158
223
  ]);
224
+ // Generate engagement metrics
225
+ // Bounce rate is inversely correlated with performance
226
+ const { bounced, pageViews, sessionDuration } = generateEngagementMetrics(lcp, hasPurchase);
227
+ // Generate segmentation data
228
+ const trafficSource = weightedRandom([
229
+ { value: 'organic', weight: 0.35 },
230
+ { value: 'paid', weight: 0.25 },
231
+ { value: 'direct', weight: 0.20 },
232
+ { value: 'social', weight: 0.10 },
233
+ { value: 'referral', weight: 0.07 },
234
+ { value: 'email', weight: 0.03 },
235
+ ]);
236
+ const country = weightedRandom([
237
+ { value: 'US', weight: 0.45 },
238
+ { value: 'GB', weight: 0.15 },
239
+ { value: 'CA', weight: 0.10 },
240
+ { value: 'DE', weight: 0.08 },
241
+ { value: 'FR', weight: 0.07 },
242
+ { value: 'AU', weight: 0.05 },
243
+ { value: 'Other', weight: 0.10 },
244
+ ]);
245
+ // Generate conversion events
246
+ const conversions = [];
247
+ const timestamp = generateRandomTimestamp(startDate, endDate);
248
+ const timestampDate = new Date(timestamp);
249
+ // Add to cart event (happens before purchase, ~15% of sessions)
250
+ const hasAddToCart = Math.random() < 0.15 || hasPurchase;
251
+ if (hasAddToCart) {
252
+ conversions.push({
253
+ name: 'add_to_cart',
254
+ value: hasPurchase ? purchaseValue : generateOrderValue() * 0.8,
255
+ timestamp,
256
+ });
257
+ }
258
+ // Signup event (~2% of sessions)
259
+ if (Math.random() < 0.02) {
260
+ conversions.push({ name: 'signup', value: 0, timestamp });
261
+ }
262
+ // Lead form (~3% of sessions)
263
+ if (Math.random() < 0.03) {
264
+ conversions.push({ name: 'lead', value: 50, timestamp });
265
+ }
266
+ // Purchase event
267
+ if (hasPurchase) {
268
+ conversions.push({
269
+ name: 'purchase',
270
+ value: purchaseValue,
271
+ timestamp,
272
+ });
273
+ }
274
+ // Generate user tracking data
275
+ const userId = `user-${Math.floor(Math.random() * 10000)}`;
276
+ const isNewUser = Math.random() < 0.40;
277
+ // Generate pages visited based on pageViews
278
+ const possiblePages = ['/home', '/products', '/product/123', '/cart', '/checkout', '/account'];
279
+ const pagesVisited = possiblePages.slice(0, Math.min(pageViews, possiblePages.length));
159
280
  sessions.push({
160
281
  session_id: `mock-${i}-${Date.now()}`,
161
282
  lcp_ms: lcp,
283
+ fcp_ms: fcp,
162
284
  inp_ms: inp,
163
285
  cls,
286
+ ttfb_ms: ttfb,
287
+ tti_ms: tti,
288
+ onload_ms: onload,
289
+ page_size_kb: pageSize,
164
290
  has_purchase: hasPurchase,
165
291
  purchase_value: purchaseValue,
292
+ conversions,
293
+ bounced,
294
+ page_views: pageViews,
295
+ session_duration_ms: sessionDuration,
166
296
  device,
167
297
  page_type: pageType,
168
- timestamp: generateRandomTimestamp(startDate, endDate),
298
+ country,
299
+ traffic_source: trafficSource,
300
+ user_id: userId,
301
+ is_new_user: isNewUser,
302
+ entry_page: pagesVisited[0],
303
+ exit_page: pagesVisited[pagesVisited.length - 1],
304
+ pages_visited: pagesVisited,
305
+ timestamp,
306
+ hour_of_day: timestampDate.getHours(),
307
+ day_of_week: timestampDate.getDay(),
169
308
  });
170
309
  }
171
310
  const sessionsWithLcp = sessions.filter((s) => s.lcp_ms !== null).length;
@@ -211,14 +350,46 @@ function extractPageType(urlPath) {
211
350
  return 'homepage';
212
351
  return 'other';
213
352
  }
214
- function generateLogNormalLcp() {
215
- // Log-normal distribution centered around 2.5s with variance
216
- const mu = Math.log(2500);
217
- const sigma = 0.5;
218
- const u1 = Math.random();
219
- const u2 = Math.random();
220
- const z = Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
221
- return Math.round(Math.exp(mu + sigma * z));
353
+ function normalizeTrafficSource(referrer) {
354
+ if (!referrer)
355
+ return 'direct';
356
+ const ref = referrer.toLowerCase();
357
+ // Search engines (organic)
358
+ if (ref.includes('google.') || ref.includes('bing.') || ref.includes('yahoo.') ||
359
+ ref.includes('duckduckgo.') || ref.includes('baidu.')) {
360
+ return 'organic';
361
+ }
362
+ // Social platforms
363
+ if (ref.includes('facebook.') || ref.includes('instagram.') || ref.includes('twitter.') ||
364
+ ref.includes('linkedin.') || ref.includes('tiktok.') || ref.includes('pinterest.') ||
365
+ ref.includes('youtube.') || ref.includes('reddit.')) {
366
+ return 'social';
367
+ }
368
+ // Email clients
369
+ if (ref.includes('mail.') || ref.includes('outlook.') || ref.includes('gmail.')) {
370
+ return 'email';
371
+ }
372
+ // Paid (usually has utm params, but referrer-based detection)
373
+ if (ref.includes('googleads.') || ref.includes('doubleclick.') || ref.includes('facebook.com/ads')) {
374
+ return 'paid';
375
+ }
376
+ return 'referral';
377
+ }
378
+ function generateLogNormalFcp(ttfb) {
379
+ // FCP is typically TTFB + render time (200-800ms after TTFB)
380
+ const renderTime = 200 + Math.random() * 600;
381
+ return Math.round(ttfb + renderTime);
382
+ }
383
+ function generateLogNormalLcp(fcp) {
384
+ // LCP is typically after FCP, add 200-1500ms for largest content
385
+ const additionalTime = 200 + Math.random() * 1300;
386
+ return Math.round(fcp + additionalTime);
387
+ }
388
+ function generateLogNormalTti(fcp) {
389
+ // TTI (Time to Interactive) is typically after FCP
390
+ // Usually 500-2000ms after FCP for JS hydration
391
+ const hydrationTime = 500 + Math.random() * 1500;
392
+ return Math.round(fcp + hydrationTime);
222
393
  }
223
394
  function generateLogNormalInp() {
224
395
  // INP centered around 150ms
@@ -235,6 +406,29 @@ function generateCls() {
235
406
  const spike = Math.random() < 0.1 ? Math.random() * 0.3 : 0;
236
407
  return Math.round((base + spike) * 1000) / 1000;
237
408
  }
409
+ function generateLogNormalTtfb() {
410
+ // TTFB centered around 400ms
411
+ const mu = Math.log(400);
412
+ const sigma = 0.5;
413
+ const u1 = Math.random();
414
+ const u2 = Math.random();
415
+ const z = Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
416
+ return Math.round(Math.exp(mu + sigma * z));
417
+ }
418
+ function generateLogNormalOnload(lcp) {
419
+ // Onload is typically after LCP, with some variance
420
+ const base = lcp + 500 + Math.random() * 1000;
421
+ return Math.round(base);
422
+ }
423
+ function generatePageSize() {
424
+ // Page size in KB, log-normal distribution centered around 2MB
425
+ const mu = Math.log(2000);
426
+ const sigma = 0.6;
427
+ const u1 = Math.random();
428
+ const u2 = Math.random();
429
+ const z = Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
430
+ return Math.round(Math.exp(mu + sigma * z));
431
+ }
238
432
  function generateOrderValue() {
239
433
  // Typical e-commerce AOV distribution
240
434
  const base = 50 + Math.random() * 100;
@@ -257,4 +451,31 @@ function generateRandomTimestamp(start, end) {
257
451
  const randomMs = startMs + Math.random() * (endMs - startMs);
258
452
  return new Date(randomMs).toISOString();
259
453
  }
454
+ function generateEngagementMetrics(lcpMs, hasPurchase) {
455
+ // Bounce rate correlates with LCP - slower pages = higher bounce
456
+ // Base bounce rate: ~45% for fast pages, up to 70%+ for slow pages
457
+ const lcpSeconds = lcpMs / 1000;
458
+ const baseBounceRate = 0.45;
459
+ const lcpPenalty = Math.min(0.3, lcpSeconds * 0.05); // +5% bounce per second LCP
460
+ const bounceRate = baseBounceRate + lcpPenalty;
461
+ // Purchasers never bounce (they completed checkout)
462
+ const bounced = hasPurchase ? false : Math.random() < bounceRate;
463
+ // Page views: bounced = 1, non-bounced = 2-8 pages
464
+ let pageViews;
465
+ if (bounced) {
466
+ pageViews = 1;
467
+ }
468
+ else if (hasPurchase) {
469
+ // Purchasers typically view more pages (product, cart, checkout, confirmation)
470
+ pageViews = 3 + Math.floor(Math.random() * 5); // 3-7 pages
471
+ }
472
+ else {
473
+ pageViews = 2 + Math.floor(Math.random() * 4); // 2-5 pages
474
+ }
475
+ // Session duration correlates with page views and inversely with bounce
476
+ // Average time per page: 30-90 seconds
477
+ const avgTimePerPage = 30000 + Math.random() * 60000; // 30-90s in ms
478
+ const sessionDuration = Math.round(pageViews * avgTimePerPage);
479
+ return { bounced, pageViews, sessionDuration };
480
+ }
260
481
  //# sourceMappingURL=datadog-session-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datadog-session-query.js","sourceRoot":"","sources":["../../src/empirical/datadog-session-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA2CH,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAA0B;IAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,eAAe,CAAC;IAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,kBAAkB,IAAI,UAAU,CAAC;IAE/D,yBAAyB;IACzB,MAAM,OAAO,GAAa;QACxB,eAAe;QACf,wBAAwB;KACzB,CAAC;IAEF,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChE,CAAC;IAED,iDAAiD;IACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,eAAe,IAAI,2BAA2B,EAC9C;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,MAAM,CAAC,MAAM;YAC3B,oBAAoB,EAAE,MAAM,CAAC,MAAM;SACpC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,MAAM,EAAE;gBACN,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;gBACxB,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,YAAY;gBACrC,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,YAAY;aAClC;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE,KAAK,EAAE,0BAA0B;aACzC;YACD,IAAI,EAAE,YAAY;SACnB,CAAC;KACH,CACF,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,iDAAiD;IACjD,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;IAElD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAEpC,IAAI,CAAC,SAAS;YAAE,SAAS;QAEzB,8BAA8B;QAC9B,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG;gBACR,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,IAAI;gBACT,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,CAAC;gBACjB,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;gBAC3C,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAChD,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI;aAC7C,CAAC;YACF,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,oDAAoD;QACpD,IAAI,KAAK,CAAC,IAAI,EAAE,wBAAwB,IAAI,IAAI,EAAE,CAAC;YACjD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CACvB,OAAO,CAAC,MAAM,IAAI,CAAC,EACnB,KAAK,CAAC,IAAI,CAAC,wBAAwB,CACpC,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,yBAAyB,IAAI,IAAI,EAAE,CAAC;YAClD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CACvB,OAAO,CAAC,MAAM,IAAI,CAAC,EACnB,KAAK,CAAC,IAAI,CAAC,yBAAyB,CACrC,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,uBAAuB,IAAI,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CACpB,OAAO,CAAC,GAAG,IAAI,CAAC,EAChB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CACnC,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,IACE,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,QAAQ;YAC/B,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,cAAc,EACrC,CAAC;YACD,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtC,qBAAqB;IACrB,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IACzE,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IAE9E,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CACpB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAClE,GAAG,CAAC,CAAC;IAEN,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE;YACR,cAAc,EAAE,QAAQ,CAAC,MAAM;YAC/B,iBAAiB,EAAE,eAAe;YAClC,yBAAyB,EAAE,uBAAuB;YAClD,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACrC,MAAM,EAAE;gBACN,KAAK,EAAE,MAAM,CAAC,SAAS;gBACvB,GAAG,EAAE,MAAM,CAAC,OAAO;gBACnB,IAAI;aACL;SACF;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,wBAAwB;AACxB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAMpC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,EACJ,KAAK,EACL,SAAS,EACT,OAAO,EACP,kBAAkB,GAAG,IAAI,EACzB,mBAAmB,GAAG,IAAI,GAC3B,GAAG,OAAO,CAAC;IAEZ,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,mDAAmD;QACnD,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAE1B,gDAAgD;QAChD,8CAA8C;QAC9C,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,qBAAqB,GAAG,kBAAkB,GAAG,UAAU,CAAC;QAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,qBAAqB,CAAC;QAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,EAAE,KAAK,EAAE,QAAiB,EAAE,MAAM,EAAE,IAAI,EAAE;YAC1C,EAAE,KAAK,EAAE,SAAkB,EAAE,MAAM,EAAE,IAAI,EAAE;YAC3C,EAAE,KAAK,EAAE,QAAiB,EAAE,MAAM,EAAE,IAAI,EAAE;SAC3C,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,cAAc,CAAC;YAC9B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;YAC9B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;YAC9B,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;YACnC,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;SACpC,CAAC,CAAC;QAEH,QAAQ,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG;YACX,MAAM,EAAE,GAAG;YACX,GAAG;YACH,YAAY,EAAE,WAAW;YACzB,cAAc,EAAE,aAAa;YAC7B,MAAM;YACN,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IACzE,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;IAE9E,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAEtF,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE;YACR,cAAc,EAAE,QAAQ,CAAC,MAAM;YAC/B,iBAAiB,EAAE,eAAe;YAClC,yBAAyB,EAAE,uBAAuB;YAClD,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACrC,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;SACjD;KACF,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,SAAS,eAAe,CAAC,IAAwB;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnF,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,OAA2B;IAClD,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IACjG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5E,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB;IAC3B,6DAA6D;IAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,oBAAoB;IAC3B,4BAA4B;IAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,WAAW;IAClB,mCAAmC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,kBAAkB;IACzB,sCAAsC;IACtC,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACpD,CAAC;AAED,SAAS,cAAc,CAAI,OAAuC;IAChE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC;IAEnC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC;QACrB,IAAI,MAAM,IAAI,CAAC;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1B,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa,EAAE,GAAW;IACzD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;IAC7D,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1C,CAAC"}
1
+ {"version":3,"file":"datadog-session-query.js","sourceRoot":"","sources":["../../src/empirical/datadog-session-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Engagement Analysis
3
+ *
4
+ * Analyzes the relationship between performance and user engagement.
5
+ * Key metrics: bounce rate, page views per session, session duration.
6
+ *
7
+ * This complements conversion analysis by showing HOW performance
8
+ * affects user behavior before conversion decisions.
9
+ *
10
+ * @author Kanmi Obasa <i@kanmiobasa.com>
11
+ */
12
+ import type { SessionData } from './datadog-session-query.js';
13
+ import type { PerformanceMetric } from './conversion-curve.js';
14
+ export interface EngagementBucket {
15
+ /** Bucket range (e.g., "0-1s" for LCP) */
16
+ range: string;
17
+ /** Lower bound in ms */
18
+ lower_ms: number;
19
+ /** Upper bound in ms */
20
+ upper_ms: number;
21
+ /** Number of sessions in this bucket */
22
+ sessions: number;
23
+ /** Number of bounced sessions */
24
+ bounces: number;
25
+ /** Bounce rate (bounces / sessions) */
26
+ bounce_rate: number;
27
+ /** Average page views per session */
28
+ avg_page_views: number;
29
+ /** Average session duration in ms */
30
+ avg_session_duration_ms: number;
31
+ /** Statistical confidence */
32
+ confidence: 'high' | 'medium' | 'low';
33
+ }
34
+ export interface EngagementCurve {
35
+ /** The metric being analyzed */
36
+ metric: PerformanceMetric;
37
+ /** Buckets from fastest to slowest */
38
+ buckets: EngagementBucket[];
39
+ /** Summary statistics */
40
+ summary: {
41
+ total_sessions: number;
42
+ total_bounces: number;
43
+ overall_bounce_rate: number;
44
+ avg_page_views: number;
45
+ avg_session_duration_ms: number;
46
+ /** Bounce rate delta between fastest and slowest bucket */
47
+ bounce_rate_range: number;
48
+ /** Relative bounce rate increase from fast to slow */
49
+ relative_bounce_increase: number;
50
+ };
51
+ }
52
+ export interface EngagementOpportunity {
53
+ /** The metric analyzed */
54
+ metric: PerformanceMetric;
55
+ /** Target threshold in ms */
56
+ target_ms: number;
57
+ /** Sessions above target (slow) */
58
+ slow_sessions: number;
59
+ /** Bounce rate for slow sessions */
60
+ slow_bounce_rate: number;
61
+ /** Bounce rate for fast sessions */
62
+ fast_bounce_rate: number;
63
+ /** Bounce rate delta */
64
+ bounce_rate_delta: number;
65
+ /** Potential bounces prevented if slow sessions achieved fast performance */
66
+ potential_bounces_prevented: number;
67
+ /** Confidence level */
68
+ confidence: 'high' | 'medium' | 'low';
69
+ /** Insight text */
70
+ insight: string;
71
+ }
72
+ export interface EngagementReport {
73
+ /** Engagement curves for each metric */
74
+ curves: Record<PerformanceMetric, EngagementCurve>;
75
+ /** Top opportunities to reduce bounce rate */
76
+ opportunities: EngagementOpportunity[];
77
+ /** Overall summary */
78
+ summary: {
79
+ total_sessions: number;
80
+ overall_bounce_rate: number;
81
+ avg_page_views: number;
82
+ primary_driver: PerformanceMetric | null;
83
+ primary_driver_impact: string;
84
+ };
85
+ }
86
+ export interface EngagementConfig {
87
+ /** Minimum sessions per bucket for consideration. Default: 50 */
88
+ minSessions?: number;
89
+ /** Custom bucket boundaries in ms. Default: CWV thresholds */
90
+ bucketBoundaries?: number[];
91
+ }
92
+ /**
93
+ * Build an engagement curve showing bounce rate by performance bucket.
94
+ */
95
+ export declare function buildEngagementCurve(sessions: SessionData[], metric: PerformanceMetric, config?: EngagementConfig): EngagementCurve;
96
+ /**
97
+ * Build engagement curves for all performance metrics.
98
+ */
99
+ export declare function buildAllEngagementCurves(sessions: SessionData[], config?: EngagementConfig): Record<PerformanceMetric, EngagementCurve>;
100
+ /**
101
+ * Calculate engagement opportunities for a single metric.
102
+ */
103
+ export declare function calculateEngagementOpportunity(curve: EngagementCurve, targetMs: number): EngagementOpportunity | null;
104
+ /**
105
+ * Generate a full engagement report.
106
+ */
107
+ export declare function generateEngagementReport(sessions: SessionData[], config?: EngagementConfig): EngagementReport;
108
+ /**
109
+ * Generate a markdown report of engagement analysis.
110
+ */
111
+ export declare function generateEngagementMarkdownReport(report: EngagementReport): string;
112
+ //# sourceMappingURL=engagement-analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engagement-analysis.d.ts","sourceRoot":"","sources":["../../src/empirical/engagement-analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAM/D,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,qCAAqC;IACrC,uBAAuB,EAAE,MAAM,CAAC;IAChC,6BAA6B;IAC7B,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,sCAAsC;IACtC,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,yBAAyB;IACzB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,uBAAuB,EAAE,MAAM,CAAC;QAChC,2DAA2D;QAC3D,iBAAiB,EAAE,MAAM,CAAC;QAC1B,sDAAsD;QACtD,wBAAwB,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,0BAA0B;IAC1B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,2BAA2B,EAAE,MAAM,CAAC;IACpC,uBAAuB;IACvB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;IACnD,8CAA8C;IAC9C,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,sBAAsB;IACtB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;QACzC,qBAAqB,EAAE,MAAM,CAAC;KAC/B,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,EAAE,iBAAiB,EACzB,MAAM,GAAE,gBAAqB,GAC5B,eAAe,CA0GjB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,GAAE,gBAAqB,GAC5B,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAW5C;AAMD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,MAAM,GACf,qBAAqB,GAAG,IAAI,CAiD9B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,EAAE,EACvB,MAAM,GAAE,gBAAqB,GAC5B,gBAAgB,CAwDlB;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CA6EjF"}