Funnels
A funnel measures a multi-step journey through your site and shows you where people drop off. Landing → signup → activation. Cart → checkout → purchase. Docs → trial → paid. You define the steps, and Voris tells you, for each step, how many sessions got there and how many fell away.
Like the rest of the dashboard, funnels are built to be honest about what they can and can’t tell you. Because Voris tracks people without cookies or cross-device identity, a funnel counts sessions within a day, not a single person stitched together across days and devices. That is a deliberate privacy property — explained in How funnels count below — not a limitation we hide.
Before you start: what funnels need
Funnels have two requirements. Both show a clear next step rather than a dead end if you do not meet them yet.
- Privacy Mode B (or C). Funnels count sessions moving from step to step, and that needs the pseudonymous session identity that Mode B adds. On a site that is still Mode A everywhere, the Funnels tab shows “Funnels need Mode B” with a link to your privacy mode settings. Switch the site (or a region) to Mode B and funnels turn on.
- The Growth plan or higher. Building funnels is a Growth feature. On Free or Starter, the tab shows “Funnels are a Growth feature” with a link to view plans. If you later downgrade, your saved funnels sit dormant and reappear intact when you upgrade again — nothing is deleted.
Anyone on your team can view existing funnels; creating, editing, and deleting them is limited to Owners and Admins.
Turning on Mode B
Mode B adds session-level analytics (unique visitors, sessions, and funnels) without third-party cookies and without a cookie banner. You can switch an existing site any time from Settings → Privacy & data, or choose Mode B when you create a new site. Moving from A → B shows a short privacy disclosure first, because Mode B processes pseudonymous personal data.
One thing to know up front: historical data does not convert. Sessions only exist from the moment a site is in Mode B onward, so a funnel can only analyze traffic collected after you switched.
Create a funnel
- Open your site and go to the Funnels tab and click New funnel. You can start from scratch, from a template (common outcomes like signup or checkout, prefilled and fully editable), or from one of your existing goals — a compatible goal can also offer “Use as funnel step” from the Goals page.
- The builder walks four short screens — Measure, Path, Audience, Review — and you can change everything before saving.
- Build the path as steps in order. Each step is a plain sentence: a
page (“visitor views
/pricing”) or an event your tracking sends (“doessignup_completed”). Type to search — Voris suggests your site’s real pages and events — and each step shows a live “matched ~N” count from your recent traffic, so a step that matches nothing is flagged before you save, with a suggestion to fix it. A funnel can have up to 10 steps. - Choose who counts on the Audience screen (Humans is the default — see Choosing who counts), and pick a conversion window: how long one session has to get from the first step to the last — 1, 6, 12, or 24 hours. The window is always same-day.
- Review and save.
If two steps could be satisfied by the same event — for example “any
pageview” followed by “views /pricing”, or the same step twice — the editor
shows a small heads-up naming the two steps. It never blocks saving: the
funnel is valid, but one visitor can count as completing both steps at once, so
its conversions read higher than the journey they actually took (and those steps
won’t show a time). It’s a nudge to tighten the steps if that isn’t what you
meant, not an error.
Voris evaluates the funnel against your site’s existing events right away. Funnels are a read-only lens over data you have already collected — defining one changes nothing about what is tracked, and there is no waiting for new data to accumulate.
How a page step matches
When a step targets a page, Voris matches it forgivingly by default,
so trivial URL differences don’t quietly cost you data: a step set to
/pricing matches /pricing and /pricing/ alike. Under Matching on a
step you can pick how the path is compared:
- Forgiving (default) — the page you picked, trailing slash or not.
- Exact — the path exactly as written, nothing else.
- Starts with — every page under a prefix.
/docsmatches/docs/introbut not/docs-old. - Wildcard —
*stands for anything./product/*matches every page under/product. - Regex — a full pattern for advanced cases. Voris checks that it’s valid and safe as you type and explains plainly if it isn’t (and points you at a simpler wildcard if a pattern could run away on long paths).
Wildcard and regex matching applies to page paths, URLs, and event names only — not to custom property filters. The builder tells you this rather than offering an option that can’t work.
This only changes steps you create or edit now. Existing funnels are left exactly as they were: no step is silently reinterpreted and no saved number shifts underneath you. An older exact-match step keeps its old behaviour until you open and edit it — at which point the builder’s live preview shows what it matches and warns you if it’s matching nothing.
Choosing who counts: audience and device scope
Every funnel counts one audience, and you choose it when you build the funnel. By default that audience is Humans — real people’s sessions, with known bots and automated agents left out. That has always been the behaviour; now it’s stated explicitly rather than implied.
You can scope a funnel two further ways:
- AI-referred — only sessions that arrived via an AI engine (ChatGPT, Perplexity, Gemini, and the like). “Arrived via an AI engine” means the session touched a page it reached from an AI answer at any point in the range — an honest did-this-happen-at-all test, not a strict first-click attribution. A visit that starts direct, steps out to ChatGPT, and comes back inside the same session still counts. You can pin it to one specific engine, or leave it as any AI engine.
- Device — desktop, mobile, or tablet only.
Everything here narrows the count; it never widens it. The audience is part of the funnel’s definition, so it’s what the saved number on the Funnels list reflects.
Switching audience while you read is a view, not a change
On the results page you can flip between Humans and AI-referred to explore a funnel from both angles. That switch is a view only:
- it is never saved — your funnel keeps the audience you built it with;
- it doesn’t touch tonight’s automatic refresh or the number on the Funnels list;
- it’s labelled viewing override, not saved so you always know you’re looking at a temporary slice.
To change an audience for keeps, edit the funnel. Saving a new audience resets the funnel’s cached list number until its next evaluation — so you never see a saved number whose meaning quietly changed underneath it.
Read your results
The funnel page leads with four numbers:
- Entrants — sessions that reached step 1.
- Completed — sessions that reached the final step within the conversion window.
- Conversion rate — completed ÷ entrants, step 1 to final.
- Biggest drop-off — the single step where you lost the most sessions, called out by name.
Every headline number carries a small ⓘ — “What’s behind this number?” — that spells out exactly what it counts: the steps, the audience (including whether a temporary view switch is active), the window, and the share of traffic the funnel can see.
Below that:
-
Funnel steps — one figure showing the whole funnel. Each step is a bar hanging from a line across the top, and that line is everyone who entered. A bar’s height is that step’s share of the people who entered, so a step half as tall kept half of them. Between each pair of bars, the shaded shape is the people who dropped out there, and the pill floating between them is the share who continued to the next step.
The largest drop-off — the step that loses the biggest share of whoever reached it — is marked in amber with a ↘ icon, so you can find your worst leak at a glance. The legend names the colours, and it says one thing worth reading twice: the bars are the measurement, the ribbon is the flow. Only the bars are drawn to scale.
Two controls:
- # / % switches every step’s headline between a session count and a share of everyone who entered. It’s just a label swap — nothing reloads.
- Hover or tab to a step to open its details: how many entered the previous step, how many completed this one, how many dropped before it (with the share), its share of entry, and — where there’s enough data — the median time it took to get there from the previous step.
A step nobody reached shows a true zero — a hairline tick and a “0”, never a small bar. A step almost nobody reached still gets a visible sliver, so a real result never disappears. Very small shares read as “<0.1%” rather than rounding down to “0.0%”.
-
Time between steps — each transition can show the median time a converting session took to move to the next step (e.g. “2m”, “1.4h”), on the pill when the column is wide enough, and always in the flyout and the table. It is a median across timed conversions — only sessions whose steps happened in order are timed, which can be fewer than the sessions counted as converting, so the surfaces say so. A step backed by fewer than 10 timed conversions shows no time rather than a figure one session could swing. A genuine same-second step shows “0s” — that’s real, not missing data.
-
Step-by-step detail — a table with each step’s event, session count, share from step 1, share from the previous step, and the median time from the previous step. Everything the figure draws is also here as plain text, which is what screen readers read.
If no sessions matched step 1 in the selected range, you’ll see “No sessions entered this funnel” — try a wider date range. If only a handful entered, Voris shows the raw counts but holds back conversion rates as unreliable (“Not enough data in this range”).
Comparing channels by entry
Conversion by entry channel lines the whole funnel up side by side across the channels sessions came in through — AI, Search, Social, Direct, Referral, and Paid — so you can see which traffic source converts best end to end. A few things keep those numbers honest:
- Channel means the entry channel. Each session is assigned to the channel it entered from — its first page in the range — not wherever it wandered mid-visit. A visit that lands from Google and later follows an internal link is Search, not Referral.
- This comparison ignores the audience view. It always covers all traffic in the range grouped by entry channel; the Humans / AI-referred switch above doesn’t apply to it. (A device narrow saved on the funnel does still apply.)
- Paid reflects campaign-tagged visits only. A visit counts as Paid
only when its landing URL carries a campaign tag (a
utm_mediumsuch ascpc,ppc, orpaid). Paid traffic you haven’t tagged falls under whatever its referrer says — usually Search or Social — so Paid here is a floor, not your full paid volume. The panel says as much on screen rather than guessing. - A thin channel shows no rate. If a channel has too few sessions in the range to report a meaningful rate, Voris shows “Too few to compare” rather than print a misleading rate off a handful of visits.
Why two “AI” numbers can differ
You may notice the AI audience count (from the view switch) and the AI entry-channel count aren’t identical. That’s expected — they answer different questions:
- the audience asks “did this session touch an AI-referred page anywhere in the range?” (arrived via);
- the channel asks “did this session enter via AI?” (entered from) — the stricter test.
A rare visit that starts direct and hits an AI page mid-session is in the AI audience but sits under its true entry channel in the comparison.
And the funnel’s AI channel can also differ from the Referrers report. The funnel classifies AI from how each visit was tagged at the time it happened — frozen, never re-labelled. The Referrers report can re-bucket past traffic if we later update our list of known AI engines. Both draw on the same underlying list; the funnel is a forward-only snapshot while the Referrers report is live, so small differences between the two are expected rather than a bug.
Goal vs funnel step
If a funnel step was added from one of your goals, the funnel page shows the two numbers side by side — the goal’s conversions and the step’s sessions — because they measure different things, and both are right:
- A goal counts events; a funnel step counts sessions. One session can fire the same event several times.
- Goals count every region and privacy mode; funnel steps count only sessions from regions where Mode B is active.
- A step only counts sessions that completed the earlier steps within the conversion window.
The step keeps its own copy of the goal’s definition, so editing or deleting the goal later never silently changes what the funnel counts.
Break results down by segment
Use the Breakdown control on the funnel page to split the funnel by country, device, or UTM source, ranked by entrants. The top segments are shown individually; the long tail is summed into a single Other row so the segments always add back up to the whole.
One subtlety worth knowing: each session is attributed to one value of the chosen dimension, taken from that session’s funnel-step events. If a session’s only value for the dimension sits on an event that isn’t part of the funnel (say its UTM source rode in on a landing-page view that isn’t one of your steps), that session is attributed to (none) rather than the off-step value. Country and device are usually stable across a session, so this mostly affects UTM breakdowns where the campaign tag appears only on the entry page.
The conversion window vs. the date range
Funnels have two time controls, and they do different jobs:
- The conversion window is how long a session has to complete the steps, timed from its first matching step — 1, 6, 12, or 24 hours. It is capped at 24 hours because a funnel measures a single visit’s journey, not a campaign that plays out over weeks. (A path that spans more than a day is Mode C territory.)
- The date range is simply which days of traffic to analyze — last 7, 30, or 90 days. A 30-day range scans 30 days of sessions; each of those sessions still has only its own ≤24-hour window to convert.
So “last 90 days” means look at 90 days of sessions, not give each visitor 90 days to convert.
Export to CSV
Click Export CSV on the funnel page to download the per-step counts, conversion-from-entry rates, and the current breakdown rows. The export respects the date range and breakdown you have selected. Two honest notes: the export always uses the funnel’s saved audience (not a temporary view switch), and the consecutive step-to-step rates shown on screen aren’t a separate column — derive them from the counts if you need them.
How funnels count
This is the honest part, and it is what makes Voris funnels different from cookie-based tools.
- Funnels count sessions, not people. Each entrant is one Mode B/C session — a single visit. Voris derives that session from a daily-rotating salt, so the identifier is pseudonymous, rotated daily, and destroyed within 48 hours.
- A session is intraday. It can bridge at most one UTC midnight (a session that starts at 23:50 and continues past midnight is still one visit). It is never re-linked to the same person on another day, or on another device. The salt rotation makes that impossible by design — which is exactly why Mode B needs no cookie and no banner.
- What this means for you: if someone views a product on Monday and buys on Tuesday, that is two sessions, not one converting journey. This is a privacy guarantee, not a bug — Voris does not stitch identities across days or devices, and our copy never implies it does.
- Steps must happen in order, but other activity in between is fine. A session that does view → scrolls, searches → add to cart → checkout still counts as reaching checkout. The intervening events don’t break the chain; the steps just have to occur in the order you listed them, within the window.
This is the honest trade-off of cookie-free analytics: you get conversion depth without a cookie banner or cross-site tracking, in exchange for same-day, pseudonymous counting.
Known limitation: events within the same second
Voris orders a session’s events to the whole second. If two of your funnel steps fire within the same second (for example a single-page app that records a step and the next one back-to-back), their relative order can be ambiguous, and that near-instant step pair may occasionally be miscounted. In practice funnel steps are seconds-to-minutes apart, so this rarely matters — but if a funnel’s steps are designed to fire almost simultaneously, expect the counts between those two steps to be approximate.
Mixed-mode sites
If your site applies Mode B to some regions and Mode A to others (a regional mode map), the funnel can only count the Mode-B/C regions. In that case the result carries a short note saying it’s counting sessions from the regions where Mode B is active — about ~X% of this site’s traffic — measured without cookies and with nothing stored about any person. The ~X% is an honest events ratio (Mode-B/C events ÷ all events over the range), so it reflects the real share of traffic the funnel can see. A site that is entirely Mode B/C shows no note.
Edit, delete, and refreshes
- Edit a funnel any time to change its steps, matching, audience, or conversion window — from the funnel page or the Edit action on the funnel list. Saving a change to steps, audience, or window resets the cached list-card number until the next nightly refresh — the card shows an honest — rather than a number whose meaning changed.
- Delete removes the funnel definition (and anything it pre-computed). It never deletes your events.
- On the funnel list, each card shows a last-evaluated conversion number that is refreshed daily, always at the funnel’s saved audience. Open the funnel for live, on-demand numbers for your selected range.
Related
- Privacy modes explained — what Mode B adds and how to switch a site to it.
- The AI traffic channel — how AI-referred visits reach your site.
- AI agents vs. visitors from AI — the difference between bots and people arriving from AI answers.
- Managing your team — who can build versus view funnels.
- Understanding your dashboard — the rest of your site’s analytics.