1. Courses
  2. Product Management
  3. Metrics & Product Analytics
  4. Stop 2

40 minIntermediate

Funnels, activation and adoption

A funnel shows where people drop off on the way to value, and which fix would help most. This lesson teaches you to define and read a funnel, pick an activation moment and measure time to value, and measure adoption of an internal tool in a way you can trust, including the stock transfers that can make a headline adoption number look better than the work on the dock.

By the end you can

  • Read step and end-to-end conversion, and find the step where a fix adds the most
  • Define a funnel precisely: unit, steps, order, conversion window and cohort
  • Choose an activation event and measure time to value
  • Measure internal-tool adoption by breadth, depth and persistence, and spot a mix effect in a headline number
  • Write the SQL for a funnel and for an adoption split

The everyday picture

In January, 100 people join a neighbourhood gym. Eighty come once. Fifty come five times. By March, thirty still come every week. The sign at the door says "100 members". The trainer knows the real number is thirty.

The trainer learns more from where people stopped than from the sign. Twenty never came at all: maybe nobody gave them the locker code. Thirty came once and stopped: maybe the first session was confusing or too hard. Each drop has its own cause and its own fix, and fixing the first session might keep more people than any new machine.

There is a workplace version too. When a company buys a gym pass for every employee, "members" is 100% on day one, and it says nothing about who is getting fitter. Internal software works the same way: everyone has the app, and the useful question is how much of the work they do in it.

How a funnel works

A counts how many people (or stores, or orders) reach each step on the way to a goal. Two rates come out of it. The step rate is the share of the previous step that reaches this one. The end-to-end rate is the share of everyone who started that reaches the end. The end-to-end rate is all the step rates multiplied together.

Here is the Store app's adoption funnel across Mangrove's 320 stores in the first month of the receiving rollout. "Fully adopted" means a store is still receiving deliveries in the app four weeks after it started.

lost All stores 320 App installed 304 (95%) −16 Staff signed in 243 (80%) −61 First delivery in app 146 (60%) −97 Five deliveries in app 102 (70%) −44 Still using at week 4 77 (75%) −25 End to end 77 of 320 = 24%
Each bar is the stores that reached a step; the outlined piece is the stores lost at it, with the step rate in brackets. Most stores install the app and sign in. The biggest loss is at the first delivery received in the app: 97 stores signed in and then kept receiving on paper.

Two questions decide where to work. Where is the biggest drop? In stores, step 3: 97 stores signed in and never received a delivery in the app. Where would the same effort add the most? Raise any step rate by 10 points and the end-to-end result is multiplied by (new rate ÷ old rate). That ratio is largest where the rate is lowest. Ten points at step 3 (60% to 70%) multiplies the end by 1.17 and adds about 13 fully adopted stores. Ten points at step 2 (80% to 90%) multiplies it by 1.125 and adds about 10.

Output
Fully adopted now: 320 x 0.95 x 0.80 x 0.60 x 0.70 x 0.75 = 76.6 stores

+10 points at step 3 (60 -> 70%):  76.6 x 70/60 = 89.4   (+12.8)
+10 points at step 4 (70 -> 80%):  76.6 x 80/70 = 87.5   (+10.9)
+10 points at step 5 (75 -> 85%):  76.6 x 85/75 = 86.8   (+10.2)
+10 points at step 2 (80 -> 90%):  76.6 x 90/80 = 86.2   (+9.6)
 +5 points at step 1 (95 -> 100%): 76.6 x 100/95 = 80.6  (+4.0)

Points are not equally easy to win at every step, so treat this as the first cut. And a funnel tells you where people stop, never why. For the why, go and look: visit five stores that signed in and never received in the app, and watch a delivery arrive.

Quick check

Step 1 converts at 95% and step 3 at 60%. You can raise either by 5 points. Which adds more fully adopted stores?

Define the funnel before you read it

Two people can build "the adoption funnel" from the same data and get different answers, because a funnel has five settings. Write them down before anyone reads a number.

  • Unit. Count stores, staff or deliveries, whichever matches the decision. Rollout waves and training visits are decided per store; a training video is judged per person. The simulator below lets you switch between stores and staff.
  • Steps. Each step is one specific event with a precise definition, such as "first supplier delivery received in the app by a person at the store". Events and their definitions are the subject of Instrumentation.
  • Order. Must the steps happen in order? Mixpanel's funnels, for example, require the steps in order by default and offer an "any order" option.
  • Conversion window. How long a user has to get from the first step to the last. Mixpanel's default is 7 days. For a store rollout, four weeks from go-live is more realistic.
  • Cohort. Group people by when they started. A store that went live yesterday can't have reached "still using at week 4" yet.

