Attribution

Conversion funnel for small SaaS: three steps that matter

Ownlytics team · · 6 min read

A small SaaS can run a useful funnel with three steps: someone views your pricing, someone starts checkout, someone pays. Anything more elaborate usually adds charts without adding decisions, especially while you have only a few hundred visitors a month.

Visited pricing
2,400
Started checkout
180
7.5% continue
Paid
46
25.6% of checkout starts

Fig.Three steps are enough for a small product. The drop between them is where to look. Sample data, not a real site.

Why only three steps?

Funnels fail in two ways. They are either too coarse to act on ("visitors to customers") or too fine to read ("12 steps with 9 visitors in each").

With small traffic, every extra step splits an already small group. A step that has 6 people in it tells you nothing, because one person more or less swings the percentage by 17 points. Three steps keep the groups big enough to compare, and each step maps to one thing you can change:

  1. Pricing view tells you whether your pages persuade people to look at cost.
  2. Checkout start tells you whether the price and plan choice feel acceptable.
  3. Paid sale tells you whether checkout itself works and whether people follow through.

How do you set up the three steps?

In Ownlytics, funnels are built from pages, goals and the payment step. That fits the three steps without any code in most cases.

  1. Pricing view: use the page. Pick /pricing (or wherever your plans live) as step one.
  2. Checkout start: use a goal. If your button is a plain HTML element, add a data attribute, for example data-fast-goal="initiate_checkout", and no JavaScript is needed. From code, call datacheap('initiate_checkout', { plan: 'pro' }). Goal names accept lowercase letters, numbers, _, - and :. Details are in goals and funnels.
  3. Paid sale: use the payment step. Connect Stripe, Polar, Dodo Payments or Creem so that the sale is read from your provider rather than guessed; see revenue attribution.

The funnel then shows where visitors drop off and which sources convert at each step.

Example (made-up numbers for illustration)

A tiny SaaS had 1,000 visitors last month:

StepVisitorsShare of previous step
Visited the site1,000n/a
Viewed pricing30030%
Started checkout6020%
Paid2440%

Two numbers stand out. Only 20% of pricing viewers started checkout, and only 40% of checkout starters paid. Which is the better problem to work on? The 40% leaks at the point of highest intent: these people already clicked "buy". Look first at checkout friction (extra fields, surprise taxes, unclear currency, a payment method they do not see). If that rate rises to 55%, you gain about 9 sales from the same traffic. Lifting the pricing-to-checkout step from 20% to 25% would add only about 6.

The rule: work on the step closest to money first, unless it already converts well.

What do you do with each drop-off?

Why compare funnels by source?

A blended funnel hides the story. A source can look weak on visits but strong at the end. Conversion at each step by source is where the funnel earns its keep: you might find (made-up figures) that a small newsletter turns 60% of its pricing viewers into checkouts while a big social post turns 5%.

That connects to the metric we recommend in revenue per visitor: visits tell you reach, funnel steps tell you where it breaks, revenue per visitor tells you if it was worth it.

yourapp.comToday7d30d9 online
Visitors3,619+42.1%
Revenue$2,226+67.0%
Conversion0.41%+8.4%
Revenue/visitor$0.11+17.6%
1.4k7000
SourceVisitorsSalesRevenue
Xx.com6,2479$441
Ggoogle.com4,43314$686
@newsletter1,1307$343
Ynews.ycombinator.com2,0153$147
Cchatgpt.com1,4114$196
↗Direct · typed or bookmark1,2092$98

Fig.The funnel next to the sources feeding it. Sample data, not a real site.

What should you not put in the funnel?

When this doesn't apply

If you get under about 100 visitors a month, ignore percentages. Read the individual journeys instead, one buyer at a time. Also, if checkout happens on your payment provider's hosted page and you never see an intermediate click, your "checkout start" step depends on how the link is tagged and on whether your goal fires when the button is clicked. Test it with your own click before trusting the number.

If most buyers take days to decide, a funnel over a short window will undercount. See how long do buyers take to purchase.

At a glance

StepWhat it measuresHow to set it upWhat to fix when it drops
Pricing viewInterestPage step on /pricingNavigation, landing page copy, internal links
Checkout startIntentGoal such as initiate_checkoutPrice, plans, trust on the pricing page
Paid saleFollow-throughPayment step from your providerCheckout friction, payment options

See it on real numbers

To see what a source-by-step funnel looks like, open the live demo. For tagging your own links so each source is clear, the guide to UTM tracking with Stripe checkout is the next read.

FAQ

How many steps should a funnel have?

For a small SaaS, three: pricing view, checkout start, paid sale. Add steps only when you have the traffic to fill them and a decision that depends on them.

Should signup be part of the funnel?

Only if every customer must sign up before paying. Otherwise track signup as its own goal and keep the money funnel short.

What is a good conversion rate at each step?

It varies by product and price, and we do not want to quote benchmarks we cannot support. Compare your own steps against your own history and between your own sources.

How often should I look at the funnel?

Monthly is plenty for small traffic. Weekly numbers jump around too much to act on until you have more visitors.

See the live demo · View pricing

Keep reading