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.

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.

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.
| Source | What it counts | 28-day value |
|---|---|---|
| Meta's engagement metric | Reactions, comments, shares… plus link clicks, photo expands, video plays and “more” | 63,871 |
| Counted from the posts themselves | Reactions + comments + shares, nothing else | 25,890 |
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
| Platform | Follower count | Behaviour we measured |
|---|---|---|
| Live | Correct immediately | |
| Live | Profile field, current | |
| Bluesky | Live | Current on every read |
| Mastodon | Live | Current on every read |
| Live | Current on every read | |
| YouTube | Cached | Channel statistics lag behind the Studio app |
| TikTok | Cached | Served a stale 0 after a real follow had landed |
| Threads | Daily rollup | And currently broken — see case 1 |
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”.

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
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
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
Facebook no longer exposes any unique-people metric — reach labels on Page dashboards today are impressions, history, or fiction.
- 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
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.