Skip to content
Platform APIs

Why your numbers don't match the native apps

Same account, same day, different numbers — and usually both are “right”. We probed all eight networks with real tokens and documented the five mismatches behind almost every wrong-number report, including two that are the platform's own bug.

Social Magnum10 min read
Three live-tested analytics mismatches: Threads followers 1 in the app vs 0 from the API, Facebook engagement 63,871 vs 25,890 counted, and Facebook reach returning an invalid-metric error

Every analytics tool on earth gets the same support ticket: “your dashboard says one thing, the app says another — which one is broken?” We build a dashboard that reads eight networks, so we get to answer it with receipts: usually, neither. The app and the API are two different instruments pointed at the same account, and they disagree for reasons the platforms rarely document.

We probed all eight networks with real tokens on live accounts and wrote down every mismatch we could reproduce. These are the five that explain almost every “wrong number” you will ever see — with the actual values and error codes the platforms returned.

Why the numbers never match exactly

Four mechanical reasons cover nearly all of it: the app and the API sometimes report different metrics under the same label; they aggregate over different time windows; some numbers are live while others are daily rollups or caches; and occasionally the platform’s API is simply broken in a way its own app is not. Each case below is one of those, live.

Two analytics gauges reading the same signal differently — why social media analytics don't match the native apps
One account, two instruments. They disagree for mechanical reasons, not mysterious ones.

Case 1: Threads says 0 followers. The app says 1.

A brand-new Threads account, one real follower, visible in the app. The insights API returns followers_count = 0. Broken connection? No — the very same API response returned views = 3, so the scope was granted and the pipeline was live. The profile object has no follower field at all, and every time window returns the same zero.

Case 2: Facebook deleted “reach” — quietly

