Enterprise DNA
Guide Intermediate Omni Ops

How to Calculate Agency Project Profitability

Learn how to calculate marketing agency project profitability by connecting scoped hours, actual time, contractor costs, and margin alerts.

Sam McKay |
How to Calculate Agency Project Profitability

Project profitability starts with a useful calculation

For an agency owner, project profitability is not just a month-end accounting number. It’s a signal that tells you whether the work you sold is still worth doing at the price you agreed.

The calculation itself is straightforward:

Project gross margin = (project revenue − direct project costs) ÷ project revenue × 100

The difficult part is getting the right costs into that calculation while there’s still time to act. Scoped hours sit in a proposal or project plan. Actual time lives in timesheets. Contractor invoices arrive later. Fees and scope changes may be recorded in a CRM, a contract, or a Slack thread. By the time those details meet in a spreadsheet, the work may already be finished.

For a marketing or creative agency, a project margin view should connect those records and show the likely final result before a project closes. That means tracking the budget against actual time, converting each person’s hours into a cost, adding contractor costs, and updating the expected margin as new information arrives.

If you want the broader operating picture, read how agencies automate project profitability. Here, we’ll focus on the calculation and the workflow that keeps it current.

Decide which costs belong in the calculation

Start by agreeing on the costs that count. If finance and delivery use different definitions of project cost, your margin report will prompt arguments instead of action.

For most agencies, direct project costs include:

  • Internal delivery labor, calculated using each team member’s loaded hourly cost
  • Freelance and contractor costs tied to the project
  • Project-specific expenses, such as stock assets, travel, or production rentals
  • Other direct costs that would not exist if the project had not been sold

Loaded labor cost is more than salary divided by annual hours. It may include employer taxes, benefits, and other employment costs. Finance should set the method and keep it consistent. The aim isn’t to create a perfect costing model on day one. It’s to use the same reasonable method across projects so leaders can compare them.

Keep general overhead separate unless your agency has a clear, consistent method for allocating it. Rent and general management costs matter to agency profitability, but adding a rough share of overhead to every project can obscure whether the delivery itself is healthy. You can review project gross margin alongside agency operating costs without blending the two calculations.

Then define the revenue base. Is it the contracted project fee, approved change orders, or the amount recognized by finance? Pick the figure that matches your reporting purpose. If a fixed-fee project has unapproved out-of-scope work, don’t count that work as revenue until it’s approved.

Work through a simple example

Suppose an agency sells a campaign project for $18,000. The delivery plan allows for 120 hours. The team’s weighted loaded cost is $55 per hour, and the project also has $2,000 in planned contractor costs.

The initial budget is:

  • Internal labor: 120 hours × $55 = $6,600
  • Contractors: $2,000
  • Total direct cost: $8,600
  • Planned gross profit: $18,000 − $8,600 = $9,400
  • Planned gross margin: $9,400 ÷ $18,000 = 52.2%

These figures are illustrative. The important point is to compare actual and forecast costs with the project’s revenue, not just check whether the team has used its hours.

Now imagine the team has logged 105 hours, and the project manager expects another 30 hours to finish. A contractor has also submitted a $2,600 invoice, which is $600 above plan.

The current forecast becomes:

  • Internal labor: 135 hours × $55 = $7,425
  • Contractors: $2,600
  • Forecast direct cost: $10,025
  • Forecast gross profit: $7,975
  • Forecast gross margin: 44.3%

The project’s projected margin has dropped by nearly eight percentage points. There may be a good reason. The client may have approved additional work, or the original estimate may have missed a production requirement. But the owner or delivery lead needs to see the change while there are still options: confirm a change order, reduce remaining scope, adjust staffing, or accept the lower margin deliberately.

That’s what a useful profitability calculation does. It turns scattered project facts into a decision before the final invoice.

Connect the data that changes the answer

A margin number is only as useful as its underlying records. Agencies usually need to connect at least four things.

The scope and fee. Capture the contracted fee, planned hours by role or workstream, planned contractor budget, and any approved changes. If a proposal says “design and delivery” without a workable breakdown, the project starts with a weak baseline. Your team can’t tell which part of the work is using more time than expected.

Actual time. Bring time entries into the project view and assign each entry to the correct project, person, and work type. Hours entered against a general client code can make one project look healthy while another absorbs the cost. A simple weekly review of missing or misallocated time often improves the data more than adding another dashboard.

Labor rates. Apply a consistent loaded cost rate to each person or role. If rates are only updated once a year, the report may not reflect current costs. If you don’t want individual rates visible to delivery staff, keep the rate table controlled by finance and show managers project-level totals.

Contractor costs. Match committed costs and invoices to the project. Waiting for a paid invoice means the report will lag the work. Where possible, include purchase orders, approved quotes, or accrued costs as soon as the commitment is known, then reconcile against the final invoice later.

A project profitability system should also record who changed the fee, budget, or scope and when. That history helps explain why a forecast shifted. It also makes it easier to distinguish an estimating issue from a delivery issue.

For a comparison of tracking approaches, see how agencies track project profitability in real time. The main thing to check is whether each proposed method can show a current forecast, not just a total after close.

Automate the forecast, not just the report

A common first attempt is to automate a monthly report. That can save time, but it doesn’t solve the timing problem if the report only arrives after the project has slipped.

A practical workflow updates the calculation as fresh data comes in:

  1. A project is created from an approved scope, with fee, planned hours, role mix, and contractor budget.
  2. Time entries arrive daily or weekly and map to the right project and workstream.
  3. The system calculates actual labor cost using the agreed rate table.
  4. Contractor commitments and invoices update the project’s direct costs.
  5. The forecast adds remaining estimated hours and expected contractor costs to actual costs.
  6. A margin rule flags projects that are likely to miss their target.
  7. The account manager or delivery lead reviews the reason, records a decision, and updates the client plan or project forecast.

