Methodology
How we measure hotel fees.
Every resort fee our city pages, guides and calculator state for a named hotel was read off that hotel’s own website on a recorded date, and links to the page it came from. Search results are priced from live rates instead, and the channel finding below is about those. This is how both are measured, what the numbers can support, and what they cannot.
What the site sells, and why it measures
NJSTravel is a hotel booking site. We sell rooms in US cities and charge a fee for doing it. Every result is ranked by the total you would actually pay: the room, the taxes, and any charge the hotel collects at the desk. That total is the product. A list ranked by a headline rate that leaves the resort fee out is ranked by the wrong number.
The ranking is only as honest as the fee figures behind it, and the figures that arrive with a room rate are not reliable. The same hotel is sold through many rate plans; some itemise its resort fee and some leave it out, and the hotel does not stop charging the fee because one channel forgot to mention it. So we measure in two places. In search, every rate plan a hotel is sold through is compared, and a fee the others itemise is counted on the one that left it out. For the pages that name a hotel and its fee, we read what the hotel says about its own fee, on its own site, and record it with the link and the date. The dataset below is that record.
The dataset
Which hotels
Each city’s list is the hotels a search of that city on this site priced when the list was drawn up, between 16 September 2026 and 20 September 2026. Those hotels come from the wholesale rate feed we buy from, which tells us which hotels sell in a city. Nothing the feed says about a fee is published: we buy that data to sell rooms, not to publish it. Every figure was read from the hotel’s own website or its brand’s fee page.
What a row is
One hotel, and one of three findings about it. Stated: the hotel’s page names a mandatory fee, and the row carries the amount per night before tax, what the hotel calls it, what it says the fee covers, whether the page says tax is added on top of the fee (left blank where it does not say), the URL and the date it was read. States none: the hotel’s page says there is no resort or destination fee. That row is a zero, because zero is what the hotel said, and it links to the page that says it. Not confirmed: no page could be read, or the page did not say. That row has no figure. It is not a zero, it is never shown as one, and it is never left off the list. A hotel that has said nothing has not said no.
A fee is good for the day it was read. Hotels change them, and a row is wrong from that day until it is read again. The date on the row is the date to trust, which is why every row has one and no row is shown without it.
Where it stands
1774 hotels across 36 cities, read through 20 September 2026. Per-stay figures on the city pages are for a 3-night stay, before any tax the hotel adds on top.
- Las Vegas$49.98 median a night
40 listed · 28 state a fee · 1 state none · 11 not confirmed · checked through 2026-09-17
- New York$37.00 median a night
39 listed · 15 state a fee · 3 state none · 21 not confirmed · checked through 2026-09-17
- Orlando$30.00 median a night
40 listed · 15 state a fee · 6 state none · 19 not confirmed · checked through 2026-09-18
- Honolulu$45.00 median a night
40 listed · 31 state a fee · 3 state none · 6 not confirmed · checked through 2026-09-18
- Miami$38.00 median a night
39 listed · 9 state a fee · 0 state none · 30 not confirmed · checked through 2026-09-16
- Los Angeles$40.00 median a night
60 listed · 23 state a fee · 1 state none · 36 not confirmed · checked through 2026-09-17
- New Orleans$26.00 median a night
59 listed · 14 state a fee · 0 state none · 45 not confirmed · checked through 2026-09-17
- Nashville$30.00 median a night
60 listed · 15 state a fee · 0 state none · 45 not confirmed · checked through 2026-09-17
- San Francisco$38.00 median a night
60 listed · 19 state a fee · 4 state none · 37 not confirmed · checked through 2026-09-17
- Dallas$30.00 median a night
60 listed · 9 state a fee · 0 state none · 51 not confirmed · checked through 2026-09-17
- Boston$35.00 median a night
60 listed · 20 state a fee · 3 state none · 37 not confirmed · checked through 2026-09-18
- Seattle$29.00 median a night
60 listed · 18 state a fee · 2 state none · 40 not confirmed · checked through 2026-09-18
- Atlanta$35.00 median a night
60 listed · 2 state a fee · 0 state none · 58 not confirmed · checked through 2026-09-18
- Chicago$25.00 median a night
60 listed · 17 state a fee · 0 state none · 43 not confirmed · checked through 2026-09-18
- Denver$30.00 median a night
60 listed · 12 state a fee · 1 state none · 47 not confirmed · checked through 2026-09-18
- Phoenix$35.00 median a night
60 listed · 9 state a fee · 0 state none · 51 not confirmed · checked through 2026-09-18
- Anaheim$21.00 median a night
49 listed · 2 state a fee · 3 state none · 44 not confirmed · checked through 2026-09-18
- San Diego$37.50 median a night
58 listed · 16 state a fee · 5 state none · 37 not confirmed · checked through 2026-09-18
- Palm Springs$44.00 median a night
59 listed · 17 state a fee · 2 state none · 40 not confirmed · checked through 2026-09-18
- Fort Lauderdale$40.00 median a night
56 listed · 13 state a fee · 2 state none · 41 not confirmed · checked through 2026-09-18
- Key West$45.00 median a night
58 listed · 23 state a fee · 5 state none · 30 not confirmed · checked through 2026-09-18
- Destin$47.00 median a night
22 listed · 2 state a fee · 0 state none · 20 not confirmed · checked through 2026-09-18
- Sedona$30.00 median a night
46 listed · 8 state a fee · 0 state none · 38 not confirmed · checked through 2026-09-18
- Scottsdale$35.00 median a night
42 listed · 12 state a fee · 1 state none · 29 not confirmed · checked through 2026-09-18
- Savannah$32.00 median a night
40 listed · 5 state a fee · 1 state none · 34 not confirmed · checked through 2026-09-19
- Myrtle Beach$20.00 median a night
52 listed · 13 state a fee · 2 state none · 37 not confirmed · checked through 2026-09-18
- Miramar Beach$40.00 median a night
20 listed · 3 state a fee · 0 state none · 17 not confirmed · checked through 2026-09-18
- Reno$41.48 median a night
41 listed · 4 state a fee · 1 state none · 36 not confirmed · checked through 2026-09-19
- South Lake Tahoe$25.50 median a night
60 listed · 6 state a fee · 4 state none · 50 not confirmed · checked through 2026-09-19
- Atlantic City$30.00 median a night
34 listed · 7 state a fee · 0 state none · 27 not confirmed · checked through 2026-09-19
- Charleston$33.50 median a night
32 listed · 6 state a fee · 1 state none · 25 not confirmed · checked through 2026-09-19
- Austin$30.00 median a night
40 listed · 9 state a fee · 0 state none · 31 not confirmed · checked through 2026-09-19
- San Antonio$30.00 median a night
60 listed · 5 state a fee · 0 state none · 55 not confirmed · checked through 2026-09-19
- Hilton Head Island$35.00 median a night
38 listed · 5 state a fee · 7 state none · 26 not confirmed · checked through 2026-09-20
- Washington$31.00 median a night
58 listed · 16 state a fee · 0 state none · 42 not confirmed · checked through 2026-09-20
- Santa Barbara$40.00 median a night
52 listed · 3 state a fee · 5 state none · 44 not confirmed · checked through 2026-09-20
The median is over hotels that state a fee; hotels we could not confirm are left out of it rather than counted as zero, which is why their count sits beside it. A row of dashes is a city not read yet; a dash in the median alone means no hotel read there states a fee. On a phone the same figures are written out a city at a time.
Download and reuse
The whole dataset is one file: /data/resort-fees.csv. One row per hotel, with the columns city, hotel, confidence, fee per night in dollars, fee label, whether tax is added on top, what it covers in the hotel’s own words, source URL and the date checked. The fee column is empty for a hotel we could not confirm; it is never a zero.
It is licensed under Creative Commons Attribution 4.0. Use it, republish it, build on it; credit NJSTravel and link this page. Cite it as NJSTravel resort-fee dataset, 2026-09-20; the date is the day the most recent row was read. A row you quote carries its own date, and that is the one to print beside the figure.
The channel finding
On 16 September 2026 we priced every hotel our Las Vegas search returns, 40 of them, for a 3-night stay, and read the fee itemisation on every rate plan returned for each hotel. The question was not whether a hotel charges a resort fee but whether every rate plan for that hotel says so.
Had a fee on some rate plan
36 of 40
Hotels where at least one rate plan itemised a fee the hotel collects at the desk.
Also had a plan that omitted it
32 of 36
Of those, hotels where at least one other rate plan for the same hotel left it out entirely.
Median fee omitted
$119.99
Per 3-night stay. At each hotel with a split, the smallest fee its other rate plans reported; this is the median of those.
Measured 16 September 2026, against live rates, not a test environment. Rates move between runs, so the figures belong to the run and the date is part of the figure. Recorded as: scripts/probe-fees.ts against production rates; 40 hotels; stay 2026-10-27 to 2026-10-30; 2 adults.
What it means: a rate plan that omits the fee has not escaped it. The hotel charges the resort fee at the desk whichever channel sold the room. So a comparison that trusts each rate plan’s own itemisation understates the total of the plan that left the fee out by exactly the fee, and a cheapest-first sort favours that plan by the same amount. That is not a rounding error. It is the resort-fee omission, already present in the wholesale data before any booking site shows a price.
What we changed: our ranking now treats a fee that a hotel’s other rate plans itemise as applying to the plans that leave it out, marked as inferred rather than stated, so you can see which is which. Before the change, 4 of the 40 result cards for that search carried the fee. After it, 33 did. The hotels charge the same fees either way; what changed is that a rate plan’s silence about the fee is no longer read as the fee not existing.
The same rule reaches one step further. Where a hotel’s own website states its fee and a rate counts less than half of it for the stay, the ranking adds the difference as an estimate, again marked as inferred and named as coming from the hotel’s own site. Half, because channels genuinely disagree by the tax on a fee; below half, the rate has left the fee out. We never charge an inferred fee. The property collects it.
We do not name the supplier; the finding is about the market’s data, not a vendor.
What this means when you compare two sites: why the same hotel room shows two prices on two sites.
What we will not claim
- No fee for a hotel whose site we could not read. That hotel is listed as not confirmed on the hotel’s site. It is never shown as charging nothing, and it is never quietly dropped so the list looks complete.
- No number without a date. A fee figure with no date is a figure with no way to be found when it goes stale. Every row in the dataset carries the date it was read, and every count and measurement on this page is printed beside its date.
- No figure from a test environment. Suppliers offer sandboxes with invented rates for building against. Nothing measured in one is in the dataset or on this page; the channel finding above was taken against live rates and says so.
- No “hidden” for a tax. A government tax is not in the headline rate, and the federal rule on fee disclosure (16 CFR Part 464, in force since 12 May 2025) lets a seller leave government charges out of the total it displays. So the dataset and the fee pages built on it say a tax is not in the headline rate. “Hidden” is reserved for a fee the hotel itself sets and keeps out of the rate it advertises.
Corrections
If a fee on this site is wrong, because the hotel has changed it or because we misread the page, tell us. Email [email protected] with the hotel’s name and a link to the page that states the current figure.
We re-read the source. A corrected row carries a new checked-on date beside the new figure, so anybody who cited the old row can see that it has been read again since, and on what day. The download is built from the same rows as the page, so the two agree, except that a copy of the file may be served from a cache for up to an hour.