How an airline prices the seat next to you
Two people can sit next to each other on the same flight, in the same cabin, having paid two very different amounts for the ticket. The instinct is to assume the airline looked at one of them and decided to charge more. That’s mostly wrong, and the real mechanism is more interesting: a live inventory system reacting to demand, sitting behind a wall of bot detection built to stop other machines from reading it too closely.
Fare buckets, not mind reading
Every seat on a commercial flight belongs to a fare class, usually represented by a single letter code (Y, B, M, H, Q, and so on down the alphabet). Each class has its own price and its own allotment of seats, even though the physical seat is identical. A revenue management system, software like PROS, Sabre AirVision, or Amadeus Revenue Management, decides how many seats to release into each class and when to close a class off.
As the cheap classes sell out, the booking engine stops offering them and starts quoting from the next class up. That’s why a fare can jump from $210 to $340 between two searches an hour apart, with nothing about the customer changing at all. What changed was inventory: enough seats in the low bucket sold, or the system’s forecast of future demand shifted, and it reallocated.
Airlines file these fares through a shared industry system (ATPCO) that competitors and travel agencies all read from. The pricing isn’t a secret formula invented per-passenger; it’s a public-ish fare structure that gets recalculated constantly based on booking pace, historical demand for that route and date, competitor fares, and how far out the flight is.
From buckets to continuous pricing
Traditional fare buckets are a blunt instrument, a handful of discrete price points per flight. Several major carriers have moved toward what the industry calls continuous or dynamic pricing, where an algorithm calculates something closer to a bid price for the next seat sold, rather than picking from a fixed ladder of published fares. The output looks the same to a customer, a price on a screen, but the underlying math updates more granularly and can respond to demand signals in near real time rather than waiting for a bucket to empty.
This is still driven by aggregate demand and route economics, not by the browsing history of the specific person looking at the screen. The revenue management system doesn’t know or care who’s searching. It cares whether this route, this date, this day-of-week pattern is selling faster or slower than the forecast predicted.
The myth that refuses to die
The most persistent belief is that clearing your cookies, using incognito mode, or switching devices will show you a lower fare, because the airline is “punishing” you for searching too many times. Airlines and independent researchers have looked into this repeatedly and the mechanism doesn’t hold up the way people think. Price changes people attribute to being tracked are almost always explained by:
- Real inventory movement between searches, especially on popular routes where seats in the cheapest bucket sell in hours
- Dynamic currency or point-of-sale pricing, where the fare shown depends on the country associated with your IP address or selected market, not your individual identity
- Cache and session artifacts, where a stale search result shows an old price that’s no longer available
- A/B testing of the shopping interface itself, unrelated to the fare shown
Point-of-sale pricing is real and deliberate, airlines do intentionally file different fares for different countries as a market segmentation strategy, the same way software companies charge different prices by region. That’s a policy decision made at the fare-filing level, not a live decision made about one browser fingerprint. It’s also why using a VPN to appear to search from a different country can sometimes surface a different price: you’ve changed which fare table you’re reading from, not tricked a tracking system into giving you a discount.
Why the fare data itself is guarded
Fares are valuable, and airlines don’t want everyone reading them freely. Online travel agencies, fare-alert services, and competing airlines all want live access to pricing, and a lot of that access happens through automated queries rather than a human clicking through a booking flow. Every automated query against a live GDS or booking engine costs the airline money in transaction fees and, more importantly, exposes pricing strategy to competitors who can react to it.
That’s why airline booking sites run some of the more aggressive bot detection stacks on the web. Services like Akamai Bot Manager, HUMAN Security (formerly PerimeterX), and similar platforms sit in front of the booking flow and look at signals well beyond IP address: TLS handshake fingerprints, browser automation flags like navigator.webdriver, canvas and WebGL rendering fingerprints, mouse movement and timing patterns, and consistency between the claimed browser and how it actually behaves. A request that looks like a real Chrome browser from the User-Agent string but skips the JavaScript challenge or renders a canvas fingerprint identical to ten thousand other “different” sessions gets flagged.
Rate limiting adds another layer. A single IP address, or a small pool of them, hammering a fare search endpoint hundreds of times a minute is an obvious signal, so scraping operations that want sustained access lean on rotating residential or mobile proxy pools to spread requests across IPs that look like ordinary home or phone connections. That buys volume, but it doesn’t buy invisibility. Fingerprinting operates independently of IP address, so a detection system can still cluster requests by browser fingerprint, timing pattern, or session behavior even when every request arrives from a different address. Airlines and their bot-detection vendors have gotten good at this correlation precisely because fare scraping is such a persistent, well-funded activity.
The arms race behind fare aggregators
Legitimate fare-comparison sites solve this by negotiating direct data feeds or API access rather than scraping, which is exactly the outcome bot detection is designed to push toward: pay for the data through an approved channel, or don’t get it reliably. Operations that skip that step and scrape anyway are in a constant maintenance cycle, because every fingerprinting signal they evade gets replaced with a new one once the detection vendor notices the pattern. A scraper that solves canvas fingerprinting today runs into a new behavioral check next quarter. None of this is a stable, one-time bypass; it’s ongoing cat and mouse, and airlines have both the fare data and the legal terms of service on their side.
There’s also a simpler reason fare scraping is a losing long-term game even when it technically works: the prices decay in real time. A scraped fare snapshot is stale the moment inventory shifts, which for popular routes can be minutes. Aggregators that scrape instead of using approved feeds are often showing fares that no longer exist by the time a user clicks through, which is its own tell to an airline watching conversion rates from a given traffic source.
What actually explains the seat next to you
The honest answer is unglamorous. The person next to you paid a different price because they booked at a different time, when a different fare bucket was open, possibly through a different point of sale, possibly with different fare rules around changes and refunds baked into a nominally similar-looking ticket. It’s an inventory and yield problem solved by decades-old revenue management theory, running on modern optimization software, sitting behind a booking interface that’s had to become one of the more heavily defended corners of e-commerce simply because so many parties want to read its prices faster than the airline wants them read.
The Hidden Internet covers this kind of machinery regularly, the pricing engines, the fingerprinting layers, the scraping infrastructure and the detection systems built to stop it. If that’s the layer of the internet you’re curious about, there’s more of it here.
Get new guides and videos first — join the Telegram channel.