Every tool that reports occupancy, ADR, or RevPAR is making a series of small definitional choices — what counts as an "available" night, whether a cancelled booking counts, whether a fee belongs in "revenue." Those choices are usually invisible until two dashboards disagree on the same portfolio. Here's exactly what BNBinsights does, so you know before you compare it to anything else.
Occupancy rate
We count a night as booked only if it belongs to a confirmed reservation — cancelled bookings, inquiries that never converted, and pending holds are excluded from the numerator. We count a night as available if the unit was live and bookable that night; nights you've blocked for your own stay or for maintenance are excluded from the denominator, since the unit genuinely had no chance to earn revenue then.
This second choice is the one that most often causes a mismatch with other reports. If a tool counts every calendar night as "available" regardless of owner blocks, its occupancy percentage will be lower than ours for the identical underlying calendar — not because the bookings differ, but because the denominator does.
ADR (Average Daily Rate)
We derive ADR from the actual per-reservation financials your PMS holds — the realized nightly room revenue for each booking, not the listed base price. This matters because listed prices and realized prices routinely diverge: length-of-stay discounts, weekly/monthly discounts, coupon codes, and last-minute price drops all lower what a guest actually pays below the sticker rate. A tool that estimates ADR from the base listing price rather than the realized reservation total will overstate it, sometimes significantly during discount-heavy periods like Dubai's summer low season.
We also exclude non-room revenue — cleaning fees, security deposits, and other pass-through charges — from the ADR calculation. Those are real revenue lines, but bundling them into a "nightly rate" makes ADR incomparable across bookings of different lengths and inflates it relative to what a comp-set analysis actually needs.
RevPAR (Revenue Per Available Room/Night)
Equivalently, RevPAR is total room revenue divided by total available nights — the same number either way you calculate it, since it's the single metric that captures both how much you charge and how often you sell. It's the metric we'd point to first if a portfolio only had room for one: an operator improving ADR while occupancy collapses, or vice versa, needs RevPAR to see the net effect. See our full RevPAR explainer for worked examples.
Revenue
Revenue in BNBinsights is the guest-paid total minus refundable damage deposits, allocated across the stay's nights on an accrual basis — so a 5-night December booking that spans two calendar months has its revenue split correctly across both months' reports, rather than landing entirely on the check-in date.
Why this still won't match every other number you see
Even with a consistent internal methodology, expect gaps against two other kinds of numbers:
- Your PMS's own built-in report. Most PMS dashboards weren't built for portfolio-level analytics — see PMS analytics vs portfolio analytics for the specific gaps we see most often.
- Public market trackers. Third-party citywide estimates (the kind used in "average Dubai Airbnb occupancy" articles) vary enormously depending on their listing sample, their own available-nights definition, and how aggressively they filter out inactive or low-quality listings. Our own Abu Dhabi vs Dubai comparison cites two trackers whose Dubai occupancy estimates differ by roughly 30 percentage points for the same city and period — neither is "wrong," they're measuring different samples with different rules. Treat any single public city average as directional context, not a benchmark for your specific units.
Backfill and ongoing sync
When you connect a PMS, BNBinsights backfills up to 25 months of historical reservation data using these same definitions applied retroactively — so your trend view isn't a mix of old estimates and new methodology. After the initial backfill, data stays current automatically without re-syncing.
Common questions
Related reading
See these definitions applied to your own data
BNBinsights connects to your PMS and calculates occupancy, ADR, and RevPAR consistently across your entire portfolio — automatically, with a 25-month historical backfill.
Join the waitlist