Skip to content

Survey Analytics

!!! info "TL;DR" Track response rates, completion rates, and sentiment analysis powered by Claude Haiku. Export data as CSV or JSON. View real-time analytics as responses come in.

Accessing Analytics

Admin Dashboard → Surveys → [Your Survey] → Analytics

Overview Metrics

Response Rate

Percentage of users who completed the survey after seeing it.

Response Rate = (Completed Responses / Impressions) × 100

Example: 150 completed / 1000 impressions = 15% response rate

Benchmarks:

  • Excellent: >20%
  • Good: 10-20%
  • Poor: <10%

Completion Rate

Percentage of users who finished after starting.

Completion Rate = (Completed / Started) × 100

Example: 150 completed / 200 started = 75% completion rate

Benchmarks:

  • Excellent: >80%
  • Good: 60-80%
  • Poor: <60%

Low completion rates indicate:

  • Survey is too long
  • Questions are confusing or sensitive
  • Technical issues (e.g., mobile rendering problems)

Median Completion Time

Time from start to submit (median value to exclude outliers).

Benchmarks:

  • Short: <3 minutes
  • Medium: 3-7 minutes
  • Long: >7 minutes

Aim for <5 minutes to maximize completion rates.

Abandonment Point

Which question caused users to drop off?

Example report:

Question Abandonment Rate
Q1 5%
Q2 8%
Q3 22% ⚠️
Q4 12%

High abandonment at Q3 suggests the question is too sensitive, confusing, or requires too much effort.

Question-Level Analytics

Multiple Choice

Response distribution:

Option Count Percentage
iOS 120 60%
Android 50 25%
Web 25 12.5%
Other 5 2.5%

Visualization: Horizontal bar chart.

Rating Scale

Average rating: 4.2 / 5

Distribution:

5 ⭐⭐⭐⭐⭐ ████████████████████ 60 (40%)
4 ⭐⭐⭐⭐   ██████████████       45 (30%)
3 ⭐⭐⭐     ████████             20 (13%)
2 ⭐⭐       ████                 10 (7%)
1 ⭐         ██                   5 (3%)

Visualization: Histogram.

NPS (Net Promoter Score)

Score: +42

Segmentation:

  • Promoters (9-10): 70 responses (47%)
  • Passives (7-8): 55 responses (37%)
  • Detractors (0-6): 25 responses (17%)
NPS = % Promoters - % Detractors
    = 47% - 17%
    = +42

Benchmarks:

  • Excellent: >50
  • Good: 20-50
  • Poor: <20
  • Negative: <0

Free Text (Long)

Response count: 85

Word cloud: Most common words (size = frequency)

Sentiment breakdown:

Sentiment Count Percentage
Positive 50 59%
Neutral 25 29%
Negative 10 12%

Sentiment Analysis

Powered by Claude Haiku for free-text responses.

How It Works

  1. User submits free-text answer
  2. Claude Haiku analyzes sentiment (positive, neutral, negative)
  3. Confidence score (0-1) indicates model certainty
  4. Themes are extracted (e.g., "dark mode", "performance")

Example Analysis

Response:

"Love the new roadmap feature! It's exactly what we needed. Performance could be better on mobile though."

Sentiment:

{
  "sentiment": "positive",
  "confidence": 0.82,
  "themes": ["roadmap", "performance", "mobile"],
  "summary": "User praises roadmap feature but notes mobile performance issues."
}

Aggregate Sentiment

View sentiment trends over time:

Week 1: 70% positive, 20% neutral, 10% negative
Week 2: 65% positive, 25% neutral, 10% negative
Week 3: 75% positive, 15% neutral, 10% negative

Visualization: Line chart showing sentiment % over time.

Sentiment by User Segment

Compare sentiment across segments:

Segment Positive Neutral Negative
Free users 60% 30% 10%
Pro users 80% 15% 5%
Enterprise 85% 10% 5%

Insight: Pro and Enterprise users are more satisfied (likely due to better features or support).

Filtering and Segmentation

Filter by User Properties

Admin Dashboard → Surveys → Analytics → Filter

Available filters:

  • Plan (free, pro, enterprise)
  • Country (US, CA, UK, etc.)
  • Device (ios, android, web)
  • Created date (after 2024-01-01)

Example: View responses from pro users on iOS:

plan = "pro" AND device = "ios"

This helps identify segment-specific feedback.

Cohort Analysis

Compare responses between cohorts:

Cohort Response Rate Avg Rating NPS
New users (<30d) 18% 3.8 +25
Power users 25% 4.5 +60
Churned users 8% 2.5 -15

Insight: Power users are most engaged and satisfied.

Exporting Data

CSV Export

Admin Dashboard → Surveys → [Your Survey] → Export → CSV

CSV columns:

  • Response ID
  • User ID
  • Submitted At
  • Q1 Answer
  • Q2 Answer
  • ...
  • Sentiment (if applicable)
  • Completion Time (seconds)

JSON Export

Admin Dashboard → Surveys → [Your Survey] → Export → JSON

JSON structure:

{
  "survey_id": "srv_...",
  "responses": [
    {
      "id": "resp_...",
      "user_id": "user_...",
      "submitted_at": "2024-02-10T12:00:00Z",
      "answers": {
        "q1": { "answer": "iOS" },
        "q2": { "rating": 5 },
        "q3": { "answer": "Love it!", "sentiment": "positive" }
      },
      "completion_time": 120
    }
  ]
}

API Export

Fetch responses via REST API:

GET /api/surveys/:surveyId/responses
Authorization: Bearer ck_live_...

See API Reference for details.

Real-Time Updates

Analytics update in real-time as responses come in (powered by Supabase Realtime).

Example: Open the analytics dashboard while a survey is active. Watch response counts and sentiment percentages update live without refreshing the page.

Best Practices

Interpreting Response Rates

  • Low response rates (<10%) → Survey is poorly targeted, too long, or survey fatigue
  • High abandonment (>40%) → Identify drop-off points, simplify questions
  • Low completion rates (<60%) → Survey is too long or has confusing questions

Acting on Sentiment

  • Positive sentiment → Identify what's working, amplify it
  • Neutral sentiment → Users are indifferent, dig deeper with follow-up questions
  • Negative sentiment → Prioritize fixes, respond to users directly

Segmentation Insights

  • Compare cohorts → Identify which user segments need more attention
  • Track over time → Monitor sentiment trends to measure impact of changes
  • Filter by properties → Find patterns (e.g., iOS users rate higher than Android)

Next Steps


Tip: Use sentiment analysis to identify themes without reading every response. Focus on negative sentiment to prioritize improvements.