What You'll See in the Dashboard
In the Intelligence tab at einstein.clickstream.com, Intent, Frustration, and Engagement scores appear as real-time cards for each active visitor. Scores range from 0–100 with color coding: green (0–30), amber (31–60), red (61–100) for risk scores like Frustration (reversed for positive scores like Intent and Engagement). Click any score card to see its trend chart and contributing signals.
Business Actions: Configure threshold alerts in Settings → Alerts to trigger webhooks, Slack messages, or email notifications when scores cross your thresholds. Use the Intelligence → Rules engine for real-time personalization based on score combinations.
Model 1: Intent Classification
The intent score predicts the likelihood that a visitor will complete a conversion action during their current session. It answers the question every marketing and product team asks: Is this user going to buy?
Rather than relying on a single signal, the intent model combines multiple weighted behavioral indicators that collectively paint a picture of user motivation.
Intent Signal Weights
Each behavioral signal contributes to the overall intent score with a calibrated weight. These weights were derived from analysis across thousands of sites and are continuously refined.
| Signal | Weight | Description |
|---|---|---|
| Product page depth | 0.25 | Number of product/service pages viewed relative to session total |
| Cart/pricing interaction | 0.20 | Any interaction with cart, pricing page, or plan comparison |
| Return visit frequency | 0.15 | Number of sessions in past 7 days (normalized) |
| Search refinement | 0.12 | Number of search queries with filter adjustments |
| Time on high-value pages | 0.10 | Dwell time on product/pricing pages vs. informational pages |
| Scroll depth on product pages | 0.08 | Average scroll depth on product-category pages |
| Form field engagement | 0.06 | Interaction with checkout/signup form fields |
| Direct navigation | 0.04 | Navigating directly to deep pages (bookmarks, typed URLs) |
Intent Categories
The raw intent score (0–100) maps to five categorical intent levels, each with distinct implications for real-time action:
| Score Range | Category | Behavioral Pattern | Recommended Action |
|---|---|---|---|
| 0–15 | Browsing | Casual exploration, no product focus | Content engagement, educational CTAs |
| 16–35 | Researching | Multiple product pages, some comparison | Social proof, comparison guides |
| 36–55 | Evaluating | Deep product engagement, pricing views | Case studies, ROI calculators |
| 56–80 | Ready | Cart additions, form starts, repeated pricing | Urgency messaging, limited offers |
| 81–100 | Imminent | Checkout initiated, payment field focus | Remove friction, ensure smooth checkout |
Practical Application
Model 2: Frustration Detection
The frustration score quantifies how much friction a user is experiencing. High frustration correlates with abandonment, negative brand perception, and support ticket generation. Detecting it in real time lets you intervene before the user leaves.
The 9 Frustration Signals
Each signal is independently weighted and decayed over time. Recent frustration events carry more weight than older ones (exponential decay with a 90-second half-life).
| Signal | Weight | Detection Method | Threshold |
|---|---|---|---|
| Rage clicks | 0.20 | 3+ clicks within 500ms on same element | ≥1 occurrence |
| Dead clicks | 0.15 | Click on non-interactive element with no DOM response | ≥2 occurrences |
| Error encounters | 0.15 | JS errors, 4xx/5xx responses, failed form submissions | ≥1 occurrence |
| Cursor thrashing | 0.12 | Rapid mouse direction changes (>4 reversals/sec) | ≥3 seconds sustained |
| Excessive scrolling | 0.10 | Scroll reversal rate >2x normal for page length | Rolling 10s window |
| Form re-entry | 0.08 | Same field cleared and re-entered >2 times | ≥1 field affected |
| Back-button pogo-sticking | 0.08 | Navigating forward then immediately back (<5s) | ≥2 occurrences |
| Prolonged inactivity after error | 0.07 | No interaction for 15+ seconds following an error event | ≥1 occurrence |
| Tab switching after frustration | 0.05 | Tab hidden within 3s of a frustration signal | ≥1 occurrence |
Frustration Signal Storage
Each frustration event is recorded with enough context to enable post-hoc analysis and UX debugging:
Frustration × Intent Interaction Matrix
The frustration and intent scores interact in ways that are diagnostically valuable. This matrix shows how to interpret the combination:
| Low Frustration (0–30) | Medium Frustration (31–60) | High Frustration (61–100) | |
|---|---|---|---|
| Low Intent (0–30) | Normal browsing. No action needed. | Confused browser. Show help/navigation aids. | Lost user. Proactive chat or exit survey. |
| Medium Intent (31–60) | Healthy evaluation. Nurture with content. | Struggling evaluator. Simplify comparison. | At-risk researcher. Immediate UX intervention. |
| High Intent (61–100) | Smooth path to purchase. Minimize friction. | Motivated but struggling. Fix checkout UX. | Critical: high-value user about to abandon. |
Model 3: Engagement Scoring
The engagement score measures the depth and quality of a user's interaction with your content. Unlike simple time-on-page metrics, engagement scoring accounts for active vs. passive time, interaction diversity, and content consumption patterns.
The 8 Engagement Signals
| Signal | Weight | What It Captures |
|---|---|---|
| Active time ratio | 0.20 | Time with mouse/keyboard activity vs. total time on page |
| Scroll depth progression | 0.18 | How far down the page the user scrolled (0–100%) |
| Interaction diversity | 0.15 | Count of distinct interaction types (click, scroll, hover, type, select) |
| Content consumption rate | 0.12 | Estimated words read based on scroll speed and pause patterns |
| Meaningful click ratio | 0.10 | Clicks on interactive elements vs. total clicks |
| Session depth | 0.10 | Number of pages viewed with engagement > threshold |
| Return engagement | 0.08 | Higher scores for returning visitors who engage deeper |
| Cross-content exploration | 0.07 | Visiting diverse content categories (not just one section) |
The Tab Visibility Problem
One of the biggest challenges in engagement scoring is tab visibility. A user with your page open in a background tab is not engaged, even though their session timer is running. ClickStream solves this with the Page Visibility API:
Engagement Trajectories
Rather than just the current engagement score, ClickStream also tracks the trajectory -- whether engagement is increasing, stable, or declining. This is computed as the slope of a linear regression over the last 5 score updates.
| Trajectory | Slope Range | Interpretation |
|---|---|---|
| Rising | >+2.0/min | User is becoming more engaged. Content is resonating. |
| Stable | -2.0 to +2.0/min | Consistent engagement level. User has found their rhythm. |
| Declining | <-2.0/min | Interest is waning. Consider content refresh or CTA. |
| Spike-then-drop | Peak followed by rapid decline | User found what they needed (or got frustrated). Check frustration score. |
How the Three Scores Interact
Intent, frustration, and engagement are not independent. They form a diagnostic triangle that tells you what the user wants, how they are experiencing your site, and whether they are connecting with your content.
The Four Behavioral Archetypes
Combining the three foundational scores reveals four primary behavioral archetypes:
1. The Smooth Buyer
High intent + Low frustration + High engagement
This is your ideal user. They know what they want, your site is working for them, and they are deeply engaging with relevant content. Action: clear the path to checkout and minimize distractions.
2. The Struggling Converter
High intent + High frustration + Medium engagement
This user wants to buy but is fighting your UX. They are engaged enough to keep trying, but frustration is building. Action: immediate UX intervention -- proactive chat, simplified checkout, or error resolution.
3. The Passive Explorer
Low intent + Low frustration + Low engagement
A casual visitor who is not encountering problems but also not connecting deeply. They may be comparison shopping or arrived via a broad search. Action: content-based engagement -- blog posts, guides, social proof.
4. The Frustrated Bouncer
Low intent + High frustration + Declining engagement
A user who arrived with some interest but is now fighting the experience and losing interest. They are the most likely to leave negative reviews or never return. Action: exit survey, proactive support, follow-up email with a direct link to what they were looking for.
Real-World Example: E-Commerce Session
Let us walk through a complete e-commerce session to see how the three scores evolve together across six key events:
| Event # | Action | Intent | Frustration | Engagement | Archetype |
|---|---|---|---|---|---|
| 1 | Lands on homepage from Google search | 12 | 0 | 15 | Passive Explorer |
| 2 | Navigates to product category, scrolls 80% | 28 | 0 | 42 | Active Researcher |
| 3 | Views 3 product pages, compares specs | 52 | 5 | 65 | Engaged Evaluator |
| 4 | Adds to cart, clicks checkout | 78 | 5 | 72 | Smooth Buyer |
| 5 | Checkout form: rage-clicks submit (validation error) | 71 | 45 | 58 | Struggling Converter |
| 6 | Fixes error, completes purchase | 95 | 28 | 70 | Recovered Buyer |
Notice how the frustration spike at event 5 temporarily suppressed the intent score (from 78 to 71). ClickStream would have triggered a real-time alert at this point, potentially offering a proactive chat widget or a clearer error message. When the user recovered, both scores normalized -- but the frustration event remains in the session record for post-hoc UX analysis.
The interplay between these three scores provides a diagnostic toolkit that traditional analytics simply cannot match. You do not just know that a user bounced -- you know why, and you can intervene before they do.
Configuration & Tuning
All three models expose configurable parameters through the ClickStream dashboard:
- Signal weights: Adjust the relative importance of each signal for your specific site type.
- Decay half-life: Control how quickly historical signals fade (default: 90 seconds for frustration, 120 seconds for intent and engagement).
- Category thresholds: Customize the score ranges that define each intent category or frustration level.
- Cross-model dampening: Tune how strongly frustration suppresses intent and engagement.
- Alert triggers: Set thresholds that fire real-time webhooks or trigger personalization rules.