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

# Data differs between widgets

> Two widgets on the same dashboard show different numbers for the same metric. Almost always a configuration difference — date range, filter, breakdown, metric definition, or join type.

Two widgets that look like they're showing the same metric often turn out to be configured differently — even by a single filter or a widget-level date override. Work through the checks below before assuming the data is wrong.

## Quick checks

<Steps>
  <Step title="Click Refresh data in the dashboard header">
    Re-runs every widget against the latest source data. Rules out cache disagreement between widgets.
  </Step>

  <Step title="Compare the widget settings side by side">
    Metric, date range, breakdowns, filters, data source list.
  </Step>

  <Step title="Confirm both widgets use the same date range">
    A widget-level date override that differs from the dashboard filter is the single most common cause.
  </Step>
</Steps>

## Likely causes

<AccordionGroup>
  <Accordion title="One widget has a date override">
    A widget can override the dashboard-level date range from its own data settings. If one widget uses "Last 7 days" and the dashboard uses "Last 30 days," the numbers won't match. Disable the override to inherit the dashboard period.

    → See [Date ranges](/dashboards/filters-and-dates/date-ranges).
  </Accordion>

  <Accordion title="The widgets use different filters">
    Filters apply at three layers — teamspace, dashboard, and widget — and any layer can drop rows silently. An extra widget-level filter on one of the two widgets is the second most common cause.

    → See [Filters](/dashboards/filters-and-dates/filters).
  </Accordion>

  <Accordion title="The metric definitions don't match">
    Two metrics with similar names measure different things. Common examples:

    * Meta `Lead` vs `Lead (Grouped)` — `Lead` is the broader `action_type=lead` (includes offsite Pixel/CAPI leads plus on-Facebook leads); `Lead (Grouped)` matches Meta UI's `Leads (Form)` column and covers Lead Ads instant forms only.
    * Google Ads `Purchase` vs `Category: PURCHASE` — the first is a single conversion action; the second aggregates all conversion actions categorized under PURCHASE.
    * Meta `Purchases (Click, 7d)` vs `Purchases (Click, 28d)` — different attribution windows.
    * Google Search Ads 360 conversion metrics with `(conv time)` vs their asterisked counterparts.

    Custom metrics can also collide when a raw metric is renamed to the same name as a system metric (a renamed Meta Conversion Value → `Revenue`, for example) — the formula then resolves against the wrong input.

    → See the [Breakdowns & metrics FAQs](/widgets/breakdowns-and-metrics/faqs) for the common formula-scoping pitfalls.
  </Accordion>

  <Accordion title="A blend uses a different join type">
    Data blending uses a left join by default: the blended source is scoped to values that also appear in a marketing source. Two widgets built on the same blend but with different join types will produce different results. Full join contributes rows from the blended source of its own — and forces every mapped filter to match on both sides simultaneously.

    → See [Data integration FAQs](/data-sources/data-integration/data-integration-faqs).
  </Accordion>

  <Accordion title="The widgets pull from different data sources">
    A widget that includes one extra channel (Meta plus Google Ads vs. Meta only) will show a different total. Confirm the source list matches.
  </Accordion>

  <Accordion title="A breakdown is rolling up differently">
    Widgets grouped at different levels (campaign vs. ad set, for example) don't always sum the same way — rows without a label at the child level get dropped there but not at the parent. Custom breakdowns are especially prone to this: any campaign not caught by a label condition is excluded from the breakdown but still contributes to the ad-account total.

    → See the [Breakdowns & metrics FAQs](/widgets/breakdowns-and-metrics/faqs).
  </Accordion>

  <Accordion title="Cached data on one widget hasn't refreshed">
    Each widget caches its last fetched result in the browser. If one widget refetched recently and the other didn't, the totals can briefly disagree. **Refresh data** in the header rebuilds both.
  </Accordion>
</AccordionGroup>

## Still stuck?

<Card title="Contact support" icon="life-ring" href="mailto:support@adriel.com">
  Email `support@adriel.com` with the dashboard URL and screenshots of both widgets' settings panels.
</Card>
