Design and implementation · 2022 — present
PMS ↔ Channel Manager reconciliation
When the hotel's inventory and the OTA's stop matching
View the repositoryContext
Hotels sell through their own PMS and, at the same time, through Booking, Expedia and other OTAs via a channel manager. Both systems should show the same inventory and the same rates.
The problem
They did not. Rooms sold twice, rates out of sync, and nobody knew which of the two systems was right. The review was manual and always late: by the time the problem surfaced, the guest was already at the door.
What I did
- A data gateway that queries both systems — including the legacy SOAP/XML side — and normalises their formats into a common structure
- A reconciliation engine that compares inventory and rates and produces a discrepancy report
- An endpoint that logs every reconciliation run with its real timestamp, so the trend can be audited over time rather than just today's state
Outcome
Manual inventory and rate review stopped being done by hand. Still to be published: percentage of discrepancies detected and manual review hours saved per month.
Stack
Node.js Express PostgreSQL SOAP/XML REST