> ## Documentation Index
> Fetch the complete documentation index at: https://docs.metricanic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reconcile numbers between systems

> Compare like-for-like traffic, conversions, spending, and dates before deciding whether a difference is a tracking failure.

A discrepancy means two numbers differ. To determine whether tracking is wrong, establish what each number counts and which records belong to it. An ad click, a tracked visit, an offer click, and an approved order describe different parts of a journey.

Work on one campaign and a small, known period first. A complete account total can hide several unrelated differences, such as a timezone mismatch in one campaign and a missing payout macro in another.

## Build a comparison you can reproduce

1. Record the campaign or source scope, dates, timezone, and filters in both systems.
2. Identify the exact metric and denominator, such as approved orders rather than all event stages.
3. Check whether each system assigns conversions to the visit date or the action date.
4. Compare raw counts and amounts before comparing percentages.
5. Find a few individual records that appear on only one side and follow their identifiers.

Keep this comparison unchanged while investigating. Refreshing a wider date range midway can make a missing conversion appear without explaining why.

## Ad clicks differ from visits or offer clicks

Suppose the source reports 1,000 ad clicks, Metricanic records 950 visits, and 190 tracked offer clicks occur from the landing page.

The 190 clicks describe a later stage of the funnel and should not equal 1,000 ad clicks. The gap between 1,000 ad clicks and 950 visits is the arrival stage to investigate. Check whether actual source clicks reached the tracking URL or executed the visit script, using source and browser evidence.

A visitor can also generate repeated activity. **uVisits** and **uClicks** use campaign, IP, and user-agent identity rather than an external platform's user model. They are not a universal person count.

For a completely absent arrival or CTA step, use [Missing visits or clicks](/troubleshooting/no-visits-or-clicks).

## Orders differ from Conversions

Suppose the network has 12 approved orders. Metricanic receives 40 submissions and 12 approvals, with both events marked **Count as conversion**. The tracker then reports 52 conversions even though only 12 orders were approved.

Display **Event 1**, **Event 2**, and **Conversions** together and check the [event structure](/conversions/goals). Compare the stage that represents the same business action in both systems.

Also check transaction handling. Reusing the same visit, event slot, and transaction ID repeats one event identity. Omitting the transaction ID creates a new identity for each request. Sending the same order for different visits is not globally deduplicated by the order string.

## Today differs even though the total period matches

A visit on September 10 followed by a purchase on September 11 contributes to September 10 in aggregate Metricanic reports. The raw event appears on September 11.

If the other system reports by purchase time, both can show the same purchase on different days. Expand the window to include both days, then compare individual identifiers. Match timezones as well, especially for activity close to midnight.

A late callback can increase the revenue of a past visit day. Do not assume that yesterday's report is fixed forever once the calendar date changes. See [Dates and filters](/reports/filters-and-dates).

## Revenue differs while conversion counts agree

Check one matching event before adjusting totals:

| Possible cause                               | How to verify it                                                            |
| -------------------------------------------- | --------------------------------------------------------------------------- |
| Fixed event payout                           | Compare the campaign's fixed amount with the sender's order value           |
| Missing or invalid incoming payout           | Inspect the final callback request for a bare numeric amount                |
| Revenue excluded from the total              | Compare **Revenue N**, overall **Revenue**, and the inclusion flag          |
| More than one stage contributes revenue      | Inspect all revenue-bearing event slots for the same order                  |
| Different currency basis                     | Confirm the sender converted to the same USD basis as tracked costs         |
| Outgoing amount differs from recorded amount | Check `{payout}` precedence in [outgoing postbacks](/conversions/postbacks) |

For example, ten orders with an incoming payout of USD 24.50 produce USD 245 with incoming revenue mode. A fixed event payout of USD 20 records USD 200 instead. That USD 45 difference follows the configuration.

## Cost, profit, or ROI differs

Compare **Cost** before comparing Profit or ROI. Check whether spending came from tracked visit cost, event cost, or a [manual correction](/reports/cost-corrections).

A correction replaces the aggregate cost calculation for its campaign period. Raw event amounts and **Cost N** can therefore remain unchanged while overall Cost moves. A range Total spend correction also splits evenly by date, which can disagree with an external system's daily bill even when the range total matches.

Then verify the formulas. Metricanic ROI is profit divided by cost. Profit Margin is profit divided by revenue. CPC divides by tracked offer clicks. Using another system's similarly named metric with a different denominator produces a different result without changing the underlying money.

## A successful postback is absent from the receiver

Use **Postbacks** to separate no attempt, failed delivery, and successful transport. For a successful request, check the external click ID and receiver's conversion configuration next.

The receiving platform can apply its own duplicate rules, attribution window, processing, and reporting dates. A 2xx response confirms transport to the endpoint, not the final credited conversion. Avoid resending with new transaction IDs simply to force its total to increase.

## When the discrepancy still has no explanation

Collect a small set of matching and missing examples with campaign IDs, timestamps, timezones, the relevant tracking identifiers, sender responses, and receiver responses. Include the exact report filters and metric names.

For an external comparison, retrieve all required pages through the [reports and events API](/api-reference/reports-and-events). A single page or an incomplete browser table is not sufficient evidence of the full total. Remove credentials and unrelated personal data from diagnostic material before sharing it.
