Flume

Time & attendance · the floor-level truth

The gate is the
source of truth.

Every hour Flume pays for traces back to a physical event at a terminal. No spreadsheet in the middle, no supervisor's memory, no nightly export that quietly drops a day.

Terminal fleet · liveexample data
06:47:12Mahmoud Ezzat
ZK-4200 · GATE-A · Line 3
Matched
06:52:40Salma Abdel Rahman
ZK-4200 · GATE-A · QA
Late
07:01:55Karim Adel
ZK-3960 · GATE-C · Line 1
Matched
14:02:05Youssef Farouk
ZK-3960 · GATE-C · Maint.
No in-punch
Shift A · 07:00–16:00
06:0010:0014:0018:00

Reconciliation, live

Four ways a day goes wrong. One record out the other end.

Terminals report physical events, and physical events are messy — someone scans twice, someone forgets to scan out, someone scans in at the wrong plant. Pick a day below and watch the rules resolve it into the single record payroll will read.

The day as the terminals reported it

06:47ZK-4200 GATE-A · check-in (device)Recorded
06:52Mobile app · check-in (geofence)Superseded
16:04ZK-4200 GATE-A · check-outRecorded

Earliest arrival wins. The app punch is marked superseded — kept, not deleted, so both events survive a dispute.

events received3
records written1
needs reviewno
payable hours9h 17m
Resolved statusPresentOne attendance record per employee per day, whatever arrived.

Illustrative punches. The rules shown — earliest wins, supersede rather than delete, flag rather than guess — are the ones the product applies.

What ships

Twelve capabilities between the turnstile and the timesheet.

01

Biometric terminals

ZKTeco devices push punches over ADMS the moment they happen — not a file you fetch at midnight.

02

Device fleet health

Pair a terminal, watch it report, and see when one goes quiet. Operation and punch logs per device.

03

Mobile clock-in

Office and field staff clock in from the app inside a geofence, with the branch radius enforced.

04

Cross-branch punches

Staff who move between sites are recognised at any registered terminal and flagged rather than rejected.

05

Shift rosters

Reusable templates, published schedules and per-employee patterns across sites and weeks.

06

Coverage requirements

Declare how many people a line needs on a shift and see the gap before the shift starts, not after.

07

Shift swaps

Employees propose a swap to a named colleague; it routes for approval and rewrites the roster on acceptance.

08

Break tracking

Break sessions captured from the terminal itself, so unpaid time is measured rather than assumed.

09

Overtime

Requests and live sessions, approved in tiers, linked to the attendance record they extend.

10

Nightly close-out

A scheduled pass flags every day that ended incomplete — clocked in, never out — for a human to resolve.

11

HR corrections

Adjustments carry the before, the after, the author and the reason. Append-only, never a silent edit.

12

Reconciliation & backfill

Historical records can be reconciled and backfilled, so switching to Flume does not start your history at zero.

How it actually works

The mechanism, not the marketing.

Earliest wins

A device punch never overwrites an app punch, or the reverse.

When two channels record the same day, the earliest arrival is kept and the other is marked superseded rather than deleted. That matters in a dispute: you can show both events and the rule that chose between them, instead of a single value with no history behind it.

Not present-like

A check-out with no check-in is not attendance.

A day with an exit scan and no entry is recorded as a missing punch, and missing punches are deliberately excluded from present-like statuses while still counting toward the denominator of any rate. Without that rule, someone who only ever scans on the way out looks perfect in every report while being paid for nothing.

Cairo, not UTC

The business day resolves on the Africa/Cairo calendar.

Attendance days, payroll periods and every rollup are bucketed on the company business date rather than the server clock. A 01:00 punch belongs to the shift it actually worked, not to whichever UTC date the timestamp happens to fall in.

Never hard-deleted

Saying a day did not happen is itself a recorded decision.

Clearing a record means writing a correction that zeroes the clock times and states a status, keeping the trail of who decided that and why. An inspection asks exactly that question about any adjusted figure, so the answer is stored rather than reconstructed.

Book a demo

Bring us your messiest month.

The fastest way to judge Flume is to run it against a period you already argued about. Send a month of punches and the payroll you produced from it, and we will show you the same month reconciled — including what the anomaly detectors flag.