Back to docs

Multi Persona Comparison

Run the same journey with multiple personas and compare how different users experience your site. (v6.0.0)


The Power of Comparison

Testing with one persona tells you if that user type can complete a task. Testing with multiple personas reveals:

  • Who struggles most with your interface
  • Where the gaps are between expert and novice users
  • Accessibility issues affecting specific user types
  • Mobile vs desktop experience differences
  • Actionable priorities for UX improvement

Quick Start

npx cbrowser compare-personas \
  --start "https://your-site.com" \
  --goal "Complete checkout process" \
  --personas power-user,first-timer,elderly-user,mobile-user

Understanding the Output

🎭 MULTI-PERSONA COMPARISON REPORT
══════════════════════════════════════════════════════════════

πŸ“ Start: https://shop.example.com
🎯 Goal: Complete checkout process

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Persona         β”‚ Success  β”‚ Time     β”‚ Friction β”‚ Key Issues              β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ power-user      β”‚ βœ“        β”‚ 12.5s    β”‚ 0        β”‚ -                       β”‚
β”‚ first-timer     β”‚ βœ“        β”‚ 45.2s    β”‚ 2        β”‚ Confusing CTA           β”‚
β”‚ elderly-user    β”‚ βœ—        β”‚ 120.3s   β”‚ 5        β”‚ Small buttons, tiny textβ”‚
β”‚ mobile-user     β”‚ βœ“        β”‚ 28.1s    β”‚ 1        β”‚ Horizontal scroll issue β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

══════════════════════════════════════════════════════════════
πŸ“Š ANALYSIS
══════════════════════════════════════════════════════════════

Success Rate: 75% (3/4 personas completed goal)

Time Analysis:
  Fastest: power-user (12.5s)
  Slowest: elderly-user (120.3s)
  Ratio: 9.6x difference

Friction Points (total: 8):
  β€’ "Checkout button too small" - elderly-user (3 occurrences)
  β€’ "Form labels unclear" - first-timer (2 occurrences)
  β€’ "Horizontal overflow on cart" - mobile-user (1 occurrence)
  β€’ "CTA not visible above fold" - first-timer (1 occurrence)
  β€’ "Input field hard to tap" - elderly-user (1 occurrence)

══════════════════════════════════════════════════════════════
πŸ’‘ RECOMMENDATIONS
══════════════════════════════════════════════════════════════

πŸ”΄ HIGH PRIORITY (blocking users):
  β€’ Increase button sizes for elderly-user accessibility
  β€’ Fix mobile horizontal scroll issue

🟑 MEDIUM PRIORITY (causing friction):
  β€’ Make primary CTA more prominent (first-timer struggled)
  β€’ Improve form label clarity

🟒 LOW PRIORITY (optimizations):
  β€’ Consider reducing steps for power-users (already fast)

══════════════════════════════════════════════════════════════
πŸ“ˆ BASELINE COMPARISON
══════════════════════════════════════════════════════════════

If power-user takes 12.5s (baseline):
  β€’ first-timer: +262% time (3.6x slower)
  β€’ elderly-user: +862% time (9.6x slower) ⚠️
  β€’ mobile-user: +125% time (2.2x slower)

Industry benchmark for checkout: <60s for all users
  βœ“ power-user: PASS
  βœ“ first-timer: PASS
  βœ— elderly-user: FAIL (needs improvement)
  βœ“ mobile-user: PASS

Choosing Personas

For E-commerce

--personas power-user,first-timer,elderly-user,mobile-user
  • power-user: Your repeat customers
  • first-timer: New visitors discovering your site
  • elderly-user: Older customers (often high purchasing power)
  • mobile-user: Growing segment (50%+ of traffic)

For SaaS Applications

--personas power-user,first-timer,mobile-user,impatient-user
  • power-user: Daily active users
  • first-timer: Trial users (conversion critical)
  • mobile-user: On-the-go usage
  • impatient-user: Users with low patience (churn risk)

For Accessibility Testing

--personas screen-reader-user,elderly-user,mobile-user
  • screen-reader-user: Tests ARIA labels and keyboard nav
  • elderly-user: Vision and motor limitations
  • mobile-user: Touch interface challenges

