Two revenue engines, two different mistakes
Nearly every agency runs a mix of monthly retainers and one-off projects, and each goes wrong in the books in its own way. Retainer cash gets booked as income the day it lands, even when the work stretches three months ahead. Project fees get booked the day the invoice goes out, even when the team finished the work weeks earlier. Both errors produce the same defect: a profit and loss statement that describes your invoicing, not your agency.
End-to-End Accounting is our fix: bookkeeping, payroll, financial reporting and tax filing under one roof, with agency revenue recognized when the work is delivered rather than when the money moves.
A prepaid retainer is a liability first
Cash collected for months you have not yet worked is deferred revenue: a balance-sheet liability that releases into income as the hours are delivered. We keep a deferred revenue schedule by client, so at any month-end you can see exactly how much of the bank balance is still owed back in labour. Agencies that skip this step read a strong cash month as a strong month, then hire against money that was already spoken for.
Two tax mechanics ride along with prepayment. HST is due when a retainer is invoiced or paid, whichever comes first, so the 13% on a prepaid quarter is remitted up front even while the revenue sits deferred. And on the corporate return we claim the reserve for undelivered services, so the T2 is not taxing work you still owe.
Project WIP is the mirror image
On milestone-billed projects the distortion runs the other way: the team burns hours for weeks before the next invoice trigger, and that effort is work in progress, unbilled revenue the books should carry as an asset. Tracking WIP by project does two jobs at once. It puts the month's real output on the P&L, and it exposes over- and under-billing while the project can still be steered.
- Under-billed projects are financing your client interest-free; the fix is an invoice, not patience.
- Over-billed projects carry delivery you still owe, the same liability logic as a retainer.
- Scope creep shows up early, as hours accumulating against a milestone that was already invoiced.
| In the books | Prepaid retainer | Milestone project |
|---|---|---|
| Cash arrives | Before the work | After, sometimes long after, the work |
| Balance-sheet account | Deferred revenue (liability) | WIP, unbilled revenue (asset) |
| The risk if ignored | Spending money you still owe in labour | Working for free and finding out late |
| The report that catches it | Deferred revenue schedule by client | Over/under-billing by project |
Keep pass-through media out of the revenue line
When you rebill ad spend, print runs or influencer fees, booking the gross amount as revenue flatters the top line and ruins every ratio built on it. A shop running heavy media can show impressive revenue while its actual fee income barely covers payroll. We separate agency gross income, meaning your fees, commissions and markups, from pass-through billings, so margin and revenue-per-head numbers describe the business you actually run.
Whether media buying also changes what you charge HST on is a contract question, agent versus principal, and it belongs with your tax filings; our agency tax services page treats it in full.
A close that lands by mid-month
The stack is deliberately boring: QuickBooks Online as the ledger, Dext capturing receipts and freelancer invoices, Plooto paying the bench on schedule, and your time-tracking tool feeding the WIP and utilization numbers. Every freelancer payment is tagged through the year, so T4A season in February is an export rather than an archaeology dig.
Each month you get the package an agency can actually steer by: a P&L built on agency gross income, the deferred revenue schedule, WIP and billing status by project, and margin by client. We run this for agencies across Mississauga and the GTA, and the same monthly discipline is what makes year-end corporate tax filing a quiet, predictable event instead of a reconstruction.