The cohort setting causes the most common funnel mistake. If you mix stores that went live four weeks ago with stores that went live this week, the later steps look terrible, because most stores haven't had time to get there. Count only units old enough to have completed the window, or show one funnel per start week, the same way you read cohorts in Retention and cohorts.

And when a definition changes, say so on the chart. Changing the window from 7 to 30 days can lift a funnel's end-to-end rate overnight with no change in anyone's behaviour.

Quick check

Three weeks into a rollout, the funnel says only 20% of live stores are "still using at week 4". Wave 2 went live last week. What is wrong?

Activation and time to value

is the moment a new user first gets the core value. A good activation event is early, specific and predictive: people who reach it are much more likely to stay than people who don't. Amplitude's write-up of north star metrics notes, for example, that in its early days Facebook tracked how many new users added seven friends in their first ten days: an early, specific action tied to the value of the product.

To find yours:

  1. List early actions that might matter: first order, first on-time delivery, first repeat order, adding an address, saving a list.
  2. Compare people who were still active at week 4 with people who weren't. Which early action separates them most?
  3. Prefer an action the product can help people reach. "Placed a second order within 14 days" is useful; "lives near a store" is not something onboarding can change.
  4. Treat it as a hypothesis. Heavy users do everything, so many actions correlate with staying. The test is causal: help more people reach the event (better onboarding, a nudge) and check whether retention follows (Experiments).

is how long activation takes, usually as a median. For the Mangrove app it is the time from install to the first on-time delivery, the "30 minutes, really?" moment. Every hour of that time is a chance to drop out: an empty first screen, a slot that's full, an item cut from the order. Onboarding that shortens it is the subject of pm-32.

For the Store app, value arrives with the first delivery received in the app instead of on paper. If a store goes live on Monday and its first app receipt is on Thursday, staff have spent three days on paper, and the old habit has had three more days to win. The funnel's step 3 is the activation step, and the time from go-live to that first receipt is the time to value. That is why the rollout plan in Launching puts a trainer in the store for the first delivery.

Adoption of internal tools

Store staff can't uninstall the Store app, but they can keep the paper on the side. So "staff who logged in" says little; head office can make it 100% with one email. Measure adoption as the share of the work done in the tool, in four dimensions:

  • Breadth: stores where receiving in the app is switched on and staff are signed in.
  • Depth: the share of each store's deliveries received in the app.
  • Frequency: every delivery, every shift, including the 6 am delivery when the trained person isn't on.
  • Persistence: still at that depth at week 4 and week 12, after the trainer has left.

Then measure the workaround that should die, as in pm-11: paper goods received note pads ordered from the print room, photos of delivery notes in chat groups. If the app says 90% and the print room still sends 400 pads a month, believe the print room.

Two definitions decide whether the adoption number is honest. First, who did the work. Count a delivery as received in the app only when a person scanned it at the store. Some systems close an unreceived stock transfer automatically after a day or two; an auto-closed receipt is the opposite of adoption, and it must not be counted as one. Second, which deliveries are in the denominator, which is where stock transfers come in.

Each Mangrove store gets about 4 supplier deliveries a day and about 2 stock transfers from its DC. A transfer arrives with an electronic transfer note, so receiving it in the app is one barcode scan, and nearly every one (about 98%) is received in the app. A supplier delivery is the hard case: the driver's paperwork, line-by-line checks, quantities that don't match the purchase order. If one headline number mixes the two, it rises and falls with the mix of deliveries as well as with what staff do. Statisticians call the extreme version of this .

Normal week headline 72.7% supplier, app paper transfers 5,376 3,584 4,480 Festival week headline 79.0% supplier, app paper transfers doubled 5,376 3,584 8,960 +6.3 Supplier in app: 60% same in both weeks
Bars are a week's deliveries across 320 stores, drawn to scale. In a festival week the DCs rebalance stock and transfers double. Transfers are almost always received in the app, so the headline rises 6.3 points while supplier deliveries, the hard part, stay at 60%.

