Extensions
Your main funnel turns strangers into paying customers. Extensions turn paying customers into more-paying customers.
When you enable extensions on a funnel, you pick an anchor product. Typically your entry-level paid plan ("Hobby, $9/mo"). FunnelFizz then tracks the cohort of customers who bought the anchor and measures how many upgrade.
The three extension stages
| Stage | Position | What it measures |
|---|---|---|
| Ext Consideration | 4 | Anchor customers who are active in product (fired a pageview or event in the window) |
| Ext Trial | 5 | Anchor customers with a Stripe sub status = "trialing" priced higher than anchor |
| Ext Customer | 6 | Anchor customers with an active sub priced higher than anchor |
AWARENESS(0) → CONSIDERATION(1) → TRIAL(2) → CUSTOMER(3) ══▶ Ext Cons(4) ══▶ Ext Trial(5) ══▶ Ext Customer(6)
Positions 0–3 are the main funnel; 4–6 are the extension pipeline. The position number drives layout on the canvas, MCP add_extension_stage calls, and split filter routing. Double-line edges on the canvas distinguish extension stages from main funnel.
Churn trichotomy (related)
Even without extensions, the CUSTOMER stage splits paying customers three ways:
| Bucket | Definition |
|---|---|
| Retained | Still subscribed at the anchor product |
| Upgraded | Subscribed to a higher-priced product (but not anchor) |
| Churned | No active/trialing subscription anywhere |
This replaces the naive "canceled = churned" model, upgrades aren't losses.
Conversion rates explained
| Conversion | What it tells you |
|---|---|
CUSTOMER → Ext Consideration | Activation/retention, what % of customers are still actually using the product? |
Ext Consideration → Ext Trial | Upgrade prompts, are your in-product upsells working? |
Ext Trial → Ext Customer | Higher-tier value prop, does the trial deliver enough to make them pay more? |
A leak at any stage points to a different lever.
Enabling
- Open the funnel → Settings → Extensions → Enable.
- Pick the anchor product from your Stripe products dropdown.
- Save. Three new stages appear right of CUSTOMER.
Zero on all three is itself a useful signal: "our upgrade rate is zero, that's where the growth lever is."
Splits work on extensions too
Common cuts:
- By channel. Do Reddit-sourced customers upgrade at a different rate than email-sourced?
- By cohort month. Are March signups upgrading faster than April?
- By anchor product. Multiple entry tiers; which one yields the most upgrades?
Extensions inherit strict cohort propagation from splitting. An extension on a "Hobby trial → US" sub-track contains only profiles who actually crossed Hobby trial and US and became Hobby paid customers — the upstream split filters carry through. If a Pro sub later cancels or downgrades back to Hobby, they leave the Ext Customer card immediately; if they re-upgrade later, a fresh cohort entry opens.
When you enable extensions on a funnel, FunnelFizz replays your Stripe history so existing customers who already upgraded land on Ext Trial / Ext Customer at their actual historical timestamps — you don't have to wait for the next webhook. Same when you add a split inside an extension: the new tracks backfill from history. See Stripe → backfill for what can and can't be resolved.
When extensions don't fit
- Single-tier products. Nothing to upgrade to; this section will always be zero.
- Usage-based pricing without tiers. Everyone's on the same plan, expansion is per-seat or per-event. Extensions assume tier jumps. Use the main funnel + Stripe usage metrics instead.
- One-time purchases / e-commerce. Extensions assume recurring subscriptions.
Pairs nicely with churn-recovery automations
- Enable extensions with your entry tier as anchor.
- Set up a churn-recovery automation targeting the Churned bucket with a discounted comeback offer.
- Returns lift Retained; later upgrades lift Ext Customer.
Compound observability: did we save churn? Did those saves eventually upgrade?
Roadmap
- Multi-anchor support. Track "Hobby → Pro" and "Pro → Enterprise" as separate pipelines.
- Expansion revenue attribution. Pull seat expansions / usage overages from Stripe so non-tier expansion lands here too.
Next: Conversion → · Email →