A laptop showing a spreadsheet on a desk, beside a hand making notes with a pen

How Team Timesheet Approvals and Reporting Work

On your own, a submitted week is the end of the story. In a firm it's the middle. Someone else has to look at it before it becomes an invoice, and that one extra step changes how everything downstream behaves: what shows up in reports, what you can export, what you can bill. Here's the whole flow, and the bits that surprise people.

1. Share the clients your team works on

A client belongs to the firm or to a person, and that choice decides everything else. When you add a client on Organisation Management, tick the option to share it with your team. Its projects follow automatically, so anyone in the firm can tag time to them and their rates stay under your control as the admin.

Anything left unshared stays private to whoever created it, deliberately. People have side work, and a timesheet app that quietly showed it to the boss would be a hard thing to ask your staff to install.

2. Members submit their weeks

Nothing changes for the person filling in the timesheet. They import their calendar, tag lines to projects, enter hours, submit. Submitting still freezes the rates and values for that week.

What changes is that they can't reopen it afterwards. On a solo account you can pull a submitted week back and edit it. In a firm you can't, because an admin might already be reviewing it. If a member needs a change, an admin sends the week back to them, which we'll come to.

3. Review the queue and approve

Submitted weeks land in Team Timesheets, oldest first. Open one and you see the member's lines for that week with the totals recomputed, then approve it or send it back.

Sending back needs a comment, and that's deliberate. "Rejected" with no reason is how you get the same wrong week resubmitted. The comment sits on the member's draft until they resubmit, at which point it clears. Send-back also works on weeks you've already approved, which is the only way to fix hours somebody spots after the fact, since members can't reopen their own weeks.

Your own weeks approve themselves when you submit them. There's no sense making you sign off your own work, and no email gets sent about it.

For a faster read there's the team dashboard, which puts the current week on a board: who hasn't started, who's drafting, who's submitted, who's approved. It also charts the last four weeks per person and per project. Use the dashboard to chase people on a Monday and the queue to actually review.

What admins can and can't see

Two rules, both worth understanding before anyone asks you.

You only ever see work on shared client projects. A member's private clients, and any line they haven't tagged to a project, are absent from your view completely. Not greyed out, not shown as "3 hidden hours", just not there, because the quantity of someone's private time is private too. This is also why the totals you see on a member's week are recalculated rather than taken from their timesheet: the stored total includes work you're not entitled to.

You also only see work submitted from the date that person joined the firm. Someone who used VibaCloud before joining brings their history with them, and it stays theirs. If they backfill an old week and submit it while they're on your team, that one does reach you, because submitting it to the firm is the act that shares it.

4. Report on the whole firm

On Reports, admins get a Show dropdown with the firm's name and "Just me". Pick the firm and every chart, filter and export covers everyone, with a Member dropdown to narrow to one person. Same visibility rules as the review screens, so nothing appears here that wouldn't appear there.

The breakdown table underneath will group by member as well as by client, project or task, and the effective rate column is worth a look across people. It's value divided by hours recorded rather than billable hours, so it quietly exposes where time is going that nobody's charging for.

You'll also find a bar showing where the firm's billable work has got to: waiting on approval, ready to bill, invoiced, paid. The first of those is the number to act on. Work stuck in "awaiting approval" is money nobody can bill through any route, so a big figure there on the last day of the month is a problem you can still fix. Below it, a per-member table shows who's invoiced their share.

5. Bill the approved time

Approval is the gate on money. Team work becomes invoiceable and exportable only once its week is approved, which is why the Billing screen will sometimes tell you an invoice would come to less than the total on screen. Personal projects are unaffected and stay billable at submission.

For the firm's own billing, use the export on Team Timesheets. Choose a date range and you get a spreadsheet of approved team time in two sheets: a summary grouped by member, client and project, and an entry-level detail sheet with every line, its date and its rate.

Being straight with you about why that export exists: VibaCloud can't yet raise a single invoice covering several people's work. Invoices belong to the person who created them. So a firm takes the export into Xero, QuickBooks or whatever it invoices from, and raises the client invoice there. Firm-level invoicing is the next thing we're building on the team side. Until it lands, the export is the honest answer rather than a pretend one.

Emails your team will get

VibaCloud keeps everyone in the loop without anyone having to chase in Slack. Admins get an email when a member submits a week. The member gets one when their week is approved or sent back, and a send-back includes your comment so they know what to fix. Whoever sent an invite hears when it's accepted. Submitting your own week as an admin sends nothing, since you'd only be emailing yourself.

New to the firm side? Getting Started with VibaCloud covers the basics of a timesheet, and how to run billing reports and invoice clients explains the Billing screen and invoices in detail.

Stay in the loop

Product updates and the occasional tip. No spam, unsubscribe anytime.

An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.