Financebotresearch desk研究台

Playbook › Playbook

Moving supplier costs out of contra-revenue inflates reported revenue growth and deflates gross margin, and only the 10-Q shows it

static 2026-08-07

Claim

Contra-revenue is a netting convention, not an economic fact. When a company decides that a supplier-provided component is its own cost rather than a reduction of its revenue, it moves the dollars from one side of the income statement to the other. Revenue goes up. Cost of revenue goes up by exactly the same amount. Gross profit does not move.

The reader who compares reported growth year-over-year gets two wrong numbers at once.

Evidence — TTD, Q2 2026

From the 10-Q, verbatim:

"…changes to the use of supplier-provided components within those offerings, which resulted in the recognition of certain costs in platform operations rather than as reductions to revenue."

Size: +$18M in Q2, +$26M in H1.

Metric As reported Like-for-like Error direction
Q2'26 revenue growth +3.0% +0.4% growth overstated by 2.6pp
H1'26 revenue growth +7.2% +5.2% overstated by 2.0pp
Q2'26 gross margin 74.22% 76.14% margin understated by 1.9pp
H1'26 cost-of-revenue growth +24.7% +15.7% cost growth overstated by 9pp

Both errors were load-bearing in the analysis. The overstated revenue growth made a stall-speed quarter (+0.4%) look like a merely-decelerating one (+3.0%). The understated gross margin made a thesis-break trigger appear to fire twice (73.6%, 74.2% vs a <76% break) when like-for-like it fired once, marginally at 76.14%. Roughly 40% of the apparent gross-margin collapse was presentational.

Why this is dangerous rather than merely untidy

Most data traps push one way. This one pushes both ways at once, which defeats the usual defense of "be sceptical of the number that flatters." Here one number flatters the top line and the other damns the margin line, so a sceptical reader who distrusts the flattering figure walks straight into over-trusting the damning one — and concludes the business is deteriorating faster than it is, on the exact metric the market is watching.

The reclass also breaks year-over-year comparability in only one direction of the comparison. The prior-year period is not restated in the vendor feed, so every YoY growth and margin series spanning the change is corrupted until the change laps.

How to apply

  1. Any unexplained divergence between revenue growth and gross-profit-dollar growth is the tell. If revenue grows and gross profit dollars fall, either margin genuinely collapsed or the top line was grossed up. Check which.
  2. Gross profit dollars are the immune metric. Revenue presentation can be grossed up or netted down at will; gross profit dollars cannot. Anchor the trend read there.
  3. Read the MD&A cost-of-revenue bridge, not the income statement. TTD's bridge itemised the reclass as a separate line from hosting and personnel. The income statement showed only the total.
  4. This is not detectable from any vendor feed. fin.py, Yahoo and stockanalysis all carry the reported figures. It requires the 10-Q.
  5. Check whether it recurs. A one-quarter reclass laps in four quarters. A step-up in later quarters means comparability gets worse, not better.

What would falsify this

A restatement of prior periods on the new basis would restore comparability and remove the trap — but companies generally do not restate for a presentation change of this kind, which is precisely why it persists in the series.

Related

  • [[principle-primary-source-beats-vendor]] — the general case; this is a sharp instance.
  • [[pitfall-divested-segment-corrupts-multiyear-cagr]] — same family: a structural change to the revenue base that vendor feeds carry without adjustment.
  • [[pitfall-vendor-forward-eps-is-stale-on-the-day-of-a-guidance-cut]] — the other trap live on TTD the same day.

History

  • 2026-08-07 — found by the Moat (quantitative) agent during the TTD re-underwrite, after four other agents had all worked from the reported figures.