# Analytics metrics and definitions

> How every metric in Privatus Analytics is calculated: visitors, visits, pageviews, bounce rate, visit duration, conversions, revenue, Web Vitals and uptime.

This page defines every metric in the app. See [How visitors are counted](/docs/metrics/how-visitors-are-counted) for
how visits and visitors are built without cookies.

| Metric | Definition |
|---|---|
| **Visitors** | Unique visitors per day, summed over the days in the range ("visitor-days"). Someone who visits on Monday and Tuesday counts twice in a weekly total. We can't deduplicate visitors across days, by design |
| **Visits** (sessions) | A series of hits from one visitor with less than 30 minutes of inactivity between them, ending at midnight UTC at the latest |
| **Pageviews** | Page loads plus single-page-app route changes |
| **Views per visit** | Pageviews ÷ visits |
| **Bounce rate** | The share of visits with **one pageview, no custom event, and less than 10 seconds of engaged time**. Stricter than most tools, so a reader who spends three minutes on one article isn't a bounce |
| **Visit duration** | The engaged time of a visit: the time its pages were visible, added up over the visit. Time in a background tab doesn't count. Shown as the **median** over visits |
| **Time on page** | The visible time a visit spent on a page, as a median over the visits that viewed it. Includes the last page of a visit (measured when the page is hidden or closed) |
| **Scroll depth** | The deepest scroll a visit reached on a page, rounded down to a 10% band. Reported as the median |
| **Entry page / exit page** | The first / last page viewed in a visit |
| **Entry rate** | Visits that started on a page ÷ visits that viewed it |
| **Exit rate** | Visits that ended on a page ÷ its pageviews |
| **Bounce rate of a page** | Bounced visits that started on the page ÷ visits that started on it |
| **Conversions** | Visits in which a goal was completed at least once |
| **Conversion rate** | Conversions ÷ all visits in the range |
| **Goal completions** | Every time the goal was completed, including repeats in one visit |
| **Goal value** | Nothing, a fixed amount per conversion (or per completion), or the revenue of the completing events, as set on the goal |
| **Revenue** | The sum of every event's `revenue`, converted to the site currency at the ECB reference rate of the event's date when the event is received. The original amount and currency are stored with the event. See [Revenue](/docs/events/revenue) |
| **Live visitors** | Distinct visits with a hit in the last 5 minutes |
| **Web Vitals** | The 75th percentile (p75) of each metric (LCP, INP, CLS, FCP, TTFB), plus the share of good / needs improvement / poor by Google's thresholds |
| **Uptime** | The share of the period that was not covered by an incident, counted from the check's creation. See [Uptime](/docs/features/uptime) |

Visits belong to the period they started in, and their visit metrics
(visitors, bounce rate, visit duration, revenue) are counted there.
Charts and date ranges use the site's timezone. Visits and visitor-days
are cut at midnight UTC.

"Engaged time" needs the `engage` [module](/docs/tracker/modules), which
is on by default. Without it, visit duration and time on page are zero and
bounce rate counts every single-page visit without an event.

## Freshness

New events are written to the database in batches, normally within a few
seconds. Reports for a range that includes today are cached for up to a
minute, and reports for past ranges for up to 6 hours. The Live page
refreshes every 5 seconds.

## Totals in breakdowns

In breakdown panels, the **share** column is each row's share of the total
for the whole period (visitors, pageviews or completions, depending on the
panel), not only of the rows shown.

Source, location and technology are fixed when a visit starts (first
touch), so each visit and visitor-day counts under exactly one channel,
country or device. Page and event rows can add up to more than the
headline number, because one visit can view several pages and send several
events.

## Filtering

Filters don't change definitions, only which visits and events count. See
[Filters and segments](/docs/dashboard/filters-and-segments).

## More

- [How visitors are counted](/docs/metrics/how-visitors-are-counted)
- [Why numbers differ from GA4](/docs/metrics/ga4-differences)
- [Channels](/docs/metrics/channels): how traffic sources are classified.