Report Formats

Console (Default)

npx cbrowser compare-personas --start "..." --goal "..."

JSON Report

npx cbrowser compare-personas \
  --start "..." \
  --goal "..." \
  --output comparison-report.json
{
  "startUrl": "https://shop.example.com",
  "goal": "Complete checkout",
  "timestamp": "2025-01-30T12:00:00Z",
  "results": [
    {
      "persona": "power-user",
      "success": true,
      "totalTime": 12500,
      "frictionPoints": [],
      "steps": [...]
    },
    {
      "persona": "elderly-user",
      "success": false,
      "totalTime": 120300,
      "frictionPoints": [
        "Button too small at step 4",
        "Text too small at step 6"
      ],
      "failedAt": {
        "step": 8,
        "action": "click checkout button",
        "error": "Could not click: target too small"
      }
    }
  ],
  "analysis": {
    "successRate": 0.75,
    "averageTime": 51525,
    "commonFriction": ["small buttons", "unclear labels"],
    "recommendations": [...]
  }
}

HTML Report

npx cbrowser compare-personas \
  --start "..." \
  --goal "..." \
  --html

Generates a visual dashboard with:

  • Success/failure gauges per persona
  • Time comparison bar charts
  • Friction point heatmaps
  • Step-by-step screenshots
  • Exportable recommendations

API Usage

import { comparePersonas } from 'cbrowser';

const result = await comparePersonas({
  startUrl: 'https://shop.example.com',
  goal: 'Add item to cart and begin checkout',
  personas: ['power-user', 'first-timer', 'elderly-user', 'mobile-user'],
  headless: true,
});

// Check overall success
console.log(`Success rate: ${result.successRate * 100}%`);

// Find failing personas
const failures = result.results.filter(r => !r.success);
for (const f of failures) {
  console.log(`${f.persona} failed: ${f.failedAt.error}`);
}

// Get recommendations
for (const rec of result.recommendations) {
  console.log(`[${rec.priority}] ${rec.suggestion}`);
}

// Compare times
const baseline = result.results.find(r => r.persona === 'power-user');
for (const r of result.results) {
  const ratio = r.totalTime / baseline.totalTime;
  console.log(`${r.persona}: ${ratio.toFixed(1)}x baseline`);
}

Best Practices

1. Always Include a Baseline

Use power-user as your baseline. This is the best-case scenario and makes comparisons meaningful.

2. Test Critical User Journeys

Focus on high-value flows:

  • Signup/onboarding
  • Checkout/purchase
  • Key feature usage
  • Error recovery

3. Run Regularly

# Weekly comparison in CI
- cron: '0 0 * * 0'
  run: npx cbrowser compare-personas --start "..." --goal "..." --output weekly-comparison.json

4. Track Trends Over Time

// Compare this week vs last week
const thisWeek = await comparePersonas({...});
const lastWeek = JSON.parse(fs.readFileSync('last-week.json'));

for (const persona of ['elderly-user', 'first-timer']) {
  const current = thisWeek.results.find(r => r.persona === persona);
  const previous = lastWeek.results.find(r => r.persona === persona);

  const improvement = ((previous.totalTime - current.totalTime) / previous.totalTime) * 100;
  console.log(`${persona}: ${improvement > 0 ? '↑' : '↓'} ${Math.abs(improvement).toFixed(1)}%`);
}

5. Act on Recommendations

The recommendations are prioritized:

  • πŸ”΄ High: Blocking users from completing goals
  • 🟑 Medium: Causing significant friction
  • 🟒 Low: Optimizations for better experience

Fix high priority items first. They have the biggest impact.


Interpreting Results

Time Ratios

Ratio Interpretation
< 2x Acceptable difference
2-3x Room for improvement
3-5x Significant UX gap
> 5x Critical accessibility issue

Friction Points

Count Interpretation
0 Smooth experience
1-2 Minor issues
3-5 Notable friction
> 5 Needs redesign

Success Rate

Rate Interpretation
100% All user types succeed
75%+ Most users succeed
50-75% Significant issues
< 50% Critical problems

Related


Copyright: (c) 2026 Alexa Eden.

License: MIT License

Contact: [email protected]

From the Blog