Ashish · field notes
All notes
← back to the system map
LiveRevenue & Distribution2 min read

OTA ↔ PMS reconciler

Every morning an agent proves last night's OTA bookings landed in the PMS correctly, before I have had coffee.

Booking.com and Expedia reservations flow into Mews automatically, but 'automatically' fails quietly. A missed charge, a cancel that did not sync, a wrong fee. Across the portfolio and two OTAs, that is a lot of surface I cannot eyeball nightly.

How it works

A read-only Python job on the mini pulls last night's arrivals from each OTA extranet and from Mews (API where enabled), normalizes them, and reconciles charges, cancels, no-shows, and fees. It flags HIGH and MEDIUM discrepancies to me over Telegram and email, and publishes a recon board behind Cloudflare Access.

Live, firing around 8:30am. Most of the engineering went into session durability. OTA extranets put a human-verification wall at login that automation cannot pass, so a seeded session that periodically needs a manual reseed is just reality. It degrades safely, one alert and no cascade, when a session lapses.

A reconciler is exactly the work a controller's clerk used to do by hand. Now it is a nightly agent that only pings me on a real exception. Same coverage, less of my attention, fewer exceptions over time.

Got an idea? Tell me →More field notes