12 March 2026 · Analytics craft
Reading upgrade intent without vanity metrics
The first chart almost every new Lab Cycle student presents is a paywall funnel. Impression, click, start checkout, success. The shape is familiar. The argument it can support is tiny. An impression fires when a sheet is rendered, which on many apps means “the home screen painted,” not “a person considered paying more.”
We ask students to retire that funnel for two weeks. Not forever — checkout still needs a path. The pause is to notice how much of the team’s language was built on a count that moves when design refactors, A/B traffic splits, or a badge animation, none of which are upgrade intent.
Three shelves, not one score
Backup Nodehub groups markers into capacity, comparison, and commitment. Capacity is the product pushing against a limit: storage full, seat count reached, export quota spent. Comparison is study behaviour: dwelling on a plan table, switching annual/monthly, opening “what’s included.” Commitment is the start of a billing or family-share flow.
Collapsing the three into an “intent score” feels sophisticated and usually hides the only question that matters: which shelf moved? A capacity spike after you shipped a generous free tier is not the same story as a comparison spike after you rewrote the plan copy.
Events that earn their keep
Useful events tend to be slightly annoying to implement. “Compared plan_id A and plan_id B for more than eight seconds” is uglier than “viewed_upgrade.” It is also harder to inflate. “Opened billing history within ten minutes of a feature gate” is uglier still. Those are the events we keep on the wall during module two of the Plan Conversion Analytics Lab.
We are not purists about client versus server. If the storefront owns the checkout, you will miss some commitment events. Write that down. A limitation is more honest than a reconstructed “success” ping that fires when the SDK hopes the purchase went through.
What to do with the vanity funnel
Keep it in an engineering health dashboard if you must — it still tells you the sheet rendered. Do not take it to a commercial meeting. When a board asks for “upgrade rate,” answer with a windowed conversion among people who showed comparison or capacity, and say out loud who was excluded. That sentence is the whole craft.
Related reading: Upgrade Signals and cohort windows.