The illusion of choice in booking flows.

Open a fare comparison table on almost any airline site and you will count somewhere between four and eight fare families, each with its own name, its own icon set, and its own carefully graded bundle of a checked bag, a seat choice, a change fee waiver. It reads like abundance. It is not. Strip away the naming and the icons and most of those fare families exist for one purpose: to make the cheapest option look punitive enough that a meaningful share of travellers pay more for something they would have received as standard a decade ago. The choice is real in the sense that a button exists for each option. It is an illusion in the sense that the flow was built, screen by screen, to make one answer feel obvious and the others feel like relief.

This piece is about that gap between the choice a booking flow presents and the choice it is actually engineering a traveller toward, why the pattern became standard practice across airlines, hotels and OTAs, and why 2026 is a materially worse year to be running it than 2020 was. Regulators on three continents have stopped treating drip pricing and fabricated urgency as a UX style choice. Travellers screenshot the worst examples straight to social media before they have finished the booking. The commercial case for the illusion, which was never as strong as the conversion dashboards made it look, is now sitting next to a compliance and reputational bill that changes the arithmetic entirely.

01

The flow that offers forty options and one real choice

A typical booking flow for a one-week trip, flight plus hotel plus a rental car, will present a traveller with something in the region of thirty to forty discrete decisions before checkout: fare family, seat, bag, priority boarding, a choice of three insurance tiers, a room category, a breakfast add-on, a cancellation policy upgrade, a car class, a fuel option, an excess waiver. Product teams call this personalisation. Behavioural economists have a less flattering name for the same pattern: choice architecture, where the number of options is large enough to feel like agency while the actual decision surface, the thing that determines what the traveller pays and what they receive, has been reduced to a single nudge repeated in different packaging at every step.

The tell is what happens when you try to find the honest, no-frills price. It is never the option visually emphasised with colour, badge, or default selection. It is usually the greyed-out, unlabelled, or deliberately under-described choice sitting at the bottom of the list, styled to look like the version nobody sensible would pick. That styling decision is not accidental and it is not free: someone specified the visual hierarchy, ran the A/B test, and shipped the variant that lifted attach rate. The traveller experiences a wall of options. The business experiences one lever, pulled forty different ways per booking.

None of this requires a villain. It requires a conversion-rate optimisation programme with no counterweight, running against quarterly targets, in an industry where margin per booking is thin enough that a two-point lift in ancillary attach genuinely moves the P&L. The problem is not that anyone woke up wanting to deceive travellers. It is that a decade of incremental, locally-rational UX decisions, each one individually defensible in a design review, compounds into a flow that a first-time user experiences as a maze built specifically to confuse them, because in aggregate that is what it has become.

02

Four patterns still shipping

Drip pricing is the most durable of the four. The headline fare excludes a bag, a seat assignment, and increasingly a card processing fee, each revealed on a subsequent screen after the traveller has already invested time and formed a commitment to the booking. The price that brought them into the funnel and the price they actually pay can differ by thirty to fifty per cent, and the gap is disclosed progressively, never up front, because up-front disclosure is precisely what drip pricing is designed to avoid.

Decoy fare classes are the second. A visibly stripped "basic" fare, no seat selection, no overhead bin space, boarding last, is not built to be bought. It is built to make the fare one tier up look reasonable by comparison, a textbook anchoring effect where the decoy's only function is to shift the reference point. Airlines that pioneered basic economy have been candid in earnings calls that the fare exists to protect the price point above it, not to serve travellers who actually want it.

Pre-ticked add-ons are the third, and the one regulators have moved against fastest: travel insurance, seat selection, or a "flexible date" upgrade arriving pre-selected in the checkout summary, priced in unless the traveller notices and actively removes it. The design bet is straightforward and, until recently, safe: a meaningful share of travellers complete checkout without auditing every pre-selected line item, and the ones who do notice will often decide the friction of removing it costs more than the charge itself.

Fabricated urgency is the fourth: a countdown timer against a fare that does not actually expire when it reaches zero, or a "12 people are looking at this room right now" banner generated from a random range rather than a real concurrent-viewer count. This is the pattern with the thinnest defence, because unlike drip pricing or decoy fares, which are technically true even when manipulative, a fabricated urgency claim is simply false, and a false claim is the easiest of the four for a regulator, a journalist, or a class action to prove.

EXHIBIT 1
Four booking-flow patterns, ranked by regulatory exposure Four horizontal bars: drip pricing, decoy fare classes, pre-ticked add-ons, and fabricated urgency, each with a one-line description of the mechanism and a rising exposure indicator from left to right. FIG 2.1 The four patterns, and how exposed each one is DRIP PRICING True at each step, misleading in aggregate. Now the direct target of UK and EU rules. DECOY FARE CLASSES Legal anchoring, defensible in a design review, harder to defend in a hearing. PRE-TICKED ADD-ONS The first pattern regulators moved on. Consent must now be affirmative, not assumed. FABRICATED URGENCY Simply false, not merely manipulative. The easiest of the four to prove and to lose. Techspian analysis, 2026. Exposure rises from top to bottom as the claim moves from technically true to demonstrably false.
The four patterns still shipping across travel booking flows, ordered by how exposed each one is to regulatory and reputational risk. Techspian analysis, 2026.
03