The fix is in the reporting, not the arithmetic. Report adoption by delivery type, lead with supplier deliveries, keep transfers as a separate line, and show the counts next to the rates so a change in mix is visible. If you need one headline for a slide, use the supplier rate and say so.

Quick check

The week after a festival, the headline "deliveries received in the app" falls 6 points, and the head of operations asks why stores stopped using the app. Supplier deliveries were at 60% in the app both weeks. What happened?

Try it. The simulator starts with the step rates above (95%, 80%, 60%, 70%, 75%): 77 of 320 stores fully adopted. Each step shows what "Improve this step by 10 points" would add before you press it; compare them, then press the best one and see the new biggest drop. Press "Reset the rates" and try the worst one. Finally, switch Count to Staff to see the same funnel for 1,920 people.

Simulator

Loading the simulator…

  • The best 10-point fix is at the lowest rate, and here that is also the biggest drop. When those two differ, the lowest rate usually wins.
  • One step at 0% stops the whole funnel. In a rollout, that is the store where nobody was trained for the early delivery.

Do it

Build an adoption funnel and an honest adoption definition for a feature or tool you are rolling out.

  1. Pick the unit and the eligible group

    Choose the unit your decisions are made in. Include only units old enough to have completed the window.

  2. Write each step as one event

    Name the event, its source and its exact definition. Set the order and the conversion window.

  3. Pull the counts and find the leak

    Compute step rates and the end-to-end rate. Find the biggest drop and the step where 10 points adds most.

  4. Go and see why

    Visit or call five users who stopped at the leaky step. Write down what they did instead.

  5. Define "adopted" as real work

    Count work done by a person in the tool, split by type of work, and add the workaround that should disappear as a check.

    Markdown
    # Adoption funnel: Store app receiving (wave 1 and 2)
    Unit: store. Eligible: stores live 4+ weeks (160). Window: 4 weeks from go-live.
    
    | # | Step                           | Event and source                         | Stores | Step rate |
    |---|--------------------------------|------------------------------------------|--------|-----------|
    | 1 | App installed                  | 2+ handhelds have the app (device mgmt)  | 152    | 95%       |
    | 2 | Staff signed in                | staff_signed_in, both receivers          | 122    | 80%       |
    | 3 | First delivery in app          | first supplier GRN, received_via = app   | 73     | 60%       |
    | 4 | Five deliveries in app         | 5 supplier GRNs in the app               | 51     | 70%       |
    | 5 | Still using at week 4          | 80%+ of week-4 supplier GRNs in the app  | 38     | 75%       |
    
    Leak: step 3. Store visits (5): early deliveries with no trained person;
    pack sizes that don't match the PO; handheld not charged.
    Fix to test in wave 3: train both receivers, pack-size conversion, charging rule.
    
    "Adopted" means: 80%+ of SUPPLIER deliveries received in the app by a person
    at the dock, 4 weeks in a row. Transfers reported on a separate line.
    Auto-closed receipts never count. Check: paper GRN pads ordered per month.
    Guardrail: minutes from truck arrival to GRN posted must not rise.

Bring it to your team

Ask these whenever a funnel or an adoption number is on the screen.

  • What is the unit, the window, and who is included? Has any of it changed since last time?
  • Are we mixing people who started this week with people who started a month ago?
  • Which step has the lowest rate, and has anyone watched a user stop there?
  • Does "adopted" count work done in the tool, or log-ins?
  • What is in the denominator? Would the number change if the mix of work changed?
  • Which workaround should be disappearing, and is it?

Red flags

  • An adoption target met by a mandate to log in.
  • One headline percentage with no counts and no split by type.
  • System auto-closes or rep-entered orders counted as user adoption.
  • A funnel whose definition changed without a note on the chart.
  • A fix chosen from the funnel alone, with nobody having talked to a user.

Practice

Write the funnel query

Six stores are rolling out the Store app. store_app_event(site_id, event, occurred_on) holds app_installed and staff_signed_in events (a store can sign in on many days). grn(id, site_id, received_via, received_on) holds goods received notes, with received_via either app or paper. Return one row with the columns stores, installed, signed_in, received_1 (stores with at least one GRN received in the app) and received_3 (at least three). Count stores, not rows. If you need a refresher on count(DISTINCT …) and CTEs, see SQL you'll actually use.

