Drop in X's own analytics export and we compute your real trailing 90-day median, then compare you against creators who were at your exact stage — measured as they were then, not as they are now. No export? There's a manual fallback.
We read your real post history and compute the same trailing 90-day median every creator in the archive is measured on — instead of asking you to estimate it.
.csv of your own posts.The fallback path, for accounts without the analytics export. These are self-reported estimates, so the report labels them as a ceiling throughout.
We check this against what the archive actually shows. When the two disagree, that disagreement is the finding.
Matching you against creators who were at your exact baseline.
we scrape by hand · usually 2–3 days
Opens a pre-filled email so the request actually reaches us — we scrape by hand, so nothing is automatic.
median impressions · trailing 90 calendar days · per account
Posting schedules are uneven. "Your last 20 posts" might span three weeks for one creator and eight months for another — which makes the two numbers meaningless to compare. A fixed 90-day window measures the same amount of time for everyone, so a creator who posts daily and one who posts weekly are both judged against their own recent reality.
One post that unexpectedly escapes the follower graph can be 100× your normal reach. That single spike drags an average up so far that every ordinary post afterwards looks like a failure against it. The median — the literal middle value — ignores that outlier, and equally refuses to be dragged down by one dead post during a dry spell. It answers "what does a normal post of mine actually do?"
Open X → Analytics and list every post you published in the last 90 days. Sort them by impressions, low to high. Take the number in the exact middle — if you have an even count, average the middle two. That figure should match the baseline shown here. If it doesn't, the window is wrong and we want to know.
Fewer than one prior post in the window? We fall back to 250 rather than invent a number, and label it.
An account joins your cohort for the stretch its own 90-day median sat inside your band — not for its whole history. We measure it as it was then, not as it is now.
A 90-day median drifts across a band edge without the account having actually changed stage — it dips under 300 impressions for a fortnight, then comes back. Treating that as two separate stints would chop one continuous period into fragments. So if an account drops out of your band and returns within 30 days, we count it as one unbroken stretch, including the posts it made during that dip. Longer than 30 days and we treat it as a genuine stage change, and the stretch ends.
We ignore any stretch shorter than 14 days. A fast-growing account can cross an entire band in a day or two — it posts a handful of times on the way through and never really sits at that stage. Counting those few posts as "what this stage looks like" would let the briefest visitors speak loudest. Two weeks is the floor for having been somewhere rather than passed through it.
Within those stretches we count every post the account made, not only the ones whose own baseline we could verify. The band decides when to measure; it must not also decide what counts as a post. Doing both understated one account in this archive by 15× — 0.4 posts a week against a real 6.1 — because most of its posts in that period had been filtered out for unrelated baseline-quality reasons.
Every comparison needs at least 3 creators, counted per comparison rather than per cohort — a metric that can only be computed for some members reports the number it actually used. Below that we suppress the row and say why. We would rather show you nothing than a median drawn from one person.