Staff & Payroll
A complete, workshop-specific HR & payroll suite — employees, attendance (with hardware device support), leave, payroll, and reporting — eliminating the need for a separate HR tool.
Employees
Staff → Employees is the employee directory.
Each record holds:
- Identity — name, email, phone, employee code.
- Employment type — full-time / part-time / contract.
- Department + designation (e.g. Senior Mechanic, Service Advisor).
- Salary + shift assignment.
- Join date + status (active / terminated).
Employees are automatically linked to user accounts by email match — so when an employee logs in, they get their employee context. If their email changes, the link updates automatically.
Attendance
Staff → Attendance covers clock-in / clock-out.
Clock-in modes
- Web punch — employee clicks Clock In from the dashboard.
- Device punch — physical clock-in terminal (biometric / RFID /
PIN). Devices authenticate via SHA-256-hashed, rotatable keys,
sent in the
X-Device-Keyheader. Device punches use the same processing pipeline as web punches.
Status determination
TheGarageOS determines status automatically based on:
- The employee's shift template (start / end / grace period).
- Configurable late and half-day thresholds.
Status options: present / late / half-day / absent.
Overtime
Automatic overtime calculation per shift rules. Configurable globally and overridable per employee.
Manual override
Staff → Attendance → Override lets managers correct an attendance
record with a reason. Every override is logged.
Devices
Staff → Attendance → Devices — register physical clock-in devices.
Each device has a rotatable key (shown once at creation) and can
be assigned to a location.
Shifts
Staff → Attendance → Shifts — define shift templates (name, start,
end, grace period, late threshold). Assign shifts to employees.
Leave
Staff → Leave is the leave management workflow.
Leave types
Staff → Leave → Types — define leave types:
- Paid / unpaid.
- Max days / year.
- Carry-forward rules.
- Document required flag.
- Color tag for the calendar.
Holidays
Staff → Leave → Holidays — public holidays with recurrence and
country code. Used by leave-day calculation.
Allotments
Staff → Leave → Allotments — per-employee, per-year leave
allotments. Set initial allotment, adjust mid-year, configure
carry-forward.
Requests
Staff → Leave → Requests — request / approve / reject.
A request has:
- Employee + leave type + date range.
- Auto-calculated day count (with half-days supported).
- Status —
pending→approved/rejected/cancelled.
Balance tracking
Per-employee leave balance is never allowed to go negative. If a request would exceed the balance, it's rejected at the API.
Auto-attendance sync
When a leave request is approved, TheGarageOS generates attendance
records for the entire date range via generate_series. Leave and
attendance stay in sync — there's no separate timesheet to maintain.
Payroll
Staff → Payroll is the salary-sheet engine.
Components
Staff → Payroll → Components — define earning / deduction /
bonus components:
- Type — earning / deduction / bonus.
- Taxable flag.
- Calculation type — fixed amount or % of basic.
- Effective-dated — assign to an employee with a start (and optional end) date. You can safely end-date a component without deleting history.
Advances
Staff → Payroll → Advances — track salary advances with
race-condition-safe recovery:
- Record an advance (amount, date, recovery schedule).
- Recover it from one or more future salary sheets.
- Atomic increments on the running balance — no double-recovery.
Settings
Staff → Payroll → Settings — payroll configuration:
- Overtime rate (multiplier on hourly).
- Working days per month (for per-day calculations).
- Default payment method.
Salary sheets
Staff → Payroll → Sheets — monthly payroll runs.
A salary sheet has:
- Period (month / year).
- Status —
draft→finalized→partially_paid→paid→archived. - Lines — one per employee, with full breakdown: basic, allowances, bonuses, overtime, gross, deductions, net payable, paid, due.
You can:
- Create a sheet (auto-populates from current components).
- Edit lines in a draft.
- Finalize (locks the sheet — no further edits to lines).
- Pay lines individually (partial payment supported).
- Print the sheet (print-friendly view).
- Payslip per line, branded per your document template.
GL posting
When a salary sheet is finalized, TheGarageOS generates the general ledger entries automatically:
- DR Salary Expense
- CR Salary Payable / Bank / Cash
Your books are always in sync with payroll — no manual journal entry, no month-end reconciliation scramble.
HR Reports
Staff → Reports — pre-built reports:
- Attendance summary — status breakdowns + overtime totals.
- Leave balance grid — employee × leave-type balance.
- Payroll history — period-by-period totals.
- Salary sheet print — printable monthly sheet.
All reports are permission-gated and date-range filterable.
Tips
- Hardware devices are first-class — workshops where mechanics can't easily use a phone can use a wall-mounted terminal.
- Auto-attendance sync removes an entire class of "HR said approved, but the timesheet says absent" disputes.
- GL posting from payroll is one of the biggest wins — your books are the system of record, not a separate export.
Next: Accounting, or the user journey.