Time and labour recovery
Your largest controllable cost is usually your own people, and the same person often works several projects in a week. Whether that labour made margin isn't visible on an invoice — it only exists once an hour has been priced two different ways and attributed to a budget line. Two numbers do the work, and keeping them straight is the entire point of this system.
Cost rate and charge rate are different numbers, in different places
- Cost rate — what an hour of someone's time costs you. It's set per person, effective-dated, under workforce settings.
- Charge rate — what the client is billed for an hour of a given service. It lives on a rate card, priced by service type.
Margin on labour exists only in the gap between these two. Put a charge rate in the cost field, or the other way round, and every hour still resolves to a number — it just isn't the right one, because a wrong value in the right-shaped field doesn't complain.
Set per-person, effective-dated cost rates and rate card assignments.
Build rate cards: charge rates and estimated costs by service type, rounding, and minimum billable duration.
An unstaffed line gets an estimate; a staffed line gets the real thing
Before anyone is assigned to an hourly budget line, ema pre-fills a plausible charge rate — and, optionally, an estimated cost — from the default rate card for that line's service type (checked project, then organization, then tenant, in that order). That estimated cost is exactly what it sounds like: what the work is expected to cost, so a budget doesn't sit blank before staffing decisions are made.
The moment someone is actually assigned, their own cost rate and rate card assignment take over for billing their logged time — the estimate stops being used. The two numbers are related but not reconciled automatically: a budget priced from the estimate and the real delivery-side cost can diverge, and nothing flags that for you.
Before staffing, treat a budget line's cost as a planning estimate, not a commitment. After staffing, the real cost is whatever that person's own cost rate resolves to for the period the hours were logged — check workforce settings, not the rate card, if the two seem to disagree.
Timesheets: how logged hours become recovered hours
Staff log hours weekly against specific budget lines — the ones on projects their access role reaches, which is checked when the hours are saved and not only when ema offers the list to pick from. A timesheet moves through Draft → Submitted → Approved (or Auto-approved, or Rejected and sent back for correction). Approved timesheets lock — a manager with the right permission can unlock one if hours need correcting, which reopens it for editing, as long as the dates on it are still open for posting.
That last condition is the accounting calendar, and it outranks everything else in the chain. Once the period covering a date is closed or locked, that date stops accepting labour: no hours can be written, changed, or removed on it, and a week is refused at submission if any single day on it falls inside. Unlocking an approved timesheet does not lift that — a correction to a closed month needs the period reopened first, or the reopened sheet simply refuses every edit. Hours already recorded are left alone; closing a period freezes the past rather than restating it, and a project with no periods defined is unrestricted.
Approving a timesheet isn't a formality: it's what releases those hours into billing and into the margin figure. It confirms two things at once — that the hours belong to the budget line they're attributed to, and that the billable flag on them is correct. Auto-approval trades that check for throughput; use it only where attribution errors are cheap to live with.
Log weekly time, and review and approve submissions from your team.
How timesheet approval fits into ema's broader approval picture — and where it doesn't.
Open, close, and reopen the fiscal windows that decide which dates still accept time.
Utilisation is a fraction, and leave is the denominator
Utilisation measures logged (or billable) hours against a person's net available capacity for the period — not their nominal full-time hours. Net available capacity is scheduled hours (from their work schedule) minus public holidays (from their assigned holiday calendar) minus approved leave. Leave that's only submitted, not approved, doesn't reduce the denominator — so someone whose leave request is sitting unapproved reads as available when they aren't, and someone who actually worked while carrying unapproved leave on the books can look chronically underutilised.
A producer is scheduled 40 hours a week and takes three days of approved annual leave. Net available capacity for that week is 16 hours, and their utilisation is measured against that — not 40. If the leave request was still sitting unapproved when the week closed, the system would measure them against the full 40 hours instead, and the same person would show as badly underutilised for a week they were, in fact, on leave.
Recovery against budget shows on the project's budget dashboard — actuals against the labour lines you planned, with version comparison to explain what moved. Utilisation across people rather than within one project lives in the tenant-wide Utilization Report: per-person capacity, logged hours, billable hours, and the gaps that show whose week never got submitted. It's internal only — client-facing budget views respect each line's transparency setting, so a client sees a price without seeing your cost and markup behind it.
How a linked task or a timesheet's logged hours roll up into a budget line's Incurred figure.
The weekly chain end to end, and where it actually breaks in practice.