The dashboard
Reading your numbers: intervals, comparisons, timezones, and every breakdown explained.
How the overview reads
A site's overview reads top to bottom. The headline totals come first (visitors, pageviews, bounce rate, average visit), then the traffic chart, then the breakdowns: pages, sources, geography, devices and custom events. Every number answers the range picked in the header, and every breakdown is that same range cut a different way, so nothing on the page is measuring a different window than anything else.
The headline numbers
| Metric | What it counts |
|---|---|
| Visitors | Unique people in the range, counted with the daily-rotating identifier. Never summed from days, so a 30-day count is not the sum of 30 daily counts. |
| Pageviews | Every page load and client-side route change. |
| Bounce rate | The share of sessions with a single interaction, rebuilt server-side from the 30-minute session rule. |
| Average visit | Mean session duration, from engagement time rather than raw tab-open time. |
Ranges and comparisons
- The interval picker covers today, yesterday, the last 7 and 30 days, month and year views, 6 and 12 months, and All time (anchored at your site's first event).
- Comparisons show the preceding equal-length period beside the current one, so a delta is always against something concrete rather than a vague trend.
- The chart picks its own grain honestly: hours for a day, days for a month, ISO weeks for 6 and 12 months.
Weekly uniques are merged, not summed
The breakdowns
Pages
Top paths by pageviews, with entries and exits, so you can see where people land and where they leave.
Sources
Where visits come from, canonicalised: your own domain is dropped as a referrer, and hosts are folded to a channel name with a favicon, so Google's many subdomains read as one Google. Visits that arrive with no referrer at all read as Direct — tagging your links (just below) is how you give those a name. See troubleshootingif a number looks lower than another tool's.
AI referrals
The visits AI assistants sent: ChatGPT, Claude, Perplexity, Gemini and the rest, one row each, with the total and its share of all visitors on top. A visit counts when the assistant is its referrer, or, when it arrived with no referrer at all, when the utm tag the assistant added names it: ChatGPT writes utm_source=chatgpt.com and Claude writes utm_source=Claude AI, and a click from their apps carries the tag with no referrer, so it is counted here rather than filed under Direct. Each visit counts once. A referral is a click; being cited inside an answer without a click leaves no trace here, so a small number does not mean you are absent from AI answers. Clicks out of Google AI Overviews arrive as google.com and cannot be separated from search.
Geography and technology
Country-level geography from a privacy-preserving lookup, and one technology card that cuts the same visits by browser, operating system or device type, picked in its header, each over the same range.
Custom events
The events you defined, with counts, when they last fired and a sample of their properties. See custom events to add them.
Tag your own links
Browsers send less and less referrer information every year, and some places send none at all — a link in a newsletter, a PDF, a chat app or an app's in-built browser usually arrives with nothing at all attached, which is why so much traffic reads as Direct. Adding a ref to the link fixes that, and there is nothing to turn on: if a visit arrives with no referrer of its own, the tag names the source.
https://example.com/?ref=twitter
https://example.com/pricing?ref=newsletter- Known names are folded onto the site they mean, so ?ref=twitter lands in the same row as the visits X reports itself. A domain works too: ?ref=selfh.st.
- Anything else is kept exactly as you wrote it, so ?ref=newsletter is its own row in Sources — useful for the places that have no domain at all.
- A referrer the browser did send always wins. The tag only fills in what would otherwise be Direct, so a leftover ?ref on your own internal links cannot invent a visit.
Many sites already do this for you
?ref=producthuntto every outbound link, and so do most launch boards, directories and newsletters. You do not have to ask them for anything — those visits stop reading as Direct on their own.ref and UTM tags answer different questions and do not compete: utm_source and its companions are their own cuts of the Sources card, for campaigns you are running and measuring, while refis a light way to name where a single link lives. A link may carry both. Tagging is only read going forward — it cannot relabel visits that already happened.Sessions and engagement
A session is rebuilt server-side with a 30-minute inactivity rule; bounce rate and average visit duration both come from it. Engagement time is measured with two clocks (visible time, and active time near a real interaction), so a tab parked in the background does not inflate anything.
Whose clock cuts the day
Charts follow the site's reporting timezone, so Today means the same day for everyone on the team. To read the numbers on your own clock, switch the timezone from the dashboard header; it changes your view only. The timezones page has the details.