All articles

Profit & margins

Job Costing for Creative Agencies: How to Track Profit by Project

A monthly P&L tells you the agency made money. It won't tell you which project made it and which one quietly lost it. Here's the burdened labor rate formula, the cost buckets, and a worked example.

7 min read

By Joshua Barnett · Founder, ThinkProfit · Digits Partner · Certified QuickBooks ProAdvisor

October 27, 2026

Job costing answers a question most agency P&Ls can't. A monthly P&L shows total revenue and total cost for the business. It doesn't show that a $40,000 rebrand returned a 54% margin while an $18,000 landing page build lost money once a contractor overrun hit. Job costing for creative agencies breaks revenue and cost down to the individual project, so profit shows up where it's actually made or lost, not buried in an aggregate number that happens to look fine. Here's how to set it up, the formula for a burdened labor rate, and a worked example at $45,000.

What job costing actually means for an agency

Job costing is the practice of assigning every dollar of cost to the specific job that caused it, then comparing that total against what the job billed. It's different from the view in a per-client P&L, which rolls up every job and retainer for one client over a period. Job costing is narrower and more useful for spotting problems early: it tells you that the specific video campaign you delivered in September ran at a 22% margin while your average project margin is 50%, which is a scoping or staffing problem on that one job, not a client problem.

The three cost buckets that belong in a job cost

Direct labor is hours worked on the job, multiplied by a burdened hourly rate (the formula is below), not the person's base pay rate. Direct costs are contractor and freelance invoices billed specifically to that job, plus hard costs: stock footage and photography licenses, fonts, paid software seats bought for the engagement, and any media spend the agency is covering rather than passing through at cost. Leave general overhead, rent, admin salaries, and software used agency-wide out of the job cost. Full-absorption costing that spreads overhead across every job adds complexity most agencies don't need for internal decision-making, and it buries the signal you're actually looking for.

Calculating a burdened labor rate

Everything in job costing depends on this number, and it's not the employee's hourly pay rate. The formula: burdened hourly rate equals (annual salary plus payroll taxes plus benefits load), divided by billable hours per year. Take a strategist earning $85,000. Payroll taxes run about 7.65% ($6,503). Benefits, workers' comp, and software seats typically load on another 15-20% ($12,750-$17,000). That puts fully burdened annual cost around $104,000-$108,500. Divide by realistic billable hours, usually 1,400-1,600 a year after accounting for holidays, PTO, and non-billable internal work, and you land on a burdened rate of roughly $65-$77 an hour. Across a typical creative agency, burdened rates run $55-$95 an hour for mid-level creative and strategy staff, and $90-$150 for senior strategists and creative directors. Compare that against the billable hours assumptions in agency utilization rate benchmarks before you lock in a number, since an unrealistic utilization assumption understates the real cost of every hour on a job.

Setting up job costing in your tools

Job costing only works if time and expenses actually tag to a job code, which means the setup has to happen before the work starts, not after. Give every project or retainer service line a unique job code. Tie your time tracking tool (Harvest, Everhour, or whatever your project management platform includes) to that code so every logged hour carries it automatically. In QuickBooks Online, use the Projects feature to group transactions by job; in Digits, tag bills, invoices, and time entries by class or job dimension so they roll up the same way. Your chart of accounts should already separate cost of delivery from overhead; job costing adds a second dimension underneath that, splitting cost of delivery further by which job it belongs to.

Worked example: a $45,000 campaign project

A $45,000 integrated campaign project. Labor: 220 hours across strategy, creative, and production, blended at a $70 burdened rate, for $15,400. Contractors: a freelance video editor billed $4,200 directly to the job. Hard costs: $800 in licensed stock footage. Total direct cost: $20,400. Gross margin on the job: 55% ($24,600 on $45,000 revenue), which lands in the healthy 50-60% range most creative agencies should target per project. Now run the same job with 40 hours of unbilled scope creep added at the same $70 rate. That's another $2,800 in labor with no matching revenue, which drops the margin to roughly 48%, still acceptable but a six-point swing from one round of client-requested revisions that never got billed separately.

Reading the report and acting on a losing job

Run a job profitability report at month-end close, listing every active and closed job with budgeted hours versus actual hours and resulting margin. Flag anything under 40% margin for review the same month, not at year-end, when there's no chance left to fix the specific job. If a job type underperforms repeatedly, like every website build coming in 15 points below target, the fix is either the estimate or the scope language in the contract, not a one-off apology to the client. This is also the reporting layer a fractional CFO for marketing agencies typically builds and reviews monthly, since job-level margin erosion is one of the earliest signals that overall agency profitability is about to slip, well before it shows up in the top-line P&L.

Want to know which projects are actually making you money?

We'll set up job costing on your books, build the burdened labor rates, and hand you a monthly report that shows margin by project, not just by month.

Frequently asked questions

What's the difference between job costing and a per-client P&L?

Job costing tracks profit at the project level, one engagement at a time. A per-client P&L rolls every job and retainer for a single client into one view over a period, usually a month or quarter. You need both. Job costing tells you a specific rebrand lost money because of scope creep. The per-client P&L tells you whether that client is still profitable overall once you count the three other jobs that came in above target.

Do I need job costing if I only bill retainers, not one-off projects?

Yes, especially if a retainer bundles multiple service lines like SEO, paid media, and content under one fee. Treat each service line as its own job for the month. Without that split, a retainer can look profitable in total while one service line inside it is quietly running at a loss and getting subsidized by the others.

How often should I run a job costing report?

Monthly at minimum, tied to your close process. For projects longer than four to six weeks, check job cost against the original estimate at the midpoint too, not just at close-out. Catching a labor overrun at week three means you can still have a scope conversation with the client. Catching it after final invoicing just tells you what you already lost.

About the author

Joshua Barnett is the founder of ThinkProfit, a bookkeeping and fractional CFO firm for marketing agencies, SaaS companies, and digital businesses. He is an official Digits Partner, a certified QuickBooks ProAdvisor, and previously ran the financial side of an M&A firm that acquired and operated digital marketing agencies.

ThinkProfit builds the systems that show you real project margin, not just a monthly total. Get a free quote to see what it would cost for your agency.