Interpret Web Vitals, flag performance impact, and session data in the Flaggr analytics dashboard
Last updated May 31, 2026
Analytics Dashboard
The analytics dashboard shows real-time performance data correlated with feature flag variants, plus first-party admin analytics for the Flaggr console workflow. 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.
Admin Analytics Tools
The dashboard tool launcher includes two first-party console analytics pages:
| Tool | Route | What it shows |
|---|---|---|
| Admin Funnel | /console/[slug]/analytics/admin-funnel | Users moving from flags index to flag detail to toggle or targeting-rule activation |
| Adoption Cohorts | /console/[slug]/analytics/adoption-cohorts | Weekly projects that create flags and return to view them |
These pages use admin events collected by the Flaggr console itself. See Admin Analytics for event definitions, test data generation, and API details.
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
- Admin Analytics — Measure console activation funnels and adoption cohorts
- Analytics API Reference — Full endpoint reference
- Analytics & A/B Testing — Use analytics to measure experiment outcomes