Back to projects

Design and implementation · 2022 — present

PMS ↔ Channel Manager reconciliation

When the hotel's inventory and the OTA's stop matching

View the repository

Context

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