Spend Management for Marketing Agencies: How to Bill Client Costs Cleanly

Published May 1, 2026 · 7 min read · By the Becision team

If you run a marketing agency and have ever found a $1,400 stock-asset purchase three months after the fact that should have been billed back to a client but never was, this guide is for you.

Marketing agencies — especially services agencies between 5 and 50 people — have a uniquely confusing spend management problem. You're not just tracking your own expenses; you're tracking pass-through costs that should hit client invoices. The difference between doing this well and doing it poorly is often the difference between 25% and 35% net margins.

Why agency spend is harder than other small businesses

A few things that make this category distinctive:

The result: most agencies leak 3–8% of project margin to expenses that should have been billed back to clients but weren't.

The two cost streams agencies have to track

To manage agency spend, separate it into two distinct streams from day one:

Stream 1: Internal / overhead

Your operating costs: software, office, employee tools, internal services. Approved against your overhead budget. Doesn't hit client invoices.

Stream 2: Client-billable / pass-through

Costs incurred specifically for a client engagement that will be billed back. Stock photography, paid ad spend, contractor work, software subscriptions purchased for a specific project, freelance design or copywriting, third-party platforms.

These should be:

Mixing these two streams in one approval queue is the first mistake most agencies make. Separating them at request time saves hours of detective work later.

The 5-step agency spend workflow

Step 1: Configure two request types

In your approval system, create two request types:

This single change fixes 70% of agency spend chaos.

Step 2: Set client budgets at SOW signing

When you sign a new client engagement, capture in your system:

Now any client-billable request can be checked against the SOW budget at submission time.

Step 3: Different approval thresholds for the two streams

Common pattern that works for agencies:

Internal:

Client-billable (within SOW budget):

The key insight: account managers should have authority to spend within their client's budget. Routing every $200 stock photo through the founder is the bottleneck that kills agencies.

Step 4: Mandatory project tagging at request time

Every client-billable request requires:

If your system doesn't enforce these at submission, you'll be reverse-engineering them at month-end. We've seen agency owners spend a full day every month just figuring out which client owns which expense.

Step 5: Monthly reconciliation report for billing

At month-end, pull a single report: "All approved client-billable expenses, grouped by client, with totals and markup applied."

This becomes the line item on your client invoice. With clean data, this takes 15 minutes. Without it, this takes 6 hours and you still miss things.

The expenses agencies most commonly fail to bill

In order of how often they slip through:

  1. Stock assets (photos, video clips, fonts, illustrations)
  2. Ad spend (especially when run through an in-house manager who fronts the cost)
  3. Plugin or tool subscriptions purchased for one project
  4. Freelance subcontractors (writers, designers, developers)
  5. Domain registrations and hosting for client microsites
  6. Software trials that turned into paid subscriptions mid-project
  7. Travel for client meetings or shoots
  8. Translation, transcription, or production services

Set up category templates for each of these so they're easy to capture at request time.

Markup conventions

Most agencies mark up pass-through costs to reflect the time of managing them. Common markups:

The markup gets complex because some clients negotiate it down or out at SOW signing. Your system should let you set markup per project (or per category within a project), not just one global number.

Where agencies leave money on the table

Three patterns we see consistently:

Pattern 1: The "I'll bill it later" expense. Account manager pays for something out of pocket or on a personal card, intends to bill it back, forgets. Three months later it's surfaced in their expense report and the client billing window has passed. Lost revenue.

Fix: Require the request to go through the system before the purchase, even if reimbursable. The request creates the pre-billing record. Even if the receipt comes later, the billing trigger is already in motion.

Pattern 2: The undocumented markup waiver. Client says "let's just do this at-cost." Account manager agrees verbally. No record exists. Eight months and four similar conversations later, the agency has burned 5% margin on this client without realizing it.

Fix: Markup waivers must be documented in the system, ideally tied to a specific change order or written client communication. Verbal "we'll just absorb it" decisions add up.

Pattern 3: The category creep. A client signed a SOW for design services. The agency starts doing strategy work, social media management, and content production for the same client without amending the SOW or its budget. Internal hours and pass-through costs balloon. The client gets a surprise true-up invoice and is unhappy.

Fix: Hard limit on out-of-scope expenses. Any client-billable purchase that doesn't map to an approved SOW category gets escalated to the owner and triggers a client scope conversation.

The right tooling

Most off-the-shelf approval software doesn't handle agency-specific needs out of the box (client + project + markup tracking). You're left either retrofitting a generic tool or buying agency-specific PSA software (Wrike, Workamajig, Function Point, etc.) which is heavy and expensive.

A pragmatic middle path: a simple, configurable approval tool that lets you tag purchases with custom fields (client, project, markup) and exports clean data to your accounting and billing systems.

Becision supports custom fields and tagging for exactly this use case. You can set up the two-stream workflow above in an afternoon. Free for small teams. Try it →

What good looks like

After 90 days of running this workflow, agencies typically report:

For a 20-person agency, recovering even 3% of margin previously lost to billing leakage is typically $30,000–$80,000 per year. The tool pays for itself in the first month.

Related reading

Try Becision free

The purchase approval app for small teams. Web + mobile. No credit card required.

Get started free →

Keep reading

Free Vendor Onboarding Checklist for Small Businesses (2026)

A complete, free vendor onboarding checklist for small businesses. Covers W-9, COI, payment terms, banking info, compliance — everything you need before paying a new vendor.

May 1, 2026 · 7 min read

Three-Way Match Explained: A Plain-English Guide for Small Business Owners

A clear, practical explanation of three-way match in accounts payable — what it is, why it matters, and how to do it without spending six figures on enterprise software.

May 1, 2026 · 6 min read