Skip to content
Resources

How do you calculate project profitability at an agency?

The full formula, with a loaded hourly cost and real utilization, a worked example with numbers and what to check every week while the project runs.

editorial team

Why project margin usually lies

At many agencies, project profitability is worked out as the fee minus hours times salary. The number looks healthy and is almost always wrong. It leaves out the two things that matter more than any estimating mistake: what an hour of work really costs, and how many paid hours ever reach an invoice.

A person doesn't cost only their salary. They also cost payroll taxes and benefits, a share of rent, software, accounting and the management hours nobody bills. And they don't work 2,000 hours a year for clients: between holidays, internal meetings, proposals and training, a large part of their time never lands on an invoice. Leave those two figures out and every project looks profitable until you close the year.

The formula, step by step

This method works in a spreadsheet with numbers you already have. Do it once per person or per role, and again when salaries or fixed costs change.

  1. Annual cost of the person: gross salary plus payroll taxes and benefits (paid leave, bonuses, social security). Use the cost to the company, not their take-home pay: Time Tackle puts it at 25% to 40% above base salary in most cases.
  2. Overhead per person: add rent, software, accounting, equipment and the salaries that don't bill (leadership, admin), then divide by the number of people who do bill.
  3. Real billable hours: paid hours per year less holidays and leave, multiplied by utilization (the share of those hours charged to a client).
  4. Loaded hourly cost: (annual cost of the person + overhead per person) ÷ real billable hours.
  5. Project cost: each person's logged hours × their loaded hourly cost, plus the project's vendors and outside costs.
  6. Project margin: (fee − project cost) ÷ fee.

A worked example

Example data. A designer who costs the company $2,600 a month (salary plus taxes and benefits) costs $31,200 a year. If the agency's overhead comes to $900 a month per billing person, that adds $10,800. Her total cost is $42,000 a year.

Assume 1,880 paid hours after holidays and leave, and 65% utilization: that leaves 1,222 billable hours. Her loaded cost is about $34.40 an hour (rounded). Worked out from salary alone over 2,000 hours, it would come to $15.60, less than half.

Now the project: a $12,000 fee, 260 budgeted hours and $1,000 for an outside vendor. At the loaded cost the project costs $9,944 and keeps a 17% margin. If the hours run to 320, which is what happens when scope grows without a change order, the cost rises to $12,008 and the margin is −0.1%. Sixty extra hours are enough to do the work for free.

Utilization moves the result more than anything else. In SPI Research's professional services maturity benchmark, as summarized by Certinia, billable utilization across 509 firms fell to 66.4% in 2025, the lowest in the survey's history. Every point you lose raises the cost of every hour, on every project at once. And there isn't much margin to spare: per the Promethean Research study Agiled cites, the average digital agency earned a 13% after-tax net margin in 2025.

Then add it up by client, not only by project. A client with three profitable projects and a retainer that eats forty unbilled hours a month can still lose money, and you only see it when every project and every retainer sits in the same total.

What to check while the project runs

The calculation at close is for learning. The one that changes the result is the one you run while scope or price can still move. A ten-minute weekly review is enough if you look at these:

  • Hours used against real progress: if you've burned 60% of the hours and done 40% of the work, the project is already losing.
  • Scope changes in writing: every new client request is quoted or logged as a change order before anyone starts it.
  • The rate in effect on the day of each hour: a raise mid-project changes the cost of the hours left, not of the hours already logged.
  • Outside costs and software charged to the client: if you don't know what you pay per person in tools, the free stack audit gives you annual spend and cost per person from your own numbers.
  • A date to decide: when projected margin drops below your floor, either cap the remaining work or re-price it with the client.

Where Flow* does it for you

The spreadsheet works until you have thirty active projects and nobody opens it in time. In , the same arithmetic runs while the project does. Each logged hour is priced at the rate in effect that day and netted against the fee, vendors, expenses and overhead per hour are added, and the project flags itself at risk when hours burn faster than the timeline. With , tool costs reach each client's margin too.

An honest note: clients, projects and the rate card are entered by hand in , so plan a few hours for setup. Tasks do import from an Asana, monday.com or ClickUp CSV export.

Sources

  1. Certinia, Analyzing the 2026 SPI Research Professional Services Maturity Benchmark report, read 2026-10-19
  2. Agiled, Agency profitability statistics, read 2026-10-19
  3. Time Tackle, Labor cost formula, read 2026-10-19