Chapter 1 — Anatomy of Metrics

Conversion and the funnel: where the cats dropped off

18 min
What you'll learn
  • build a as ONE group of users passing through steps inside a time window
  • understand why counting events yields conversions above 100%
  • name the denominator of each step and derive end-to-end conversion by cancelling fractions
  • tell apart three different "worst steps": by rate, by people lost, and by money

A funnel is not four counters

The buyer's path through Kotomarket:

opened app → viewed product → added to cart → paid
  12,000          6,000            1,800        720

The most common beginner mistake is to read those four numbers as four independent counters: "this week there were so many opens, so many views, so many carts, so many payments". You can count that way, but it is not a .

A funnel is ONE group of users passing through an ordered sequence of steps inside a time window.

Let us take that definition apart into three mandatory pieces.

1. One group. We fix a specific set of people — those who took the first step during the chosen week — and follow exactly them. The 6,000 at step two are not "everyone who viewed products", they are "those of our 12,000 who reached a view". A person who opened their cart that week without taking the first step is not in the funnel at all.

2. A sequence. The steps are ordered, and a person reaches step N only by passing steps 1…N−1. Hence the numbers must decrease: 12,000 ≥ 6,000 ≥ 1,800 ≥ 720. If a reported funnel grows somewhere, that is a signal it was built from independent counters rather than from passage.

3. A time window. A funnel always has a deadline: "within the same session", "within 24 hours of the first step", "within a week". Without a window the question "did they make it" has no answer: a person could open the app in March and pay in June. Calling that conversion is self-deception. At Kotomarket the window was seven days from the first step.

Entry #44 in L.'s journal: "A funnel is not columns in a table. It is a claim about people: these particular cats walked the path and stopped right here."

A cadet seen from behind examines a black box while a holographic funnel shows shrinking groups of capsules and a robot-cat watches from the side.
A funnel is not four counters side by side but one group of people moving through steps inside a window of time.
by usersby eventssteps: opened site → opened product page → bought100603060%50%count distinct user_idconversion never above 100%10024090240%38%count event rows240% — one person openedthe same page 4 times
On the left, a funnel by users — the numbers decrease. On the right, the same steps counted by events: 46,000 views from 12,000 people yield a "conversion" of 383%.

Why counting events gives 400%

Back to the first lesson: the counting unit decides everything. Take the same Kotomarket week and count the steps in events rather than people:

stepevents that weekunique users
opened the app19,80012,000
viewed a product46,0006,000
added to cart3,1001,800
paid790720

Divide events by events and you get 46,000 / 19,800 = 232%. Divide step-two events by step-one users and you get 46,000 / 12,000 = 383%.

A conversion above 100% means exactly one thing: the numerator and the denominator count different things. People view many products per visit; there are physically more view events than people. There is no "super-conversion" here, only a broken fraction.

The rule:

Every step of a funnel is counted in one unit — as a rule, unique users. Numerator and denominator must be of the same breed.

This does not make events useless. "Views per user" is an excellent engagement metric, and the table above shows it: 46,000 / 6,000 ≈ 7.7 products per person. It is simply a different metric, and it has no place inside a funnel.

A quick report self-check: if any funnel step exceeds the previous one, or a conversion comes out above 100%, then almost certainly events were counted in one place and people in another.

The denominator of every step

Now let us count honestly — in unique users, seven-day window.

Step conversion is the share of people who moved from the previous step to the next. Each step has its own denominator: exactly whoever was standing on the previous rung.

transitionnumeratordenominatorconversion
opened → viewed6,00012,00050%
viewed → cart1,8006,00030%
cart → paid7201,80040%

The question from the previous lesson, which should now be automatic: "30% is 1,800 out of which 6,000?" The answer: out of the 6,000 who viewed a product — not out of the 12,000 who entered, and not out of all registered cats.

End-to-end conversion, and why it equals the product

End-to-end conversion goes from the first step to the last: 720 / 12,000 = 6%.

