My reach suddenly dropped — what do I check first?

Check in this order, because the code makes some causes far more likely than the dramatic ones. First: is it actually a drop, or normal post-to-post variance against your baseline? Second: did your recent content change — new topic, more links, something tripping the spam or safety classifier? Third: did negative engagement tick up (reports, blocks, mutes subtract directly)? Fourth: is your out-of-network reach the part that fell, which is the volatile channel? "Shadowban" is the last thing to suspect, not the first — there's no such flag in the code, and the ordinary causes explain almost every real drop.

A sudden reach drop feels like a ban. It almost never is. The released code points to a short list of ordinary causes, and checking them in likelihood order will explain the overwhelming majority of real drops faster than speculating about suppression.

The checklist, in order of likelihood

#checkwhy it's high on the list
1Is it real, or variance?Reach swings post-to-post for ordinary reasons. One or two quiet posts is noise. Check the trend against your baseline first.
2Did your content change?A new topic, format, or something that reads as promotional can shift how the spam or safety classifiers judge you.
3Did negative engagement rise?Reports, blocks, mutes, "not interested" are negative scoring terms — a controversial post can pull down your numbers directly.
4Which channel fell?If out-of-network reach dropped, that's the volatile discovery channel — far more likely than a penalty.
5Only then: classifier/penaltyA real content-policy trip is possible but rare, and it's downstream of checks 2–3, not a mysterious switch.
CODE-CURRENT0bfc279verified 2026-06-12
The model explicitly predicts negative actions — not interested, block author, mute author, report — and these carry negative weights in the final score, pushing down content a user would likely dislike.
xai-org/x-algorithm — README.md (Scoring and Ranking) + home-mixer/scorers/weighted_scorer.rs lines 64–67as of the May 15, 2026 release

Why "shadowban" is last, not first

There's no account-level suppression flag in the released code — what people call shadowbanning is the aggregate of the signals above. Jumping straight to "I'm banned" skips the four causes that actually explain most drops, and it's unfalsifiable in a way the real checks aren't. Suspect the ordinary before the dramatic.

CODE-CURRENT0bfc279verified 2026-06-12
The current WeightedScorer combines predicted probabilities for: favorite, reply, retweet, photo expand, click, profile click, video quality view, share, share via DM, share via copied link, dwell, quote, quoted click, continuous dwell time, follow author, not interested, block author, mute author, and report.
xai-org/x-algorithm — home-mixer/scorers/weighted_scorer.rs, lines 44–68 (compute_weighted_score)as of the May 15, 2026 release

The one structural nuance: new accounts

If you're a very new account, the code does treat you differently — there's a new-user history threshold in both retrieval and ranking that gates on how much interaction history you have. That's cold-start, not a penalty, and it resolves as you build history. It's the one case where "low reach" has a structural, non-content cause.

CODE-CURRENT0bfc279verified 2026-06-12
Phoenix applies a new-user history threshold in both retrieval and ranking: when the configured threshold is positive, the system checks the length of the user's interaction sequence (action_count) and handles low-history (new) users via a separate path. This is cold-start handling, not a penalty, and resolves as a user accrues history.
xai-org/x-algorithm — home-mixer/sources/phoenix_source.rs PhoenixRetrievalNewUserHistoryThreshold (L25) + home-mixer/scorers/phoenix_scorer.rs PhoenixRankerNewUserHistoryThreshold (L29)as of the May 15, 2026 release

What the code doesn't say

▲ What the code doesn't say

Which cause is yours. The checklist is the right order in general; pinning your specific drop requires measuring your own engagement and reach against your own history. The code names the causes; only your data identifies the culprit.

UNKNOWN0bfc279verified 2026-06-12
The numeric values of the current weights are not included in the open-source release: weighted_scorer.rs references a params module (e.g. p::FAVORITE_WEIGHT, p::REPLY_WEIGHT) whose values are not present anywhere in the published repository.
xai-org/x-algorithm (verified by direct inspection of the full repository tree at the pinned SHA) — home-mixer/scorers/weighted_scorer.rs references crate::params; no params definitions with weight values exist in the releaseabsence verified at the pinned SHA; values may be published in a future release

What to do with this

Work the checklist against real numbers instead of guessing. This is the core of what xDoctor's Checkup does — it scores your recent posts against your baseline, flags negative-engagement shifts and classifier risk, and separates a real drop from variance — turning "am I shadowbanned?" into an answerable, ordered diagnosis.

← Account hygiene & recovery