Skip to main content

The four stages

FunnelFizz has exactly four stages, in a fixed order:

AWARENESS → CONSIDERATION → TRIAL → CUSTOMER

You can't rename, reorder, or add to them — the model is opinionated by design. Between each stage sits a conversion: a measurable transition from one state to the next. That gives you three conversions (positions 0, 1, 2), which map to the numbers you care about most: how much of my traffic turns into paying customers?

:::info Why four, not seven or twelve? We spent a long time looking at how solo founders and small SaaS teams actually think about their funnel. Most over-segment (twelve imaginary stages that never get measured), and some under-segment (a single "conversion rate" that hides everything). Four works: it's enough to see where things break, small enough to remember. :::

Every funnel you create in FunnelFizz has these four stages by default. You can:

  • Connect data sources to each stage (social providers to AWARENESS, Stripe to TRIAL and CUSTOMER, etc.).
  • Split traffic at any stage (see splitting).
  • Add extensions after CUSTOMER to track upsells (see extensions).
  • Send emails and run automations scoped to any stage (see email).

AWARENESS — "Eyeballs"

What it measures: how many people saw you exist.

Data sources that feed AWARENESS:

  • Social impressions from connected providers (X, YouTube, LinkedIn, Instagram, TikTok, Reddit).
  • Brand mentions from Mentions monitoring (PRO).
  • Google Search Console impressions (planned — currently demo-only).
  • Paid ads impressions from Google Ads.
  • Manual entries for anything you can't connect.

AWARENESS isn't about who clicked — it's about eyeballs, reach. Someone scrolling past your post on the timeline counts. This is the widest part of the funnel.

Typical sources of truth:

  • X post impressions from your @handle over the last 7 / 30 / 90 days.
  • YouTube video views.
  • LinkedIn post impressions.
  • Any mention of your brand name on HackerNews, Reddit, ProductHunt, DEV.to.

CONSIDERATION — "Visitors"

What it measures: how many unique people actually reached your site.

Data source: your tracking script. Every unique visitor (identified by a _fn_vid cookie) shows up here at least once per measurement window.

CONSIDERATION is where your marketing site lives. This is the stage where:

  • You split by traffic source — did your reddit post or your YouTube video drive more visits?
  • You watch bounce rate — are people landing and leaving immediately?
  • You test hero copy with A/B variants.
  • You notice the painful truth that 95% of your impressions never clicked.

The conversion from AWARENESS → CONSIDERATION is, essentially, your click-through rate from the wild web into your actual website.

TRIAL — "Active users"

What it measures: how many visitors gave you their email, signed up, started a trial, or did whatever you define as "showed real intent."

Default conversion method: Stripe trial subscription (status = "trialing"). You can also configure it as:

  • Email signup form — any form that posts an email.
  • Custom event — call funnelfizz('event', 'signup') from your app.
  • App store download (HOBBY+) — with a referral parameter.

TRIAL is usually the most under-measured stage — founders tend to only track Stripe trials, but a lot of SaaS products have self-serve signup without billing-side tracking. Use custom events to surface the real number.

CUSTOMER — "Paying customers"

What it measures: how many of your trials turned into paying customers.

Default conversion method: Stripe paid subscription (status = "active" or "past_due" within grace).

Unlike the other stages, CUSTOMER doesn't just show a flat count. It shows a trichotomy:

  • Retained — still actively paying at your anchor product tier.
  • Upgraded — moved to a higher tier (paying more than before).
  • Churned — no active paid subscription anywhere in the workspace.

That distinction matters: a customer who upgrades isn't lost — they're more valuable. The classic "canceled = churned" model can't tell the two apart. FunnelFizz can.

Conversion positions between stages

Three conversions sit between the four stages:

  • Position 0: AWARENESS → CONSIDERATION — default method: site visit (tracking code).
  • Position 1: CONSIDERATION → TRIAL — default method: Stripe trial.
  • Position 2: TRIAL → CUSTOMER — default method: Stripe paid.

Each position can be configured independently per funnel. Mix and match — e.g., if you don't have Stripe trials (you use paid-only), map position 1 to a custom signup event and position 2 to Stripe paid.

See Concepts → Conversion for the full configuration reference.

What you see on the canvas

On the funnel canvas, stages appear as rectangular cards left to right in this order. Between them sit circular conversion bubbles showing the rate + raw count. The default layout:

┌──────────┐ ● ┌───────────────┐ ● ┌───────┐ ● ┌──────────┐
│AWARENESS │──%──▶│ CONSIDERATION │──%──▶│ TRIAL │──%──▶│ CUSTOMER │
└──────────┘ └───────────────┘ └───────┘ └──────────┘
128k imps 11,245 visitors 892 signups 213 paying
8.8% CTR 7.9% conv 23.9% conv

Split nodes (diamond shapes) appear between stages when you filter traffic. Extension stages appear after CUSTOMER for tracking upsells.

Where to next