A Trade Desk monthly statement decomposes into five fee components: media cost (the working media paid to publishers), platform fee (TTD's disclosed take rate, around 20 percent of media cost), per-segment audience data fees from third-party providers, feature fees including Kokai, and third-party ad-tech charges from IAS, DoubleVerify, Moat, or Innovid surfaced through the platform as a single-invoice convenience. Buyer-side reconciliation joins the statement CSV to a TTD performance report on advertiser ID, campaign ID, and reporting date — those three fields are the composite key, and nothing else reliably ties a statement row to a campaign row.
The math that turns those line items into something a CFO or a client can interrogate is straightforward in form: effective fee rate equals (platform fee + data fees + feature fees + third-party ad-tech) divided by gross spend. In practice the result commonly lands between 30 and 40 percent — materially higher than the disclosed take rate alone, and the gap is the architectural result of stacking optional fees onto a media buy rather than evidence of anything irregular.
That gap is the reason the trade desk fee audit went from a quiet operational chore at agency holding companies to a standard practitioner skill. After the Publicis–Trade Desk dispute put effective-fee disclosure on the front pages of the trade press, finance teams on both sides of the buyer–seller relationship started doing the math whether their contracts required it or not. The work itself has not changed. What has changed is that a finance team or procurement reviewer expects the reconciliation to be defensible at the line-item level — every fee named, every authorisation traced, every variance attributed.
This walkthrough is built for the practitioner doing that work with a real TTD statement open. It covers the fee anatomy, the export and join workflow, the effective-fee math worked through with realistic numbers, the per-segment data fee pivot pattern, the Kokai authorisation check, the agency-trading-desk versus in-house split that current SERP coverage almost universally elides, the variance-by-fee-component triage flow, and the multi-account rollup pattern for holding-company close. It assumes you know what TTD is and what a DSP does. Everything else, it spells out.
The Five Fee Components on a Trade Desk Statement
Every TTD statement reduces to the same five categories, in roughly this order of size on a typical campaign. Naming each one with its source and its verification handle is what makes the statement legible.
Media cost (working media). The auction-clearing price paid to publishers for impressions won. This is the only working media on the statement; everything else is non-working spend. It ties impression-by-impression against the bid logs and aggregates against the media cost column on the TTD performance report. Variance here is rare because media cost is the outcome of paid auctions — it is not a fee that TTD calculates and applies, it is a record of what was spent.
Platform fee. TTD's disclosed take rate, calculated as a percentage of media cost. The commonly cited figure is around 20 percent in tech fees, though contracted rates vary by client, by spend tier, and by negotiated discount. Surfaces on the statement as either a single line per advertiser-account or aggregated per-campaign depending on contract structure. Because it is computed formulaically from media cost, an unexplained variance in platform fee is almost always a reporting artifact (timezone offset, billing-period misalignment) rather than a real fee anomaly.
Per-segment audience data fees. Third-party audience segments — Acxiom, Experian, LiveRamp, Oracle Data Cloud, and dozens of niche providers — charged per impression that used the segment for targeting. Each appears as a discrete line item, per segment, per campaign, with its own CPM rate. Rates vary widely by segment quality: a generic age-bracket segment costs cents per thousand impressions; a high-intent in-market segment can run several dollars CPM. A campaign using five segments produces five data fee line items per active period — the row explosion this creates at scale is what the next section's pivot pattern handles.
Feature fees. Optional TTD platform features the advertiser opted into, or in some cases was enrolled in: Kokai (TTD's AI optimization product, which replaced Solimar), contextual category targeting, DataMarketplace surcharges on premium data integrations, and similar. Each feature carries its own line item code in the export. Whether these are pass-through to the client or absorbed by the agency is a contractual question that sits outside the reconciliation. The reconciler's task is the same regardless: identify the line item, verify authorisation against the campaign brief or insertion order, attribute correctly.
Third-party ad-tech. Verification and measurement vendors — IAS, DoubleVerify, Moat, Innovid — billed through TTD as a single-invoice convenience rather than directly to the advertiser. Each vendor appears as a separate fee line per advertiser. Watch for the timing gotcha: when the same vendors also bill directly (as they often do for clients with their own contracts), the direct invoices typically lag TTD's billing cycle by 30 to 60 days. Reconciling against a third-party invoice that is two months behind the TTD statement is a common source of apparent variance that is really just a calendar offset.
DV360 stacks fees differently. Google's own line-item taxonomy splits partner-served impressions, ad serving, verification, and audience segments into categories that do not map one-for-one onto TTD's structure, so a reconciliation pattern built for one DSP does not transfer cleanly to the other. The DV360 invoice reconciliation walkthrough covers the equivalent fee anatomy on Google's side for teams running both platforms — which is the common case at any holding-company agency.
Calculating the Effective Take Rate
The formula is simple. The numbers it produces are the heart of the audit.
Effective fee rate equals (platform fee + data fees + feature fees + third-party ad-tech) divided by gross spend. Gross spend is total client billing for the period. Working media is gross spend minus the sum of the four non-working components.
Worked through with realistic figures, on a single campaign with $100,000 gross spend:
- Media cost: $80,000
- Platform fee: $8,000
- Data fees (across five segments): $7,500
- Kokai feature fee: $2,000
- Third-party ad-tech (IAS plus DoubleVerify): $2,500
Effective fee = ($8,000 + $7,500 + $2,000 + $2,500) / $100,000 = $20,000 / $100,000 = 20 percent.
Now run the same media cost through richer segments and a heavier feature stack. Same $80,000 media buy, but now the campaign uses ten higher-CPM segments instead of five generic ones, both Kokai and contextual category targeting are enabled, and three verification vendors are billed through TTD:
- Media cost: $80,000
- Platform fee: $8,000
- Data fees (across ten premium segments): $18,000
- Feature fees (Kokai plus contextual targeting): $5,500
- Third-party ad-tech (IAS, DoubleVerify, Moat): $4,500
Gross spend rises to $116,000. Effective fee = ($8,000 + $18,000 + $5,500 + $4,500) / $116,000 = $36,000 / $116,000 = 31 percent. Push segment richness and feature stacking further and the same media cost can carry an effective fee in the high 30s or low 40s. The line items doing the work in that scenario are almost always data fees and the third-party ad-tech stack — platform fee scales linearly with media cost and feature fees are bounded, but data fees compound with segment count and segment quality.
TTD's publicly disclosed take rate is often cited at roughly 20 percent of media cost in tech fees, and that figure is accurate as a description of the platform fee component. The 30 to 40 percent effective fee on real campaigns once the full stack is included is the gap that draws audit attention. The gap is not necessarily evidence of a fee anomaly — it is the architectural result of stacking optional fees onto a media buy, and most clients with full visibility into their contracted fee schedule expect numbers in this range. The reconciler's job is to make the gap visible and attributable rather than to flag it as fraud.
Recent industry attention has put effective-fee disclosure at the centre of programmatic finance practice. Publicis Groupe stopped recommending The Trade Desk after a third-party audit alleged discrepancies in fees, consent, and cost transparency, per Digiday's analysis of the Publicis–Trade Desk audit dispute. The underlying question, whichever side of it any given client falls on, is whether the effective-fee math was being shown clearly. The reconciler's work is unchanged by the contractual dispute: name the components, compute the effective rate, attribute each line item to a contract clause or a documented opt-in. What the dispute changes is who else expects to see the math and how often they ask.
The effective fee rate is the metric that goes on the monthly client report or the internal margin review. Track it month over month per advertiser to surface drift. A campaign that ran at 22 percent effective fee in March and 34 percent in April is signalling a change somewhere in segment usage, feature opt-ins, or third-party allocation. Which fee component moved is the question the variance investigation flow further down answers.
Exporting the Statement and Joining It to Campaign Reports
Inside TTD, the export path is Reports → Account → Billing → download statement. Both PDF and CSV are produced for the same billing period. They are different artifacts with different jobs.
The PDF is the legally decisive document. It is what gets attached to the client invoice, what a procurement team will reference if a charge is disputed, and what survives in the contractual record. The CSV is the joinable artifact for the reconciliation spreadsheet — the same numbers in machine-readable rows, with each line item exposed as its own record rather than aggregated into the PDF's display layout.
The CSV columns to know. At minimum the export exposes advertiser ID, advertiser name, campaign ID, campaign name, reporting date or billing period, line item type (media cost, platform fee, data fee with the segment name attached, feature fee with the feature name attached, third-party ad-tech with the vendor name attached), impressions, and amount. Column names vary slightly by account-tier and shift over time as TTD updates the export format, so treat the column header row of any given month's export as authoritative rather than working from a remembered schema.
The composite join key for tying a CSV row to a row on the TTD performance report is advertiser ID + campaign ID + reporting date. Two timezone gotchas are worth flagging up front. First, the billing date on the statement may roll over at 00:00 UTC while the performance report rolls over at the advertiser's local time, which can split a single campaign-day's spend across two billing-days. Second, month-end is the worst case for this offset because a single day's spend can surface in two different statement months depending on which side of the timezone boundary you read it from. Reconciling on advertiser ID + campaign ID alone (without date) aggregates correctly to month-totals and avoids both edge cases; adding date to the key is necessary only when daily-level audit is the explicit goal.
The frequent practical problem is row volume. A TTD monthly statement for a holding-company agency can run thousands of rows once data fees are itemised per segment per campaign per day, and that scale makes working from the PDF alone impossible. The CSV is the operational artifact for the reconciliation; the PDF is the document that survives the contractual record.
When the source TTD provides is the PDF — which procurement teams and external auditors often insist on as source-of-truth — the extract The Trade Desk statement line items into a spreadsheet workflow handles the conversion. Upload the PDF or CSV, prompt the AI with the structure the rollup needs ("Extract advertiser ID, campaign ID, reporting date, line item type, segment or feature or vendor name where applicable, impressions, and amount, with one row per line item"), and the output is the columnar shape the join key expects.
The same export-and-join pattern applies to most modern DSPs, which is why the per-segment data fee handling, feature-fee identification, and variance investigation in the sections below generalise to other platforms even where the line-item names differ.
Handling Per-Segment Data Fees Without Drowning in Rows
A single campaign using five audience segments across thirty active days produces 150 data fee rows in the CSV. Multiply by 30 active campaigns and the data fee tab alone holds 4,500 rows. Holding-company agencies running 20 or more advertiser accounts cross five-figure data fee row counts on most months. This is normal, not a corruption — segment-level granularity is what TTD provides and what an audit needs.
The pattern that scales is two-tier. Keep the raw segment-level rows in their own worksheet — the working file for internal margin analysis, fee-by-provider audit, and segment-usage trend tracking. Pivot the same data up to campaign level, indexed on advertiser ID + campaign ID + month, for the client-facing reconciliation tab. That tab carries one row per campaign per month with data fees as a single summed column, alongside the other fee components. The client sees the campaign view; the working segment view stays available for any drill-down the client requests.
The pivot construction. Rows: advertiser ID + campaign ID. Columns: month or billing period. Values: sum of data fee amount. A second pivot — same row dimension, segment provider as an additional row — surfaces the breakdown of where data spend is actually going. A holding company can see at a glance what proportion of its data fees are running through Acxiom versus LiveRamp versus Experian, which is the input to renegotiating data partnerships at scale or flagging when a single provider is silently consuming most of the segment budget. The same provider pivot answers a question agencies are increasingly asked: how much of total spend is going to data, and to whom.
The row explosion is also where reconciliation findings tend to surface. A segment that shows up on a campaign that should not have used it points to a misallocated audience or a targeting set that was not pruned when the campaign brief changed. A segment whose CPM is materially higher than the rate card points to a data partner pricing change that needs verification before it gets passed through. A segment used on near-zero impressions but with a fixed minimum charge — rare, but it happens with niche providers — points to a contract clause the buying team may not have priced into the campaign plan. Each is a fee-component variance that the variance investigation flow further down runs to ground.
The disclosure question follows from the billing model. For agency trading desks billing pass-through, segment-level detail is what the client expects to see in support of the data fee total — the deliverable is the campaign view with the segment view available on request. For agencies on a fixed-margin model, segment detail typically stays internal because the margin is already absorbed into a blended rate, but the campaign-level total is still shared. The two-tier pattern serves both: the segment tab as working file, the campaign tab as deliverable.
Identifying Feature Fees and Verifying Kokai Authorization
Each TTD platform feature has its own line item code in the CSV. Kokai charges appear as their own line, distinct from media cost and platform fee. Contextual category targeting carries a separate code; DataMarketplace surcharges carry another. The reconciler's first pass through a fresh statement is to inventory which feature codes appear and which campaigns each one attaches to — a single filter on the line-item-type column produces this list in seconds and surfaces feature exposure that may not have been visible from the campaign-level summary.
Kokai is the feature most likely to surface a question. It is TTD's AI-driven optimization product, the successor to the earlier Solimar platform, and it is the feature recent audit coverage has alleged was being enrolled without explicit client opt-in. Whether that allegation holds for any specific client is a contractual question between the advertiser and TTD, not a math question for the reconciler. The reconciler's job is to make the charge visible and to prompt the contract-owner — the agency lead, the in-house programmatic director, the procurement lead — to confirm whether Kokai usage on a given campaign was authorised.
The verification checklist for each Kokai line item is short. Which campaign did the charge attach to. On what date did Kokai usage begin. Does the campaign brief or the insertion order reference AI optimization features as part of the scope. Does the rate per the line item match the contracted fee schedule. If authorisation is documented, the line item passes through to client billing per the standard pass-through or fixed-margin logic and the reconciliation moves on. If authorisation is missing, the line item becomes a chargeback candidate that the agency or advertiser will raise with TTD directly — and the reconciliation surfaces it as a flagged item rather than a billable one.
Other feature fees on the statement get the same treatment. Contextual category targeting fees apply where a campaign used contextual segments and produce a CPM uplift on impressions matched to category contexts. DataMarketplace surcharges apply to certain premium data integrations beyond standard segment fees. Each feature: identify, verify authorisation against the campaign documentation, attribute to client billing or absorb internally.
Agency Trading Desk Versus In-House: Where the Reconciliation Forks
The reconciliation pattern is materially different depending on whether TTD is being run in-house or through an agency trading desk. Both cohorts use the fee anatomy, the export workflow, the join key, and the variance triage above. Where they part ways is in the layer that sits on top of the TTD-side fees.
In-house programmatic teams running TTD directly reconcile a single statement against a single set of campaign reports. The fee stack is exactly what the prior sections describe; there is no agency-margin layer to separate, and the deliverable is a finance-internal document tying the TTD invoice to the period's media plan.
Agency trading desks add a second reconciliation layer on top. Pass-through media cost and platform fees from TTD on one side, agency service fees on the other — the trading desk's own margin for technology, optimisation, and campaign management. Both layers have to land on a single client-facing report, and they have different attribution logic in that report.
The campaign-setup field is the mechanism. TTD provides a campaign-setup or fee-allocation field that agency trading desks fill to account for their own services on top of pass-through TTD fees. The values entered surface on the statement as agency-side fees attributable to the agency rather than to TTD. Practically this means the reconciliation pattern for an ATD separates agency-side line items from TTD-side line items into distinct columns or worksheets — they tie out against different sources, they get attributed to different lines on the client report, and they answer to different contractual clauses.
The pass-through versus markup decision determines how the campaign-setup field actually behaves. Some agencies pass TTD fees through at cost and bill agency services as a separate, visible line on the client invoice. Others mark up the TTD fees and absorb the agency-services overhead into the markup, presenting a blended rate to the client. The campaign-setup field works for both — pass-through agencies use it to make their margin explicit; markup agencies use it to track internal margin without exposing it on the client-facing report. The deeper mechanics of how to reconcile agency platform invoices to client invoices with markup vs pass-through models sit on the agency-AR side of the reconciliation, but the structural choice cascades through every TTD reconciliation an agency produces. Whichever model the contract specifies, reconciliation must match.
The client-facing report shape follows from that choice. Pass-through agencies produce a report that lists TTD media cost, TTD platform fee, TTD data fees, TTD feature fees, TTD third-party ad-tech, and then agency services as a distinct section, with effective TTD fee rate and total agency markup both surfaced for the client. Markup agencies produce a report with a blended rate, with the underlying TTD-side fees usually available on request as supporting documentation rather than displayed by default. The reconciliation work upstream is identical; only the client-facing presentation differs.
ATDs maintain a parallel internal margin tab — the same spreadsheet pivoted to compare what they billed the client against what TTD billed them. A campaign whose effective TTD fee drifts higher than priced eats into agency margin and surfaces before the next renewal.
Investigating Variances by Fee Component
When a reconciliation produces a number that does not tie, the triage flow runs by fee component. Each component has its own most-likely cause, and starting in the right place saves hours.
Media cost variance. Rare. Media cost is the auction-clearing price paid to publishers, calculated impression by impression — it should match the TTD performance report's media cost column to the dollar. A real variance here usually traces to one of three causes: a reporting-versus-billing timezone offset (the same edge case the export section flagged), a delayed bid-log entry that surfaces in the next billing period, or a credit applied for invalid traffic. Check the timezone first; it explains roughly 80 percent of media-cost variances and resolves without further investigation once the offset is accounted for.
Platform fee variance. Extremely rare. Platform fee is a formulaic percentage of media cost, so unless the contracted rate changed mid-period or a tier-discount kicked in at a spend threshold, the fee ties to media cost exactly. If platform fee does not tie, the order of investigation is: was a new contractual rate triggered (a tier-discount activating at a spend threshold, a renewal taking effect), then is the percentage being applied to the right basis (media cost versus total spend versus a contracted exclusion). Both are answerable from the contract document; the variance is almost never an error in TTD's calculation.
Data fee variance. Common and usually explainable. The drivers: a segment was added to or removed from a campaign mid-period; a data partner changed its CPM rate; a segment ran on a much higher- or lower-impression-volume run than the prior period; a segment that had been on a free or trial tier was reclassified as paid. The investigation flow is the data fee pivot from the earlier section. Pivot data fees by segment provider for the period, identify which provider's total moved, then drill into segment-level rows for that provider to find the changed segment. Almost every data fee variance resolves at the segment-and-provider level once that drill is run.
Feature fee variance. The variance most likely to surface an authorisation question. Causes: Kokai or another feature was opted into mid-period; a feature's pricing changed; a feature's coverage expanded to more campaigns than the prior period. The investigation: pull the feature-fee inventory from the prior section and identify which feature's coverage or rate moved. The output is either a confirmed expanded scope (authorisation in place, billing proceeds) or a flagged item for the contract owner to resolve.
Third-party ad-tech variance. Often a timing artifact rather than a real fee discrepancy. Verification vendors — IAS, DoubleVerify, Moat, Innovid — may bill TTD for impressions verified in a different period than the impressions actually ran, producing a 30 to 60 day lag in some cases. When the same vendor also bills the advertiser directly under a separate contract, reconcile against the third party's own invoice rather than against TTD's reporting; the third-party invoice is the authoritative source for the verification charge, and matching against TTD's pass-through line will produce apparent variance until the calendars align.
The triage is platform-agnostic. The same component-by-component drill runs for other DSPs and for broader media-vendor invoice reconciliation across broadcast and digital — only the line-item vocabulary changes.
Rolling Up Multiple Advertiser Accounts for Holding-Company Close
A holding-company agency running TTD across 20 to 30 client accounts produces tens of thousands of rows of statement data each month, and the deadline to land it all is fixed — typically the client-billing date on the 5th or 10th of the following month, with internal management reporting expected before that. The structural pattern that scales is mechanical, but it has to be set up once and then defended every cycle.
One worksheet per advertiser account. Each account workbook carries the segment tab, the campaign tab, and (for ATDs) the agency-margin tab from the earlier sections. A master rollup worksheet aggregates campaign-level totals across all accounts using a SUMIFS or PivotTable indexed on advertiser ID. The master is the close artifact — the document the client-billing engine and the management report both feed from. The per-account tabs are the audit trail that defends every number on the master.
The bottleneck is rarely the formula. SUMIFS across 30 source workbooks runs in seconds. Pivot tables across consolidated source data run in seconds. The bottleneck is producing the source workbooks — extracting each per-account TTD statement (PDF or CSV) into the structured spreadsheet shape the rollup expects. Done manually against 20-plus statements per month, the per-account extraction step compounds into days of work that have to land before the close deadline. A team that has set up its pivot and SUMIFS architecture cleanly can still miss close because the data did not arrive in usable shape on time. Batch-processing the full set of monthly TTD statements through the same extraction prompt is what closes that gap — every account workbook lands with the same column structure, in a single processing run, ready to feed the master rollup the moment the statements arrive.
Holding companies almost always run TTD alongside other DSPs and platforms. The TTD reconciliation is one input to a broader monthly close that consolidates programmatic spend across DSPs and frequently across search and social platforms as well. The patterns from this article — segment tab, campaign tab, agency margin where applicable, fee-component variance triage — generalise to those other platforms even where the line-item names differ, and the master rollup of TTD-only spend feeds into a wider workbook that does the same job at the cross-platform level. The pattern for that wider exercise — how to consolidate ad spend across platforms for a monthly close — sits one level up from this reconciliation; this article's master rollup is the TTD input to it.
The audit trail expectation is non-negotiable for holding companies. The per-account tabs are not just working artifacts; they are the document trail that supports the master close, which in turn supports client billing and (for advertiser-side reviews) procurement audits that may run months after the period closes. Retain them with the close artifact. The naming convention that scales: {client}_{advertiser_id}_{YYYY-MM}_TTD-recon.xlsx for the per-account workbooks, plus a separately named consolidated workbook per close period. The master rollup is the reconciler's deliverable; everything upstream is the audit trail that defends it.
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.
Related Articles
Explore adjacent guides and reference articles on this topic.
DV360 Invoice Reconciliation: Billing Report Walkthrough
Reconcile DV360 invoices against the Billing Report Template: five-fee anatomy, IO ID join key, advertisers.invoices.list, and variance drill-down.
Creator Payment Statement Extraction: Platform Reconciliation
Extract creator payment statements from GRIN, Aspire, CreatorIQ, and Lumanu, then reconcile payouts, fees, campaigns, and 1099 totals in Excel.
Amazon Sponsored Ads Invoice Reconciliation Across Marketplaces
Download Amazon Sponsored Ads invoices via the global Billing Center, consolidate across marketplaces, and reconcile to Sponsored Products performance reports.