Agency Client Billing: Platform Invoice Reconciliation Guide

Reconcile agency platform invoices to client invoices: pass-through, markup, and commission billing models, with audit-trail spreadsheets for client review.

Published
Updated
Reading Time
22 min
Topics:
Industry GuidesMedia & Advertisingadvertising agenciesclient billingmedia buyingaudit trail

Agency client billing platform invoice reconciliation is the agency-AR workflow: an agency receives platform invoices from Meta, Google, LinkedIn, TikTok, DV360, or The Trade Desk for media run on a client's behalf, applies the contractual billing model, and issues a client invoice that has to defend every line item. The opposite direction — verifying media-vendor bills against insertion orders, makegoods, and delivery before the agency pays the platform — is the AP side, and if that is what brought you here, the agency-AP reconciliation against media vendor bills, insertion orders, and makegoods article is the one to read instead.

Agencies reconcile platform invoices to client invoices through one of three billing models: pass-through with a separate agency fee, markup percentage (typically 15 to 20 percent, equivalent to a 17.65 percent gross-up of net media), or commission. Each model produces a distinct audit trail — extracted platform invoices, the markup or commission worksheet, and the issued client invoice — that has to defend every line item during the contractual client review window.

The vocabulary the rest of this article relies on is straightforward. Working media is the spend that passes through to the platforms — the dollars that buy impressions, clicks, or conversions. Non-working media is everything else the agency charges for: agency fees, ad-tech tooling, data subscriptions, creative production. The platform invoice is what the platform issues to the agency for the working media; the client invoice is what the agency issues to the client. The reconciliation is the join between them.

After the three models, the article walks the cross-model machinery — the consolidation pattern across multiple platforms, the audit-trail spreadsheet, the review-window mechanics, and where the agency-billing software stack sits relative to the upstream extraction step.

Pass-through with a separate agency fee

In the pass-through model, the agency bills the client the exact platform invoice amount as media — no markup, no margin embedded in the working-media line — and invoices the agency fee separately, either as its own document or as a clearly delineated line on the same invoice. The client sees what the agency paid the platform, dollar for dollar, and pays the agency for its services as a distinct charge tied to the contract rather than to media volume.

Take a worked month. The agency runs $10,000 of Meta Ads on the client's behalf. Meta's platform invoice arrives for $10,000. The media line on the client invoice is $10,000, copied from the platform invoice. The agency fee is invoiced separately at the contracted rate — a flat monthly retainer, an hourly fee against logged time, or an explicit percentage-of-working-media fee that is disclosed to the client as a fee rather than buried as markup. If the contract calls for an 8 percent service fee on working media, the agency fee invoice for the month is $800, sent alongside the $10,000 media invoice rather than rolled into it.

The audit trail this model produces is the simplest of the three. The extracted platform invoice — the source PDF and a structured row in the agency's reconciliation spreadsheet — sits on one side; the client-issued media invoice copying the platform totals sits next to it; and the separately issued agency fee invoice, with its own contract reference, sits on the third side. There is no markup math to defend, because there is no markup. The media-line numbers reconcile by exact match.

This model fits clients who insist on zero margin on the working media, which usually means larger advertisers with sophisticated procurement teams or marketers operating under principal-versus-agent transparency requirements. It also fits engagements where the agency's value is priced explicitly as services — strategy, creative, account management — rather than as a cut of the media volume.

The operational consequence is deliberate: because agency compensation is decoupled from media volume, scaling spend up or down does not change agency revenue unless the contract sets a volume-tied fee that says it should. That is the model's selling point to clients who want neutral media pricing, not a flaw to engineer around.

Markup percentage and the 15-percent / 17.65-percent math

In the markup model, the agency pays the platform the net media cost, applies a contracted markup percentage to that net figure, and bills the client the marked-up amount as a single working-media line. The markup is the agency's compensation; it is embedded in the media line rather than invoiced separately. This is the most common arrangement at independent shops on retainer-plus-media engagements.

The 15-percent case is worth walking first. The agency pays Meta $10,000 in net media. The contract specifies a 15 percent markup on net cost. The client invoice is $10,000 multiplied by 1.15, equal to $11,500. The audit trail is the $10,000 platform invoice, the markup-percentage clause in the client contract, and the $11,500 client invoice — with the $1,500 spread documented as agency compensation tied to the contracted rate.

