Journal · 9 December 2025
Reading funnels without vanity
A funnel is a sequence of claims: the person saw, then chose, then finished. Vanity enters when one of those claims is a lie the tracker told. Prefetch fires “tour_started.” A retry button fires “payment_attempted” eight times. The last screen is blamed because it is visible, while the silent API error two steps earlier did the damage.
Funnel Forensics, on our catalogue, spends four weeks on this. The journal version is shorter. First, write the sequence as human work, not as event names. Second, sit with engineering and ask when each event can fire without the work. Third, rebuild the funnel with only the events that survive that interrogation. Conversion will usually fall. That fall is honesty arriving.
Order is a product decision
Inherited funnels keep steps that the current app no longer shows. I have seen United Kingdom grocery apps report “address confirmed” after the API had already failed, because a cached screen still counted. Remove the ghost. Do not “optimise” it.
Rates without denominators
A 12% step looks decisive until you learn the denominator is people who opened a debug build. Print the count. Print the date range. Print whether new and returning users are mixed. If you cannot, you are decorating a drop-off, not reading one.
Write to the desk if you want a redacted funnel annotated. Bring the raw step counts, not a screenshot of a green arrow.