Thread Transfer
Project Profitability for Service Businesses: What Actually Belongs on the Dashboard
Tracking utilization tells you nothing about whether projects make money. The dashboard service businesses actually need has six metrics — and most teams aren't tracking any of them.
Thread Transfer
Operations Systems for SMBs
A 22-person creative agency we looked at last quarter had a dashboard. Big TV in the war room. Three numbers on it: billable utilization (74%), pipeline value ($1.8M), and MRR-equivalent recurring ($42K). Leadership stared at it every Monday for two years. Then they ran a single end-of-project profitability pull across 47 closed engagements and discovered 14 of them — roughly 30% — had lost money. Not "thin margin." Lost money. One $89K build had bled $31K in unbilled overruns nobody flagged because the developer assigned to it was still showing 80%+ utilization the whole time.
This is the dirty secret of service-business dashboards: utilization is a vanity metric. It tells you how busy people are. It tells you nothing about whether the work they're busy with is profitable, on scope, or going to invoice. The dashboard that actually moves the needle on a service P&L tracks six things, and most agencies, consultancies, and project-shops aren't tracking any of them rigorously.
Why utilization-first dashboards fail
The logic of utilization tracking comes from billable-hours culture: every hour a senior is on a client is revenue, every hour they're not is cost. So you maximize the ratio. Clean math, terrible model.
It breaks the moment your delivery is fixed-fee, scope-based, or includes any non-hourly retainer. Utilization in those models can be 95% and the project is still hemorrhaging because:
- Hours logged exceed hours quoted, but nobody re-baselined the project budget
- Scope crept three change-orders ago and the PM never raised an SOW amendment
- The "billable" hours include rework the client refuses to pay for
- Invoicing lags delivery by 45+ days so cash never lines up with effort
- A junior is doing work a senior quoted, and the recovery rate is collapsing
A real project operations dashboard answers a different question. Not "how busy are we?" — but "of the work we're doing right now, which projects are bleeding, which are healthy, who owns the next decision, and what gets invoiced this week?" Those are six related but distinct measurements. Let's go through them.
The six metrics that belong on a service-business dashboard
1. Project margin — live, not retrospective
Margin reported at project close is an autopsy. Useful for learning, useless for intervention. The dashboard needs live margin: actual cost-to-date (loaded labor + pass-throughs) divided by recognized revenue-to-date, refreshed weekly minimum.
Example. A $120K fixed-fee build quoted at 600 hours blended @ $110/hr (loaded cost $66K, target margin 45%). At week 6 the team has logged 410 hours. That's already 68% of the budget burned. Revenue recognized via milestone schedule: $48K (40%). Live margin right now: $48K revenue against $45K cost = 6% margin, not 45%. That's the alarm. Two months before close.
| Project | Budget hrs | Hrs to date | % burned | % complete | Live margin | Flag |
|---|---|---|---|---|---|---|
| Acme rebuild | 600 | 410 | 68% | 40% | 6% | RED |
| Brontide CRM | 320 | 180 | 56% | 55% | 41% | GREEN |
| Vista launch | 240 | 235 | 98% | 70% | -12% | RED |
| Hexyl retainer | 80/mo | 62 | 78% | n/a | 33% | YELLOW |
Two reds out of four. That's the conversation Monday morning should start with — not utilization.
2. Burn rate vs. scope completion
This is the leading indicator that prevents margin from imploding. You're tracking two curves on the same chart: cumulative hours burned vs. cumulative scope completed (deliverables checked off, milestones met).
Healthy projects have the two curves moving in parallel. Sick projects show hours sprinting ahead of completion — that's the early warning, usually 3-5 weeks before live margin reflects the damage. Most teams discover this in retrospectives. They should see it on day 1 of the divergence.
Practical implementation: for every project, define 4-8 milestones at SOW time, each with an estimated effort weight (% of total). Time entries get tagged to a milestone. Dashboard plots both curves. Divergence > 15% triggers PM review.
3. WIP and unbilled revenue aging
Work-in-progress that hasn't been invoiced is a cash flow time bomb. Service businesses routinely carry 30-60 days of WIP. If your team did $180K of recoverable work in May but only $94K hit invoices, you've got $86K stuck in WIP — which is operational cash you've already paid salaries for but haven't collected on.
The dashboard tile should show:
- Total WIP balance (recoverable hrs × billable rate, not yet invoiced)
- Aging buckets: 0-15 days, 16-30, 31-60, 60+
- WIP per PM (accountability — some PMs always lag)
- Trend line over the last 8 weeks
Anything over 30 days needs an explanation. Anything over 60 days is probably going to be written down — confront it now while the client relationship is still warm enough to invoice.
4. Recovery rate (effective billing rate)
This is what your nominal hourly rate actually realizes after writedowns, scope absorbed without change-order, and non-billable rework. The math:
Recovery rate = (Invoiced revenue ÷ Logged billable hours) ÷ Standard rate card
If your senior dev's rack rate is $185/hr and over 40 hours she invoiced $5,920, her recovery rate is $148/hr ÷ $185 = 80%. Anything under 85% across a quarter is a pricing problem, a scoping problem, or a delivery problem. Recovery rate broken out by role and by client shows you exactly which combination is leaking.
| Role | Rack rate | Effective rate | Recovery | Trend |
|---|---|---|---|---|
| Sr. Engineer | $185 | $148 | 80% | ↓ 4pts |
| Designer | $140 | $131 | 94% | flat |
| PM | $125 | $88 | 70% | ↓ 9pts |
| Strategist | $210 | $201 | 96% | ↑ 2pts |
That PM row is the story. 70% recovery and dropping. Either PMs are doing too much non-billable account-management gluework, or scope absorption is being dumped on them. Both are fixable, but only if you can see it.
5. Project health score (ownership + decision velocity)
Margin and burn are quantitative. Project health is qualitative — and it's the metric that prevents the surprise. A simple 5-dimension score, updated by the PM weekly, takes 90 seconds and surfaces 80% of the problems before they become budget catastrophes:
- Scope clarity (1-5): is the current sprint scope written down and accepted by client?
- Stakeholder access (1-5): can we reach the decision-maker within 48 hours?
- Decision backlog (1-5): how many open client decisions are blocking work?
- Team load (1-5): is the assigned team able to deliver at planned cadence?
- Risk register (1-5): are known risks logged and mitigated, or accumulating?
Average score under 3.5 = yellow. Under 3.0 = red, weekly escalation required. The point isn't the score itself — it's that somebody owns the call every week and there's a record. The number of agencies running 12 simultaneous projects with zero documented health pulse on any of them is staggering.
6. Invoicing throughput and DSO
The last metric closes the loop from delivery to cash. You want two numbers:
- Invoicing throughput: dollars invoiced this week vs. trailing 4-week average. Sudden dips = milestones slipping or admin bottleneck.
- DSO (days sales outstanding): average time from invoice issued to payment received, by client and overall.
If your overall DSO drifts from 32 to 48 days over a quarter, you've absorbed weeks of working capital cost without realizing it. A single client at 75-day DSO might be quietly financing themselves on your balance sheet. The dashboard makes it impossible to miss.
What the dashboard looks like, end to end
Put all six on one screen, organized for a 30-second scan by the COO or owner:
| Tile | Question it answers | Action trigger |
|---|---|---|
| Live margin per project | Which projects are bleeding right now? | Red = PM escalation this week |
| Burn vs. scope | Are any projects diverging? | >15% divergence = scope review |
| WIP aging | How much delivered work isn't invoiced? | >30 days = invoice this week |
| Recovery rate | What are we actually charging? | <85% by role = pricing/scoping review |
| Health scores | What's about to go wrong? | <3.5 avg = PM weekly review |
| Throughput & DSO | Is cash flowing? | DSO drift >5 days = collections push |
Notice what's not on this dashboard: utilization, pipeline value, headcount, NPS, average project size. Those are reporting metrics — useful in monthly reviews, not on the operating dashboard. The operating dashboard exists to drive interventions. If a tile doesn't trigger an action, it doesn't belong.
The implementation reality: most stacks can't do this
Here's where it gets ugly. Almost no out-of-the-box tool gives you all six of these in one view. The typical mid-sized agency stack looks like:
- Time tracking: Harvest, Toggl, or Clockify — knows hours, doesn't know margin
- Project management: Asana, ClickUp, Monday — knows tasks, doesn't know money
- Invoicing/accounting: QuickBooks, Xero — knows cash, doesn't know WIP
- CRM: HubSpot, Pipedrive — knows pipeline, doesn't know delivery
Five tools, none of which talk fluently to the others. The data lives everywhere except the dashboard. So PMs Frankenstein together spreadsheets that get updated when they remember, owners look at a different stitched-together view on Monday, and finance has its own pull that lags by two weeks. Three "versions of truth" — none of them current.
The fix isn't more tools. It's a unified operations layer that pulls the relevant signals from each system, normalizes them, and presents the six metrics in one place. That can be a custom-built internal dashboard if you have engineering capacity, a no-code stitched solution (Retool, Airtable + Zapier, Notion + Make), or a purpose-built platform.
The non-negotiables for whichever path:
- Time entries get tagged to project AND milestone, not just project
- SOW data (budget hours, fees, milestones) lives in one canonical place
- Invoices link back to the time/milestones they billed against
- Refresh cadence is daily minimum — weekly is too slow for live margin to be actionable
- Each tile has a defined owner who reads it every week
What this changes about how you run the business
The before/after isn't a tooling change. It's an operating-rhythm change. Once leadership can see live margin, burn divergence, WIP aging, recovery, health scores, and DSO on one screen, the meetings change:
- Monday standup opens with red projects, not pipeline. The conversation is "Acme is at 6% margin with 60% of scope left — what are we doing this week?"
- Mid-week finance check looks at WIP aging and throughput. PMs with anything over 30 days unbilled get a 10-minute call.
- Monthly review is where recovery-rate trends, role-level profitability, and pricing decisions live. Not Monday's problem.
- Quarterly is where you re-baseline rate cards, retire unprofitable client patterns, and decide which service lines actually deserve more investment.
Most service businesses we look at are running all four of those conversations as one undifferentiated Monday meeting — which is why nothing gets resolved and the same red projects show up six weeks later, only worse.
The client-facing layer (often missed)
Bonus metric for the mature operation: a client project portal. Most of the WIP-aging and decision-velocity pain comes from the client side — they're waiting on something from you, or you're waiting on them, and neither knows because the comms are in five email threads and a Slack channel.
A simple portal showing the client: current milestone status, open decisions awaiting their input, hours-to-budget transparency, and current invoice/WIP balance — collapses 40-60% of "where are we" friction. It also forces internal hygiene, because nobody wants to expose a messy project status externally. The portal makes the dashboard data unavoidable, which is what you want.
How OpsMavix approaches this
Most of the agencies and consultancies we work with don't lack data — they lack a system that turns the data into a weekly operating rhythm. OpsMavix builds the unified operations layer that sits on top of your existing time tracker, PM tool, invoicing, and CRM, and surfaces the six metrics above on a single dashboard your PMs and owners actually use. Including the client-facing portal layer when the maturity is there for it.
The pattern we see repeatedly: a 15-40 person services business runs roughly 5-8 hidden margin leaks at any given time — usually some combination of scope absorption, WIP that never invoices, juniors doing senior-quoted work, and DSO drift on two or three "big" clients. The total annualized leak is almost always 8-15% of revenue. On a $4M shop, that's $320K-600K a year going invisible. The dashboard finds it. The operating rhythm fixes it.
If you want to know where your specific leaks are before committing to anything, the Operations Leak Audit at opsmavix.com walks through your current setup, identifies the 3-5 biggest profitability holes in your delivery process, and gives you a prioritized fix list whether you work with us or not. No deck, no pitch — a working document you keep. Start there, see what you're missing, decide what to do about it.
Learn more: How it works · Why bundles beat raw thread history