SQL exerciseRuns in a real PostgreSQL inside your browser
-- Store app funnel: one row, one column per step
SELECT (SELECT count(*) FROM site) AS stores,
       (SELECT count(*) FROM store_app_event WHERE event = 'app_installed') AS installed,
       (SELECT count(*) FROM store_app_event WHERE event = 'staff_signed_in') AS signed_in;
Ctrl + Enter runs
Show a solution
SQL
WITH app_receipts AS (            -- one row per store: GRNs received in the app
  SELECT site_id, count(*) AS n
  FROM grn
  WHERE received_via = 'app'
  GROUP BY site_id
)
SELECT
  (SELECT count(*) FROM site) AS stores,
  (SELECT count(DISTINCT site_id) FROM store_app_event
    WHERE event = 'app_installed')   AS installed,
  (SELECT count(DISTINCT site_id) FROM store_app_event
    WHERE event = 'staff_signed_in') AS signed_in,   -- DISTINCT: S001 signed in 3 times
  (SELECT count(*) FROM app_receipts WHERE n >= 1) AS received_1,
  (SELECT count(*) FROM app_receipts WHERE n >= 3) AS received_3;

The starter counts event rows, so a store that signs in every day counts many times and the funnel can even get wider at a later step. A funnel counts units. Here the biggest drop is between "signed in" (4) and "three in the app" (2), which is the same leak as the 320-store funnel.

Pass the exercise to finish this task.

Split the headline adoption number

The table delivery(id, site_id, source, received_via) holds one week's deliveries for a few stores. source is supplier or transfer; received_via is app, paper or auto (closed automatically by the system, which is not adoption). The starter computes the dashboard's single headline. Return one row per source with deliveries, in_app (received by a person in the app) and in_app_pct rounded to one decimal.

SQL exerciseRuns in a real PostgreSQL inside your browser
-- The dashboard headline: everything not on paper counts as "in app"
SELECT count(*) AS deliveries,
       count(*) FILTER (WHERE received_via <> 'paper') AS in_app,
       round(100.0 * count(*) FILTER (WHERE received_via <> 'paper') / count(*), 1) AS in_app_pct
FROM delivery;
Ctrl + Enter runs
Show a solution
SQL
SELECT source,
       count(*) AS deliveries,
       count(*) FILTER (WHERE received_via = 'app') AS in_app,    -- auto is not adoption
       round(100.0 * count(*) FILTER (WHERE received_via = 'app') / count(*), 1) AS in_app_pct
FROM delivery
GROUP BY source;

The starter's headline is 11 of 15, 73.3%, because it mixes the two sources and counts the auto-closed transfer. Split and cleaned, supplier deliveries, the hard part, are at 60%.

Pass the exercise to finish this task.

Check yourself

New partner shops: 600 invited, 480 installed the Partner app (80%), 240 placed a first order in it (50%), 192 placed a third (80%). You can fund one improvement worth about 10 points at one step. Where?

The week after the analytics team changed the funnel's conversion window from 7 to 30 days, the Mangrove app's sign-up-to-first-order rate jumped from 24% to 31%. The growth lead wants to credit the new onboarding, which shipped the same week. What do you say?

Head office tells every store manager to sign in to the Store app daily. "Staff signed in" goes to 100%. The share of supplier deliveries received in the app stays at 61%. What should the monthly adoption report lead with?

Flashcards

Open my review

Key takeaways

  • A funnel's end-to-end rate is its step rates multiplied. The same 10 points add most where the rate is lowest.
  • Define unit, steps, order, window and cohort before reading a funnel, and note every definition change on the chart.
  • Activation is the first moment of core value; pick an early event that predicts staying, then prove it by moving it.
  • Internal-tool adoption is the share of real work done in the tool by a person, checked against the dying workaround.
  • Split headline adoption by type of work. A change in mix, such as festival stock transfers, can move it with no change in behaviour.

Sources and further reading

