Tools
Free tool / runs in your browser

X Algorithm Checkup

Upload your Under the Hood export and/or your X data archive. Both are parsed entirely in this browser tab, never uploaded, against the constants X published in home-mixer/params/param.rs. This tool never gives a shadowban verdict, only your own files read honestly.
1

Get your file from X

Start here -- one click, immediate result

Get your Under the Hood file

X's pilot export of the visibility labels applied to your account. It is the closest thing to ground truth about visibility that exists, and the only file this tool can read for a real answer, not a guess.

Open X to get your file

Opens in a new tab. This tab stays open, so come back here once you have the file.

  1. 1The button above opens the Under the hood page directly. It is not in Settings, so there is nothing to hunt for.
  2. 2Check the two ticks: 10 or more posts in the prior month and an account at least 1 year old. Both are required during X's pilot.
  3. 3Press Download. The file covers one calendar month, shown on the page as the report period.
  4. 4Come back to this tab and drop the file below.

Don't see Under the Hood, or want the fuller picture?

Request your standard X data archive instead. It has no visibility labels, but it gives a full posting-history snapshot for the behavior audit below. X says this can take a few days to prepare -- request it now, then come back whenever it lands in your inbox.

Request your data archive
  1. 1. On X: Settings -> Your account -> Download an archive of your data.
  2. 2. Enter your password and confirm the code X emails or texts you.
  3. 3. Click Request data. X emails you (or sends a push notification) when it is ready.
2

Upload it

Drop the file here, or click to choose. One dropzone, either file, no need to tell us which is which.

Drop your file here, or click to choose

The Under the Hood JSON, the X data archive .zip, or both at once -- we tell them apart automatically.

Both files are parsed entirely in this browser tab. Nothing is uploaded -- this is enforced by code, not just this sentence: the parser only ever reads an explicit allowlist of fields, and it never opens direct-messages, follower, following, or ad data files inside the archive. See the methodology section below.

3

Your result

A plain-language read of your own file, before anything is asked of you.

Upload a file above to see your result here. If you just requested your data archive, it can take a few days -- read the guide below while you wait, or come back and drop the file in whenever it lands in your inbox.

Read the full guide to the ranking weights

What the published constants mean

From home-mixer/params/param.rs, verified 2026-08-15. Favorite (0.5) and retweet (1.0) are used for the weighted engagement score above because the archive contains those counts. Reply (5.0), quote (5.0) and share via copied link (20.0) are explanation only -- the archive has no reply or quote counts. Not interested (-43.2), block (-31.2), mute (-58.8) and report (-234.0) are large negative coefficients because those actions are rare, not because they are "worth" a specific number of favorites in the real world. Out-of-Network Weight Factor (0.75) and Topic Out-of-Network Weight Factor (0.5) discount reach beyond your followers, explanation only.

How the X Algorithm Checkup works

Methodology

Everything runs in your browser. The archive is a .zip file; a browser-native ZIP reader (DecompressionStream) locates entries by name and decompresses only an allowlisted set of filenames (tweets.js and its numbered parts). Every other file in the archive, direct-messages, follower, following, ad data and the rest, is never opened. The Under the Hood JSON is read the same way: it is a small, aggregated per-label report (which labels were applied, to how many posts, and X's own description and stated effect for each), and only recognized fields are mapped into the tool's internal model, plus per-post created date, favorite count, retweet count, reply flag, link flag, hashtag count and text length from the archive. Raw objects, post text, and user or follower IDs are discarded immediately after mapping and never enter application state or leave the browser.

All scoring is deterministic arithmetic against constants verified in github.com/xai-org/x-algorithm on 2026-08-15. There is no AI model call anywhere in the analysis path, free or gated, and no per-user cost to run it.

The honesty contract

This tool never answers yes or no to "am I shadowbanned." X's export shows which labels were applied. It does not confirm or deny shadowbanning, and neither do we. A label is X's own statement; anything beyond that would be a guess dressed up as a result.

X's export reports how many posts carried a label in the period, not which posts, so this tool cannot show why any label was applied and never claims any post caused any label. X open-sourced ranking logic and constants, not the trained model: there is no checkpoint to download (phoenix/README.md). This tool checks your files against the published logic; it cannot run X's production ranking, and neither can anyone else outside X.

The weights are coefficients on model-predicted probabilities, not an exchange rate. We do not convert them into "worth N favorites" framing anywhere in this tool, only cited arithmetic against the published constants, by file path, so you can verify it yourself.

What is free and what is gated

Free, no account: file parsing for both inputs, how many of your posts carried a label and how many account-level labels X reports from Under the Hood, the archive's headline behavior stats, and the honesty box. The honesty box is part of the free result on purpose, it is the product's differentiation, not a disclaimer to bury behind email.

Email unlocks, in the same browser tab: every label X reported with its own description and stated effect verbatim (plus a pointer to the specific rule in X's open-source code where we could verify one), the complete per-post behavior table, and remediation notes ranked by the verified negative constants. Nothing derived from your file is ever sent to our servers to compute the gated view, it was already computed client-side before you entered an email.

Limitations

Under the Hood is a pilot; if a future export adds fields this tool doesn't recognize yet, it degrades gracefully rather than breaking or inventing a result. It reports counts and percentages per label for the whole period, not per post, so it cannot say which specific post carried which label. The archive's engagement counts are a snapshot at export time, not a history. Neither file contains impressions, and the archive contains no reply counts, so several published weights (reply, quote, link-copy share) appear only as explanation copy, never as a computed number.

Frequently asked questions

Can this tool tell me if I am shadowbanned?

This tool never answers yes or no to "am I shadowbanned." X's export shows which labels were applied. It does not confirm or deny shadowbanning, and neither do we. A label is X's own statement; anything beyond that would be a guess dressed up as a result.

What is the Under the Hood export?

It is a pilot feature from X that lets qualifying accounts download a JSON file listing the visibility labels X applied to that account over the past month. It is the closest thing to ground truth about visibility that exists, but it is pilot-gated: X requires 10+ posts a month, an account at least a year old, and inclusion in the pilot.

What can the standard X data archive show, if I do not have Under the Hood?

The standard archive is universal, but it contains no visibility labels, no impressions and no reply counts. This tool uses it for a behavior audit only: post count, a weighted engagement score using the two published constants the archive supports (favorite 0.5, retweet 1.0), reply share and link share of your own output. It cannot tell you whether your reach was limited.

Does my file get uploaded anywhere?

No. Both files are parsed with browser-native code in your own tab. The parser extracts only an explicit allowlist of fields, DMs, followers, following and ad data files inside the archive are never opened. This is enforced by the code that ships to your browser, which you can inspect, not just by this sentence.

Is the weighted engagement score a full ranking score?

No. It is 0.5 x favorites + 1.0 x retweets, the two engagement counts the archive contains, weighted by the two published constants that apply to them. The published formula also weighs replies (5.0), quotes (5.0) and link-copy shares (20.0). Your archive does not contain those counts, so this score understates posts that earned replies and shares.

Does a report really cancel out hundreds of favorites?

No, and stating it that way is a documented misreading of the source. The published weights are coefficients on model-predicted probabilities, not a conversion rate between real engagements, a comment in the X source code says so directly. What is verifiable is the arithmetic: per home-mixer/params/param.rs, one report (-234.0) outweighs 468 favorites (+0.5 each) as raw coefficients. That is not the same claim as "a report cancels 468 likes" on any real post.