This is where an agent can help. It can pull information from connected project, time, finance, and communication systems, check for missing records, calculate the forecast, and route exceptions to the right person. It should not silently change the scope, approve a write-off, or send a client a financial commitment without human review.

The alert should include enough detail to make the next step obvious. “Margin at risk” isn’t enough. A useful message might show that the project has used 87% of its planned hours, has 65% of the work marked complete, and has another 22 hours forecast to finish. It can also call out a contractor cost that is above budget or a scope change that hasn’t been approved.

If you’re comparing software and workflows, review options for agency project profitability tracking. The key question is whether the process catches an adverse forecast early enough for someone to do something about it.

What the end-to-end agent workflow looks like

Imagine a campaign project with a fee, a role-based hours budget, and a contractor allowance. On Monday, the system imports approved time entries and the latest contractor commitment. It recalculates costs, compares them with the budget, and estimates the hours still needed using the current delivery plan.

The agent finds that strategy has run over budget, while design is still within its allowance. It checks project notes for a recent client request, then prepares a short internal summary:

  • Strategy is 14 hours over the original allocation.
  • The forecast margin is now below the agency’s target.
  • The team recorded a new deliverable request, but there’s no approved change order attached.
  • The account manager should confirm whether the request is in scope before the team proceeds.

The account manager reviews the facts, speaks with the delivery lead, and decides whether to raise a change order or reduce the remaining work. The agent can draft the internal update or the client message, but the account manager approves what gets sent.

That workflow can include an agent to watch account activity and flag a pattern of repeated unplanned asks. Another agent can assemble performance information for the monthly client report, reducing the separate reporting burden on account managers. Those agents support the margin process, but they don’t replace a clear project budget or reliable time entry.

In some agencies, account managers can spend substantial time on reporting and client updates. When that work is manual, the team may notice project drift late because the people closest to the client are busy compiling status decks and Slack updates. Automating the data gathering gives them more room to address the actual delivery decision.

To see how the wider service fits together, visit Omni for marketing and creative agencies.

Set alerts around decisions your team can make

An alert should prompt a useful action, not train people to ignore notifications. Start with a small number of rules that match how the agency manages work.

For example, you might flag a project when:

  • Forecast direct cost exceeds the approved budget by a set amount
  • Forecast margin falls below the project’s agreed target
  • Actual hours reach a chosen share of the budget while substantial work remains
  • Contractor commitments exceed the approved allowance
  • Time entries or cost records are missing for a project that is active

The right thresholds depend on your fee model and delivery cycle. A short design sprint may need a different review cadence from a six-month retainer. Use the first few weeks to see which alerts lead to decisions and which ones are noise. Keep the rule simple enough for a project manager to explain.

Don’t set the only alert at the point where the project is already unprofitable. A project can be below target and still be recoverable. The point is to give the team an early signal, with the numbers and context needed to decide what to change.

A related guide to automating agency project profitability can help you map the operational steps before choosing tools.

The dollar reality for an agency

A few points of margin lost across many projects can add up quickly. The leakage can come from underpriced scopes, extra rounds of revisions, contractor overages, or time that never gets recorded against the work that caused it.

For this vertical, project leakage can vary widely. That’s a planning range for the exposure that can sit across projects and accounts, not a promise that every agency will recover that amount. Your own number depends on project volume, delivery mix, fee discipline, and how often teams identify overruns before the work is done.

A reliable forecast doesn’t automatically raise margin. It gives you a chance to protect it. You can price a new scope using what past delivery actually cost. You can intervene before a team spends another 20 hours on unapproved work. You can also choose to accept a lower margin for a strategic client with the trade-off visible, rather than discover the result after close.

For a closer look at the broader economics, see what automation can cost an agency. Compare implementation and ongoing costs with the time saved and the project losses you expect to prevent. Don’t count the same benefit twice, such as treating both reclaimed account-manager time and reduced reporting labor as separate savings if they’re the same hours.

Use an Omni Audit to map the first workflow

The first step is usually not buying another dashboard. It’s agreeing on the project margin calculation, identifying where its inputs live, and finding the point in the workflow where someone can still change the outcome.

An Omni Audit can help map where project data moves today, prioritize automation opportunities, and identify what to connect and address first.

If you want to test the numbers behind your current process, Book a 60-min Omni Audit. Bring one recent fixed-fee project, its scope, time records, and contractor costs. You’ll be able to see where the calculation breaks down and what an early warning workflow could look like.

You can also see Omni for marketing and creative agencies before booking. The most useful starting project is often one that finished recently, since you can compare its original budget with the final hours and costs.

Keep the calculation close to the work

For every project, make sure the team can answer five questions without building a one-off spreadsheet:

  • What fee and scope were approved?
  • How many hours and contractor costs were budgeted?
  • What has the project actually spent so far?
  • What will it cost to finish?
  • Who needs to decide what happens next?

If those answers are spread across proposals, time tools, invoices, and chat, start by connecting the records and naming an owner for each one. Then calculate actual and forecast margin on a consistent basis. Add alerts once the inputs are dependable.

That sequence matters. An agent can bring information together and point out a likely overrun, but it can’t make unreliable scope, time, or cost records accurate by itself. Start with one project type, check the forecast against actual closeout results, and refine the rules with the team.

When the connection works, owners don’t have to wait for month-end to learn that a project has gone off plan. They can see the gap between scoped hours and actual time, account for contractor costs, and step in while there’s still a choice to make. If that’s the issue you want to address, Book my Omni Audit.