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¶
Overview Metrics¶
Response Rate¶
Percentage of users who completed the survey after seeing it.
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.
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%)
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¶
- User submits free-text answer
- Claude Haiku analyzes sentiment (positive, neutral, negative)
- Confidence score (0-1) indicates model certainty
- 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¶
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:
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¶
CSV columns:
- Response ID
- User ID
- Submitted At
- Q1 Answer
- Q2 Answer
- ...
- Sentiment (if applicable)
- Completion Time (seconds)
JSON Export¶
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:
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¶
- Create your first survey
- Set up targeting rules
- Export response data
- Build workflows from survey responses
Tip: Use sentiment analysis to identify themes without reading every response. Focus on negative sentiment to prioritize improvements.