Run every project. Know every margin. See live project profitability →
Platform · Time Tracking & Billing

You tracked the hours.
You just never billed them.

Most studios don't have a time-tracking problem. They have an invoicing problem that time tracking exposes: hours logged, marked billable, and then quietly never sent. Workroom logs the hour where the work is, and then tells you exactly how much of it you've actually turned into money.

TimelogsViewing · All members
Hours tracked343h 12m75h 30m non-billable
Billable %78%267h 42m billable
Avg. per day6h 36mAcross 52 days
Days logged2 / 53 workdays missed
Jul 25, 202630m · 100% billable · 1 entry
AR Ashwood Residence › Send welcome packet & contractAmelia Rook OnboardingBillableOpen30m
Jul 24, 20265h 41m · 56% billable · 3 entries
AR Robin Residence › Confirm signed agreement & retainer receivedAmelia Rook OnboardingBillableOpen1h 11m
DL Hartwell Residence › Project site visitDaniel Lowe OnboardingNon-billableOpen2h 30m
DL Kessler Residence › CAD draftingDaniel Lowe + PhaseBillableOpen2h

Try it — switch the view, or open Log Time.

Trusted by the studios doing the work

1 button
Start Timer sits in the top bar of every screen in the studio
2 views
a list grouped by day, or the week laid out as blocks
5 fields
project, phase, room, task and service — so an hour knows where it belongs
1 number
realization — the share of billable work you've actually invoiced
Starting it

Press one button, answer the questions that matter

Start Timer is in the top bar wherever you are in Workroom — try it in the mockup above. Two fields are required. The rest are optional, and the rest are what make the hour useful six months later.

Project requiredTies the hour to real work rather than a free-text note
TaskThe specific piece of work, so the hour resolves further than the job
PhaseHow you answer "where did design development actually go"
RoomHow you answer "how long did the primary bath take"
What are you doing? requiredA short title in the words you'd use to your team
ServiceThe activity being performed — the thing a rate hangs off
BillableDecided at the start, not reconciled on Friday afternoon
MemoThe context the task name doesn't carry
Seeing it

A list when you're checking, a calendar when you're remembering

The list groups entries by day with the total, the billable share and the entry count on every date header. Blocks lays the same week out as a calendar, colored by project — the view that jogs a memory about Tuesday afternoon. Switch between them in the mockup at the top of this page.

Everyone, or one person

Switch the whole page between all members and a single designer — the same view, scoped to whoever you're asking about.

Filter and search

By type, status, project and date range; search runs across memo, project, task and member.

Bring history with you

Import time by CSV so the year you've already tracked somewhere else doesn't start from zero.

The honest afternoon

One block of time, three projects

You sat down at two and got up at half four, and it was three jobs. The choice most systems give you is to pick one and be wrong, or throw the block away and try to reconstruct it. Workroom lets you split the entry across projects — evenly, or by the hours you actually remember.

  • New entries inherit the date, member and billable flag from the original, so nothing is re-keyed.
  • Split evenly divides the source time equally across everything you've selected.
  • Or type the hours per project — and the total is checked against the source as you go.
Split timelogSplitting 2h 30m from Hartwell Residence. New timelogs inherit the date, member, and billable flag from this entry.
Split evenlydistributes the source time equally across selected projects
Allocations
Robin Residence1h0m
Ashwood Residence0h30m
Kessler Residence2h0m
3h 30m allocated of 2h 30m · Over by 1h Apply split
The number nobody wants to look at

Billable is not the same as billed

A studio can run at 79% billable and still be collecting almost nothing, because billable only means somebody ticked a box. Realization is the share of that billable value you have actually put on an invoice — and it is usually the most uncomfortable number in the business.

Timelog Report40 rows · 339 h tracked
Send ReportExport CSV
Total hours339 h
Billable %79%
Billable amount$29,691.58
Avg. bill rate$111.61
Effective rate$87.59
Realization6%
Not invoiced$27,928.58

Outstanding $27,928.58. Largest share: Robin Residence (67%). Realization this period 6%.

Project / phase / task / employeeBillable (h)Billable ($)Not invoiced ($)GPM
Robin Residence127.8$19,142.29$18,818.4388%
Design development70.0$15,242.80$14,918.9488%
Amelia Rook49.1$13,989.11$13,665.25100%
Daniel Lowe9.7$1,253.69$1,253.6915%
Ashwood Residence71.1$6,235.81$4,796.66100%
Kessler Residence20.7$2,277.55$2,277.5551%

