# Metrics glossary

> The exact definition of every metric shown in the product, matched to the query that computes it, including where the numbers legitimately disagree.

Section: Reference. Canonical page: https://mrkr.app/docs/reference/metrics. Last updated: 2026-10-03.

Each definition below matches the query that produces the number, not a rough description of it. Where a metric is computed differently under filters than without them, that's noted.

- `Visitors` (COUNT(DISTINCT visitor_id) over sessions in range): Distinct people, counted from the sessions table over the selected range. Visitor identity depends on tracking mode: see the cookieless-vs-cookie note in [accuracy](https://mrkr.app/docs/best-practices/accuracy), since it changes what "distinct" means over a multi-day range.
- `Sessions` (one row per (site, session_id) in `sessions`): One row per continuous visit. A session starts when the tracker generates a fresh session id (on a new tab, after 30 minutes of inactivity, or after the tab was closed and reopened at least 2 seconds later), and every event in that session, including the final page-leave beacon, extends its last-seen time.
- `Pageviews` (COUNT of event_type='pageview' rows): Every pageview event recorded, including ones fired manually via `mrkr.pageview()` and the automatic ones on SPA route changes. A session's `page_count` only increments on pageview events, not on outbound clicks or custom events.
- `Views per session` (pageviews / sessions): Total pageviews divided by total sessions over the range. Not a per-session average computed row by row and then averaged: it's the range totals divided once.
- `Bounce rate` (sessions WHERE page_count <= 1, ÷ total sessions): The share of sessions with exactly one pageview. This is purely a page-count threshold: there is no time or engagement component, so a session where someone read one page carefully for ten minutes and left still counts as a bounce.
- `Session duration` (AVG(MIN(last_seen − started_at, 30 min)), single-event sessions excluded): The average of (last event time − session start time) across sessions, with each session's span capped at 30 minutes before averaging so one abandoned tab left open overnight can't drag the average up. Sessions that never received a second event (last-seen equal to started-at) are excluded from the average entirely, not counted as zero.
- `Engaged time` (per-pageview, cumulative, MAX of reports; no average surfaced): Time a visitor spent actively on one page: ticking only while the tab is visible and there's been mouse, keyboard, scroll, or touch activity in the last 30 seconds, capped at 30 minutes per page. The tracker reports it as a cumulative total that can arrive more than once for the same page (once when the tab is backgrounded, again when it is closed); the server keeps the largest reading. No page-level or session-level average of engaged time is shown anywhere in the product today. It appears only as a single formatted duration per pageview, in the visitor timeline drawer and the live event feed. For a session-level figure, use session duration instead.
- `Entry page` (sessions.entry_path): The path of the first pageview in a session. Set once, when the session starts, and never overwritten.
- `Exit page` (sessions.exit_path): The path of the most recent pageview in a session. Overwritten on every pageview, so mid-session it reflects "the current page," and only becomes final once the session goes idle.
- `Stickiness` (distinct active UTC days per visitor, bucketed): How many distinct calendar days each visitor was active within the range, bucketed. "Returning share" is the portion of visitors active on more than one day; "average days" is the mean active days per visitor. This is a different question from retention: retention asks whether someone came back at all, stickiness asks how often.
- `Conversion rate` (converting visitors / all visitors): Unique visitors who triggered a conversion-marked event, divided by unique visitors in the range: visitor-based, not session-based, so a visitor who converts twice in one range still counts once in the numerator. An event becomes a "conversion" when it's starred from the Events page.
- `Revenue` (selected-currency monetary events): Sources and Revenue sum explicit revenue amounts and numeric properties configured as revenue on custom events, for one selected currency. Duration measurements do not count as money. No currency conversion is applied.
- `ARPV (average revenue per visitor)` (revenue / visitors): Total revenue divided by total visitors over the same range.

## Why chart bars don't always sum to the headline

> **Note:** The Visitors KPI is a range-wide distinct count; the daily chart is a distinct count *per day*. Someone active on three separate days is one visitor in the KPI but contributes to three separate bars, so summing the bars can legitimately exceed the headline number. Pageviews and sessions don't have this property; their daily bars always sum exactly to the range total, because a pageview or a session belongs to exactly one day.
