Build your funnel, the steps a customer moves through from first visit to first payment, around the moments your own product delivers value, and make sure each step is something you can actually count. Steps copied from a textbook turn into slide fiction.
Say you paste a “standard software funnel” into the roadmap slides: Awareness, Interest, Consideration, Purchase. Marketing nods. Then the product team finds nothing recorded for “Interest,” and engineering asks which of seventeen kinds of page visit counts as Awareness. Two weeks later every team has a different conversion rate for the same week, and all of them are labeled “funnel.”
Customer analytics starts by naming the journey. Use events you can track, time windows you can defend, and owners who care when a step breaks. This post opens the Customer analytics basics series. Later posts cover conversion math and cohorts. Here we build product-shaped stages, using Visit, Signup, Activate, and Pay as a running example, and a definition card you can put next to any dashboard (a screen of charts that tracks key numbers). For metric contracts more broadly, see the metrics series. For learning paths across the site, start at Learn.
A funnel is a contract about order and meaning
At a minimum, a funnel answers four questions. Who entered a stage, who reached the next stage, in what time window, and with what exclusions? It is not a pretty triangle, it is a set of definitions. If two teams disagree on “activated,” they do not have a funnel debate. They have a vocabulary debate wearing chart clothes.
Good stage names are verbs or clear states that a customer would recognize, such as started a session, created an account, completed a first valuable action, or paid. Bad stage names are moods, such as engaged, interested, aware, or loyal. Moods invite redefinition every quarter. Nobody can point to the moment one begins.
Product-shaped stages from visit to payment
Many digital products can start with a short spine of four stages and branch only when the business forces it.

- Visit means someone showed up with enough identity to count. Depending on privacy rules and the product, that could be a session, a device, or a user with a tracking cookie.
- Signup means they created an account or otherwise identified themselves for an ongoing relationship. Not every product needs this step before payment.
- Activate means they did the first action that predicts retained value, the “aha” moment, and not merely that they logged in twice.
- Pay means money moved under a definition that Finance will accept, such as a first paid invoice or a subscription start. Clicking the pricing page does not count.
This spine is a template, and it is not a law. Marketplaces may need one funnel for buyers and another for sellers. Content sites may care about a Subscribe step before Pay, and offline retail may start at a store visit. The rule is that your stages must match how you acquire and monetize customers, and each stage must map to data.
Map stages to events, not vibes
For each stage, write down the event name, what one row means, and the rules that decide who counts.

