Your agency just had its best month ever. You invoiced $180,000 across six retainer clients and two project milestones, the bank balance looks great, and your P&L shows a healthy profit. Then your accountant asks a question that ruins the mood: "How much of that $180,000 did you actually earn this month?"
If your honest answer is "all of it, because I billed it," you have a revenue recognition problem — and it's one of the quietest ways a profitable-looking agency ends up in a cash crunch, fails a bank covenant, or gets a nasty surprise during due diligence for an acquisition. The rule you're bumping into is ASC 606, and despite being over a decade old, it remains one of the most misapplied standards in the agency world. Retainer-based businesses with evolving scopes of work make it especially easy to get wrong.
This isn't an abstract compliance issue. Get retainer accounting wrong and you'll misjudge which clients are actually profitable, overstate your runway, and hand your bank or a potential buyer financials that don't hold up.
Why "Invoice It, Book It" Is the Wrong Instinct
Most agency owners learn accounting informally — QuickBooks, a bookkeeper, maybe a part-time controller. The mental model is simple and intuitive: money comes in, revenue goes up. It matches how a freelancer or a retail store thinks about income, and it's wrong for a services business with obligations that stretch across time.
The formal principle behind ASC 606 is that revenue should be recognized only when a performance obligation is satisfied — when you've actually delivered the promised work — not when cash lands in your account or when an invoice goes out. A client paying you $15,000 on January 1st for a month of strategy, content, and paid media management hasn't bought $15,000 of "January 1st revenue." They've bought a month of your team's time and output, delivered gradually as the month unfolds.
The five-step framework, in agency terms, looks like this:
- Identify the contract — the signed SOW or retainer agreement with the client
- Identify performance obligations — what distinct services you've promised (strategy, content, media buying, design, reporting)
- Determine the transaction price — the total fee, including any variable components like media commissions or bonuses
- Allocate the price across those obligations based on their standalone value
- Recognize revenue as each obligation is satisfied — over time or at a point in time
Steps 1 through 4 are mostly a one-time setup exercise per contract. Step 5 is the one that trips up agencies every single month, because it requires you to track delivery, not just billing.
The Two Kinds of Retainers, and Why the Difference Matters
Not all retainers behave the same way under ASC 606, and conflating them is where a lot of agencies go wrong.
Standing-ready retainers. The client pays a fixed monthly fee for ongoing access to your team's capacity — think of a fractional CMO arrangement or an on-call creative team with no fixed deliverable list. Because the obligation is "being available and responsive" rather than "producing X specific outputs," revenue is recognized ratably over the service period. A $10,000 monthly standing-ready retainer produces $10,000 of recognized revenue evenly across the month, regardless of whether week one was slow and week three was slammed.
Activity-based retainers. The monthly fee is tied to a defined bundle of deliverables — four blog posts, two ad creative rounds, a monthly reporting deck, a set number of strategy hours. Here, revenue recognition should track actual completion of those deliverables, not simply the calendar. If the client pays $12,000 for four deliverables and you've completed three by month-end, you've earned $9,000 — the other $3,000 sits as a liability on your balance sheet until it's delivered, even though you already invoiced and collected the full amount.
This second category is where agencies get sloppy. It's much easier to record the whole retainer as revenue on invoice date than to reconcile actual output against the contracted scope every month. But that shortcut is exactly the "advance billing" mistake auditors and acquirers flag first: recognizing full revenue at the moment of invoicing, before the performance obligation is actually satisfied.
The Accounting Mechanics: Deferred Revenue and Unbilled Revenue
Once you separate "cash received" from "work delivered," you need two accounts to track the gap in either direction.
Deferred revenue (a liability). When a client pays you before you've done the work — the typical retainer-in-advance scenario — that cash isn't revenue yet. It's an obligation you owe the client in the form of future work. The entry looks like:
Debit: Cash $12,000
Credit: Deferred Revenue (liability) $12,000Then, as you deliver each piece of the scope through the month, you recognize the earned portion:
Debit: Deferred Revenue $3,000
Credit: Revenue $3,000By month-end, if all four deliverables shipped, deferred revenue for that client is back to zero and $12,000 sits correctly in revenue. If only three shipped, $3,000 stays as a liability — a reminder that you still owe the client work, even though the invoice was paid in full.
Unbilled revenue (an asset), the mirror image. This shows up on fixed-fee or milestone projects where you've done work ahead of your billing schedule — common on a $60,000 brand identity project billed in thirds (kickoff, concept, final) but where your team has already logged three weeks of concept work before that milestone invoice goes out. You've earned revenue you haven't yet billed:
Debit: Unbilled Receivable (asset) $8,000
Credit: Revenue $8,000When the milestone invoice finally goes out, you reclassify:
Debit: Accounts Receivable $20,000
Credit: Unbilled Receivable $8,000
Credit: Deferred Revenue $12,000 (if the invoice includes work not yet started)Keeping these two accounts current every month — not just at year-end — is what turns your monthly P&L from a guess into a reliable signal of how the agency is actually performing.
The Real Cost of Getting This Wrong
This isn't just a technical compliance box to check. Three concrete failure modes show up repeatedly:
You misjudge client profitability. If you're booking full retainers as revenue on invoice date regardless of delivery, a client where your team is chronically behind scope will look just as profitable on paper as one where you're delivering cleanly — until the workload backlog becomes impossible to ignore and margins collapse all at once.
Your cash flow forecast lies to you. Around a third of agencies say cash flow is their biggest constraint on growth, and the root cause is usually structural: revenue recognition, billing timing, and project delivery move at different paces. A P&L that shows revenue the moment cash arrives — instead of when work is delivered — hides the fact that you may be sitting on a growing pile of unfulfilled obligations funded by client cash you've already spent on payroll.
Due diligence gets ugly. If you ever sell the agency, bring on an investor, or seek a line of credit, a buyer's or lender's accountant will reconstruct your revenue on an ASC 606 basis regardless of what your internal books say. Finding out during diligence that a chunk of "revenue" was actually undelivered client obligations is a fast way to blow up a valuation or a term sheet.
A Practical Monthly Checklist
You don't need a Big Four audit team to do this correctly — you need a consistent monthly habit:
- Classify every retainer as standing-ready or activity-based when the contract is signed, not improvised later
- Track deliverables against scope, not just hours logged, for activity-based retainers — a simple shared tracker per client is enough
- Close deferred and unbilled revenue accounts monthly, not just at year-end, so your P&L reflects actual delivery
- Separate pass-through costs (media spend, licensed stock, contractor pass-throughs) from your agency fee when allocating transaction price — bundling them distorts your real margin
- Review contracts for cancellation and refund clauses — a client's right to a refund for undelivered work is exactly the kind of detail that determines whether you can recognize revenue "over time" at all
- Reconcile revenue against work-in-process (WIP) the same week you close the books, not the week before taxes are due
Keep Your Agency's Books as Auditable as Your Client Reports
Agencies obsess over campaign reporting accuracy for clients — attribution, spend reconciliation, performance dashboards — but often run their own books on invoice-triggered guesswork. The same rigor you apply to a client's media reconciliation belongs in your own general ledger, especially once retainer clients, project milestones, and pass-through costs start layering on top of each other.
Beancount.io brings that rigor to your own books with plain-text, version-controlled accounting: every deferred revenue adjustment and unbilled receivable entry is a readable, diffable line you can trace back to the exact contract and deliverable that produced it — no black-box software, no vendor lock-in. Get started for free and see why developers and finance-minded operators are switching to plain-text accounting for exactly this kind of precision.