Skip to content
Browse documentation

Report numbers don't match

Why a report differs from another report, the conversion list, a partner's or advertiser's numbers, or the ad platform — and how to reconcile.

Last updated 3 min read

On this page

Most differences come from definitions, not lost data. Check these in order.

1. Same definitions?#

MetricCounts
ClicksEvery recorded click (bots and fallbacks included, compliance probes excluded).
Unique clicksFirst click per offer, partner, IP and user agent within 24 hours.
ConversionsApproved conversions only.
Pending / RejectedSeparate metrics; Rejected includes duplicates.
CVRApproved conversions ÷ unique clicks.
Revenue, Payout, ProfitApproved conversions in the report currency, plus per-click (CPC/RPC) and per-impression (CPM/RPM) amounts, plus report adjustments.

A partner who counts every postback they received, or an advertiser who counts every order, will see more than Conversions: compare with Conversions + Pending + Rejected, or filter the conversion list.

2. Same dates?#

  • Time zone. Panel reports bucket days in the viewing user's Display time zone (Profile) when one is set, otherwise in the workspace time zone (Settings → Workspace). Two teammates with different display zones, or a partner in another zone, see a different "yesterday". The API uses its tz parameter. Caps and billing periods always use the workspace zone.
  • Conversion time vs click time. The report builder counts conversions on their conversion time by default. Switch the selector next to the date range to click time to count them on the day of their click (cohort view); the API parameter is date_basis=click. Totals for a range differ when conversions happen days after clicks.
  • Status changes do not move dates. A conversion approved today that converted last week is counted last week.
  • Hold periods. Held conversions are Pending until the hold ends; they then count as Conversions on their original date.

3. Same currency?#

Money is never added across currencies. Money columns show only amounts in the report's currency (default: the workspace currency); the report lists the other currencies that have money in the same range — run it again with that currency. Counts (clicks, conversions) cover every currency. Conversions converted from another currency keep original_amount, original_currency, fx_rate and fx_date in their parameters.

4. Are changes still syncing?#

Conversions are stored first and then copied to the reporting database by a background job, normally within seconds. Status changes, adjustments and imports follow the same path. On Reports → Conversions the money cards mention "N changes still syncing" while that copy is behind. Wait a minute and refresh; if the number does not go down, contact your platform administrator.

5. Report adjustments#

Report adjustments (/app/reports/adjustments) add or subtract clicks, conversions and money for a day. They are included in reports but are not conversions, so they never appear in the conversion list or the postback log.

6. Conversion list vs report#

Conversion list showsReport shows
Every conversion (all statuses, duplicates)Conversions = approved only
Payout of each conversionPayout also includes CPC / CPM earnings and adjustments
Its own date range and filtersThe report's range, date basis and dimensions

7. Partner or advertiser portal vs network view#

  • Partners see only their own traffic and their payout (never revenue, profit or advertiser data).
  • Advertisers see only their own offers and revenue (their cost), never payout or partner names.
  • Compare the same date range and the same time zone.

8. Ad platform vs TrackCrown#

Google Ads, Meta or a partner's tracker will rarely match exactly:

  • the ad platform counts clicks on the ad, TrackCrown counts requests that reached the tracking link (some visitors close the page before the redirect; with parallel tracking the background request can be skipped);
  • the ad platform attributes conversions with its own window and model (view-through, data-driven), TrackCrown with the offer's attribution window and last or first touch;
  • invalid-click filtering differs: TrackCrown records bots and flags them; the ad platform may remove them silently.

Compare trends, not single days. For a precise check, export click IDs or gclids from both sides and match them with Transaction lookup or GET /api/v1/clicks?gclid=….

9. Find the exact difference#

  1. Export both sides for one day (report CSV export, the partner's file).
  2. Match on conversion_id or the advertiser's order ID (adv_txid).
  3. Look up each unmatched row in Reports → Postback log → Received (did it arrive?) and in Reports → Conversions with all statuses (was it rejected or a duplicate?).
  4. See Conversions are not attributed for the reasons.
Something unclear or missing in this article?Tell us