Skip to main content

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:

MetricDescription
Unique VisitorsDistinct session IDs in the period
Page ViewsTotal page view events
Avg Session DurationMean time between first and last event per session
Bounce RateSessions 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.

MetricGoodNeeds ImprovementPoor
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