Copy as markdown[View .md](https://docs.funnelfizz.com/concepts/extensions "View the raw markdown for this page")[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.funnelfizz.com%2Fconcepts%2Fextensions.md%20and%20help%20me%20with%20this%20FunnelFizz%20topic%3A%20Extensions "Open this page in Claude with context")[Open in ChatGPT](https://chat.openai.com/?q=Read%20https%3A%2F%2Fdocs.funnelfizz.com%2Fconcepts%2Fextensions.md%20and%20help%20me%20with%20this%20FunnelFizz%20topic%3A%20Extensions "Open this page in ChatGPT with context")

# 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[​](#the-three-extension-stages "Direct link to 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)[​](#churn-trichotomy-related "Direct link to 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-rates-explained "Direct link to 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[​](#enabling "Direct link to Enabling")

1. Open the funnel → **Settings → Extensions → Enable**.
2. Pick the **anchor product** from your Stripe products dropdown.
3. 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[​](#splits-work-on-extensions-too "Direct link to 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](https://docs.funnelfizz.com/concepts/splitting.md#splits-are-filters-that-propagate). 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](https://docs.funnelfizz.com/getting-started/connect-stripe.md#what-backfill-can-and-cant-resolve) for what can and can't be resolved.

## When extensions don't fit[​](#when-extensions-dont-fit "Direct link to 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[​](#pairs-nicely-with-churn-recovery-automations "Direct link to Pairs nicely with churn-recovery automations")

1. Enable extensions with your entry tier as anchor.
2. Set up a [churn-recovery automation](https://docs.funnelfizz.com/concepts/automations.md) targeting the Churned bucket with a discounted comeback offer.
3. Returns lift Retained; later upgrades lift Ext Customer.

Compound observability: did we save churn? Did those saves eventually upgrade?

## Roadmap[​](#roadmap "Direct link to 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 →](https://docs.funnelfizz.com/concepts/conversion.md) · [Email →](https://docs.funnelfizz.com/concepts/email.md)
