Last-minute rate-check engine
I split the same-day pricing decision from the clicking, so a deterministic engine decides and an agent applies.
Reading occupancy off an RMS calendar to make a same-day discount call is exactly where automation goes wrong. The gauges are canvas-rendered and OCR-flaky, and a misread means a wrong price. I wanted the decision to be deterministic and auditable.
How it works
A headless Python engine captures occupancy for every property in a single load of the Atomize data feed and emits a same-day rate-decision recommendation: which property-date pairs need a decrease and by how much, applying fixed occupancy tiers plus an idempotency check so it never re-adjusts a date. A separate applier skill executes only what the engine lists and never re-decides from a screenshot.
- Decision source is the data feed, not pixels, so it matches the gauges exactly.
- Immutable guardrails: decrease-only, today and tomorrow only, all room types, one login attempt.
- Packaged as a scheduled, self-improving skill that logs its own edits to a changelog.
Building. The engine and applier both work. The ongoing effort is hardening the browser-apply step against the RMS's shifting UI and packaging it as a reliable daily scheduled run.
The design principle is worth stating: separate the decision from the actuation. A deterministic engine you can trust, plus an agent that only executes vetted changes, is how you automate money decisions without letting a screenshot misread cost you.