Agency bookkeeping runs into trouble at the exact place agency revenue models get complicated: retainers, deposits, and milestone invoices collected before the work behind them is actually delivered. If every deposit or prepaid retainer gets booked as revenue the moment it hits the bank, monthly profit looks stronger than it actually is — and hiring decisions, owner draws, and tax planning all end up based on a number that doesn't reflect what's actually been earned yet.
The fix is separating retainer, project, deposit, and earned revenue into distinct accounts, and recognizing revenue as it's actually earned rather than as cash arrives. A prepaid retainer that covers three months of work should be recognized across those three months, not booked entirely in the month it was invoiced — otherwise the P&L overstates the month of collection and understates every month the work is actually delivered.
Client-level profitability is where most agencies lose visibility entirely. A single generic P&L can show healthy agency-wide margins while one or two accounts quietly consume excess design hours, freelancer budget, rush software costs, and campaign-management time that never gets billed back. Without tracking income and direct costs by client or campaign, that kind of scope creep is invisible until the team is burned out and the margin is already gone — the agency-wide number simply can't reveal which specific relationships are actually profitable.
The practical version of client-level tracking maps revenue, contractor/freelancer costs, media-spend pass-throughs, software, and direct delivery expenses to each client or campaign, not just to the agency as a whole. That's what turns a monthly report into something that can actually flag "this account needs a scope or pricing conversation" instead of just showing a single blended number that hides the problem.
Contractor and freelancer cost tracking is its own recurring headache for agencies specifically because of how many moving pieces there are: 1099 vendors, client reimbursables, payment-processor fees, ad-platform charges billed through to clients, and a long list of SaaS subscriptions. When all of that lands in broad, undifferentiated expense categories instead of being tracked by vendor and by client, 1099 preparation, reimbursement billing, and margin analysis all turn into a year-end reconstruction project instead of a routine monthly close.
Media-spend reconciliation deserves its own attention: when an agency runs ad spend through its own accounts on a client's behalf and bills it back, that pass-through needs to be tracked separately from the agency's own revenue and expenses. Treating client ad spend as agency revenue (or agency expense) distorts both the top-line and the true margin picture — it was never the agency's money to begin with.
Cash-flow visibility depends on all of the above being accurate: a pipeline of signed retainers and active projects only translates into a reliable cash forecast if the revenue recognition and client-level cost tracking behind it are actually correct. An agency making hiring or expansion decisions off a distorted P&L is making them off a number that doesn't reflect reality.
Our team structures QuickBooks around retainer, project, deposit, and earned-revenue accounts recognized in the correct period, maps costs by client and campaign so profitability is visible account by account, reconciles payment processors and ad-platform pass-through spend monthly, and keeps contractor records organized for 1099 readiness. New clients get a free historical cleanup, so books built around stale deposits and mixed software expenses get rebuilt into a clean baseline that actually reflects the business.
If your agency's monthly numbers currently show total revenue and total expense but not which clients are actually driving margin, a short discovery call is the fastest way to see what client-level profitability reporting would actually surface.
| Practice | Tracked by client/campaign | Tracked agency-wide only |
|---|---|---|
| Retainer/deposit revenue | Recognized as earned, in the correct period | Booked as revenue on receipt, overstating early months |
| Client profitability | Visible per account — flags scope creep early | Hidden inside one blended agency margin |
| Contractor/freelancer costs | Tracked by vendor and by client | Lumped into broad expense categories |
| Media/ad-spend pass-through | Separated from agency revenue and expense | Distorts top-line and true margin if mixed in |
| Cash-flow forecasting | Reflects actual earned pipeline | Based on distorted, cash-basis-only numbers |
An agency-wide P&L can look healthy while individual client accounts quietly lose money — client-level revenue and cost tracking is what actually reveals it.
Frequently Asked Questions
How should agencies recognize retainer revenue?
As it's actually earned over the period the retainer covers, not entirely when the deposit or invoice is collected. Booking a full prepaid retainer as revenue upfront overstates that month and understates the months the work is actually delivered.
Can you show profitability by client or campaign, not just agency-wide?
Yes. We structure QuickBooks around your client and campaign model so direct costs, contractor spend, and revenue can be reviewed account by account, which is what actually reveals which relationships are profitable.
How do you handle client ad spend that runs through our accounts?
We track media-spend pass-through separately from your own agency revenue and expenses, since mixing client ad spend into your own books distorts both your top-line numbers and your true margin.
Do you help with contractor and freelancer 1099 tracking?
Yes. We keep contractor records organized by vendor throughout the year so 1099 preparation is a routine review with your CPA, not a year-end reconstruction from scattered payments.