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.

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.
- 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.