+11% checkout conversion and €8–12M annual impact. Rebuilt the checkout experience by fixing what nobody was measuring.
Sole designer on the checkout funnel for one of the world's largest travel experience platforms. 150M+ travelers, 4 EU markets. I owned research, hypotheses, experiment design, and analysis end-to-end.
Checkout funnel, end-to-end.
GetYourGuide processes millions of bookings per year across multiple European markets. The checkout funnel, from add-to-cart through payment confirmation, was the highest-leverage surface in the product. Strong acquisition, weak conversion.
Scope: Checkout funnel (end-to-end)
Users: 150M+ travelers
Markets: 4 EU markets
Work: Research, hypotheses, experiment design, analysis
Everyone was optimizing the wrong step.
The team was focused on the payment form. The real problems were elsewhere. Three things were silently killing conversion:
- Pricing felt inconsistent and untrustworthy. Users were looping between checkout and product page, trying to validate the price. "All taxes included" wasn't enough. They wanted to see the math.
- Mobile transitions were breaking user flow. Each step was a separate page load. Users lost visual context of their order, the timer, and their progress. 65% of traffic was mobile.
- Payment defaults didn't match local behavior. Credit card showed first globally. In the Netherlands, 72% of online payments use iDEAL. In Poland, BLIK dominates. Users scrolled past an entire form they didn't want.
Checkout · total
User reaches the total. Pauses. "All taxes included" is a claim, not proof.
2–3 round trips
Product page · price
Scrolls back to compare. On mobile the reload wipes timer, summary and progress.
The biggest opportunity wasn't in the payment form. It was in everything leading up to it.
Users weren't dropping because of friction. They were dropping because of doubt.
Session recordings showed the same pattern: users reached checkout, hesitated, scrolled back to verify pricing, lost context on mobile reloads, and abandoned. The payment form was fine. The problem was that users arrived at it uncertain.
Three interventions. Each targeted a specific moment of doubt.
1. Made pricing transparent
Users were looping between checkout and product page trying to validate the price. I introduced itemized price breakdowns with “all taxes and fees included” stated at the total (EXP-03), and paired it with the hold-your-spot timer that reframed urgency as reassurance (EXP-01). Per-person cost visible. Itemized breakdown showing exactly what they were paying for.
2. Fixed mobile flow continuity
Each step reload killed context. The bet wasn’t fewer pages — it was unbroken context. We tested the extreme, a fully single-page checkout, and killed it when mid-range Android paid +1.2s for the elegance (EXP-08). What shipped: the flow collapsed into two named steps (EXP-02), with progress, timer and order summary persisting across the boundary.
The legacy 3-step flow (Activity → Contact → Payment) that EXP-02 collapsed into two named steps — the structure still live today.
3. Localized payment defaults
Global defaults were wrong. I adapted payment methods per market — iDEAL in the Netherlands, BLIK in Poland, Sofort in Germany — with the preferred method expanded by default. It won cleanly in 2 of 4 markets and stayed flat in the rest, so it rolled out per-market rather than globally (EXP-10).
Ten experiments. Six shipped, two killed, two iterated. Every kill logged with a reason.
The +11% didn’t come from one redesign — it compounded from a programme where losing was informative. Below is the operating record: hypothesis, primary metric, result and the call. Six of the ten are still visible on GetYourGuide’s live checkout — captured on mobile, August 2026, receipts below. Figures are directional reconstructions of relative effects; exact values are confidential.
◆ RECEIPTS — STILL IN PRODUCTION
Six experiments you can verify yourself, today.
GetYourGuide’s live mobile checkout, captured August 2026. Each pin maps to an experiment ID in the log above. Note the hold-your-spot timer counting down across both screens — 25:03 in the basket, 24:53 one step later.
01 hold-your-spot timer · 03 all taxes & fees included at the total · 04 free cancellation restated in the summary
02 two named steps · 01 the timer, still counting · 09 email-first continue · 05 SSO-first sign-in
Six real calls from the log. You make them first.
Read the hypothesis and the result, make your call, then see what we did — and why. Ship / Iterate / Kill, same options the team had.
Hold-your-spot countdown: "We'll hold your spot for 30:00"
Payment completion +3.1%. Zero urgency-related support tickets. Real hold time, not manufactured scarcity.
Price-expiry countdown: "book now — price rises when the timer ends"
CTR to payment +4.2%. Trust survey −9pts, refund-intent proxy up. Hold-your-spot timer (EXP-01) already shipped.
Promo code as a quiet link instead of an open field
Coupon-hunt exits −31%. Net completion up. The option still exists, one tap away.
Single-page checkout: collapse all steps into one view
Desktop +0.4% (n.s.). Mobile −0.9% — render cost added ~1.2s on mid-range Android.
Email-first continue, account creation deferred
New-user conversion: v1 flat (n.s.). Sessions still show hesitation at "create account" before paying.
Reorder payment methods to match each market's preference
+1.7% in 2 of 4 markets. Flat in the other 2.
What trade-offs did I make?
Every decision involved choosing between speed-to-ship and depth of change. These were the most consequential:
| Decision | Chosen | Rejected | Why |
|---|---|---|---|
| Mobile architecture | Single-page checkout | Responsive tweaks to existing 3-step flow | 8–12% drop-off at every transition. Fixing transitions wasn't enough. The transitions themselves were the problem. |
| Price transparency | Full itemized breakdown | Better "taxes included" messaging | Users wanted to see the math, not be told it was fair. Messaging didn't stop the anxiety loop. |
| Payment localization | Geo-IP dynamic ordering | Manual market-specific pages | Scalable across markets. One system, not four maintained pages. |
| Urgency signals | Honest countdown (existing hold time) | Artificial scarcity ("only 2 left") | Real inventory data, not manufactured pressure. Zero urgency-related support tickets. |