Four ways to slice it

Hours by project, by task, by team member, and invoiced against not invoiced — charted before you open a single row.

Down to the person

The tree runs project, phase, task, employee, so an under-recovering job resolves to where it actually happened.

Not-invoiced only

One checkbox reduces the whole report to the work you haven't billed — which is the report you should be running monthly.

Out the door

Export the rows as CSV, or send the report by email with the CSV attached, without leaving the screen.

In the studio

The half hour you meant to write down

An interior designer on a site visit in a room still under construction, phone in one hand and a tape measure in the other.
Log timeHartwell Residence
Billable
TaskProject site visit
PhaseConstruction admin
RoomSecond floor
ServiceSite attendance
Hours1h 30m
Save entry Start timer
"We found $4,000 a month in hours we were simply forgetting to bill. Workroom didn't save us time — it found us money."
Jordan R.Jordan R. — Design Director, 12-person studio
The connected record

An hour is a cost, a line on an invoice, and a lesson

Attaches to the task

Entries carry the project, phase, room and task they belong to, so "where did design development go" is a question with an answer.

Becomes a fee invoice

An entry's status moves from open to invoiced when it reaches a bill, so the same hour can't quietly go out twice.

Costs into margin

Labor joins product and freight in live project profitability, so a healthy product margin stops hiding the hours that ate it.

Shows who's missing

Days logged against workdays, per person — so a gap in the record is visible this week rather than at year end.

Keeps Harvest working

Import time by project and task, with optional automatic sync, if your team's habit already lives somewhere else.

Prices the next proposal

Hours by phase on the jobs you've finished is the only honest basis for the number you put on the one you're quoting.

Set it once, per firm

Approve the hours that bill. Skip the rest.

Blanket timesheet approval is how approval dies. If a principal has to sign off internal admin time and a designer’s own hours and every non-billable minute, they stop reading and start clicking — and the review that was supposed to protect the client relationship protects nothing.

Narrow it instead. Only billable time, only non-admin employees, and only the phases where the hours are contentious. Then lock what is approved, so a number that has already been billed cannot quietly change underneath the invoice.

  • Admins, owner only, or named approvers
  • Everyone, or only non-admin employees
  • Only billable time, and only chosen phases
  • Approved timelogs locked from edits and reassignment

Permissions →  ·  Design fees →

Timelog approvalsRequire sign-off on employee-tracked time before it can be billed.
Enable approval workflowWhen off, no timelog ever needs approval.
Who approves?Who is allowed to approve or reject timelogs.
AdminsOwner onlySpecific people
Whose time needs approvalEveryone, or only non-admin employees.
Employees onlyEveryone
Only billable time needs approvalSkip internal / non-billable entries.
Per-phase approvalRequire approval only for specific project phases — others skip the workflow.
OnboardingPre-DesignSchematic DesignDesign DevelopmentConstruction AdminFurniture SelectionPurchasing & ProcurementInstallationOffboarding
Lock approved timelogsOnce approved, a timelog can’t be edited or reassigned.
Log time as start & end timesSwitches the Log Time modal from hours and minutes to a start and end time — the total is calculated for you.
Questions we hear

Time tracking, specifically answered

My team hates time tracking. What makes this stick?

Friction and feedback. The timer is one button in the top bar of every screen, and the form is two required fields. Then the team sees what it produces — hours by project and phase, and how much of it got billed — instead of feeding a black hole. Compliance goes up when people can see why it matters.

What happens when an afternoon covered three projects?

Split the entry. Choose the projects, either divide the time evenly or type the hours against each, and Workroom checks your allocation against the source before it will apply — if you've allocated 3h 30m out of 2h 30m, it tells you you're over by an hour rather than silently inventing time.

Can we track non-billable time too?

Yes — billable is a toggle on the entry itself, set when you start the timer. Non-billable hours stay off invoices but stay in the record, so hours tracked and billable percentage are both real numbers.

Do hourly rates vary by person, activity, or project?

All three. Every entry carries a service, and the report shows both the average bill rate and the effective rate you're achieving once unbilled work is taken into account — which is usually the more interesting of the two.

We already track time somewhere else. Do we have to switch?

No. Import your history by CSV, or connect Harvest and keep the habit — time imports by project and task, with optional automatic sync, and lands in Workroom's projects and profitability either way.

See the connected workflow

Run the project. See the real margin.

We'll run the report on your own numbers and show you your realization rate. Most firms find it lower than they expected, and the gap is money already earned.