Month-End Ad Spend Reconciliation: A Finance Checklist for Agencies

Ad spend reconciliation is the month-end control that proves three records agree: what each advertising platform reported as delivered spend for the period, which charges cleared against the card, and what the ledger and the client invoice say. The method is to freeze the period, pull platform and card data across the same date range, match them at the account level, then resolve only the lines that fail to match instead of re-checking every transaction. A month is closed when every remaining difference has been explained, accrued, or written off inside a documented threshold.
Advertising is billed differently from almost every other line in an agency ledger. Meta, Google Ads, TikTok, Amazon Ads, and LinkedIn charge against spend thresholds and account billing dates rather than on a monthly invoice cycle, so one charge can straddle two reporting periods and one period can carry charges for media that ran in another. Under accrual accounting, the Internal Revenue Service treats an expense as incurred when the service is provided rather than when the card clears, which is why no period can be closed on card postings alone. For agencies that bill clients on actual spend, the distance between delivered media and posted charges is also the exact number a client finance team will question.
Key Takeaways
Card architecture solves attribution, meaning whose spend a charge is, but it does not solve cutoff, meaning which period that spend belongs to.
Advertising platforms charge against billing thresholds and account billing dates, so the charges that post inside a calendar month rarely equal the media delivered inside it.
Under the accrual method set out in Internal Revenue Service (IRS) Publication 538, economic performance occurs as services are provided, so delivered media belongs to the period it ran in.
Matching at the account level and investigating only the failures is faster and more accurate than re-checking every line, provided a written materiality threshold decides what gets chased.
A close is defensible when every unmatched difference is explained, accrued, or written off, and the reasoning is filed with the period rather than left in someone's inbox.
Accounting integrations code transactions to accounts, but they do not set your cutoff or decide which period a straddling charge belongs to.
What Does Month-End Ad Spend Reconciliation Actually Close?
The close proves that delivered media, posted charges, and billed amounts describe the same period. Most agency finance teams inherit a process that checks only the second of those three, which is why the books balance and the client invoice still gets challenged.
Why Attribution and Cutoff Are Different Problems
Attribution answers whose spend a charge is. Give every client and platform its own card and the answer arrives with the transaction, which is why separating client budgets removes most of the manual sorting from a close.
Cutoff answers a different question: which reporting period does this spend belong to. A card cannot answer that, because the date a charge posts is set by the platform's billing trigger, not by the dates the ads ran. Two agencies with identical card structures can close the same month at different numbers purely by choosing different cutoff rules.
That distinction matters most at the period boundary. Media delivered on the 29th and 30th may post on the 3rd of the following month, and a threshold charge that clears on the 1st may cover 9 days of the month that just ended.
What Counts as a Closed Month
A closed month has 4 properties, and a checklist that stops short of all 4 will reopen. Every platform account has been matched to card activity for the same date range, every difference has a written reason, accruals are posted for delivered media not yet charged, and the client invoice ties to the same figures the ledger carries.
Why Do Platform Reports and Card Charges Disagree?
They measure different events. Platform reporting measures media delivered on a date, while a card charge measures money moving when a billing trigger fires, and those two clocks are not synchronized.
How Threshold Billing Splits a Month
Most large advertising platforms bill on a threshold rather than a monthly invoice. Google's own automatic payments documentation states that you are billed 30 days after your last automatic payment, or when costs reach your billing threshold, whichever comes first.
That single rule produces most period-boundary noise. An account spending well above its threshold is charged repeatedly through the month at amounts that correspond to the threshold, not to any campaign, week, or calendar boundary. The final charge of a period almost always contains delivered media from both months, and billing threshold settings rise with payment history, so the split moves as an account matures.
Different platforms trigger differently, which compounds the effect across a multi-platform client. Our reference on how platforms bill covers the mechanics account by account.
Where Refunds, Credits, and Taxes Land
Refunds and account credits rarely appear in the period that produced them. A credit issued for an over-delivery in one month can post against the following month, which makes delivered media look lower than it was and understates the client's true cost for the period you are closing.
Taxes and platform fees add a second layer. Some platforms report spend net of tax and charge gross, so the card figure exceeds the reported figure by a predictable percentage. Identify which of your platforms do this once, record the rule, and stop investigating the same variance every month.
Comparing the Two Records Side by Side
Before you can pick a number for the invoice, be explicit about what each record is actually telling you. These are the 6 properties that decide which source wins a disagreement.
|
Property |
Platform-Reported Spend |
Posted Card Charges |
|---|---|---|
|
What it measures |
Media delivered in a date range |
Money captured when a billing trigger fires |
|
When it is recorded |
The day the impressions or clicks served |
The day the threshold or billing date is reached |
|
Granularity available |
Campaign, ad set, and day |
Merchant, amount, and posting date |
|
Why it differs |
Excludes tax in some markets, includes over-delivery |
Bundles multiple days, carries tax and fees |
|
Main weakness |
Can be restated after the fact |
Cannot say which days it covers |
|
Best use |
Accruals, client reporting, and variance analysis |
Cash control, fraud detection, and ledger entries |
Which Number Belongs on the Client Invoice?
Bill delivered media for the period, not charges posted in the period, whenever your contract bills on actual spend. That choice follows the accounting standard rather than convenience, and it survives scrutiny from a client's finance team.
Applying the All-Events Test to Media Costs
IRS Publication 538 sets 2 requirements for an accrual-method expense: all events have occurred that fix the fact of liability, and the liability can be determined with reasonable accuracy. It adds that where an expense is for services provided to you, economic performance occurs as those services are provided.
Applied to media, impressions served in the period satisfy both tests. The liability is fixed when the platform delivers, and the amount is determinable from platform reporting, so the expense belongs to the month the ads ran regardless of when the card cleared.
Writing a Cutoff Rule You Can Repeat
Write the rule down in 1 paragraph and apply it to every client without exception. State the source of truth for delivered spend, the date range, the time zone the platform reports in, and the treatment for charges that straddle the boundary.
Time zone is the detail teams most often skip. Platforms report in an account time zone that may differ from your accounting calendar, and a few hours of difference moves real money at high daily spend. Confirm the reporting time zone on each account once, then record it beside the account in your close file.
How Do You Run the Close, Step by Step?
Run the close as a 5-day sequence that moves from mechanical matching to judgment. The order matters, because working exceptions before the data is complete creates rework.
Days 1 and 2: Freeze, Pull, and Match
Freeze the period first by confirming no one will adjust budgets or campaign dates retroactively. Then pull delivered spend by account for the exact date range, export card transactions for the same range, and match at account level rather than transaction level.
Account-level matching saves the most time. You are not proving that a specific $743 charge equals a specific day of delivery, only that the account total reconciles within your threshold.
Days 3 and 4: Work the Exception Queue
Investigate only the accounts that failed to match. For each one, check the boundary charges first, then refunds and credits, then tax treatment, then genuine errors such as a charge on the wrong client's card.
Most exceptions resolve in the first check. Boundary timing explains the majority of variances on high-spend accounts, and once you have confirmed which days a straddling charge covers, the account usually clears.
Day 5: Accrue, Code, and Sign Off
Post accruals for delivered media not yet charged, reverse the prior period's accrual, and code the month. A QuickBooks transaction sync removes the data entry from this step, though the accrual judgment stays with your team.
Sign-off should name a person and a date. An unsigned close is one nobody owns, and ownership is what makes the file useful when a client later questions a charge.
What Do You Do With Transactions That Never Match?
Accept that a small residual will not resolve, and handle it with a rule instead of an investigation. The goal is a defensible position on every line, not a perfect tie on every line.
Setting a Materiality Threshold
Set a threshold as a percentage of account spend with an absolute floor, then stop chasing anything below it. A variance worth less than the labor required to explain it should be written off to a named account and reviewed in aggregate each quarter.
Review the aggregate rather than the individual write-offs. A pattern of small unexplained differences on 1 platform is a real finding, even when no single line justified the time.
Documenting an Exception for Later Review
Record 4 things for every exception you clear: the amount, the accounts involved, the reason, and the evidence you checked. Store it with the period rather than in a message thread, because the person who answers the client's question in 6 months is often not the person who cleared the item.
Close Your Month on Card Data That Arrives Pre-Attributed
Cutoff is judgment your team will always own, and attribution is work you can stop doing. Our agency spend platform issues unlimited virtual cards with no annual fee and no per-card fee, so you can run 1 card per client per platform and have every transaction arrive already carrying its client, its platform, and its card reference.
What We Handle and What Stays With Your Team
We provide the card infrastructure, the spend controls, and the accounting sync. You configure the card structure, set the limits and merchant restrictions, and decide the cutoff rule that governs your close.
The Opal Card is a pay-in-full charge card issued by First Internet Bank of Indiana, Member Federal Deposit Insurance Corporation (FDIC), pursuant to a license from Visa Inc., with credit provided by CapitalOS. Your full statement balance is automatically debited on each monthly payment due date, card use is limited to supported advertising and media platforms, and eligible advertising spend earns up to 2% cashback at a rate confirmed when your application is approved. Unlimited virtual cards, spend controls, and real-time visibility are included rather than priced as add-ons, while Ad Pay, our separate early-access product for paying platform invoices, carries a per-payment fee.
Cleaner card structure also improves the reports your clients see. Our guide to client-facing spend reports covers the format that holds up under finance review.
Questions Finance Teams Ask About the Monthly Close
These are the questions that come up most often once a team starts treating the close as a control rather than a chore. Each answer assumes you bill clients on actual spend and report on an accrual basis.
How Long Should a Monthly Close Take for an Agency?
A close should take 5 business days or fewer once matching is done at account level and only exceptions are investigated. Agencies running dedicated cards per client and platform typically finish faster, because attribution is already resolved and the remaining work is boundary timing, refunds, and tax treatment rather than sorting.
Should I Bill Clients on Platform Spend or Card Charges?
Bill on delivered platform spend for the period when your contract bills on actual spend. Card charges are triggered by billing thresholds rather than campaign dates, so they routinely include media from an adjacent month. Platform reporting matches the period the client is paying for, and it is the figure that supports an accrual.
What Is a Reasonable Variance Between Platform and Card Totals?
There is no universal figure, so set your own threshold as a percentage of account spend with an absolute floor beneath it. Boundary timing, tax treatment, and credits explain most variance. What matters is that the rule is written down, applied to every client, and reviewed in aggregate each quarter.
Does an Accounting Integration Close the Month for Me?
No. An accounting sync moves transactions into your ledger with merchant, amount, date, and card reference attached, which removes data entry and categorization. It does not decide which period a straddling charge belongs to, post your accruals, or resolve a platform credit, and those judgments stay with your finance team.
Why Does the Platform Say One Number and the Card Say Another?
Because they measure different events. Platform reporting records media delivered on a given date, while a card charge records money captured when a spend threshold or billing date triggers. Add tax treatment, refunds landing in later cycles, and over-delivery, and a gap between the 2 totals is normal rather than an error.
How Do I Handle a Charge That Covers Two Months?
Split it by delivered spend rather than by days. Pull the platform's daily delivery for the dates the charge covers, allocate the charge across both periods in proportion to that delivery, and record the calculation with the period. Proportional allocation is defensible because it follows the same principle the accrual rests on.
Can I Close Faster by Reconciling Weekly?
Yes, and continuous matching is usually the single biggest improvement available. Reviewing card activity against platform delivery each week turns the close into a confirmation rather than an investigation, and it surfaces declines, duplicate charges, and miscoded cards while they are still cheap to fix.




