AI Adoption GuideHospitalityStay
Energy anomaly monitor
ML detects unusual HVAC and lighting usage patterns as a proxy for maintenance needs or unauthorized occupancy.
Hospitality processBookConfirmPrepareArriveStayDepartReviewReturn
By Don, DoneThat’s AI coach · updated
What the monitor is allowed to output
The useful output is a quality flag that names the meter feed and the vintage of the last accepted reading. Unusual HVAC or lighting usage is a reason to look. It is not a diagnosis, not occupancy, and not a work order.
Score each point against its own accepted history. A fan-coil that holds load after the scheduled setback, a corridor lighting circuit that never sheds, a chiller auxiliary that moves while the associated air handler feed is quiet: those are plant questions. They are not proof that a room is occupied, vacant, or in unauthorized use. Watts are watts. People are a different measurement.
Stay platforms such as Oracle Hospitality, Mews, and Cloudbeds may sit next to the flag when they actually returned stay status. They do not license a load model to write a guest into the room. If the property-management feed is silent, stay fields stay empty. If the meter is silent, anomaly fields stay empty. Two blanks, one rule.
A downstream maintenance issue predictor can consume a cited flag as one input. It should not invent the missing interval.
Load the meter feed before anything scores
Nothing scores until a named meter is loaded and accepted. Bind each monitored point to the meter ID engineering already uses in the log. Keep that bind list in the same naming the CMMS and the BMS already share. If the lighting panel is tagged a certain way on the electrical schedule, the flag uses that string, not an internal model alias the electrician cannot search.
Ingest the latest interval window with units the plant actually records. Record whether the window is complete. Reject gaps you cannot explain. Then compare that window to the same point's recent accepted history. Do not compare it to a template floor or to another riser's average.
Practical sequence:
- Map HVAC and lighting points to stable meter or circuit IDs.
- Load the interval feed and stamp vintage: last accepted interval time, and completeness of the window.
- Score only on accepted data for that ID.
- Emit a flag only when the comparison finished on that data, and put the meter cite and vintage on the flag itself.
- Leave every field that lacked a feed blank. Do not interpolate load, and do not infer a person from load.
If the logger never arrived, skip the point. A board full of red with no meter IDs trains the night shift to ignore the board.
Housekeeping charts will invite a shortcut. A room that looks dark on the housekeeping schedule optimizer does not mean the lighting meter should have been zero, and a lighting meter at zero does not mean the room is ready. Couple those views only when both feeds exist and a person is reviewing both.
Cite vintage on every flag
A flag without vintage is a rumor. Every anomaly must show the meter ID, the interval start and end you scored, and the timestamp of the last accepted reading. If the logger lagged, the flag says so. A morning spike can be a catch-up dump after a BMS outage, not a stuck damper.
Illustrative example: a guest-floor fan-coil meter accepts a complete night window. The model marks that window as high relative to that coil's own recent accepted nights. The flag shows the meter ID, the window, and the vintage. The night engineer does not open a guest-room door on that basis. They check the associated air handler, walk the riser, and look at the coil. They might find a failed end switch, a lighting circuit on the same panel that never shed, or a catch-up after a logger restart. They write what they saw. The flag did its job when it named the feed.
If vintage is missing, hold or drop the flag. Do not let an in-room service request router treat an uncited spike as a guest ticket. Energy is not a service request.
Leave the row blank when the meter is silent
Empty stays empty when the meter is silent. Partial windows, stalled loggers, and points that report zero because a current transformer failed all fail closed: no anomaly, no estimated load, no claimed occupancy.
Comfort complaints are a separate stream. A mid-stay complaint predictor may land on the same board when it has its own cite. You may place both facts in front of engineering. You do not merge them into a story that a guest is in the room because kilowatt-hours moved.
Display stay status from the property-management system only when that system answered. Never backfill occupancy from HVAC or lighting. Energy can be a proxy you investigate for a unit that should have been off, or for unauthorized use you then walk. It cannot assert a body is in the room.
The chief engineer still opens the work order
The monitor does not auto-dispatch. Overnight technicians, vendors, and room attendants are not launched from an energy flag. Auto-dispatch turns a quality flag into a false work order in the small hours, then trains the team to mute the board.
Hand-off that holds up on a live property:
- Queue the cited flag on the engineering board with meter ID and vintage visible without a click-through.
- Require a human to accept, defer, or dismiss before a CMMS record exists.
- On accept, the chief engineer or the person they designate creates the work order, pastes the cite, and adds what they observed on the walk.
- Dismissals carry a reason: stale vintage, known test, already in progress. That reason is how a silent meter stops paging every hour.
Do not auto-create a guest-room ticket from a floor-level or panel-level meter. If the cite is a riser or a corridor lighting panel, the work order is against that asset. Splitting a panel spike into a stack of room tickets invents location the feed did not give.
Treating the flag as the work order is a failure mode. Parts, access windows, guest-impact notes, and history live in the CMMS. The flag is the pointer. The engineer still puts the work on paper.
Failure modes that look like progress
A flag with no meter cite. Someone will still check a whole floor by memory. That is not a closed loop. Suppress uncited flags.
Treating the flag as a work order. Ticket counts rise, plant knowledge falls, and auto-dispatch follows. Keep CMMS creation in engineering hands.
Inventing occupancy from energy. HVAC and lighting can raise a question about unauthorized use or a unit that should have set back. They cannot write occupied from watts, and they cannot overwrite stay status from Oracle Hospitality, Mews, or Cloudbeds. If you need occupancy, get it from a source that measures people or from a documented walk.
Run the loop that way: load the meter, flag only with vintage cited, leave blanks when the feed is silent, and let the chief engineer open the work order.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first