A mobile-first screen listing the worker's own crew's stage assignments and their own submissions. Reads go through /api/labor/me and writes through /api/labor/log, both deriving org, crew and member id server-side and forcing status='submitted'.
Also called: log hours from my phone · my work tab · submit timesheet · worker portal
- 1GET /api/labor/me resolves the crew from the session and returns only that crew's assignments and that worker's own entries.
- 2POST /api/labor/log accepts only kind time or expense, stamps org_id, member_id and submitted_by from the session, and forces status='submitted'.
- 3The unit-vs-hours prompt follows the crew's pay model and its unit label.
- 4Each submission shows its status: Pending approval, Approved or Rejected.
Getting hours out of the field meant a foreman collecting them and an office worker typing them in, which put two people and several days between work happening and anyone knowing what it cost. A field worker submits their own hours and expenses against the stage they worked, from their own screen. What they can reach is their own submissions and their own crew's assignments and nothing else — not another crew's work, not another man's timesheet, not another company's anything. Submitting does not approve: everything lands pending for the office.
- Field workers blocked from self-reporting by role gates.
- Self-reporting that would require unsafe write access.
- Workers pre-approving their own time.
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →