“Reached checkout” tells you a shopper crossed one threshold; it does not tell you which checkout step failed. After nine years working on Shopify CRO, I cut the funnel by four dimensions before changing a theme: device, payment method, market/currency, and whether shipping cost appeared or changed.
The facts are the transition rates. “Unexpected shipping” or “payment friction” is still a hypothesis until the step-level counts or a real test order supports it. Start with the single largest percentage drop, then validate it with a few representative journeys.
What is the first cut you use when checkout starts look healthy but purchases do not?