-
01 · Attendance
Suspicion flags. People decide.
Seventeen risk signals — geofence, GPS accuracy, mock location, device identity, impossible travel, clock skew and more — each with a weight the organisation tunes. A score that crosses the review threshold routes the record to a reviewer with the evidence beside it.
- Fabricated "verification passed" claims from modified clients are ignored and logged
- Unknown evidence renders as unknown — never as "not registered"
- Corrections produce adjustments beside the original, never over it
# every attendance entry, evaluated on arrival time_in recorded · server time 08:02:11 ├─ geofence ✓ 41 m from Makati Office ├─ device ✓ registered to this employee ├─ selfie ✓ captured ├─ clock skew ✓ 2 s └─ implied travel ⚠ 612 km/h since last entry → risk 60 ≥ review 40 — routed to a human → the employee's day is recorded either way -
02 · Approvals
Approvals that route themselves.
Leave and overtime walk a configurable chain — manager, then HR — and every step records who decided, when, and why. Balances are debited only when the chain completes, and a team-conflict warning is counted the moment the request is filed, not when someone happens to notice.
- Manager and HR steps, each with its own actor, timestamp and reason
- Balance ledgers that never go negative silently
- A rejection is a recorded decision — never a deleted request
approvedLeave request · LR-2026-0412
Joel Santos · Vacation · Aug 24–25 (2 days)-
✓
FiledAug 12 · 09:14 · from the employee app
-
✓
Manager · Mae LimAug 12 · 11:02 · "team cover confirmed"
-
✓
HR · Andrea ReyesAug 13 · 08:40 · policy check passed
-
!
Team conflict check1 overlap counted at filing — shown to the approver, never a block
Vacation balance9.0 → 7.0 days · debited on completion -
03 · Payroll
A payslip that explains itself.
Every line carries its basis — the rate, the divisor, the table version that produced it. Statutory figures come from effective-dated configuration, never from constants in code, so March stays explainable in September after every rate has changed.
- Employer and employee contribution shares, both shown
- Rounded once per line; totals are exact sums of the lines
- Every table version recorded on the run it produced
Payslip — August 2026
Andrea Reyes · MTC-2024-0007v3 tables
DEMONSTRATION FIGURES — not statutory ratesBasic pay · monthly ÷ 22 days ₱30,000.00 Overtime · 7h × 1.25 × ₱170.45 ₱1,491.44 SSS · bracket 20k–25k, v3 −₱1,125.00 PhilHealth · 2% of gross, v2 −₱629.83 Withholding tax · demo table v1 −₱1,983.11 Net pay ₱27,753.50