Skip to content
Home
Services
Solutions
Industries
Work
Company
Start a project WhatsApp us
Hospitality

Metro Hospitality: Data & Reporting.

Metro Hospitality runs extended-stay properties across Arizona on Guesty, its property management system. We rebuilt its reporting from 12 months of reservation data, corrected occupancy and revenue at the source, and automated a daily operations report the team can trust.

Data Analysis · Reporting Automation · Dashboards PythonGuesty APImonday.com APINext.jsNeon Postgres
Metro Hospitality: Data & Reporting
63.4%
Portfolio occupancy
corrected from 58.6%
$57.14
RevPAR
corrected from $52.79, ADR unchanged
~$510k
Double-counted revenue
removed from 12 months of host payout
5,766
Duplicate room-nights removed
4.2% of nights sold
The challenge

Metro's headline figures came straight from its property management system, and two quirks in that data pulled in opposite directions. Some stays carried double-counted booking records in the source system, most often a closed and a confirmed record for the same room and dates, which inflated revenue and nights sold. At the same time, 45 non-bookable parent listings, the room-type records the website sells, sat in the room count as if they were rentable rooms and pulled occupancy down. The daily operations report tracked availability and prices, but had no occupancy, revenue, ADR or RevPAR columns.

What we did
  • Pulled 48,036 reservations covering 12 months from the Guesty API, month by month, alongside all 780 listings, and audited the reporting boards already running in monday.com.
  • Found 3,176 stay-slots holding more than one booking record and collapsed each to a single record, keeping the higher payout so revenue is never understated.
  • Took the 45 parent listings out of the occupancy denominator, from 590 rooms to 545 real rentable rooms, and left them live because they are what the website sells. ADR did not move; occupancy and RevPAR did.
  • Automated a daily operations report into monday.com that runs at 6am Arizona time for the previous day, since a day still in progress only shows bookings so far. It counts revenue once per room-night and matched the general managers' own availability figures within 0–4 rooms on every property.
  • Built a property hub on Next.js and Neon Postgres where each general manager checks their units, with rooms that have gone quiet flagged for review.

want results
like these.