Reach — unique people — was the headline metric of Page analytics for a decade. On the API today it is not deprecated-but-zero, it is rejected: every unique-people metric we tried returns (#100) The value must be a valid insights metric. We tested more than twenty metric names individually on two live Pages — page and post level, organic and paid variants. All gone.

What survives is impressions-family data: views, not viewers. Which means any tool currently showing a Facebook Page “reach” number is showing impressions relabelled, cached history, or a guess. Ours labels the survivor honestly and shows nothing where nothing exists — an empty cell is information; a plausible wrong number is a lie with good posture.

Case 3: “Engagement” that is 2.5× itself

Same Page, same 28 days, two answers to one question. Meta’s engagement metric said 63,871. Counting what anyone actually means by engagement — reactions, comments, shares, summed across every post published in the window — produced 25,890. The official number is 2.5× the real one.

SourceWhat it counts28-day value
Meta's engagement metricReactions, comments, shares… plus link clicks, photo expands, video plays and “more”63,871
Counted from the posts themselvesReactions + comments + shares, nothing else25,890
Live Page, identical window. Meta's definition literally ends in “and more” — and the “more” is 60% of the number.

Neither number is fabricated; they answer different questions. The problem is the shared label. We chose the strict count for our dashboard, because when a customer compares our figure against their reactions, it should add up — even though the inflated one would look better on our charts.

Case 4: some numbers are live, some are yesterday’s

PlatformFollower countBehaviour we measured
FacebookLiveCorrect immediately
InstagramLiveProfile field, current
BlueskyLiveCurrent on every read
MastodonLiveCurrent on every read
PinterestLiveCurrent on every read
YouTubeCachedChannel statistics lag behind the Studio app
TikTokCachedServed a stale 0 after a real follow had landed
ThreadsDaily rollupAnd currently broken — see case 1
Probed on live accounts. The lag is only visible at small numbers — an established account looks correct on both instruments.

The trap here is psychological: the 0 → 1 transition is the only place a cache is visible, so new accounts conclude the tool is broken in their first hour. The worst response a tool can have is “fixing” a lagging number by hand — the moment the cache catches up, the hand-entered value becomes the wrong one.

Case 5: “recent” windows that aren’t

The subtlest one. Platforms hand back per-video or per-post counters and let the tool decide what to call the total. YouTube’s recent uploads carry lifetime view counters — sum them naively and a 2015 video contributes a decade of views to “this month”. We watched a naive sum turn 1 real view into 21,200. TikTok’s recent-video stats are totals over whatever videos it returned, not a time window. Of the eight networks, only Meta and Pinterest offer a true 28-day window — so only those two may honestly wear a “· 28d” label.

What an honest dashboard does about all this

  • Labels the window on every number — and refuses the label when the platform cannot supply the window.
  • Counts strictly where definitions are inflated, even when the inflated number would flatter the product.
  • Shows empty rather than plausible when a metric no longer exists — a dash invites a question; a fake number closes it with a wrong answer.
  • Never hand-corrects a cache. Lagging numbers heal; hand-entered ones rot.

That is the standard we hold our own dashboard to, and it is a fair standard to hold any tool to — including when the honest answer is “the platform does not expose that”.

Social media analytics dashboard showing per-network metrics with honestly labelled time windows
Windows labelled per network, strict engagement counts, and empty cells where a platform stopped supplying the data.

The 60-second audit when your numbers disagree

  • 1. Same metric? “Engagement”, “reach” and “views” each mean different things on different surfaces. Find each side’s definition before comparing.
  • 2. Same window? A calendar month vs a rolling 28 days differs by up to 10% with zero real change.
  • 3. Paid included? Native apps blend ad results into some metrics; APIs often report organic only.
  • 4. Fresh or rolled up? If one side updates live and the other daily, compare tomorrow, not now.
  • 5. Does the metric still exist? Platforms retire metrics without ceremony. If one side errors and the other shows a number, the number may be older than it looks.

The short version

  1. 1

    The app and the API are two instruments pointed at one account — different definitions, windows, caches and bugs make exact agreement the exception, not the rule.

  2. 2

    Threads' follower metric under-reports by Meta's own bug; the tell it isn't the tool is that other metrics in the same API response are correct.

  3. 3

    Facebook no longer exposes any unique-people metric — reach labels on Page dashboards today are impressions, history, or fiction.

  4. 4

    Meta's engagement metric ran 2.5× a strict reactions+comments+shares count on the same Page and window; check what a label counts before comparing it.

  5. 5

    Only Meta and Pinterest supply true 28-day windows; summing 'recent videos' on YouTube adds lifetime counters and can inflate a month by orders of magnitude.

Frequently asked

Why don't my analytics tool's numbers match Instagram Insights?

Because the two surfaces differ in definition, window, and freshness: native apps blend paid and organic where APIs often report organic only, calendar months differ from rolling 28-day windows, and some numbers update live while others roll up daily. Exact agreement is the exception even between two correct systems.

Which number is the right one — the app or the tool?

Treat the native app as the canonical public number and a good tool as the comparable, consistently-defined one. The app's figure is what everyone else sees; the tool's value is measuring every account with the same definition and window so trends and comparisons hold.

Why does my Threads follower count show as zero?

It is a known Meta-side issue: the Threads insights follower metric is a daily rollup that under-reports new and small accounts, while other metrics in the same API response (like views) return correctly. No third-party tool can read a number the API refuses to supply.

Why is Facebook reach missing from my dashboard?

Meta removed unique-people metrics from the Page insights API — the calls now return an invalid-metric error rather than zero. Tools showing Facebook 'reach' today are showing impressions under an old label or historical data. An honest dashboard labels what survives (impressions) and leaves reach empty.

Why is my follower count stuck at zero in a tool but not the app?

Some platforms serve follower counts from a cache or daily rollup — we measured TikTok serving a stale zero after a real follow had landed. The lag is only visible on new accounts, and it heals on its own. Never hand-correct it; the moment the cache catches up, the hand-entered number becomes the wrong one.

Do analytics tools include paid results?

It varies by platform and metric, which is exactly why numbers diverge: several native surfaces blend ad performance into totals while the equivalent API fields report organic activity only. When auditing a gap, checking whether one side includes paid is step three of five.

Reading comments is the easy half.

Social Magnum schedules and publishes to all eight networks from one composer, and puts every reply we can legitimately reach into a single queue.