Why Google Ads spend and bank charges don't match: a worked reconciliation
Follow $2,400 of ad costs to $1,850 of bank charges, with every credit, carried balance and payment accounted for—then reuse the worksheet.
Finance has $1,850 of Google charges for August. Your PPC report says $2,400.
The $550 gap is real. In the invented account below, every dollar has an explanation: two credits, a balance brought forward, a balance left unpaid, and one payment that reached the bank in September. The records agree once those movements are connected.
This example uses one US-billed Google Ads account, USD, automatic payments by card—called postpay in Google’s current US help. Its payment threshold stays at $500 throughout August 2026. It has no taxes, country fees, promotions, refunds, failed payments or currency conversion. All amounts and records are invented, without customer data; the exclusions apply to this example, not all US accounts.
Put the three totals on the desk
| Record | August total | What it measures |
|---|---|---|
| PPC campaign report | $2,400 | Advertising activity dated August 1–31 |
| Google payment receipts | $2,350 | Successful payments Google records in August |
| Bank’s posted card transactions | $1,850 | Charges the bank posts in August |
Start by confirming the same Google Ads customer ID, currency and full account scope. Keep the report’s date range, account time zone, filters and export date with the file. A report filtered to active campaigns can omit costs from campaigns that have since stopped.
For automatic payments, Google charges when the account reaches its payment threshold and on the first day of the month. The threshold triggers collection; it does not define the reporting month. A charge can include an unpaid prior balance, applicable taxes and fees, less adjustments or promotional credits. Google’s postpay charging rules explain why several payments can belong to one month’s activity.
First, make Google’s balance add up
The following is a condensed teaching record, not a Google screenshot or exact export format. Campaign costs are grouped between events; payment and adjustment dates are preserved. A positive running balance means money owed to Google.
In this example, the $2,400 campaign report has been matched to the $2,400 of campaign-cost entries before the two separately listed credits. Do that comparison on your own account before starting the arithmetic.
| Date | Billing event | Balance owed |
|---|---|---|
| Aug 1, opening | $350 carried from July | $350 |
| Aug 1 | Payment P1: −$350 | $0 |
| Aug 1–7 | Campaign costs: +$500 | $500 |
| Aug 7 | Payment P2: −$500 | $0 |
| Aug 8–14 | Campaign costs: +$500 | $500 |
| Aug 14 | Payment P3: −$500 | $0 |
| Aug 15–22 | Campaign costs: +$500 | $500 |
| Aug 22 | Payment P4: −$500 | $0 |
| Aug 23–29 | Campaign costs: +$400 | $400 |
| Aug 29 | Overdelivery credit for August: −$60 | $340 |
| Aug 30 | Invalid-activity credit for July: −$40 | $300 |
| Aug 31 | Campaign costs: +$500 | $800 |
| Aug 31 | Payment P5: −$500 | $300 closing |
The last cost row groups the day’s activity; it does not claim the balance waited at $800 before a threshold payment. The sequence is condensed for reading.
Three annotations matter:
The opening $350 is July’s unpaid balance. Its August payment belongs in August’s payment total. It does not become August advertising activity.
The two credits share a posting month, but not a service month. The $60 reduces the amount payable for August activity. The $40 is a correction to July activity posted in August. Keep both dates. Google’s Billing activity documentation says invalid-traffic adjustments identify the original month of service.
The closing $300 is still owed at August 31. It has not vanished because the PPC report has closed. It becomes September’s opening balance.
Here is the balance check:
$350 opening + $2,400 costs − $60 August credit − $40 July credit − $2,350 payments = $300 closing.
The net increase in the Google balance from August’s costs and posted credits is $2,300. Adding the $350 brought forward gives $2,650 to settle; August’s $2,350 of payments leaves $300.
For a service-month view, the records support $2,340 for August activity after its $60 credit, plus a separate $40 July correction. Do not silently present $2,300 as “August campaign spend.” Finance can apply its accounting policy to the prior-period correction while retaining that distinction.
Then follow each payment across the bank’s calendar
Match individual receipts, not just monthly sums. In this invented record, payment references P1–P6 are local reconciliation labels.
| Google payment date | Amount and purpose | Bank posting date |
|---|---|---|
| Aug 1 — P1 | $350; settles July balance | Aug 3 |
| Aug 7 — P2 | $500; threshold payment | Aug 10 |
| Aug 14 — P3 | $500; threshold payment | Aug 17 |
| Aug 22 — P4 | $500; threshold payment | Aug 24 |
| Aug 31 — P5 | $500; threshold payment | Sept 1 |
| Sept 1 — P6 | $300; settles August closing balance | Sept 2 |
The posting dates are invented observations for this example, not a promised processing schedule.
P1–P4 total $1,850, exactly the charges posted by the bank in August. P5 is a successful August payment in Google’s record that posts at the bank in September. The next month’s bank statement supplies the missing match.
P6 is different: Google itself records that $300 payment in September. It settles the balance still owed at August’s close. Do not subtract P6 from August’s Google payment total as well as subtracting the closing balance. That would count the same boundary twice.
Now the entire $550 gap closes:
| From PPC report to August bank postings | Amount |
|---|---|
| August campaign costs | $2,400 |
| Less August overdelivery credit | −$60 |
| Less July credit posted in August | −$40 |
| Add July balance brought forward | +$350 |
| Less August balance carried forward | −$300 |
| Equals Google-recorded August payments | $2,350 |
| Less P5, posted at the bank in September | −$500 |
| Equals August bank postings | $1,850 |
| Actual August bank postings | $1,850 |
| Unexplained difference | $0 |
Repeat it next month
Use this reusable worksheet, or copy the table below. Enter balances as amounts owed; a credit balance is negative. Enter additions, credits and payments as positive amounts in their named rows.
| Google balance check | Your amount / evidence |
|---|---|
| A. Opening balance owed | ___ / prior closing balance |
| B. New costs, taxes and fees | ___ / billing detail |
| C. Other debit adjustments | ___ / itemized entries |
| D. Non-payment credits applied | ___ / itemized entries and service months |
| E. Successful payments recorded by Google | ___ / payment receipts |
| F. Calculated closing balance: A + B + C − D − E | ___ |
| G. Closing balance in Google’s record | ___ |
| Residual: G − F | ___ |
Keep refunds, reversals and other events as their own signed rows when present. Preserve their effect on the balance; do not force them into a generic “credit” to make the total work. Google’s Billing activity “Credits” column can include payments as well as promotions and overdelivery. Categorize by the event type so a payment is counted only once.
Then make a second bridge:
Google payments recorded this month
+ payments Google recorded earlier but the bank posts this month
− payments Google records this month but the bank posts later
= expected bank postings this month.
This bridge assumes one currency and no payment reversals or bank fees; add separately evidenced rows for those if they exist. Subtract the expected amount from the actual bank total to expose the bank residual.
For the PPC-to-billing comparison, keep a separate list of costs and adjustments not already included in the report’s starting total. If that report is already net of a credit, subtracting the credit again creates an error. Google documents why campaign and billing costs differ. A blank explanation is preferable to a guessed adjustment.
What to save—and what an unresolved amount means
For automatic payments, open Billing → Billing activity for the month’s costs, adjustments and balance movements. Preserve the export. Use Billing → Summary, open the month card, then its Payments section for individual receipts. Obtain the available monthly statement under Billing → Documents and match its opening and closing balances. Google says statements become available from the fifth business day of the following month; billing data is not live. Save the date you checked, and replace a provisional close with the issued document. Google’s document and receipt instructions
Keep the bank’s posted transactions, including the adjoining month’s entries needed to prove timing. A pending authorization is not a second completed payment; Google distinguishes card authorizations from actual charges.
If Google’s balance check has a residual, investigate the billing record: missing days or account scope, omitted fees, credits counted twice, payment statuses, reversals, or an opening balance copied from the wrong month. If Google balances but the bank bridge does not, investigate the individual payment matches: account ID, card, currency, posting date and status.
For example, if the expected bank total remains $1,850 but the actual total is $1,875, leave $25 unexplained. Identify the unmatched transaction and retain its date, amount, currency and payment reference. “Probably timing” does not reconcile it. A confirmed fee gets its own row; a confirmed later posting gets its actual match; an unrecognized charge follows the appropriate investigation route.
For our completed example, the note back to finance can be short:
August campaign costs were $2,400. Billing applied a $60 August overdelivery credit and a $40 July correction. With $350 brought forward and $300 carried forward, Google recorded $2,350 of August payments. One $500 payment posted at the bank on September 1, leaving $1,850 posted in August. Both reconciliations have a zero residual. The attached record identifies each payment and credit.
That is the useful answer to the original email: every difference has a record, a date and a place in the arithmetic.