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

Legacy PMS data archive

I turned years of clunky legacy exports into a queryable archive so year-over-year did not start at zero.

Before the move to a modern PMS, years of history lived in per-property 'forecasting' spreadsheet exports, one file per year, unqueryable. Without them, any year-over-year comparison had no prior year to stand on.

How it works

A Python ingester walks the raw .xls files for eight properties, parses each one's daily rows (which, despite the 'forecasting' name, carry realized actuals for past dates), and upserts them into a SQLite database. A query CLI answers property, date, range, and year-to-date questions and does day-of-week-aligned comparisons across years.

Live. It is the deliberately boring, standard-library-only companion to the modern data layer, and it feeds the performance dashboard's pre-migration history.

History is leverage. It is what makes 'up or down versus last year' a real answer instead of a shrug. An owner does not have time to hand-parse a decade of exports. An ingest script does it once and answers forever.

Got an idea? Tell me →More field notes