Review → housekeeper attribution
Every cleanliness review points back to the person who actually cleaned the room, praise and complaints both.
Guest reviews mention cleanliness constantly, and that signal evaporates. It never reaches the housekeeper it is actually about. I wanted to close the loop so good work gets credited and real problems get named, and named fairly.
How it works
Each review carries the room number and the stay dates. I join that to the housekeeping assignment history on room and date to find who cleaned it, with no extra PMS call needed. A housekeeper is only credited or flagged when the guest actually mentions cleanliness, scored via subrating and keywords. Front-desk, noise, and price complaints never count against a cleaner.
- Fairness model: the arrival-prep clean is the primary one, checkout-day cleans are excluded, and multi-night stays list every cleaner who serviced the room
- A reviews API for the guest side, the housekeeping board history for the who-cleaned-it side, and Python to join them
It is built as a pilot and deliberately not shipped. An adversarial self-audit caught real problems: a dead fairness filter, a join that credited the wrong clean, and too thin a sample for per-person calls. The honest verdict was that the plumbing works but named per-person scoring is not safe yet, so it stays property-level until there is enough signal.
This one is a lesson in restraint. The agent-run org still has to be fair to the people inside it, and "I could compute it" is not "I should publish it." Building the guardrail is part of building the seat.