How Hours Roll Up to Payroll
Follow a worker's time from a kiosk tap to a payroll CSV. This is the full story of what FabWise records, how corrections work, and what your payroll provider gets.
Why it matters
If you're new to FabWise, the most important thing to understand is the path your workers' time takes from the shop floor to your payroll provider. It's three stages:
- Capture — what the worker taps on the kiosk (or what their supervisor adjusts)
- Review and approve — what your supervisors confirm or correct
- Export — a CSV of approved hours that you drop into ADP, Gusto, QuickBooks, or wherever you run payroll
FabWise captures accurate time records. It does not calculate pay, classify overtime, or enforce labor law — that's your payroll provider's job. FabWise is the source of truth for what happened; payroll is the source of truth for what gets paid.
Stage 1: Capture
When a worker taps Start Shift at the kiosk, FabWise creates a record with two important fields:
- Tap time — the exact moment they tapped. This is immutable. Once it's in the database, nothing changes it.
- Final time — what counts for pay. Starts equal to the tap time, but can be corrected later (Stage 2). Supervisor corrections are stored separately, alongside the actor and timestamp — there's always an audit trail.
The same applies to End Shift, Start/End Break, and Start/End Personal Time. Every tap is preserved exactly.
When the worker taps Start Shift, the kiosk asks one of these questions depending on their schedule:
- "On time" — accept and start
- "Arrived early, waiting to start" — record scheduled time, not tap time
- "Arrived early, starting now" — record actual tap time
- "Late arrival" — confirm and record actual tap time
- "Forgot to clock in" — record the scheduled start time as final, not tap time
This is the shift intent. It captures why the timing is what it is, so the supervisor knows what to do at review time without having to guess.
For the full pattern, see Shift Intents.
Stage 2: Review and approve
After the shift ends, FabWise inspects it automatically. Most shifts are clean — worker arrived on time, took their break, ended on time. Clean shifts get auto-approved and skip the review queue.
A shift is flagged for review if something stands out:
- Worker arrived more than a few minutes late or early without picking an intent
- Worker missed their meal break (or it was shorter than required)
- Worker forgot to clock out (no end-shift tap)
- Worker started an unscheduled shift
- Shift exceeded a configurable maximum length
- Other rules your shop configures in Shift Review Settings
Flagged shifts show up in the Shift Review queue. A supervisor opens each one, looks at what happened, and either:
- Approves the captured times as-is — common when the timing was unusual but legitimate
- Corrects the final times — for missed clock-outs, forgotten meal breaks, wrong shift assignments
Corrections are saved as supervisor adjustments. The original tap times are preserved. The final times — what payroll uses — are updated.
Once a shift is approved (or auto-approved), it's locked and ready for payroll. No more changes without an audit-logged override.
For more, see Shift Review and Reviewing and Approving Shifts.
Stage 3: Export to payroll
When your pay period ends, you export the approved hours as a CSV.
- Go to Admin → Reports → Payroll.
- Pick the pay period from the dropdown. FabWise generates the period boundaries from your account's payroll start date and pay frequency (weekly, biweekly, semi-monthly, monthly).
- Click Download CSV (or whatever your payroll provider's import flow expects).
The CSV has one row per worker per shift, with columns for:
- Worker name
- Shift date
- Scheduled hours
- Actual (final) hours
- Break hours
- Net payable hours (actual minus breaks)
Plus a totals row per worker:
- Total scheduled hours
- Total actual hours
- Total break hours
- Total net payable hours
The net payable hours is what your payroll provider uses to calculate pay.
Only shifts that are ready for payroll (final times set, review complete) appear in the export. Flagged shifts that aren't yet reviewed are excluded — by design. You don't want to pay for time that hasn't been confirmed.
If you try to export a period that has unreviewed shifts, FabWise warns you. Go back and review them first.
For more, see Exporting Hours for Payroll.
What payroll calculates that FabWise doesn't
FabWise gives your payroll provider accurate, auditable hours. The payroll provider does the rest:
- Pay classification — which hours are regular, overtime, double time, holiday pay
- Tax withholding — federal, state, local, FICA, FUTA
- Benefits deductions — health insurance, 401(k), garnishments
- Direct deposit, paychecks, pay stubs — actually moving the money
- Compliance reporting — W-2s, 1099s, state new-hire reports, FLSA recordkeeping
This separation is intentional. FabWise focuses on capture accuracy. Payroll providers focus on payment correctness and legal compliance. Neither does both well.
If your payroll provider asks for "regular hours" and "overtime hours" separately, calculate them inside the payroll provider using their overtime rules — don't try to do it in FabWise. The payroll provider has your state's rules, your company's rules, and the test cases. FabWise has the raw hours.
The audit trail
Every action that changes hours is logged. For any shift, you can see:
- Who tapped what, when (worker)
- Who adjusted what, when, with what reason (supervisor)
- Who approved the shift, when (supervisor)
- Whether the shift was auto-approved or manually approved
This matters when:
- A worker disputes their hours
- A payroll auditor asks how a specific shift got its hours
- The Department of Labor asks for records
- You're investigating a discrepancy with a supervisor
The original tap times are never overwritten. Corrections live alongside them with full attribution. You can always answer "what did the worker actually tap, and what did we pay them for, and why?"
Common questions
Why are the worker's hours different from their tap times?
A supervisor corrected the final times. Open the shift, scroll to the audit log, and see who adjusted and why.
Why doesn't a shift appear in my payroll export?
It's not ready for payroll. Most likely: it's flagged for review and not yet approved. Go to Shift Review and process it.
Can I edit hours after exporting payroll?
Yes — the shift records are editable. But the export you've already sent to payroll is a snapshot. Re-exporting after corrections generates a fresh CSV reflecting the new hours; the old CSV is unchanged. If you've already run payroll on the old numbers, you have to handle the difference in payroll directly (next pay period adjustment, off-cycle correction, etc.).
What if a worker disputes their hours?
Open the shift in admin. Show them the tap times, the corrections, and the audit trail. If they're right and the correction was wrong, fix the shift and re-export the affected period. If they're wrong, the audit trail explains why.
Does FabWise calculate overtime?
No. FabWise gives your payroll provider total hours per worker per pay period. The payroll provider calculates overtime according to your state's rules (federal FLSA, California daily OT, etc.). For more on the distinction, see Overtime.
What's the difference between scheduled hours and actual hours?
Scheduled hours = what the worker was supposed to work, per their schedule template. Actual hours = what they actually worked, per the kiosk taps (or supervisor corrections). Net payable hours = actual hours minus break time. Payroll uses net payable hours.
What about salaried workers?
Salaried workers (Office user type with an annual salary) don't typically use the kiosk. Their hours don't appear in the payroll export. Their pay is fixed; FabWise doesn't track or calculate it. If you want to track office time for job costing, salaried workers can also clock in on the kiosk — but their payroll comes from outside FabWise.
Where to find it
- Kiosk: the shared tablet on the shop floor where workers tap in and out
- Shift Review queue: Admin → Shifts → filter by Needs Review
- Payroll export: Admin → Reports → Payroll
- Audit log for a shift: open the shift detail, scroll to the History section
Related
- [Shift Intents](shift-intents.md)
- [Shift Review](shift-review.md)
- [Net Hours](net-hours.md)
- [Overtime](overtime.md)
- [Time Rounding](time-rounding.md)
- [Reviewing and Approving Shifts](../admin/reviewing-and-approving-shifts.md)
- [Exporting Hours for Payroll](../admin/exporting-hours-for-payroll.md)