The 15-percent-versus-17.65-percent confusion shows up in audit conversations often enough that it is worth resolving on every client invoice rather than only when a procurement team asks. Historical full-service-agency engagements were priced as a 15 percent commission on the gross media buy, a convention that traces back to the era when media owners paid agencies directly out of the gross rate. A 15 percent commission on a gross figure is mathematically the same as a 17.65 percent markup on the net figure: if gross is 100 and the commission is 15, net is 85, and the markup that gets you from 85 to 100 is 15 divided by 85, or 17.647 percent. Modern client contracts often use the markup language but reference the historical commission percentage, which is where the 17.65 percent number comes from. State on every client invoice which figure the agency is using and confirm the contract language matches before the client raises the point themselves.

A 20-percent markup follows the same shape. Same $10,000 platform invoice, 20-percent markup, client invoice of $12,000, with $2,000 booked as agency compensation. Some agencies tier the markup by media type or platform category — higher on programmatic, lower on direct-buy — and the worked example is the same regardless of the rate, as long as the contract language matches.

Markup fits independent shops on retainer-plus-media work, clients who accept embedded media margin in exchange for not paying explicit agency fees, and engagements where agency compensation should scale with media volume rather than sit as a flat retainer. It does not fit clients who require zero media margin (those engagements belong on pass-through) and it produces friction with procurement teams that want to verify margin against benchmarks unless the contract is unambiguous.

The contract-language risk is concrete. A clause that reads "15 percent commission" without specifying whether the base is gross or net is ambiguous between two literal readings: a 15-percent markup on the $10,000 net figure (billing $11,500) and a 15-percent commission on the gross figure (billing $11,764.71, the 17.65-percent gross-up). The dollar gap is small on one invoice and material across a year of billing. Resolve the language in the contract before it surfaces in audit, and write the chosen interpretation onto the client invoice itself so there is nothing to dispute later.

Commission and revenue-percentage models

The commission model has two common variants, and the reconciliation differs from the previous two models in one important way: the client-invoice value is not directly tied to a line on the platform invoice. The first variant is a flat monthly retainer regardless of media volume. The second is a revenue-percentage commission — a contracted percentage of attributed revenue or attributed conversions — common in performance and D2C engagements where the agency's value is judged by outcomes rather than by media management hours.

Take the revenue-percentage worked example first. The agency manages $10,000 of Meta spend in the period. Under the contracted attribution model and click window, that spend drove $80,000 of attributed revenue. The contract specifies a 12 percent commission on attributed revenue. The client invoice is $80,000 multiplied by 0.12, equal to $9,600. The platform spend is reconciled separately as a cost-of-revenue audit, not as the basis of the client invoice line. The agency might attach a transparency exhibit to the invoice showing the $10,000 working-media figure alongside the attributed-revenue and commission calculations, but the invoice itself reads from the revenue side.

The flat-retainer variant is shorter to walk. The agency charges $8,000 per month for ongoing campaign management across the client's accounts. Platform spend in the month was $32,000. The client invoice is the $8,000 retainer. Platform spend is reconciled separately, typically as the agency's own cost-of-service report or as a transparency exhibit attached to the retainer invoice. The agency wants the $32,000 documented because the client may ask, but the document is not a precondition for the retainer being payable.

The audit trail this model produces has two parts that the previous models combined into one. The first is the client-invoice-to-contract trail: client invoice tied to attribution data (for revenue commission) or to the contracted retainer amount (for flat retainer). The second is the platform-spend audit trail, which the client may request as transparency over what was actually spent on their behalf even though it does not flow through the client invoice line. Many performance contracts require the agency to provide platform-spend reporting on demand precisely because the client wants to verify the cost-of-revenue picture beneath the commission.

