Approvals inbox

One manager screen holding every submitted timesheet and expense from every portal, where approving or rejecting flips the same rows the P&L rolls up.

What it is

An admin/PM view grouping submitted time and expenses, with optimistic approve and reject, project names resolved for display, and a nav badge that polls the pending count.

Also called: approve timesheets · approve expenses · pending approvals badge · review crew hours

See it
Approvals inbox
🔒ridgelinepostframe.com/project/labour820
30×40 Garage
Framing · on schedule
The approvals list grouped by crew with approve/reject on each row and the sidebar badge showing a pending count. Sample data — no customer information appears here.
How it works
  1. 1getPendingApprovals reads all status='submitted' time and expense rows plus a project-name map.
  2. 2Approve or reject flips status; the row leaves the list optimistically.
  3. 3A window event tells the sidebar badge to refresh.
  4. 4The badge count fetches only ids, since it polls every 60 seconds and just needs a number.
Why we built it

Everything the field and the subs submit has to be checked before it becomes a cost, and checking it project by project meant opening a dozen jobs to find four timesheets. Every submitted timesheet and expense across every project lands in one inbox, where approving or rejecting flips the same records the job's P&L reads. The count of what is waiting updates quietly in the background, so a manager sees work arriving without going to look for it.

The problem
  • Approvals scattered per project.
  • No visible count of outstanding submissions.
Sound familiar?
What you get
Clear the whole queue in one screen.
Approved figures reach job costing immediately.
The outstanding count is always visible in the nav.

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 →