How does BNBCalc Markets calculate occupancy, ADR and annual revenue?
Last reviewed Oct 7, 2026 by Jeremy Werden
Short answer
In BNBCalc Markets, annual revenue is the market's total short-term rental revenue over the last 12 months divided by its average number of active listings, cleaning fees included, for the selected tier. Occupancy averages 12 monthly occupancy rates with host-blocked nights left out, and the average daily rate averages 12 monthly rates.
The headline numbers on a market page
The main cards at the top of a market's Marketwide Stats tab each describe the last 12 months, and each one is calculated on its own:
| Card | What it measures | How BNBCalc calculates it |
|---|---|---|
| Annual Rev | Average yearly revenue per listing, cleaning fees included | Total market revenue over the last 12 months ÷ the average number of active listings over those months |
| Occupancy rate | The share of bookable nights that were booked | The average of the last 12 monthly occupancy rates, counting only nights the host left open |
| Avg daily rate | The average price per booked night, reflecting what guests actually paid | The average of the last 12 monthly daily rates |
| Gross yield (US markets) | Annual revenue relative to home values | Annual Rev ÷ the average home value for those listings, before any operating or financing costs |
| Lead time | How many days ahead guests book | The average of the last 12 months |
BNBCalc counts active listings, or supply, as the monthly average of listings that were bookable. Because host-blocked nights are left out of occupancy, a market full of owners who use their homes half the year can still show a healthy occupancy rate.
Tiers, bedrooms and time windows
Three selectors above the cards change what they describe. Average performance switches between the Low, Average and High tiers of listings by revenue, where High is the top 33%, Low the bottom 33% and Average the middle third, or All for every listing. Keep in mind that the cards open on the Average tier, so they describe a typical listing rather than the whole market until you pick All.
The other two selectors switch between the Last 12 months and the Last 2 years, and between all bedroom counts and a single one, from studios up to 4+ bedrooms. Without a Markets plan, the cards stay on the Average tier, the last 12 months and all bedrooms.
Why the daily rate × occupancy × 365 won't match annual revenue
Rebuilding annual revenue from the other two cards is tempting, but the result won't match. The cards are calculated separately, over different sets of nights and listings, so multiplying them together doesn't reproduce the Annual Rev card. Use the card that answers your question rather than deriving one from the others. (In a property analysis it's different: the daily rate there is set so that rate × occupancy × 365 equals the revenue estimate.)
The numbers for each listing
The Listings tab and each listing's detail panel use listing-level figures:
| Figure | What it means |
|---|---|
| Actual revenue | What the listing earned from bookings over the past 12 months, cleaning included |
| Annual revenue potential | What it could earn if bookable all 365 days: actual revenue × (occupancy of open nights ÷ occupancy of all nights) |
| Occupancy of available nights | Occupancy with host-blocked nights left out |
| Gross yield (US) | Revenue ÷ the listing's estimated property value |
| Performance | How its revenue compares with listings of the same bedroom count in the market (homes with 4 or more bedrooms are compared with the whole market) |
That potential figure is simpler than the full-year revenue BNBCalc uses for comps in a property analysis, which also pulls each listing's occupancy toward nearby homes, so the same listing can show a different potential in each place.
Make sure to read gross yield in context too, because the detail panel divides actual revenue by the property value while the map's gross-yield colors and filter use potential revenue. The same listing can show two different yields for that reason.
The Annual rev figure at the top of the Listings tab is different again: it's the average potential revenue of the listings in view on the map. It moves as you pan and filter, and it isn't the same number as the market's Annual Rev card.
Amenities, operators and the other breakdowns
Further down the page, the Amenity revenue impact section estimates how much more listings with each amenity earn, shown as a percentage and in dollars: the dollar figure is the market's revenue per listing × that percentage. The Professional host share is the share of listings run by hosts with two or more listings in the market, and on the Operators tab an operator's revenue is the total actual revenue of its listings.
Reading the change lines
Each card shows a change line, such as "↑10% from prior 12 mo". The stored market history mixes months measured under different definitions, though, and the change lines compare periods without adjusting for that, so they aren't reliable as growth rates. The Last 2 years view always reaches back across that change, so be especially careful with its "vs. 2 years ago" figures.
The market summary and FAQ at the bottom of the page work differently, since AI writes them each month from the market's data. They're a quick read, but the answer about whether short-term rentals are allowed isn't checked against local law, so confirm the rules with the city or county before you rely on it.
Frequently asked questions
Does BNBCalc Markets' annual revenue include cleaning fees?
Yes. Annual revenue includes the cleaning fees guests paid, and the average daily rate reflects what guests actually paid per booked night.
Why is the annual revenue on the Listings tab different from the market's Annual Rev?
The Annual rev figure at the top of the Listings tab is the average potential revenue of the listings in view on the map, meaning what they could earn if bookable all year. The Annual Rev card is total market revenue divided by the average number of active listings, so the two measure different things.
Terms in this article
Related articles
Data & methodology
Where does BNBCalc's data come from?
BNBCalc's short-term rental numbers come from listing data on Airbnb, Vrbo and Booking.com. BNBCalc tracks each listing's details, nightly rates, booked and blocked nights, and past 12 months of earnings as BNBCalc market data. Home values come from Zillow, US for-sale market data from Redfin, and long-term rent estimates from Zillow and RentRange.
Data & methodology
How often is BNBCalc's data updated?
BNBCalc refreshes its market data once a month, adding the most recently completed month, so the newest month on a market page is usually last month or the one before. A property analysis keeps the comps it was created with: they don't refresh with new data, and only a bedroom-count change fetches new ones.
BNBCalc Markets
How do I read a BNBCalc market page?
A BNBCalc market page has three tabs. Marketwide Stats shows the market's last-12-months revenue, occupancy, daily rate and, in the US, gross yield, with breakdowns by bedroom, day of week and amenity. Listings maps the market's active listings with their own numbers, and Operators lists the hosts running two or more listings there.
Data & methodology
What areas and countries does BNBCalc cover?
BNBCalc Markets covers 2,369 short-term rental markets in 157 countries, and the Calculator can analyze an address anywhere BNBCalc finds enough comparable Airbnb, Vrbo or Booking.com listings nearby, in the US or abroad. A handful of features, including gross yield, home values and prefilled property details, need US data, so they only work for US properties.
Data & methodology
BNBCalc data and methodology updates
A dated log of changes to where BNBCalc's data comes from and how its numbers are calculated, newest first. The latest, from October 2026: new property analyses take comps from BNBCalc's own nearby-listing data, open at the 70th percentile of those comps, and start with 8% cleaning and a 15.5% host platform fee.
Was this helpful?