Features · Analyse
A Sankey diagram of the paths sessions actually take through your site, and goals that count conversions on a page pattern, a custom event or one of its properties — each with the query that counted it.
Up to eight steps and a hundred distinct journeys, per-step filters with wildcards, and hover counts and shares. Consecutive repeats of the same page collapse into one step, and early exits are shown rather than hidden. No charting library.
A page wildcard such as /blog/*, a custom event, or an event with a property value. Presets cover outbound clicks, file downloads and form submissions. Conversions are sessions, and the rate comes from one query, so the two numbers cannot disagree.
A wildcard goal is expanded into the exact list of paths it matched, bound as parameters — the evidence shows which pages counted, not a pattern you have to trust.
Ordered funnels (step N must happen after step N−1) are saved, edited and duplicated beside your goals, with the filters of the page applied to every step.
The evidence
SELECT c.conversions, t.sessions,
ROUND(100.0 * c.conversions / NULLIF(t.sessions, 0), 1) AS rate
FROM (SELECT COUNT(DISTINCT session_id) AS conversions FROM events
WHERE site_id = ? AND ts >= ? AND ts < ?
AND bot_kind = '' AND agent_trust = 'human'
AND type = 'event' AND name = ?) c,
(SELECT COUNT(DISTINCT session_id) AS sessions FROM events
WHERE site_id = ? AND ts >= ? AND ts < ?
AND bot_kind = '' AND agent_trust = 'human') t
A page goal swaps the event condition for path = ? — or, for a wildcard, path IN (…) with every matched path listed in the parameters.
Journeys and goals are counted within a session. Without identify(), a journey that continues on another day is two journeys, because an anonymous visitor's id rotates daily. Goals on button clicks and copied text are not available: the tracker does not autocapture those.