Episode transcriptThe festival that faked our adoption · about 11 minutes · tap any line to play from there
  1. NadiaImran, the head of operations wanted to announce something last month. What was it?
  2. ImranStore app adoption jumped from about seventy-three percent to seventy-nine in one week. During the festival rush. She was thrilled.
  3. NadiaAnd did anything change at the receiving dock that week?
  4. ImranAlmost nothing, it turned out. We'll get to why. It's a good story.
  5. NadiaIt is. But first, the tool that would have caught it. The funnel.
  6. NadiaPicture a neighbourhood gym in January. A hundred people join. Eighty come once. Fifty come five times. By March, thirty still come every week.
  7. ImranAnd the sign at the door says a hundred members.
  8. NadiaRight. The trainer learns more from where people stopped. Twenty never came. Maybe nobody gave them the locker code. Thirty came once and quit. Maybe the first session was confusing. Each drop has its own cause and its own fix.
  9. ImranAnd the workplace version is the company gym pass. Everyone's a member on day one.
  10. NadiaWhich tells you nothing about who's getting fitter. Same with internal software. Everyone has the Store app. The question is how much of the work they do in it.
  11. ImranSo let's do our real funnel. The first diagram shows it, a stack of bars getting shorter.
  12. NadiaThree hundred and twenty stores at the top. Three hundred and four installed the app. Two hundred and forty-three signed in. A hundred and forty-six received their first delivery in the app. A hundred and two received five. Seventy-seven were still using it at week four.
  13. ImranSo about a quarter of stores fully adopted, end to end.
  14. NadiaTwenty-four percent. That's all the step rates multiplied together. And the biggest single loss is at the first delivery. Ninety-seven stores signed in and then kept receiving on paper.
  15. ImranHere's my instinct. Fix the top of the funnel first, because it affects everyone below it.
  16. NadiaIt's a common instinct, and it's a trap. Every step affects everyone after it, so position doesn't matter. What matters is the rate.
  17. ImranWhy the rate?
  18. NadiaRaise a step by ten points and the end result gets multiplied by the new rate over the old rate. At sixty percent, going to seventy multiplies the end by about one point one seven. At eighty, going to ninety, it's only one point one two five.
  19. ImranSo ten points at the first delivery step adds about thirteen fully adopted stores, and ten points at sign-in adds about ten.
  20. NadiaExactly. The same effort is worth more where the rate is lowest. But a funnel tells you where people stop, never why.
  21. ImranSo I went and looked. Five of the ninety-seven stores.
  22. NadiaWhat did you find?
  23. ImranThree stories, over and over. The first supplier delivery came before seven in the morning, when the trained person wasn't on shift. Two suppliers had pack sizes on their delivery notes that didn't match the purchase order in the app, so staff gave up. And in one store, the only charged handheld was at the till.
  24. NadiaAll cheap to fix.
  25. ImranTrain both receivers, add a pack size conversion, and a charging rule at shift start. The first delivery step went from sixty to seventy-four percent in the next wave.
  26. NadiaNow, before anyone reads a funnel, you write down five settings. The unit. Stores, staff or deliveries, whichever matches the decision. The steps, each one a precise event. The order. The conversion window, how long people get to finish.
  27. ImranMixpanel's default window is seven days, right?
  28. NadiaIt is. For a store rollout, four weeks from go-live makes more sense. And the fifth setting is the cohort. When people started.
  29. ImranWhy does that one matter so much?
  30. NadiaBecause a store that went live yesterday can't have reached still using at week four. Mix new stores with old ones and the later steps look terrible. It's the most common funnel mistake there is.
  31. ImranAnd change the window from seven days to thirty, and the funnel improves overnight.
  32. NadiaWith nobody behaving any differently. So note every definition change on the chart.
  33. ImranWhat about activation? People throw that word around a lot.
  34. NadiaActivation is the moment a new user first gets the core value. A good activation event is early, specific, and predicts who stays. Amplitude notes that in its early days Facebook tracked how many new users added seven friends in their first ten days. Early, specific, and tied to the value.
  35. ImranHow do I find ours?
  36. NadiaCompare people still active at week four with people who left, and look for the early action that separates them. Pick one the product can help people reach. Then treat it as a hypothesis, because heavy users do everything. Help more people reach it and see whether retention follows.
  37. ImranAnd time to value is how long it takes to get there.
  38. NadiaUsually the median. For the Mangrove app, install to first on-time delivery. For the Store app, go-live to the first delivery received in the app. If a store goes live on Monday and receives in the app on Thursday, that's three days for the paper habit to win.
  39. ImranWhich is why the launch plan puts a trainer in the store for the first delivery.
  40. NadiaNow adoption itself. Store staff can't uninstall the Store app. But they can keep paper on the side. So sign-ins tell you almost nothing. Head office can get those to a hundred percent with one email.
  41. ImranSo we measure the share of the work done in the app.
  42. NadiaIn four ways. Breadth, how many stores are switched on. Depth, the share of each store's deliveries received in the app. Frequency, every delivery, including the six in the morning one. And persistence, still there at week four and week twelve, after the trainer leaves.
  43. ImranAnd the workaround that should die. The paper pads from the print room.
  44. NadiaIf the app says ninety percent and the print room still sends four hundred pads a month, believe the print room.
  45. ImranOkay. The festival.
  46. NadiaEach store gets about four supplier deliveries a day and about two stock transfers from its DC. A transfer comes with an electronic note. Receiving it in the app is one scan, so about ninety-eight percent are in the app.
  47. ImranAnd supplier deliveries are the hard ones. Paperwork, line checks, quantities that don't match.
  48. NadiaSixty percent in the app. The second diagram shows two bars. A normal week, and a festival week where the DCs rebalance stock and transfers double.
  49. ImranSo the transfer part of the bar gets twice as long, and the supplier part stays exactly the same.
  50. NadiaAnd the headline goes from seventy-two point seven to seventy-nine. Six points up. Supplier deliveries still at sixty percent. Nothing changed at the dock. The mix changed.
  51. ImranAnd the week after the festival, the headline dropped back, and someone asked why stores stopped using the app.
  52. NadiaSame cause in reverse. Statisticians have a name for the extreme version, Simpson's paradox, where the combined trend goes the other way from every group inside it.
  53. ImranWe found something else too. Some transfers were closed automatically by the system after a day, and the old report counted them as received in the app.
  54. NadiaThat's the opposite of adoption. Nobody received them. Count a delivery as received in the app only when a person scanned it at the store.
  55. ImranSo the dashboard now leads with the supplier rate, shows transfers on a separate line, and shows counts next to every rate.
  56. NadiaAnd the announcement waits until supplier deliveries reach the eighty percent target.
  57. ImranAnd the do it section is basically that whole process as a template.
  58. NadiaPick the unit and include only units old enough for the window. Write each step as one event with a source. Pull the counts, find the biggest drop and the lowest rate. Go and watch five users stop there. Then write down what adopted means, split by type of work, with the dying workaround as a check.
  59. ImranAnd there are two SQL exercises. One builds the funnel, counting stores instead of event rows. The other splits the headline by supplier and transfer.
  60. NadiaThe first one has a trap. A store that signs in every day counts many times if you count rows. Your funnel can even get wider halfway down, which should never happen.
  61. ImranAnd in the simulator?
  62. NadiaEach step shows what improve this step by ten points would add, before you press it. Compare them, press the best one, then reset and try the worst. Then switch the count to staff.
  63. ImranFor my team, I'd ask. What's the unit, the window, and who's included? Are we mixing new starters with old ones? And what's in the denominator, would this number move if the mix of work changed?
  64. NadiaGood. Add one more. Has anyone actually watched a user stop at the leaky step?
  65. NadiaHere's one to think about. Head office tells every manager to sign in daily. Sign-ins hit a hundred percent. Supplier deliveries in the app stay at sixty-one. Take a second. What leads the monthly report?
  66. ImranSupplier deliveries received in the app by a person. With the paper pads as a check.
  67. NadiaYes. Sign-ins measure obedience to an email. Depth on the hard work measures adoption.
  68. ImranMy takeaways. One, the same ten points help most at the lowest step rate. Two, define the unit, steps, order, window and cohort before reading a funnel. Three, adoption is the share of real work done in the tool, split by type, because a change in mix can fake progress.
  69. NadiaAnd one addition. Count work done by a person. Auto-closed receipts and log-ins are not adoption.
  70. ImranNext time, retention and cohorts. Who keeps coming back, and who quietly stops.
Finished reading?Mark it complete to fill in its stop on your course line.

Use it at work

KPI dashboard notebook

Weekly revenue, orders, average basket and active customers, with a chart per KPI.

Open in the Data Lab
Next stopRetention and cohorts
Was this lesson helpful?
Questions and discussion

Loading the discussion…