flowchart TD
NS["Active users<br/><i>North star: monthly active users</i>"]
NS --> L1a["New users<br/><i>First time actives</i>"]
NS --> L1b["Retained users<br/><i>Came back this period</i>"]
NS --> L1c["Resurrected users<br/><i>Returned after churn</i>"]
L1b --> L2a["D7 retention rate"]
L1b --> L2b["D30 retention rate"]
classDef northstar fill:#2C3E50,color:#ffffff,stroke:#2C3E50;
classDef l1 fill:#0F6E56,color:#ffffff,stroke:#0F6E56;
classDef l2 fill:#993C1D,color:#ffffff,stroke:#993C1D;
class NS northstar;
class L1a,L1b,L1c l1;
class L2a,L2b l2;
What makes a good metric
Building your Analytics Metric Tree
The problem with being data rich
Over eight years as a data scientist, most of that time spent driving growth and retention work, one pattern keeps repeating.More metrics, fewer decisions. Everyone wants “all” the metrics. Almost nobody has built the muscle to act on them.
In practice, this shows up as requests like:
- How many sessions did we generate this week?
- How many signups did we get?
Both count people entering the top of the funnel. Neither tells you whether any of them converted to a key event, the moment a user actually receives value and the business benefits from it. These are vanity metrics. A headcount moved. Nothing more, nothing less.
The three “so what” test
A simple filter separates a vanity metric from a working one: keep asking “so what” until a decision falls out.
Signups are up 20%. So what? More people are trying the product. So what? If activation stayed flat, we just have more people abandoning earlier. So what? If you cannot name the decision that changes because signups moved, the metric has not earned its keep as a growth signal.
Paired correctly, the same number becomes informative:
Signups up, activation flat or declining. That is a warning sign, fix onboarding before spending another dollar on acquisition. It may also be worth segmenting by buying persona. A business account and a solo user are not looking for the same product experience, and one onboarding flow rarely serves both.
Notice it was never signups alone doing the work. It was the pairing. A single metric almost never survives three rounds of “so what.”
This tension, treating a metric as informative on its own rather than as one signal among several, is exactly what Phil Le-Brun and Jana Werner describe in their book The Octopus Organization and their August 2026 conversation on DataCamp’s DataFramed podcast. They call the failure mode “deferring to data”, when a number that should open a debate is instead treated as the final word. Worth a read if this problem sounds familiar.
Vanity metric vs input metric
| Vanity metric (lagging, easily gamed) | Input metric (actionable, closer to value) | Why the swap matters |
|---|---|---|
| App downloads | Time to first value | Downloads are top of funnel noise. Speed to value predicts whether a user sticks around. |
| Total pageviews or clicks | Completion rate of a key flow (onboarding, checkout) | Raw traffic can rise while the thing that actually converts stagnates. |
The fix: build a metric tree
A metric tree stops individual numbers from floating in isolation. Every metric answers to a parent, all the way up to the one number the business actually watches.
- North star: the metric that matters most to the business right now.
- L1, input metrics: the handful of levers that mechanically move the north star.
- L2: metrics that explain movement inside one L1 lever.
- L3 and beyond: further decomposition, only where a real question remains unresolved.
A north star is never standing alone either. Active users interacts with revenue and retention trees the same way L1 metrics interact with the north star above them; pulling one lever quietly moves the others.
Segmentation key (cuts applied within a node, not a new tier): acquisition channel, platform, geography, plan tier.
New users has no L2 branch on purpose. The question underneath it is binary, did someone show up for the first time or not, and there is little diagnostic ambiguity left to resolve. What is useful there is a segmentation cut, by channel or platform, not a deeper layer of the tree. Retained users earns the extra layer because “did the value stick” can fail differently at day 7 than at day 30, and those two failures point to different teams.
Key takeaways
- What you measure gets managed. Choose the wrong metric and you will optimise the wrong behaviour, faster than before.
- A metric’s job is not to hit a target. It is to inform and to learn. Learn, learn, learn.
- A metric tree turns “the number moved, any ideas?” into “this specific branch moved, here is who owns it.”
Recognize this issue in your own dashboards? let’s talk and figure out your metric tree output!