Ranking Methodology

How Sparkfare Works

We judge flight deals strictly against historical observation data for each route, without artificial urgency, hidden averages, or algorithmic guesswork.

Every percentage and verdict on Sparkfare rests on a defined, defensible standard. Below is the exact math, observation thresholds, and guardrails we apply to every route.

1. The 30-Day Median Baseline

To determine if a flight price is unusually low, you need an honest baseline. Sparkfare tracks the lowest cached round-trip fare found each day for every origin–destination pair.

  • Median, not average: We use the mathematical median of the daily lowest fares over the preceding 30 calendar days. Unlike an arithmetic mean, a median is not distorted by rare holiday price spikes or temporary pricing glitches.
  • Route-specific baselines: A JFK-to-Lisbon median and an ORD-to-Lisbon median are completely separate. We never pool routes, regions, or airports together.
  • Zero self-contamination: Today's price is evaluated against history as it stood before today. Today's quote is only appended to the history record after classification, preventing today's number from shifting its own goalpost.

2. Deal Floor & Statistical Volatility

A route only earns a Deal badge when today's fare satisfies two strict criteria:

mad = median(|price - median| for price in 30_day_history) threshold = median - 2 * mad is_deal = today_cheapest_price <= threshold AND today_cheapest_price <= (0.85 * median)

15% Deal Floor (D-021)

A price must be at least 15% below its trailing 30-day median to be considered a deal. Anything less is classified as Typical.

10-Day Minimum History

We require at least 10 distinct observation days across a minimum 14-day span. Routes below this threshold show "Building history" and are never scored blind.

3. Freshness & Staleness Guardrails

Fares are the lowest round-trip price found in search data we retrieved. They are not quotes, and the fare itself can be older than the retrieval time. The price on Aviasales can be higher or lower. The deal comparison uses our own 30-day history, not the Aviasales price. Airfares also move quickly, so we apply these rules to the data we hold:

  • 48-hour retrieval cutoff: A price we retrieved more than 48 hours ago is not treated as a current deal.
  • Departure buffer: Any flight departing within 48 hours is treated as gone and hidden from our board.
  • 3-day lapse rule: If we have not retrieved a price for a route in more than 3 calendar days, it is marked as "Last seen" and never carries a deal badge.

4. What the Price Is Not

Sparkfare is built around transparency. Here is what our prices and tools deliberately do not do:

  • No price predictions: We never predict future prices or tell you what day to buy. We state only what our observation history recorded.
  • No personalized pricing: Baselines are the daily lowest cached fares for that route, the same for every visitor. Sparkfare does not change a fare based on who you are or what you searched.
  • Not a live ticket quote: Fares represent cached low quotes discovered during scheduled runs. Final prices and seat availability are shown by the booking site.
Consumer Notice: Sparkfare does not sell or book travel. We show fares from our flight-data partner and send you, through a short redirect, to a third-party booking site to complete your purchase. Sparkfare may earn a commission if you buy there.

Frequently Asked Questions

How does Sparkfare determine whether a flight is a deal?
We compare the lowest round-trip fare in our latest search data against that exact route's trailing 30-day median price from our observation history. To qualify as a deal, a fare must sit at least 15% below its 30-day median and at least two median absolute deviations below it. We also require at least 10 distinct observation days across a minimum 14-day history span before scoring any route.
Does Sparkfare predict future airfare prices?
No. Sparkfare does not predict future prices, state ideal purchase dates, or claim fares will rise or fall. Every calculation is derived strictly from the daily lowest fares in the search data we retrieved for that specific origin and destination pair.
How fresh are the prices shown on Sparkfare?
On the website, fares are judged against a 48-hour freshness window, counted from when Sparkfare's scheduled fetch retrieved the price. Daily emails use a 72-hour window. If a price was last seen more than 3 days ago, it is marked as lapsed and cannot carry a deal badge. Outbound flights departing within 48 hours are automatically hidden.
Are the prices on Sparkfare quotes?
Fares are the lowest round-trip price found in search data we retrieved. They are not quotes, and the fare itself can be older than the retrieval time. The price on Aviasales can be higher or lower. The deal comparison uses our own 30-day history, not the Aviasales price.
Can I buy tickets directly on Sparkfare?
No. Sparkfare does not sell or book travel. A fare link takes you, through a short Sparkfare redirect, to a third-party booking site, which handles booking and payment and shows the current price. Sparkfare may earn a commission if you buy there.

Explore Sparkfare Tools

See our methodology in action across our research and fare analysis tools.