Funnel analytics with steps in any order | Orwel
Product Updated October 21, 2026

Funnel analytics with steps in any order

Funnel analytics shows how many people reach each step on the way to a conversion and where they drop off. In Orwel, funnels are called journeys. Milestones count in any order within the period, every journey ends in a conversion, and the report shows reach per step, conversion rate and the biggest drop.

Orwel is an event analytics SDK for startups, developers and vibe coders that maps feature adoption and conversion funnels, and feeds the results back to AI agents through MCP.

What funnel analytics tells you

A funnel is a list of steps that should lead to an outcome you care about: a signup, a paid plan, a booked demo. Funnel analysis counts how many people reach each step and how many leave between steps. The step with the biggest drop is usually the best place to work next.

In Orwel, conversion funnels are called journeys. A journey has a name, the question it answers ("How many trials turn into paying accounts?"), a list of milestones and a final conversion. Orwel reports:

Metric What it means
Entered Visitors who reached any milestone in the period
Converted Visitors who reached the final conversion
Conversion rate Converted visitors as a share of those who entered
Reach per milestone Unique visitors at each step
Biggest drop The pair of steps where the most visitors are lost

The report also lists recent visitors who triggered any step and marks who converted, so you can open a real person's history.

Milestones in any order

Most funnel analysis tools count steps in a fixed order. If a user skips step 2 or does it after step 3, they fall out of every step after it. That is a fine model for a checkout page. It is a poor model for a product.

Real user funnels are messy:

  • Someone invites a teammate before they create their first project.
  • Someone reads the pricing page after signing up, not before.
  • Someone connects an integration on day one and finishes onboarding on day four.

An ordered funnel reports all of them as drop-offs, even though they made real progress, and the leak you go fix is not where people actually get stuck.

Orwel journeys count milestones in any order within the period. A visitor who reaches step 3 before step 2 still counts for both. Because of that, a later step can sometimes have more reach than an earlier one, and the report shows which steps gain reach and which lose it.

The trade off is that milestones have to mean real progress. Use events like workspace_created or invite_sent, not page_view or click, which anyone can trigger without moving forward.

Every journey ends in a conversion

A journey is not just a list of screens. It closes on the outcome you want, either a conversion recorded with orwel.conversion() or a catalog event. That keeps the funnel tied to business results and connects it to the rest of Orwel: the same conversion creates a scored lead and carries the campaign that brought the visitor, so you can follow a drop from the funnel back to its source.

How to set up a journey

Journeys are configured in the dashboard, in Journeys setup.

  1. Start from a blueprint or from scratch. Blueprints are grouped by acquisition, activation, onboarding, revenue and retention. Pick one and adapt it.
  2. Name it and write the question it answers. One question per journey keeps reports readable.
  3. Add milestones from the catalog. Orwel's semantic catalog has 257 events with a note on when each should fire. If you need your own code, register it as a custom event.
  4. Pick the final conversion.
  5. Add filters only if you need them. Filters match flat event properties such as plan: "pro". Use them sparingly, they make reports slower.
  6. Implement. The Implement tab gives you the code in four formats: an agent prompt for Claude Code or Cursor, a copy and paste snippet, a typed TypeScript module, or the JSON configuration.
  7. Check the status. Each code shows as Receiving, Tested, No data yet, Not registered or Rejected. A journey is fully measured when every code is Receiving.

Test with the development key first. Dev mode shows each request as it arrives and tells you when a code is not in your catalog, before real data depends on it.

Example: a SaaS signup funnel

Say you run a B2B SaaS with a free trial. The question is "How many people who see pricing end up paying?"

Step Event code Fires when
1 pricing_viewed The pricing page or plans modal is shown
2 user_signed_up The account is created
3 workspace_created The API creates the workspace
4 project_created The API confirms the first project was saved
Goal subscription_started The first payment succeeds

Fire each event right after the action succeeds, from your service or data layer rather than from button handlers, and send it once per action:

import orwel from 'orwel';

async function createProject(input) {
  const project = await api.projects.create(input);
  orwel.track('project_created', { template: input.template });
  return project;
}

async function onPaymentSucceeded({ email, plan, amount }) {
  await orwel.conversion('subscription_started', { email, plan, amount, currency: 'USD' });
}

If many trials create a workspace but never a project, the biggest drop sits between steps 3 and 4. That points at the empty state, templates or onboarding, not at pricing. And because steps count in any order, someone who explored pricing after signing up still shows up at step 1.

Funnels next to feature adoption

Funnels show where people stop. Feature adoption shows what the people who stayed actually use. Orwel measures both from the same events.

Why Orwel

One plan

49 USD a month, 2 USD less every paid month down to 35 USD, or 420 USD a year

No caps

Unlimited leads and visitors under fair use

2-minute install

One script or npm package, or ask your coding agent to do it

MCP server

Claude, Cursor or your own agent read real usage before the next prompt

Semantic catalog

257 ready events, so tracking is named the same in every project

Dev mode

A live debugger and development keys that keep tests out of real data

FAQ

What is the difference between funnel analytics and funnel analysis?

They are used as the same thing. Funnel analytics usually means the tool and the data, funnel analysis means the work of reading it: finding the step with the biggest drop and deciding what to change.

Why does Orwel count funnel steps in any order?

Because people do not move through products in a straight line. An ordered funnel drops anyone who skips or reorders a step, which hides real progress. Counting milestones in any order within the period measures what people actually reached.

Can a later step have more users than an earlier one?

Yes. With steps in any order, someone can reach step 3 without ever doing step 2 in the period. The report marks steps that gain reach and steps that lose it.

How many steps can a journey have?

Orwel's docs do not set a number. Keep journeys short: a handful of milestones that each mean real progress gives a clearer report than a long list of screens.

Do I need to write code to build a funnel?

You define the journey in the dashboard without code. Each milestone needs its event to be sent, and Orwel generates that code as a snippet, a TypeScript module or a prompt for your coding agent.

Can I see which campaign the people in a funnel came from?

Yes, through the conversion. Every conversion carries first and last touch UTMs and ad click IDs, so the leads at the end of a journey show their source and campaign. See marketing attribution.

Keep reading

See what users do with what you shipped

Install in 2 minutes. 14-day free trial, one plan with everything.