The Kernel · 18 January 2026
The quiet cost of duplicate funnels
A duplicate funnel does not announce itself. It looks like a healthy conversion rate with a mysterious weekly wobble. In Funnel Integrity Intensive we treat that wobble as a naming collision until proven otherwise.
The usual pattern: checkout exists on web and in the app. Both paths log checkout_started. One of them logs payment_succeeded from the client thank-you screen; the other waits for the processor webhook. Compare the two in a single funnel and you have invented a leak that no designer can fix.
Count the clocks
Each birthplace has a clock. Client clocks drift, get blocked, and fire on screens people never saw. Server clocks are late but boring. Pixel clocks belong to someone else’s privacy policy. If your funnel mixes them, the step-to-step drop is partly timezone theatre.
We make students draw the path on paper with the birthplace in the margin. The drawing is ugly and more useful than a saved funnel in a vendor UI, which will happily join whatever you named the same.
What the intensive will not do
Four days is long enough to find the collision and write the deprecation. It is not long enough to rebuild identity. Teams sometimes arrive hoping we will “tune” a rate. If the rate is a duet of two products sharing a string, tuning is malpractice.
The grocery-delivery letter on our reviews page is this problem in work clothes: an order-confirm event on a layout users never reached after a payment retry. The funnel was optimistic. The payments log was not.