| Stage | Example event | Notes to write down |
|---|---|---|
| Visit | session_start | Bot filter? Logged-out only? App vs web? |
| Signup | account_created | Email verified required? SSO counts? |
| Activate | first_value_action | Which action? Must it be within 7 days of signup? |
| Pay | subscription_started | Trials? Refunds within 24h excluded? |
Activation is where teams fight. “Logged in three times” is easy to track and often weak. “Created a first project and invited a teammate” may be harder to track and more predictive. Pick the action that the product team believes causes value. Then check it against retention in a later post. Do not let a dashboard invent activation just because an event already existed in your tracking tool.
Eligibility between stages
Conversion from stage A to stage B is only meaningful if the people in the denominator could actually have done B. People who never signed up cannot activate under an account-based activation definition. Visitors who are already customers should not re-enter a “new signup” funnel without a separate path. So write the eligibility rule out in full: “Activate rate = users with first_value_action within 7 days of account_created, among users with account_created in the cohort window.”
Windows, order, and multi-path reality
Classic funnels assume a fixed order of Visit, Signup, Activate, and Pay. Real products allow Pay before Activate, for example when someone buys a gift. They also allow Activate without Signup, for example in guest workflows that merge into an account later. You have three honest options for handling this.
- A strict-order funnel counts only forward progress in order. It tells a clean story and undercounts the messy truth.
- A state model tracks yes-or-no flags per user, such as has_visited and has_paid, without forcing a single path. It is more accurate and harder to draw as a triangle.
- A primary path with side paths reports the main ordered funnel for product reviews, plus a small table of alternate paths that matter, such as guest checkout or sales-assisted deals.
Pick one primary view for executive reviews, so the room shares a single picture. Keep the messy truth available for analysts. Lying with a neat triangle is worse than showing two paths.
Business, consumer, and marketplace twists
In a business-to-business product, the customer may be an account, and not a single user. The stages might be site visit, demo request, opportunity, closed-won, and seat activation. If you mix user-level product activation with account-level revenue without saying so, you create fake drop-offs.
In a consumer subscription, the trial start may sit between Activate and Pay. Refunds and chargebacks need a “net paid” definition that Finance trusts.
In a marketplace, keep one funnel for buyers and another for sellers. A single blended funnel hides which side is sick.
When in doubt, write the economic actor into the stage name, such as “Buyer activate” or “Seller list first item.”
Instrumentation checklist before the pretty chart
- Event names should be stable and versioned, with no silent renames.
- User and account IDs should join cleanly across web, app, and billing.
- The time zone and the “day” boundary should be documented, such as UTC (Coordinated Universal Time, the world’s reference clock) versus the user’s local time.
- Bot and test traffic should be filtered the same way in every stage.
- You should have a plan to refill history if you change the activation definition.
- Each stage definition should have an owner, with product owning activation and finance owning payment.
If event quality is weak, fix the pipelines and tracking before arguing about a 0.3 point conversion move. The data quality series and data pipelines series exist for that pain. Funnel debates on broken events waste political capital that you will need later for real product decisions.
Worked example: notes app software
Imagine a collaborative notes product. Acquisition is mostly through the web, and monetization comes from team plans. The team ships four stage definitions.
- Visit is
session_starton marketing pages or the web app, excluding visits from your own company’s network addresses (internal IP addresses) and known bots. - Signup is
account_createdwith a verified email or single sign-on. - Activate is the first of two things:
note_createdwith a length of at least 20 characters, orteammate_invited, within 7 days of signup. - Pay is
subscription_startedwith a plan of team or business, and a status that was not refunded within 24 hours.
Here are toy weekly volumes, for illustration only.
| Stage | Users | Step conversion from previous |
|---|---|---|
| Visit | 50,000 | n/a (top) |
| Signup | 4,000 | 8.0% |
| Activate | 2,200 | 55.0% |
| Pay | 180 | 8.2% |
The product team reads this and does not just say “fix the top of the funnel.” A 55% move from signup to activation may be healthy, while payment at 8.2% of activated users may be the real monetization problem. Or the sales cycle may be long, so payment needs a 30-day window instead of 7. That is why the funnel card must include a window for each step, and not one global magic window.
-- Sketch: signup to activate within 7 days
-- Grain: one row per user who signed up in the cohort week
SELECT
u.user_id,
u.account_created_at,
MIN(e.event_at) AS first_value_at,
CASE
WHEN MIN(e.event_at) <= u.account_created_at + INTERVAL '7' DAY
THEN 1 ELSE 0
END AS activated_7d
FROM users u
LEFT JOIN events e
ON e.user_id = u.user_id
AND e.event_name IN ('note_created', 'teammate_invited')
-- note_created also filtered by length in upstream model
GROUP BY 1, 2;When AI drafts this SQL (the standard language for asking a database for data) for you, check the joins, the windows, and the event filters carefully. Use the habits in How to check AI-written SQL before the funnel becomes a board number.
Common mistakes
- Copying another company’s stages without their events or their business model.
- Calling login “activation.” Login is hygiene, and activation is value.
- Mixing users and accounts in one funnel without labels.
- Skipping the time window, so late payers inflate old cohorts forever.
- Changing the activation definition mid-quarter without versioning it, and then celebrating a fake lift.
- Keeping definitions only in a dashboard, where they do not match the warehouse or Finance.
- Building twelve stages that nobody can track or remember.
When to add stages, and when not to
Add a stage only when a team will own improving it. An event must also measure it every week. “Consideration” with no event is not a stage, it is a storyboard caption. Useful additions include a trial start, an invite sent, or a first valuable action for a second type of user. Useless additions include every micro-click between Visit and Signup that nobody will staff a project to fix.
If leadership wants more stages for storytelling, keep a short operational funnel for weekly reviews and a longer narrative funnel for onboarding documents. Never let the narrative funnel become the only source of “conversion” in quarterly goals (often called OKRs) unless every stage is fully tracked.
Quick recap
Funnels work when stages are product-shaped, backed by events, bounded by time windows, and owned by someone. Visit, Signup, Activate, and Pay is a useful spine and not a universal rule. Definition cards beat decorative triangles, and fixing your tracking should come before arguing over decimals.
The next post in Customer analytics basics covers conversion math without magic: who is eligible, what counts as success, the rate, and the windows you can defend.
How to practice this week
- Write your product’s stages on paper, using five names or fewer.
- For each stage, name one event, or admit that it does not exist yet.
- Add a window and an owner for each stage on a one-page definition card.
- Compare Marketing’s funnel slide to your card, and list every mismatch.
- Pick the single worst mismatch and open a ticket to fix the event or the definition, and not a ticket to “align offline.”
Series notes
This is Part 1 of the Customer analytics basics series. Related: metrics, data quality, and data pipelines.
Sources
- Croll and Yoskovitz, Lean Analytics (stage-appropriate metrics by business model): https://leananalyticsbook.com/
- Google HEART framework (quality of experience metrics alongside funnels): https://research.google/pubs/pub36299/
- Amplitude Docs on funnels (event ordering and conversion windows, product analytics patterns): https://help.amplitude.com/hc/en-us/articles/230403928-Funnel-Analysis
- Mixpanel Docs on funnels and conversion: https://docs.mixpanel.com/docs/reports/funnels
- Reforge materials on retention and activation (conceptual; many free essays via their blog): https://www.reforge.com/blog
Keep going
Same lessons in your feed
Short diagrams, hooks, and weekly tutorials on Substack, Instagram, X, and Facebook.
