A mid-sized hospitality group came to us with a familiar confession: we’re still doing rosters in Excel and tracking attendance with a WhatsApp group. Their kitchen had 24 staff across day and night shifts. The head of operations spent half of every Monday morning building the next week’s schedule, and still got calls at midnight when someone didn’t show. Here’s the prototype we built to replace all of it.

Interactive prototype

Punchclock — Roster grid, Time & Attendance view, Shift Swap requests, and Policy engine. Click the tabs to navigate between views. Toggle the sidebar to collapse it.

Open in new tab

Best experienced on a laptop or desktop. Use “Open in new tab” above for a full-screen view of the roster grid, attendance tracking, and shift management.

The problem

The Spreadsheet Is the Single Point of Failure

For any business running shifts — hotels, restaurants, factories, hospitals — the roster isn’t just a schedule. It’s the contract between employer and employee. When it lives in a spreadsheet, everything breaks quietly: a shift gets double-booked, overtime thresholds slip past unnoticed, a new hire doesn’t get added for two weeks. The operations manager becomes a human message bus, fielding texts about swaps, leave requests, and no-shows.

The market has no shortage of enterprise workforce management platforms. Most of them cost more than the staff they’re tracking, take months to implement, and require a dedicated admin to maintain. Our client didn’t need SAP. They needed something their 50-year-old kitchen manager could open on Monday morning and just use.

The brief in one sentence: “Give us a roster that builds itself around our rules, connects to the fingerprint machines we already own, and lets staff swap shifts without calling me.”

4
Tabs to run the whole operation
96.4%
Attendance rate tracked automatically
0
Phone calls needed for shift swaps
The workflow

One Spec, Four Surfaces: Roster, Track, Swap, Enforce

We wrote the spec first. Four surfaces, one operational loop. Roster: a weekly grid where managers assign day shifts, night shifts, leave, and days off — with a coverage matrix underneath that immediately shows understaffing. Track: a time and attendance view that shows every staff member’s actual clock-in status against their scheduled shift — on-time, late, absent, left early — updated automatically from biometric devices. Swap: a request queue where staff propose shift swaps with colleagues, and managers approve or reject with one click. Enforce: a policy engine that watches the roster in real time and raises compliance warnings — consecutive days exceeded, overtime thresholds breached, minimum coverage not met.

The roster grid is the heart of the product. It looks like a spreadsheet — deliberately. Staff names on the left, days of the week across the top, colour-coded shift chips in each cell. But underneath, the policies are running. When Maria Santos gets scheduled for six consecutive days, a warning card appears. When Saturday night shift drops below two cooks, the coverage matrix turns red. The manager sees both the plan and the problems in one glance.

The attendance view flips the same grid from planned to actual. Past days show real attendance badges — green for on-time, amber for late with a minute count, red for absent, coral for left early. Future days still show scheduled shifts. The boundary between past and present is visible at a glance: today’s column is highlighted. No separate report. No CSV export to cross-reference. The truth is right there.

The test wasn’t “does this have every feature?” It was: can a kitchen manager, standing at the pass between services, see who’s here, who’s late, and who’s covering tonight — without opening a second screen?

The bar we set for the first pilot

Biometric integration was non-negotiable. The client already had HikVision fingerprint terminals at every entrance. Punchclock connects to them directly — no middleware, no manual upload. When a cook scans their finger at 07:03, the attendance view updates. When they scan out at 18:15 instead of 19:00, the system flags it. The same spec supports ZKteco devices, because the integration layer was designed against a protocol, not a vendor.

The shift swap flow removes the operations manager from the loop entirely. A staff member requests a swap with a specific colleague for a specific day. The colleague confirms. The manager sees it in the Swap Requests tab with both names, both shifts, the affected day, and the reason. One button to approve, one to reject. The roster updates automatically. No group chat. No lost messages. No “I thought we agreed on Tuesday.”

Because the spec drives the build, adding a new policy rule, connecting a different biometric vendor, or adjusting the late-arrival grace period is an edit to the document, not a sprint of dev work. The same spec that gave us this prototype will power the production system, the employee self-service portal, the mobile view, and the payroll export.

Good workforce software doesn’t replace the manager. It gives them back the hours they were spending being a message bus.

spec-first development time and attendance rostering software biometric integration workforce management AI-native development