Project profitability at a small agency is the margin left on a piece of work after the costs that belong to it: freelancers, media, production, software and the share of salaried time it used. Client profitability is the same calculation across everything you do for one client in a period. Most guides on the subject assume you run timesheets. Most agencies with fewer than twenty people do not, and the ones that try stop within a quarter. This guide shows how to get a reliable margin per project and per client from the records you already create, which invoices, bills, expenses and payroll runs, using numbers a Dubai or Riyadh agency would recognise.

Why the P&L is not enough

An agency P&L in September might show AED 180,000 revenue, AED 120,000 costs and AED 60,000 profit, a 33% margin. That is a healthy month. It can also hide that:

The agency is profitable and one third of its work is not. You cannot fix that from the P&L because the P&L does not know which client a cost belonged to.

The formula

For a project or a client over a period:

Profit = revenue billed − direct costs − allocated team cost

Two margins matter:

MarginFormulaHealthy range for a small agency
Delivery margin(Revenue − direct costs − allocated team cost) ÷ revenue50% or better on projects
Gross margin(Revenue − direct costs) ÷ revenue65% or better, higher for retainers

The ranges are typical, not rules. A production-heavy agency will run lower gross margins and should hold a higher fee percentage on the pass-through.

Allocating team cost without timesheets

Three methods, from roughest to most accurate. Pick the one your team will actually keep doing.

1. Headcount split

Assign each salaried person a percentage per client for the month, agreed in a five-minute conversation. An account manager on three clients might be 50 / 30 / 20. Multiply by their monthly cost. Update it when scopes change. This is crude and it is still far better than nothing.

2. Retainer-weighted split

For retainer-heavy agencies, allocate each person's cost across their clients in proportion to the retainer fees. It assumes bigger retainers use more time, which is usually true, and it needs no input at all once set up.

3. Deliverable counting

Count the deliverables produced per client in the month, weight them by type (a video counts more than a story), and allocate cost by weighted share. More accurate for content agencies, and the counts already exist in your reports to the client.

Whichever you choose, post the allocation as a payroll cost against the project or client in your books, monthly. If it lives in a spreadsheet it will not be there in March when you need it.

A worked example

A Dubai agency, one month, two clients.

Client A, retainer. AED 24,000 per month for social and content.

Client B, project. Website build, AED 60,000, billed in three milestones. Two milestones billed this month, AED 40,000.

Client A (AED)Client B (AED)
Revenue billed24,00040,000
Freelancer bills3,00018,000
Software and stock6001,200
Allocated team cost9,50019,000
Profit10,9001,800
Delivery margin45%4.5%

Client B looks like the bigger account and is barely profitable, and the third milestone will land next month with the remaining freelancer bill against it. Whether the project ends positive depends on that last AED 20,000 and how much more freelancer time it takes. That is the conversation to have now, not after delivery.

From the platform: in Staks, every invoice, bill, expense and payroll run can be tagged to a project, and the project sits under its client. The project profitability report and the client profitability report are built from those tags, so the table above is what you see when you open them, without a timesheet or a spreadsheet.

Multi-currency changes the answer

A Riyadh client on SAR, a freelancer paid in USD and books in AED means the margin depends on the exchange rates on the dates things happened. Two rules:

  1. Record each transaction at the rate on its own date. The SAR 90,000 invoice is worth a specific AED amount on the invoice date and a slightly different one when the payment arrives. The difference is a realized gain or loss and it belongs to that client.
  2. Do not measure margin at a single month-end rate. It flatters or punishes clients depending on which way the currency moved that month.

If your accounting tool stores the rate on every transaction, this is automatic. If it does not, budget an hour per month to correct it by hand, and expect to stop doing that by month three.

What to do with the numbers

Once you can see margin per client, the decisions are mostly obvious.

Setting this up in a week

DayTask
1List clients and open projects. Decide which costs are direct and which are overhead.
2Tag every open invoice, bill and expense to a project. Anything unassignable goes to overhead.
3Choose an allocation method for team cost and set the percentages.
4Post last month's payroll allocation against projects.
5Run the report, sort by margin, and book the two conversations that fall out of it.

Frequently asked questions

Do I need time tracking to measure project profitability?

No. Time tracking gives a more precise team-cost allocation, at the price of everyone filling in a timesheet. For agencies under about twenty people, a monthly percentage allocation is accurate enough to make pricing and staffing decisions, and it actually gets done.

Should pass-through media count as revenue?

Only the mark-up or fee. Counting a AED 200,000 media budget as revenue inflates the top line and makes a 10% fee look like a 90% cost ratio. Keep it on separate lines and report it separately.

What margin should a small agency in the UAE or Saudi Arabia aim for?

Typical targets are 50% or better delivery margin on projects and 20 to 30% net margin for the agency after overhead. Retainers usually run higher than projects because the scope is stable. Treat these as ranges to compare your own clients against, not benchmarks to publish.

How do I handle a project that spans several months?

Tag every month's costs to it and recognise revenue by milestone. Look at the running margin monthly and the final margin at close. A project that looks bad in month one because the kickoff freelancer bill landed early often ends fine; a project that looks bad in month three usually does not.

Staks gives you project and client profitability from the invoices, bills and payroll you already record, with the exchange rate stored on every transaction. Start a free 14-day trial. No credit card required.