Guide

Travel agency markup strategies: models, fees and testing that work

Markup is the one lever every agency controls completely, yet most set it once and never touch it again. This guide walks through the markup models that work in practice, when a service fee beats a markup, how display pricing psychology affects conversion, and how to test pricing without tripping over advertising compliance.

Short answer: most agencies do best with a tiered model: a percentage markup with a flat floor and a cap, varied by product, route type and channel, plus a separately disclosed service fee for work that has a cost regardless of ticket price. Flat markups underprice long-haul and overprice domestic; pure percentages do the opposite. Whatever the model, the price shown in an ad or metasearch listing must be a price the customer can actually pay at checkout, or compliance problems follow.

Advertisement

What markup has to cover

Airline commission has been close to zero in most markets for years, so an online agency's flight margin is whatever it adds itself: markup on the net or published fare, service fees, and any supplier incentives that arrive later. Out of that margin come payment costs, GDS or API costs, marketing, servicing, and the losses nobody budgets for: chargebacks, debit memos and refund handling. A markup strategy that only thinks about the sale price and ignores the cost side produces routes that sell brilliantly at a loss. Before setting numbers, know your fully loaded cost per booking by product; the rest of this guide assumes you do.

The four markup models

Markup models compared
ModelHow it worksWhere it fits, and where it fails
Flat amountAdd a fixed amount per ticket or per passenger.Predictable and easy to explain. Fine for narrow fare ranges; on cheap domestic fares it can be a large share of price and kill conversion, on long-haul it leaves margin on the table.
PercentageAdd a percentage of the base fare or total.Scales with ticket value automatically. Fails at the extremes: pennies of margin on sale fares, and uncompetitive totals on premium cabins where a percentage becomes a very visible number.
Tiered / hybridPercentage with a minimum floor and a maximum cap, with different tiers per fare band.The practical default for online agencies. The floor protects cheap fares, the cap keeps expensive ones competitive. Needs a rules engine rather than one number in a config file.
DynamicRules adjust markup by route, demand signal, competition or customer segment.The upside is real but so is the complexity; it needs clean data and constant review. Start tiered, add dynamic rules only where you can measure them.

Tiering: by product, route, channel and agent

One markup for everything is a strategy of averages, and averages leak money. The dimensions that earn their keep:

  • Product. Flights, hotels and ancillaries have completely different cost structures and price sensitivity; hotels typically carry higher markups than flights.
  • Route type. Domestic short-haul is price-transparent and comparison-shopped; obscure long-haul city pairs tolerate more margin because comparison is harder.
  • Supplier. Net fares from consolidators leave room a published fare does not; mark up from your true net, not from a notional published price.
  • Channel. A metasearch click arrives having already compared prices; a direct or repeat customer has not. Many agencies run thinner markups on meta traffic and recover margin on ancillaries.
  • Agent tier (B2B). In a B2B portal, markup and commission-share vary by sub-agent tier and volume, set per agent group rather than globally.

This last dimension is the heart of B2B travel portal pricing: the platform owner sets a base markup, distributes fares to sub-agents, and each sub-agent adds their own margin within limits you define.

Advertisement

Service fees vs markups

A markup is embedded in the fare the customer sees; a service fee is a separate, visible line. They behave differently in every way that matters. A markup is invisible and comparison-shopped as part of the price; a fee is visible and judged as a fee. On refunds, an embedded markup usually goes back with the fare unless your terms say otherwise, while a properly disclosed non-refundable service fee can survive a cancellation. Invoicing and tax treatment can also differ between the two in some jurisdictions, so have an accountant confirm how each is treated where you operate.

The working rule many agencies land on: use markup for the commodity part of the price, and a fee for identifiable work: ticketing service, changes, after-hours support. Whatever you choose, disclose fees before the customer commits. Advertising platforms treat undisclosed or late-revealed fees as a policy violation, and it is the single most common reason travel advertisers lose accounts; our guide to Google Ads landing page compliance covers the details.

