User Interaction Tracking
User interaction tracking enables you to monitor and analyze critical user flows in your application. Pulse provides real-time metrics and insights to help you understand user experience and identify performance issues.
Overview
The Pulse interaction tracking system allows you to track the following key metrics:
- Apdex Score - Application Performance Index measuring user satisfaction
- User Experience Categorisation - Classification of user experience quality
- Error Rate - Percentage of failed or incomplete interactions
- Interaction Latencies - Time-based performance metrics (P50, P95, P99)
All metrics are powered by the Pulse dashboard in real-time and can be viewed on the interaction detail page.
Apdex Score
The Apdex (Application Performance Index) score measures user satisfaction with application performance. It's displayed on the first graph in the Interaction detail page.
How It Works
The Apdex score is calculated based on the time taken to complete an interaction relative to predefined thresholds. The formula considers:
- Event Duration: Time between the first and last event in the interaction
- Threshold Range: Difference between high and low thresholds
- Adjusted Value: High threshold minus event duration
Calculation Formula
// Time taken to complete the interaction
// endEventTime is the timestamp of the last event tracked by Interaction
// startEventTime is the timestamp of the first event tracked by the Interaction
long eventDuration = endEventTime - startEventTime;
// Range of threshold
// highThreshold is the max value of the interaction time
// lowThreshold is the min value of the interaction time
long thresholdRange = highThreshold - lowThreshold;
// Normalizing the threshold
long adjustedValue = highThreshold - eventDuration;
// Apdex Score
double apdexScore = 1 - (1 - (adjustedValue / thresholdRange));
Score Interpretation
The Apdex score ranges from 0 to 1:
| Score Range | Meaning | Description |
|---|---|---|
| 1.0 | Excellent | Interaction completes below the lower threshold - optimal performance |
| 0.5 - 0.99 | Good | Interaction completes within the threshold range - acceptable performance |
| 0.0 - 0.49 | Poor | Interaction exceeds the high threshold - degraded performance |
Important: The Apdex value only considers successful interactions (non-error completions).
Examples
Example 1: Excellent Performance
| Metric | Value |
|---|---|
| Interaction | "Contest Join" |
| Threshold Range | 100ms (low) to 500ms (high) |
| Event Duration | 80ms |
| Adjusted Value | 500 - 80 = 420 |
| Apdex Score | 1 - (1 - (420 / 400)) = 1.05 → capped at 1.0 |
| Result | ✅ Excellent - Performance below lower threshold |
Example 2: Average Performance
| Metric | Value |
|---|---|
| Interaction | "Search Results" |
| Threshold Range | 300ms (low) to 1500ms (high) |
| Event Duration | 900ms |
| Adjusted Value | 1500 - 900 = 600 |
| Apdex Score | 1 - (1 - (600 / 1200)) = 0.5 |
| Result | ⚠️ Average - Performance in mid-range |
Example 3: Poor Performance
| Metric | Value |
|---|---|
| Interaction | "Page Load" |
| Threshold Range | 500ms (low) to 2000ms (high) |
| Event Duration | 2500ms |
| Adjusted Value | 2000 - 2500 = -500 |
| Apdex Score | 1 - (1 - (-500 / 1500)) = 0.33 |
| Result | ❌ Poor - Performance exceeds high threshold |
Error Rate
The error rate is displayed in the first graph of the interaction detail page and represents the percentage of failed or incomplete interactions.
How It Works
The error rate is calculated as the ratio of incomplete interactions to the total number of initiated interactions, expressed as a percentage.
Formula:
Error Rate = (Incomplete Interactions / Total Initiated Interactions) × 100
Understanding Error Rate
- Low Error Rate (0-2%): Excellent reliability, minimal user impact
- Moderate Error Rate (2-5%): Acceptable, but may need monitoring
- High Error Rate (5%+): Critical issue requiring immediate investigation
Example: If users attempt 100 contest joins and 2 fail, the error rate is 2%, meaning 98 out of 100 interactions completed successfully.
Examples
Example 1: Low Error Rate
| Metric | Value |
|---|---|
| Interaction | "Login" |
| Total Initiated | 10,000 |
| Successful Completions | 9,950 |
| Incomplete Interactions | 50 |
| Error Rate | (50 / 10,000) × 100 = 0.5% |
| Result | ✅ Excellent reliability - minimal user impact |
Example 2: Moderate Error Rate
| Metric | Value |
|---|---|
| Interaction | "Contest Join" |
| Total Initiated | 5,000 |
| Successful Completions | 4,900 |
| Incomplete Interactions | 100 |
| Error Rate | (100 / 5,000) × 100 = 2% |
| Result | ⚠️ Acceptable - minor issues, monitor closely |
Example 3: High Error Rate
| Metric | Value |
|---|---|
| Interaction | "Payment Processing" |
| Total Initiated | 2,000 |
| Successful Completions | 1,700 |
| Incomplete Interactions | 300 |
| Error Rate | (300 / 2,000) × 100 = 15% |
| Result | ❌ Critical issue - requires immediate investigation |
User Experience Categorisation
User experience is automatically categorized into four quality levels based on interaction performance metrics and the thresholds configured when creating the interaction.
Categories
| Category | Description | Typical Characteristics |
|---|---|---|
| Excellent | Optimal user experience | Performance below lower threshold, minimal errors, high Apdex score |
| Good | Satisfactory user experience | Performance within threshold range, low error rate, acceptable Apdex |
| Average | Acceptable but improvable | Performance in mid-range, moderate error rate, average Apdex |
| Poor | Degraded user experience | Performance exceeds high threshold, high error rate, low Apdex |
How Categorisation Works
The categorization is determined by:
- Performance Duration: Compared against configured thresholds (low, mid, high)
- Apdex Score: Calculated based on duration relative to thresholds
- Error Rate: Percentage of failed interactions
These factors are evaluated together to assign the appropriate category.
Examples
Example 1: Excellent Experience
| Metric | Value |
|---|---|
| Interaction | "Add to Cart" |
| Threshold | 100ms (low) to 500ms (high) |
| Actual Duration | 85ms |
| Apdex Score | 1.0 |
| Error Rate | 0.1% |
| Categorisation | ✅ Excellent |
| Reason | Performance below lower threshold, minimal errors, optimal user experience |
Example 2: Good Experience
| Metric | Value |
|---|---|
| Interaction | "Checkout Process" |
| Threshold | 500ms (low) to 2000ms (high) |
| Actual Duration | 1200ms |
| Apdex Score | 0.73 |
| Error Rate | 1.5% |
| Categorisation | ✅ Good |
| Reason | Performance within acceptable range, low error rate, satisfactory user experience |
Example 3: Average Experience
| Metric | Value |
|---|---|
| Interaction | "Search Results" |
| Threshold | 300ms (low) to 1500ms (high) |
| Actual Duration | 1100ms |
| Apdex Score | 0.47 |
| Error Rate | 3.5% |
| Categorisation | ⚠️ Average |
| Reason | Performance in mid-range, moderate error rate, acceptable but could be improved |
Example 4: Poor Experience
| Metric | Value |
|---|---|
| Interaction | "Page Navigation" |
| Threshold | 200ms (low) to 1000ms (high) |
| Actual Duration | 1800ms |
| Apdex Score | 0.2 |
| Error Rate | 8% |
| Categorisation | ❌ Poor |
| Reason | Performance exceeds high threshold significantly, high error rate, user experience is degraded |
Interaction Latencies
Interaction latencies measure the time taken for interactions to complete. These percentile-based metrics help identify performance bottlenecks and optimize user experience.
Understanding Percentiles
Latency metrics are reported as percentiles:
| Percentile | Meaning | Description |
|---|---|---|
| P50 | Median | 50% of interactions complete within this time |
| P95 | 95th percentile | 95% of interactions complete within this time |
| P99 | 99th percentile | 99% of interactions complete within this time |
Why Percentiles Matter:
- P50 shows typical user experience
- P95 reveals performance for most users
- P99 highlights worst-case scenarios and tail latencies
Examples
Example 1: Fast Interaction
| Metric | Value |
|---|---|
| Interaction | "Button Click Response" |
| P50 Latency | 50ms |
| P95 Latency | 120ms |
| P99 Latency | 200ms |
| Analysis | ✅ Very responsive - most users experience sub-100ms response times |
Example 2: Moderate Latency
| Metric | Value |
|---|---|
| Interaction | "Form Submission" |
| P50 Latency | 300ms |
| P95 Latency | 800ms |
| P99 Latency | 1500ms |
| Analysis | ⚠️ Acceptable performance - majority of users experience reasonable response times |
Example 3: High Latency
| Metric | Value |
|---|---|
| Interaction | "Data Export" |
| P50 Latency | 2000ms |
| P95 Latency | 5000ms |
| P99 Latency | 10000ms |
| Analysis | ❌ Slow performance - significant portion of users experience delays, optimization needed |
Example 4: Variable Latency
| Metric | Value |
|---|---|
| Interaction | "Search Query" |
| P50 Latency | 150ms |
| P95 Latency | 2000ms |
| P99 Latency | 5000ms |
| Analysis | ⚠️ Inconsistent performance - while median is good, tail latencies are problematic |