Ashish · field notes
All notes
← back to the system map
LivePeople & Labor2 min read

Multi-hotel punch & hours report

One daily report catches every forgotten clock-out across every payroll company before it turns into overpaid hours.

Each hotel is its own payroll company, and a forgotten punch-out (a shift stamped at 23:59:59, or never closed) quietly becomes overpaid hours. With no HR staff, nobody was catching these before the pay-period correction, which is the expensive place to catch them.

How it works

A daily job pulls time records for every hotel from one payroll admin login, groups punches by person and day, and flags the anomalies: auto-capped clock-outs, shifts left open, and implausibly long shifts over 14 hours. It rolls paid hours up per hotel and publishes a single report.

Stack: a Gusto GraphQL replay, Python (reusing the same validated punch-classification logic as the payroll checks), scheduled on the mini, published to the gated dashboard hub, with an emailed digest.

Live. The value is timing. A missed punch surfaces the same day, when the manager can still fix the record, instead of at the end of the period when it is a correction and a headache. The exception rate is the metric here, and this is a big part of what keeps it falling.

Got an idea? Tell me →More field notes