Display pricing psychology

How a price is shown moves conversion as much as what the price is. The effects most relevant to travel results pages: anchoring, where the first price seen frames every later one, which is why sort order is a pricing decision; charm endings, where prices just under a round number read as cheaper, an effect that matters more on price-led economy fares than on premium products, where round numbers signal quality; fee salience, where a low headline price plus a fee revealed late converts in the short term and then destroys trust, refund workload and repeat rate; and total-price clarity, where showing per-passenger prices for a family search creates a checkout shock that shows up as abandonment.

How a displayed fare is built: supplier net fare, then markup, then service fee, equals the total the customer must be able to pay at checkout Net / published fare + Markuptiered by rules + Service feedisclosed, visible Displayed total = what checkout must actually charge
Every layer you add must survive the accuracy check between the advertised price and the checkout price.

Testing markups without breaking compliance

Markup levels should be tested like landing pages: change one variable, on one segment, for long enough to see booking behaviour, then compare margin per visitor rather than conversion rate alone, because a higher markup can lose bookings and still win on total margin. The compliance constraints on how you test are real, though, and they are the part agencies get wrong:

  • The price a user saw in an ad, a feed or a metasearch listing must match what checkout charges. Test by segmenting traffic sources or time windows, not by quoting one price upstream and another at payment.
  • Metasearch channels run automated price-accuracy checks on partners, and repeated mismatches lead to warnings and delisting. If you test markups on meta traffic, the fed price and the deep-linked price must move together.
  • Regulators in several markets, including the US DOT full-fare advertising rule for air fares, require advertised fares to include mandatory charges. Keep every tested price a full price.
  • Do not test fees by hiding them later in the funnel; that is drip pricing, which platforms and consumer regulators both treat as deceptive.
  • Keep a log of what was tested, where and when, so a price complaint months later can be answered.

Where the markup engine lives

Strategy only becomes revenue if the platform can execute it: rules by product, supplier, route, fare band, channel and agent tier; floors and caps; scheduled changes; and reporting that shows margin per rule. That engine is a standard part of the booking platforms we build, from white-label flight booking sites to full travel agency software, and in B2B deployments it is what lets a wholesaler run hundreds of sub-agents with different pricing on one system. If your current platform stores markup as a single global number, that number is not a strategy; it is a guess with good uptime.

This article is general information about travel technology and online marketing. It is not legal, tax or financial advice, and advertising platform policies change often. Check the current policy documents and take professional advice for your own situation.

Advertisement

Frequently asked questions

What is a typical travel agency markup on flights?

There is no industry-standard number: it varies by market, route, channel and supplier deal, and publishing a typical figure would mislead more than it helps. The sound approach is to price from your own fully loaded cost per booking and competitive position, then test. Flat-plus-cap tiered models are the most common structure among online agencies.

Is it better to charge a service fee or a markup?

They solve different problems. Markup is invisible and works for price-competitive commodity fares; a service fee is visible, defensible as payment for work, and can be made non-refundable if disclosed properly. Many agencies use both: a modest markup plus a clearly stated fee for ticketing and changes.

Can I show different prices to different customers?

Segmented pricing by channel or agent tier is normal, especially in B2B. What causes trouble is mismatch: showing one price in an ad, feed or metasearch listing and charging another at checkout, or revealing mandatory fees late. Keep every displayed price payable as displayed for the traffic that sees it.

How do B2B portal markups work with sub-agents?

The platform owner sets a base markup on supplier fares, then each sub-agent group gets its own additional markup or commission share, configured per tier. The sub-agent sees their net cost and controls their own selling price within limits the owner defines, and settlement reports reconcile margins on both sides.

Will raising my markup kill conversion?

Sometimes, and sometimes it raises total margin even while conversion dips, which is why the metric to watch is margin per visitor, not conversion rate. Test one change at a time on one segment, keep advertised prices accurate, and let the numbers rather than nerves decide.

WhatsApp us