Attribution is the model's hidden exposure. A revenue-percentage commission lives or dies on the attribution settings — last-click versus data-driven, click window length, view-through inclusion or exclusion, cross-device handling. A disagreement about attribution becomes a disagreement about the invoice, and the disagreement surfaces during the review window when the client's analytics team pulls a different number than the agency reported. Document the attribution model explicitly in the contract, name the data source the commission calculation pulls from (Google Analytics, the platform's native conversion API, a third-party attribution tool), and reproduce the attribution detail on the invoice itself rather than only in a year-old contract appendix.

Commission fits performance and D2C agencies on revenue-tied compensation, clients who want agency pay tied to outcomes, and ongoing-management engagements where a flat retainer is operationally simpler than tracking spend-and-markup every month. It does not fit clients with thin margins who cannot accept the agency taking percentage of revenue, and it does not fit engagements where attributed revenue is hard to measure cleanly enough to defend at audit.

The platform-invoice-to-client-invoice join across multiple platforms

A single client running Google Ads, Meta, LinkedIn, and TikTok produces four separate platform invoices each month. Each platform invoice has campaign-level line items in its own format. The agency has to map every campaign on every platform back to the client it belongs to, aggregate per-platform spend per client, apply the contracted billing model, and issue one consolidated client invoice with per-platform line-item visibility. Multi-platform agency client invoice consolidation is where the close period either takes a day or takes two weeks, and the difference is upstream, at campaign creation.

The discipline that makes the close fast is a campaign-naming convention enforced at campaign creation. Every campaign on every platform gets tagged with a client identifier and a project code that match the agency's project-management tool, whether that is Asana, Workamajig, or another agency PM system. A typical convention reads [CLIENT]_[BRAND]_[PROJECT]_[CAMPAIGN-PURPOSE] so any line on any platform invoice can be traced back to a client without a finance-side lookup. Several platforms also provide native tagging that complements the naming convention: Google Ads labels at the campaign level, Meta naming conventions enforced through Business Manager, LinkedIn and TikTok account structures that segregate campaigns by client account or by sub-account.

When the discipline does not hold, the work moves downstream and the cost compounds. Campaigns named without client tags force finance to re-map at month-end, which is the operational reality behind Bionic Ads' "15-plus step process" pain quote. Re-mapping turns a clerical close into a forensic one — chasing account managers for context, opening platform UIs to read campaign settings, comparing dates and spend amounts to PM-tool entries — and pushes the close past the contractual review window, which compresses the audit-response time the client expects.

The consolidation pattern itself, once tagging is in place, is mechanical. For each platform, extract the platform invoice into a structured row-per-campaign reconciliation; group rows by client tag; sum per-client per-platform spend; apply the contracted billing model from the previous sections (pass-through, markup, or commission); and produce a single consolidated client invoice with one line per platform per client. The same per-platform extraction pattern carries over to the client's own marketing-finance close on the buy-side, where tying Google, Meta, LinkedIn, TikTok, and DSP invoices into a single monthly close is the FP&A counterpart to the agency-side consolidation walked here. For Meta-specific cases, Meta Ads invoice extraction for the per-platform spend column walks the platform-specific extraction step. For Google Ads, particularly for agencies running manager (MCC) accounts, Google Ads invoice extraction including MCC bulk download covers the MCC-aware flow that pulls invoices for all sub-accounts in one operation.

The spreadsheet shape that supports the consolidation is straightforward and scales with the number of platforms. Rows are campaign-level entries lifted from each platform invoice. Columns include Platform, Platform Invoice Number, Platform Invoice Date, Campaign Name, Campaign ID, Client Tag, Net Media Cost, Markup Percentage (or commission percentage), Marked-up Cost (or commission amount), and Client Invoice Reference. Per-client rollups feed the client invoice; per-platform rollups within a client feed the per-platform line on that client invoice.

The audit-trail spreadsheet that defends every client-invoice line

The audit-trail spreadsheet is what agency finance hands the client during the review window, and what a procurement audit requests by name. The bar it has to clear is straightforward to state and exacting to deliver: any line on the client invoice has to be traceable back to a specific platform invoice line on a specific platform invoice for a specific date, with the markup or commission math shown explicitly between the two.

The columns are explicit. One row per campaign. Platform names which platform issued the invoice the row was lifted from. Platform Invoice Number is the platform's own document identifier — verifiable by the client against the platform's billing portal. Platform Invoice Date is the date the platform billed. Campaign Name and Campaign ID identify the spend at the campaign level on the platform side. Client Tag is the client identifier from the campaign-naming convention. Net Media Cost is the figure pulled from the platform invoice. Markup Percentage (or commission percentage if the row applies to a commission engagement) records the agency's compensation rate. Marked-up Cost (or commission amount) records the figure that flows into the client invoice. Client Invoice Reference ties the row to the specific client invoice number and line where it lands.

The same row structure works for all three billing models. What changes is which column carries the agency's compensation: a markup amount on a markup engagement, a separate-fee invoice reference on pass-through, a commission amount on a revenue-percentage or flat-retainer engagement. A spreadsheet built once for one client extends to clients on different billing models without needing a new template.

Populating the Net Media Cost column is the upstream step that determines whether the rest of the reconciliation is fast or slow. Platform invoices arrive as PDFs from each ad platform — Meta sends a billing-period summary with campaign-level breakdowns, Google Ads issues an invoice from the manager account with sub-account detail, LinkedIn and TikTok produce their own formats — and the campaign-level spend has to be lifted out of those PDFs into the spreadsheet rows for the reconciliation to work. Manually re-keying campaign-level totals from each platform invoice is the step Bionic Ads' "15-plus step" pain quote points at, and it is also the step where transcription errors enter the audit trail and survive into the client invoice.

This is the upstream extraction step. Tools like Invoice Data Extraction sit upstream of the agency-billing software stack and let an agency extract platform invoices into a client-billing spreadsheet by uploading the platform-invoice PDFs, prompting for the campaign-level fields the audit-trail spreadsheet requires (Platform Invoice Number, Platform Invoice Date, Campaign Name, Campaign ID, Net Media Cost), and downloading a row-per-campaign Excel or CSV file that drops directly into the consolidation workbook. The same prompt produces the same structured output across every platform invoice in the batch, which is the property that matters: an agency on a four-platform client gets four extractions in consistent shape, ready to stack into one reconciliation, instead of four manual re-key passes that each invent their own row structure.

Each line on the client invoice (per platform per client) corresponds to a per-platform rollup of campaign-level rows in the spreadsheet, and each rollup corresponds to a contiguous block of rows keyed to the same Platform Invoice Number. A reader auditing a single client-invoice line can find the exact rows in the spreadsheet that produced it, then verify those rows against the source platform invoice the agency provides alongside the spreadsheet. The traceability runs in both directions: from client invoice to spreadsheet to platform invoice, and from platform invoice back to a specific client-invoice line.

The spreadsheet doubles as the agency's own working reconciliation document, not just an audit-deliverable produced on request. Building it at the time of invoice — the same week the platform invoices arrive — and keeping it accessible to finance, account management, and (through the review window) the client means one artifact serves all three readers without modification or rework.

The 30-day client review window and right-to-audit contract language

Most agency-client contracts in paid media include a contractual review window — typically 30 days from the invoice date — during which the client can audit and dispute any line on the agency's invoice. Larger advertisers sometimes negotiate 60 or 90 days, particularly where internal procurement cycles are long, but the principle holds across contract sizes: the client has a defined window in which the invoice is provisionally settled but materially disputable, and the agency has to be able to produce supporting documentation on demand inside that window.

What the client can request during the window is broad and predictable: the underlying platform invoices for the period, the markup or commission worksheet, the issued client invoice, and any documentation that proves the line items are real and the math is contracted. The audit-trail spreadsheet specified in the previous section is the primary artifact that satisfies these requests; the platform-invoice PDFs are the source documents that back it.

Industry guidance for advertiser-agency contracts recommends explicit language requiring the agency to disclose all markups, fees, and rebates and reserving the advertiser's right to audit, set out in AdExchanger's prescribed right-to-audit and markup-disclosure clause. Reading the clause language from a credible source into the master services agreement at contract signing is the cheapest moment to settle disclosure expectations; renegotiating mid-engagement after a dispute is the most expensive.

Compliant agency disclosure looks specific in practice. Every markup percentage is stated explicitly on the client invoice or by direct reference to the contract clause that sets it. Every agency-fee component — strategy retainer, account-management retainer, ad-tech tooling pass-through, data-vendor fees — is itemised separately from working media rather than bundled into a single line. Every rebate or volume-based credit the agency receives from a platform is disclosed, and the contract specifies whether the rebate is passed through to the client, retained by the agency, or shared. The audit-trail spreadsheet is available on request, ideally already produced and on hand rather than assembled reactively.

The operational consequence for finance ops is direct. An agency that produces the audit-trail spreadsheet at the time of invoice rather than only when the client asks is ready for any audit inside the window with no schedule pressure. Waiting until the client opens a review compresses the agency's response time against an already-busy month-end calendar and introduces the risk that the artifact gets assembled in a hurry. The agency that runs the workflow consistently treats the spreadsheet as a deliverable produced alongside the invoice, not as an audit-response artifact produced on demand.

Where agency-billing software fits and where extraction sits upstream

Agency-billing software is good at a defined set of things: project-and-job costing, time tracking, retainer management, markup and commission calculations once spend data is in the system, client-invoice generation, and integration with general-ledger accounting through QuickBooks, Xero, or NetSuite. Function Point, Workamajig, Advantage, and Magnetic are the established names in this category at independent agencies; newer vendors such as Ignition and AgencyHandy occupy parts of the same market with different tooling preferences. Each of them produces a defensible client invoice once the underlying spend data is correctly loaded into projects, jobs, and clients.

What those tools do not do is ingest platform invoices. Platform-invoice PDFs from Meta, Google, LinkedIn, TikTok, DV360, and The Trade Desk do not feed directly into agency-billing software. The standard ingestion path is a CSV upload — someone, usually finance ops, has to extract per-campaign or per-line-item spend out of each platform invoice, format it as a CSV that matches the agency-billing tool's import schema, and upload that file before the tool can do its markup math and produce a client invoice. The agency-billing software is downstream of the extraction work; it does not replace it. DSP statements carry their own complications on top of the basic extraction step — for agencies running programmatic spend through The Trade Desk specifically, reconciling the TTD fee stack and computing the effective take-rate is the platform-specific audit that sits between the raw statement and the per-campaign rows the agency-billing tool ingests.

This is why the audit-trail spreadsheet specified earlier is genuinely upstream of the agency-billing software, not a competing system. The spreadsheet is the canonical reconciliation artifact, populated from platform invoices and feeding into the billing tool by export-and-upload. Agencies that try to short-cut by entering platform totals directly into the billing tool's project records, without the spreadsheet in between, lose the line-level audit trail that defends individual client-invoice lines during the review window. The billing tool can produce a defensible total; only the reconciliation spreadsheet can produce defensible per-campaign rows.

Non-platform agency cost lines flow through the same pattern. Creator and freelancer invoices for production work, third-party tool subscriptions billed to the agency for client use, ad-tech fees, data-vendor fees — all of them arrive as PDFs or CSVs in their own formats and have to land in the agency-billing tool to flow through to the client invoice. UGC creator invoice processing for non-platform agency cost lines covers the creator-invoice case specifically, and the same extraction-then-CSV-upload pattern applies across the rest of the non-platform document types.

Choosing among Function Point, Workamajig, Advantage, Magnetic, Ignition, and AgencyHandy is outside this article's scope. The right choice depends on agency size, the GL system already in place, the project-management preferences of account leads, and the integration ecosystem each tool supports — decisions where the answer changes per agency. The point that does generalise is the workflow shape: extraction first, audit-trail spreadsheet second, agency-billing tool third, client invoice last. The article's value is in describing the workflow, not in adjudicating which seat the agency should sit in for the third step.

What a client-side audit looks like, and how the same artifact serves both sides

The article so far has walked the reconciliation from the agency-AR side. The same artifact reads differently from across the table, and an agency that knows what a client-side procurement audit is checking produces better documentation in less time.

A client-side audit verifies a small number of specific things. The markup percentage on the client invoice matches the markup clause in the master services agreement. Pass-through media line items match the platform invoices the agency provides, dollar for dollar. Any rebates, volume discounts, or platform credits the agency receives have been disclosed or passed through per the contract — this is the line that sophisticated procurement teams probe hardest because the disclosure rules are where principal-versus-agent disputes surface. Campaign-level spend in the audit-trail spreadsheet rolls up to the per-platform totals on the platform invoice, with no drift between the spreadsheet and the source. And the platform invoice itself is genuine — the platform's own invoice number is traceable in the platform's billing portal, not edited or fabricated. None of these checks are exotic; all of them assume the agency hands over a clean artifact set.

What the auditor wants to receive is exactly what the agency has if the workflow has been run consistently: the platform-invoice PDFs (one per platform per period), the audit-trail spreadsheet specified earlier, the client invoice for the period, and the contract reference for the markup or commission percentage. The agency does not need to assemble anything bespoke for the audit response — the same artifact set that supports finance ops internally satisfies the client-side audit unmodified.

That dual-audience property is the operational benefit of building documentation at invoice time rather than under audit pressure. One artifact set serves three readers: agency finance ops uses it as the working reconciliation, account management uses it for client visibility into how the engagement is being billed, and the client uses it as the audit deliverable during the contractual review window. The marginal cost of producing it once at the time of invoice is small; the marginal cost of reconstructing it under audit pressure is large.

Extract invoice data to Excel with natural language prompts

Upload your invoices, describe what you need in plain language, and download clean, structured spreadsheets. No templates, no complex configuration.

Exceptional accuracy on financial documents
1–8 seconds per page with parallel processing
50 free pages every month — no subscription
Any document layout, language, or scan quality
Native Excel types — numbers, dates, currencies
Files encrypted and auto-deleted within 24 hours
Continue Reading