How Sparkfare actually decides something is a deal

Most sites that call something a "deal" don't say what that actually means. Ours does, because the definition is simple enough to just write down — and simple enough to check against real numbers, which is the whole point.

The core rule

A route is flagged a deal when today's cheapest fare is at least a cluster-specific percentage below that exact route's own trailing 30-day average price. That's it. No external market benchmark, no machine-learning prediction, no comparison against any other route or any other traveler's price. The baseline is entirely this route's own accumulated history — nothing more exotic than that.

The exact calculation

pct_below_avg = (trailing_avg − today's_cheapest_price) / trailing_avg

A route needs history before it can be judged

We require at least 7 distinct days of accumulated price history before a route can be classified as a deal — or ruled out as "priced, not a deal." Below that, it shows as Building history, visibly dimmed on the board, rather than being scored against a statistically unreliable average. A missing day is simply skipped, never backfilled with a guessed price, since a synthetic number would quietly corrupt the average everything else depends on.

The bar moves with how volatile a route actually is

Some routes swing in price far more than others on their own, with nothing unusual happening — a smaller dip on those routes isn't a meaningfully rare event, so we don't badge it as one:

ClusterThreshold
Long-Haul Volatility25% below average
Shoulder-Season Cliffs15% below average
LCC Routing Anomalies15% below average
Visual ClickbaitNo threshold — always shown on its own merits, never badged as a deal

What this deliberately doesn't do

Commissions don't factor into any of this either. A route isn't shown as a deal because it pays us more, and a genuine deal isn't hidden because it pays us less — see our affiliate disclosure for the full picture on how we make money.

See today's board