Skip to content

Time Tracking Tool

The Time tool allows team members to log time against tasks and budgets on a weekly basis. Entries go through an approval workflow where managers review and approve their team’s time entries.

  • Week-based grid — Log time entries across a 7-day week view (Mon-Sun)
  • Approval workflow — Draft/approved/rejected states with manager approval
  • Auto-approve — Managers, heads, and executives have entries auto-approved on creation
  • Status indicators — Colour-coded left borders on entry cards (green=approved, red=rejected)
  • Bulk approval — Managers can approve all entries for a team member at once
  • Budget & task linking — Entries link to budgets and tasks, with task filtering by project
  • Billable toggle — Managers+ can toggle billable status on entries
  • Pending approval tab — Managers see a tab with pending entries from their direct reports
Lead/Employee creates → draft → Manager approves → approved
Manager/Head creates → approved (auto)
Executive creates → approved (auto)
Manager rejects → rejected (user can edit and resubmit)
  • draft: Entry saved, editable by the owner
  • approved: Locked from editing/deleting (except by executives)
  • rejected: Returned to owner with a reason, editable and re-approvable
LevelViewCreate/EditApprove/Reject
ExecutiveAll entriesYes (auto-approved)Yes (all)
HeadAll entriesYes (auto-approved)Yes (all)
ManagerOwn + squadYes (auto-approved)Yes (direct reports)
LeadOwn onlyYes (draft)No
EmployeeOwn onlyYes (draft)No
  • My Timesheet tab — Week grid showing the current user’s entries with navigation
  • Pending Approval tab — Managers+ see draft entries from direct reports, grouped by user
  • Entries show status via left border colour (none=draft, green=approved, red=rejected)
  • Rejected entries show the rejection reason on hover
  • Edit/delete buttons hidden for approved entries (except executives)
  • Route: src/routes/time.tsx
  • Page: src/components/time/time-page.tsx
  • Approvals: src/components/time/time-approvals.tsx
  • Status badge: src/components/time/time-status-badge.tsx
  • Hooks: src/hooks/use-time-entries.ts
  • API: worker/routes/time-entries.ts
  • Shared section: src/components/shared/time-entries-section.tsx