Why it worked for a decade, and why it's cracking now

The illusion of choice worked because the feedback loop that would normally correct it was broken. A traveller who feels vaguely overcharged after a confusing checkout rarely files a complaint; they absorb the annoyance, occasionally mention it to a friend, and mostly still complete the booking, because switching to compare a competitor's equally confusing flow costs more attention than the annoyance is worth. Conversion dashboards saw attach rate climb and complaint volume stay flat, and a flat complaint line reads, incorrectly, as consent.

Three things broke that loop at roughly the same time. First, regulators stopped treating this as a UX matter and started treating it as a pricing transparency matter: the UK's Digital Markets, Competition and Consumers Act gave the Competition and Markets Authority explicit power to act on drip pricing, and the EU's ongoing work on unfair commercial practices and the Digital Fairness agenda has repeatedly named fake urgency and pre-ticked consent as the patterns it intends to close off, following the US FTC's own rules on click-to-cancel and hidden junk fees. None of these frameworks were written specifically about travel, but travel booking flows are close to the canonical example used in the consultations that produced them.

Second, the screenshot economy did to booking flows what it already did to airline seat-selection fees a few years earlier: a single striking example of a fare that ballooned from a headline price to double that at checkout, posted with a timestamp and a boarding pass, now reaches more people in a day than a company's entire annual marketing spend could reach in a quarter, and it reaches them with the specific implication that the company is: cheap in one sense, ie underhanded, rather than cheap in the sense it wants to project.

Third, and least discussed, competitor benchmarking now runs the other way. For a decade, watching what the market leader did in its booking flow was a safe justification for copying the pattern. Now that the market leader is more likely to be the subject of a regulatory inquiry than a case study, that same benchmarking exercise increasingly turns up a cautionary tale instead of a playbook, and the businesses reading it correctly are the ones re-scoping their own flows before, not after, a regulator asks them to.

≈ 3xRough multiple by which a booking flow's screenshot-driven reputational reach now exceeds its planned marketing reach, in the cases we have reviewed where a drip-pricing or fake-urgency example went viral. The distribution channel for a bad checkout is no longer contained to the people who experienced it.
04

The engineering discipline behind an honest flow

Fixing this is not a copywriting exercise, and treating it as one is the most common mistake we see. Softening the language on a pre-ticked checkbox while leaving it pre-ticked satisfies nobody: not the traveller, who is still charged by default, and not a regulator, who reads the actual default state, not the label next to it. The fix has to happen in the data model and the checkout logic, not the microcopy layer sitting on top of it.

The first discipline is a single source of true price: one number, computed once, that includes every mandatory fee, surfaced at the first screen a traveller sees a price on, with every subsequent screen refining rather than inflating it. This is a genuinely different architecture from the common pattern of a base-fare service that knows nothing about ancillary pricing until a downstream microservice adds it screen by screen, and retrofitting it usually touches more of the pricing stack than a product team initially budgets for.

The second is consent that defaults to off. Every optional charge, insurance, seat selection, a flexible-date upgrade, ships unselected, and the traveller's explicit action is what adds it to the total, not the traveller's failure to notice and remove it. This single change, applied honestly across a flow, is usually the highest-leverage fix available, and it is also the one product teams resist hardest, because the attach-rate drop shows up in a dashboard within a week while the trust benefit shows up in retention numbers that take a quarter or two to move.

The third is a scarcity and urgency layer that is only allowed to say what is true: a countdown tied to an actual fare hold expiry, a "high demand" indicator computed from real concurrent session counts rather than a randomised range. Where the honest number is unimpressive, the discipline is to say nothing rather than to fabricate something more persuasive, which is a harder cultural sell than an engineering one.

The fourth is an audit trail: a record of what price and what pre-selections a specific traveller actually saw, at the exact timestamp of their booking, retrievable months later when a regulator, a chargeback dispute, or a journalist asks. Most companies running the four patterns described above cannot currently reconstruct this with confidence, because the flows were built to convert, not to be reconstructed, and that gap is now its own liability, independent of whether any individual pattern was itself defensible.

EXHIBIT 2
What an honest checkout flow requires, layer by layer A four-layer stack from price truth at the base up to the audit trail at the top, each layer described briefly. FIG 4.1 The layers an honest flow actually needs AUDIT TRAIL What price and pre-selections this traveller actually saw, reconstructable months later. HONEST URGENCY Countdown and demand signals computed from real state, or not shown at all. CONSENT DEFAULTS TO OFF Every optional charge ships unselected. The traveller's action adds it, nothing else does. SINGLE SOURCE OF TRUE PRICE One number, computed once, including every mandatory fee, from the first screen. Techspian analysis, 2026. Copy changes on top of this stack do nothing; the fix lives in the data model.
What an honest checkout flow actually requires, from the base price model up to a defensible audit trail. Techspian analysis, 2026.
05

The commercial argument nobody budgets for

The case for keeping the illusion always rested on a short time horizon: attach rate and average order value are visible weekly, while the cost of the pattern, elevated chargeback rates, a slowly eroding repeat-booking rate, a support queue full of "why was I charged for X" tickets, shows up on a lag long enough that it rarely gets attributed back to the checkout flow that caused it. Run the same comparison over eighteen months rather than eight weeks and the picture usually inverts: the businesses that removed pre-ticked add-ons and drip pricing saw ancillary revenue per booking dip for one to two quarters and then recover past the original baseline, driven by a repeat-booking rate that a confusing flow was quietly suppressing the whole time.

A traveller who feels tricked once does not tell you. They tell everyone else, and they do not come back to find out if you fixed it.

There is also a cost most finance models never line-item: the chargeback and dispute rate on bookings where the traveller disputes a charge they say they did not knowingly agree to. Card networks track merchant-level dispute ratios, and a business running aggressive pre-ticked defaults tends to run a materially higher ratio than one that does not, which is a cost that compounds through processing fees and, past a threshold, processor risk reviews, independent of any regulatory action at all.

None of this is an argument for competing purely on the lowest headline price. It is an argument for making the number a traveller sees early in the flow the number they actually pay, and building the differentiation, loyalty benefits, genuinely useful bundles, service quality, into things a traveller chooses to value rather than things they fail to notice they were charged for. That is a harder positioning exercise than running a decoy fare class, and it is also the only version of it that survives contact with a regulator, a journalist, or a competitor who got there first.

06

Four questions before you audit your own flow

First, can you name, today, every checkbox in your checkout flow that ships pre-selected, and could you defend each one in front of a regulator using the word "consent" without flinching. If the honest answer requires checking with three different product teams, the flow has drifted further than anyone currently tracking it realises.

Second, does the price shown on your landing page or search results match the price on your final checkout screen, for a typical booking, without a mandatory fee arriving in between. If the answer is "usually, but not always," that gap is exactly what drip-pricing rules are now written to close, and "usually" will not be the standard you are held to.

Third, is every urgency or scarcity signal on your site computed from a real, current number, and could you produce the underlying data if asked. If a designer or a growth engineer configured a countdown timer or a viewer count as a static or randomised display value at any point, find that decision before someone outside the company finds it for you.

Fourth, if a specific traveller disputes a charge from six months ago, can you reconstruct exactly what price and what pre-selected options they saw at the moment they booked. If the honest answer is no, the audit layer is the actual priority, ahead of any pattern you decide to remove first, because it is the layer that determines whether every other fix is provable after the fact.

07

What this looks like in practice

An OTA client came to us after a support ticket spike traced back to a specific pattern: a "price protection" add-on that shipped pre-ticked on the payment step, added automatically unless a traveller scrolled past the fold to find and uncheck it. Attach rate on the add-on was strong, north of forty per cent, and had been treated internally as a product win for two straight quarters. The dispute rate on bookings including that charge, however, ran nearly four times the dispute rate on bookings without it, a number nobody had connected to the add-on until we lined the two data sets up side by side.

We did not remove the product. We changed exactly one thing: the checkbox shipped unticked, with the price and a one-line description visible without scrolling, and the traveller's own tap was what added it. Attach rate dropped to just under twelve per cent in the first month, roughly what you would expect once the default stops doing the selling. Dispute volume on the add-on fell by more than eighty per cent over the same window, and the support queue tied to "why was I charged for this" tickets emptied out almost entirely within six weeks.

The finance team's first reaction was alarm at the attach-rate drop. Ours was to point them at repeat-booking rate over the following two quarters, which rose across the cohort that had booked during the old flow and returned after the change, a signal that the honest version of the flow was recovering trust the old one had been quietly spending down. The add-on still generates revenue. It generates less of it from people who did not mean to buy it, which turns out, measured over a year rather than a month, to be the more profitable version of the same feature — a sequencing lesson in the same spirit as the discipline we describe in agentic booking, where the narrow, honestly-scoped version of a feature consistently outperforms the aggressive one once you measure past the first quarter.

We audit and rebuild booking flows for travel operators who need the checkout to survive a regulator's attention, not just a conversion test. If a pattern in your flow would be hard to defend out loud, that is where we start.

Talk to us

If any of this rhymes with your roadmap, let's talk.

A strategy call is a working session, not a pitch. Bring the problem, leave with the shape of an answer.