It is often given as "the product of step conversions", which looks like magic. There is no magic — it is fractions cancelling. Written out:

 6000     1800     720      6000 × 1800 × 720       720
────── × ────── × ────── = ─────────────────── = ───────  = 6%
12000     6000     1800    12000 × 6000 × 1800    12000

The numerator holds 6,000 and 1,800, and the very same 6,000 and 1,800 sit in the denominator — they cancel. What remains is 720 / 12,000. The product adds no new knowledge: it is the same path written step by step.

A useful consequence: step conversions multiply. Improve each of the three steps by a tenth and end-to-end conversion grows not by 10% but by roughly 33%. And conversely: one sagging step drags the whole product down even if the others do not move — which is exactly what happens in Case #0.

Funnel: how many people reached each step12 000visitors6 000product page1 800cart720payment50%−6 00030%−4 20040%−1 080overall conversion = 720 / 12 000 = 6%
Each step has its own denominator — the previous rung. End-to-end conversion comes from cancellation, not from a new measurement.

Three different "leakiest steps"

The question "where is the biggest hole?" sounds unambiguous, but it has three answers — and they disagree.

transitionconversiondrop-off ratepeople lost
opened → viewed50%50%6,000
viewed → cart30%70%4,200
cart → paid40%60%1,080

Drop-off rate is the share who did NOT pass the step: 100% minus the step conversion. The highest drop-off is on "viewed → cart": 70% of arrivals are lost there.

People lost is an absolute: how many humans vanished at the step. The largest absolute outflow is at the first transition: 6,000 people, even though its rate is not the worst.

There is the first discrepancy: the lowest conversion (30%) and the largest loss (6,000 people) are different steps. Reporting "the second one is the leakiest" can be an honest way of getting priorities wrong.

Business significance is the third and most important criterion. It asks not "where do we lose more" but "where is the payoff from fixing bigger". Let us sketch it in money, assuming an average check of 730 ₽ and that an improved step converts downstream as usual:

if we improveeffect in paymentseffect in money per week
step one by 5 pp (50% → 55%)+72 reaching payment≈ +52,500 ₽
step two by 5 pp (30% → 35%)+120 reaching payment≈ +87,600 ₽
step three by 5 pp (40% → 45%)+90 reaching payment≈ +65,700 ₽

The same improvement in points yields different money — because the steps sit at different depths and different numbers of people flow through them. Add common sense: five points on the first step and five on the third cost different amounts of work, and that is part of the decision too.

Report not "conversion dropped" but "this transition sagged: the rate went from X% to Y%, that is this many people and roughly this much money per week". Three numbers side by side turn panic into a plan.

The funnel on a calculator: rates, end-to-end, and absolute losses at each step. Run it, then lower carted and see what moves more — the second step's rate or the number of people lost.
python · pandas
Practice: write the code
Take apart the funnel's second transition — "viewed → cart". Compute three numbers: conv2 — the step conversion in percent, dropoff2 — the drop-off rate in percent (the share who did NOT pass) and lost2 — how many people were lost at that step.
python · pandas
Practice: write the code
Convince yourself that end-to-end conversion and the product of step conversions are the same number. Compute direct — straight (payers over entrants, in percent) — and chained — by multiplying the three step shares and scaling by 100. They must match.
python · pandas
Check yourself
A reported funnel: 12,000 → 6,000 → 1,800 → 720. A colleague says: "The second step is the leakiest, its conversion is only 30%." What is worth adding?
Check yourself
An analyst computed the "opened → viewed" conversion and got 383%. What happened?
Key takeaways
  • a is ONE group of users passing ordered steps inside a time window, not four independent counters
  • every step is counted in one unit (unique users); a conversion above 100% means events and people got mixed
  • each step has its own denominator — the previous rung; always say "this many out of which many"
  • end-to-end conversion equals the product of the steps because the intermediate numbers cancel
  • the "leakiest step" has three answers: by rate (drop-off), by people lost, and by the money a fix would bring

Next — : a metric not about how many people arrived, but about whether the same ones came back.