Interpret Web Vitals, flag performance impact, and session data in the Flaggr analytics dashboard
Last updated March 21, 2026
Analytics Dashboard
The analytics dashboard shows real-time performance data correlated with feature flag variants. Navigate to Console > [Project] > Analytics to access it.
Video walkthrough: See Analytics Dashboard Tour for a visual overview of metrics, Web Vitals, flag impact analysis, and the live event feed.
Overview Strip
The top row shows four key metrics for the selected time range:
| Metric | Description |
|---|---|
| Unique Visitors | Distinct session IDs in the period |
| Page Views | Total page view events |
| Avg Session Duration | Mean time between first and last event per session |
| Bounce Rate | Sessions with only one page view |
Each card includes a 7-day sparkline trend. Use the time range picker to switch between 1 hour, 24 hours, 7 days, and 30 days.
Querying via API
curl "https://flaggr.dev/api/analytics/overview?siteId=proj_abc123&range=24h" \
-H "Authorization: Bearer <token>"Response:
{
"visitors": 1842,
"pageviews": 5231,
"avgSessionDuration": 124500,
"bounceRate": 0.34,
"range": "24h"
}Web Vitals Panel
Shows p50, p75, and p95 percentiles for each Core Web Vital, color-coded against Google's thresholds.
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP | ≤ 2500ms | ≤ 4000ms | > 4000ms |
| CLS | ≤ 0.1 | ≤ 0.25 | > 0.25 |
| INP | ≤ 200ms | ≤ 500ms | > 500ms |
| TTFB | ≤ 800ms | ≤ 1800ms | > 1800ms |
| FCP | ≤ 1800ms | ≤ 3000ms | > 3000ms |
The time-series chart plots p75 values over the selected range. Toggle "Compare by flag" to split each chart into per-variant lines — this shows whether a specific flag variant degrades or improves a vital.
Querying vitals via API
# All vitals
curl "https://flaggr.dev/api/analytics/vitals?siteId=proj_abc123&range=7d" \
-H "Authorization: Bearer <token>"
# Vitals filtered by flag
curl "https://flaggr.dev/api/analytics/vitals?siteId=proj_abc123&range=7d&flagKey=new-checkout" \
-H "Authorization: Bearer <token>"Response:
{
"vitals": [
{ "metric": "lcp", "p50": 1200, "p75": 1850, "p95": 3200, "count": 4521 },
{ "metric": "cls", "p50": 0.03, "p75": 0.08, "p95": 0.18, "count": 4521 },
{ "metric": "inp", "p50": 85, "p75": 145, "p95": 320, "count": 3890 }
],
"range": "7d"
}Pre-aggregated data
Vitals are pre-aggregated hourly into the analytics_vitals_hourly table, grouped by metric and flag combination. This means historical queries over 7-day or 30-day ranges are fast — they read from pre-computed percentiles rather than scanning raw events.
Flag Impact Table
The flag impact section shows how each active feature flag variant affects real-world performance. One row per flag, with columns for:
- Flag name and current variant
- Page views per variant in the period
- Sessions per variant
- LCP p75 per variant
- Average CLS per variant
- Delta vs baseline — percentage change compared to the control variant
Click any row to expand the full vitals breakdown by variant.
Querying flag impact via API
curl "https://flaggr.dev/api/analytics/flag-impact?siteId=proj_abc123&range=24h" \
-H "Authorization: Bearer <token>"Response:
{
"impact": [
{
"flagKey": "new-checkout",
"variants": [
{ "variant": "control", "pageviews": 2100, "sessions": 820, "lcpP75": 1900, "avgCls": 0.05 },
{ "variant": "v2", "pageviews": 2050, "sessions": 810, "lcpP75": 1650, "avgCls": 0.04 }
]
}
],
"range": "24h"
}In this example, the v2 variant shows a 13% improvement in LCP p75 and a 20% improvement in CLS compared to control.
Variant Statistics
For detailed per-variant analytics on a specific flag, use the variant stats endpoint:
curl "https://flaggr.dev/api/analytics/flags/new-checkout/variants?projectId=proj_abc123&environment=production&period=7d" \
-H "Authorization: Bearer <token>"Response:
{
"flagKey": "new-checkout",
"environment": "production",
"period": "7d",
"variants": [
{
"variant": "control",
"evaluations": 12500,
"conversions": 625,
"conversionRate": 0.05,
"avgEventValue": 42.50,
"latencyP50": 3.2,
"latencyP99": 18.5
},
{
"variant": "v2",
"evaluations": 12300,
"conversions": 738,
"conversionRate": 0.06,
"avgEventValue": 45.20,
"latencyP50": 3.1,
"latencyP99": 17.8
}
],
"totalEvaluations": 24800,
"totalConversions": 1363,
"overallConversionRate": 0.055
}Funnel Analysis
Analyze multi-step conversion funnels segmented by flag variant:
curl "https://flaggr.dev/api/analytics/funnel?projectId=proj_abc123&flagKey=new-checkout&steps=page_view,add_to_cart,checkout,purchase&environment=production&period=7d" \
-H "Authorization: Bearer <token>"Response:
{
"flagKey": "new-checkout",
"steps": ["page_view", "add_to_cart", "checkout", "purchase"],
"funnelSteps": [
{ "step": "page_view", "stepIndex": 0, "totalUsers": 5000, "byVariant": { "control": 2500, "v2": 2500 }, "dropOffRate": 0 },
{ "step": "add_to_cart", "stepIndex": 1, "totalUsers": 1200, "byVariant": { "control": 550, "v2": 650 }, "dropOffRate": 0.76 },
{ "step": "checkout", "stepIndex": 2, "totalUsers": 800, "byVariant": { "control": 350, "v2": 450 }, "dropOffRate": 0.33 },
{ "step": "purchase", "stepIndex": 3, "totalUsers": 600, "byVariant": { "control": 250, "v2": 350 }, "dropOffRate": 0.25 }
],
"overallConversionRate": 0.12
}Live Event Feed
The collapsible live event feed at the bottom of the dashboard shows the last 50 events, auto-refreshing every 5 seconds. Each entry shows:
- Timestamp
- Event type icon (page view, vital, click, error, scroll)
- URL
- Active flag variants at the time of the event
Querying recent events via API
curl "https://flaggr.dev/api/analytics/events?siteId=proj_abc123&limit=50" \
-H "Authorization: Bearer <token>"Response:
{
"events": [
{
"id": 12345,
"type": "webvital",
"url": "/checkout",
"timestamp": "2026-03-20T10:30:00.000Z",
"country": "US",
"browser": "Chrome",
"flags": { "new-checkout": "v2" },
"data": { "metric": "lcp", "value": 1650, "rating": "good" }
}
]
}Demo Mode
When demo mode is enabled on a project, Flaggr seeds ~24 hours of synthetic analytics data with realistic distributions. This lets you explore the full dashboard without waiting for production traffic. Demo data includes:
- Page views across multiple URLs
- Web Vitals with natural variance (mostly good, some needs-improvement)
- Sessions with varying durations
- Flag variants showing measurable impact differences
Next Steps
- Browser Analytics — Install and configure the analytics script
- Analytics API Reference — Full endpoint reference
- Analytics & A/B Testing — Use analytics to measure experiment outcomes