Vendor-neutral PMS data layer
I'm pulling the PMS into my own local database, so the agents ride on a spine I own instead of a vendor's marketplace.
The PMS vendor keeps acquiring the tools next to it, the revenue manager and the housekeeping app included. Standard connectors also lose line-item granularity. So I want to own the data underneath, vendor-neutral, so the agents, dashboards, and audits don't all ride on one vendor's marketplace.
How it works
A Python service pulls the Mews Connector API into one local SQLite database in WAL mode (one writer, many readers, small data), nightly plus intraday. Every fact table carries an enterprise id, so cross-property is a GROUP BY and never a UNION. The vendor GUID is the primary key, and a raw JSON column is my schema-evolution insurance. Upserts are idempotent and keep-latest, and secrets come from 1Password references.
- It's read-only downstream. Five later workstreams (OTA reconciliation, rate transparency, a PMS-to-QuickBooks finance pipe, attribution, and housekeeping performance) consume this DB, they don't change it.
- Cursor pagination, 429 backoff, and idempotent re-runs are all confirmed.
- Guest PII lives here, so the DB is gitignored and never committed.
It's building. The scaffold already ingests all eleven resource types end-to-end against the vendor demo environment. It's gated on partner onboarding and per-property access tokens before it goes live on real data.
Owning the data spine is the difference between renting an operating layer and owning one.