Open AnalyticsOpen Analytics
Home/Documentation

Metrics

Dashboard numbers are computed in the Next.js app from raw eventsin each site's Supabase project. Definitions align with common product analytics (similar to Umami visit-based bounce).

Summary cards

MetricDefinition
VisitorsCount of unique visitor_id values in the selected period. Visitor id comes from a browser fingerprint stored in localStorage.
VisitsCount of unique visit_id values. A new visit starts after 30 minutes without activity (tracker-side).
PageviewsNumber of events where event_type = 1 (pageview).
Bounce ratePercentage of visits that contain exactly one pageview. Formula: (bounced visits / total visits) × 100.
Visit timeAverage time on site for visits with at least two pageviews. Computed from timestamps between first and last pageview in each visit. Single-page visits are excluded from this average.

Date range

The site overview supports 7 or 30 days via the period selector (?days=7 or ?days=30 on the URL).

Breakdown panels

  • Channel — grouped traffic source (direct, organic, social, etc.) from referrer and UTM
  • Referrer — referring host
  • UTM — campaign dimensions when present
  • Pages — top paths by pageviews
  • Entry / Exit pages — first and last page per visit
  • Country — donut chart from country_code
  • Browser, device, OS — from tracker enums

Realtime (last 5 minutes)

The realtime view shows active visitors from recent events and Supabase Realtime subscriptions. Metrics like "last 5 min" pageviews are a rolling window, not the same as the 7/30-day overview.

What is not filtered today

  • Server-side bot exclusion — bots are blocked in the tracker by User-Agent, but events inserted directly into the database are not filtered when aggregating stats.
  • Logged-in users — use OpenAnalytics.identify() for distinct_id; visitor counts still use visitor_id.