📊 ResortMeter
methodology / how the grades work

How we grade deals

Every site tells you "great deal." Most have no idea what that means statistically. Here's exactly how ResortMeter computes its grades, what the data looks like, and how to interpret it.

The data we collect

Once a day, an automated job queries booking-engine APIs for each tracked hotel and records per-night prices for every check-in date in the next 180 days, for a 7-night stay with 2 adults. We store every observation forever. After a few months, each hotel has thousands of price points across check-in dates and observation dates — enough to compute a meaningful price band.

Computing the grade

For each hotel, on each refresh:

  1. Find the cheapest per-night price across all currently-known forward dates ("best price").
  2. Compute the percentile rank of that best price within the hotel's full history of observations.
  3. Assign a letter grade based on that percentile.
Grade Percentile of best price Plain-English meaning
S ≤ 5% Cheaper than 95% of every price we've ever seen for this hotel.
A 5-15% Strong deal — book without overthinking.
B 15-30% Solid. Not record-low but materially below typical.
C 30-60% Around average. Wait or look elsewhere if budget matters.
D > 60% Currently more expensive than typical. Don't buy on impulse.

Things our grades do NOT do

Freshness

All prices are 0-24 hours stale, depending on when our refresh job last ran. Booking sites' actual checkout prices may differ — that's normal, and every site you've ever searched on works this way. The grade is the stable signal; the exact dollar number floats with availability.

Open by default

The scoring code is open: see src/lib/deal-score.ts in the public GitHub repo. If you spot a bug or want to argue for different thresholds, open an issue.