PMS billing reconciliation
I reconciled every property-management-system invoice across the portfolio and handed myself a defensible list of things to claw back.
The property-management system bills every property monthly, and each invoice bundles platform fees with card-processing (interchange) costs. Over a couple of years across the whole portfolio that is hundreds of invoices, far too many to eyeball, and exactly where small recurring overcharges hide.
How it works
I export the full invoice set from Mews as ZIPs and parse them in Python, splitting platform charges from card-processing commission, one-time onboarding, and any credit notes. The output is a live dashboard on Cloudflare showing what was billed, how it breaks down, and where the anomalies are.
- One property billed at the wrong room count on a prepaid annual line. A clean error, and a clean recovery ask.
- A recurring support charge for a service that is not being used, framed as "remove it," not "you billed me wrong."
- Several suspected errors that, once verified, turned out to be legitimate true-ups, so I dropped them rather than burn credibility chasing them.
The point was not to find something to complain about. It was to know, invoice by invoice, exactly which asks would survive scrutiny.
The recovery asks went to the vendor rep as a draft, and the dashboard stays live for the next billing cycle. Everything already correct is documented too, so I do not re-litigate it next month.
No controller was ever going to reconcile hundreds of vendor invoices line by line every month. The agent does, which turns "the bill looks about right" into a short, defensible list. That is the exception rate made visible.