postmoderno

How the X algorithm works, according to X's own code

The X algorithm, formerly Twitter's, gathers posts for you, predicts what you would do with each one, and ranks them by a weighted sum. We read X's published code for the November 2026 weights, what changed since August, and what it says about scheduling, links, Premium and shadowbans.

TL;DR

  • A copied link carries the largest positive weight, 20. A reply, quote or DM is 5, and a like 0.708.
  • The like weight rose 42% since August, and X keeps changing these numbers.
  • An original post from an account with 50,000 followers or fewer can get the new-author boost in its first 2 hours.
  • We found no penalty for scheduled posts, no rule that subtracts for links, and no Premium multiplier.
  • Labels can hide a post from people who don't follow you. X's Under the Hood report, still a pilot, lists most of the ones on your account.
On this page · 11 sections
  1. How the For You feed picks posts
  2. The X algorithm weights in November 2026
  3. Why the numbers you read disagree
  4. How a small account gets a boost
  5. What lowers a post’s score
  6. Does scheduling hurt reach on X?
  7. Do links, hashtags, Premium or threads change reach?
  8. Am I shadowbanned on X?
  9. What to do with this
  10. What the code can’t tell you
  11. Schedule for the first two hours

The X algorithm, formerly Twitter’s, builds your For You feed each time you open it. It gathers recent posts from accounts you follow and accounts you don’t, predicts what you would do with each one, multiplies those predictions by set weights, and puts the highest scores first. A separate system can then hide a post because of labels on it or its author.

X publishes this code as xai-org/x-algorithm and updates it several times a week, so numbers go stale fast. The like weight alone changed three times between October 13 and November 5. We read the November 7, 2026 snapshot, traced the repo’s history back to August, and checked what people repeat about reach against the code. Every number below comes with a date.

How the For You feed picks posts

  1. Gather. Thunder holds recent posts from accounts you follow. Phoenix retrieval and SimClusters find posts from accounts you don’t, and X adds a shared list of popular recent posts.
  2. Filter. X removes duplicates, posts older than 48 hours, your own posts, posts you have seen, and accounts you blocked or muted. Replies and reposts from accounts you don’t follow go here too.
  3. Score. Phoenix, a transformer model, reads your recent activity and predicts how likely you are to take each action on each post. X scores up to 2,800 posts per feed load.
  4. Adjust. X shrinks repeat posts from one author, discounts accounts you don’t follow, and lifts some fresh posts from small accounts.
  5. Check visibility. A separate service reads the labels on each post and author and removes what the rules say to drop.
  6. Blend. X adds ads, Who to Follow and prompts around the ranked posts.

The X algorithm weights in November 2026

These come from home-mixer/params/param.rs, last synced on November 6, 2026. X’s README says a scheduled job sets these defaults to its main production values.

If X predicts you will Weight
Copy the post’s link 20
Reply 5
Quote 5
Send it in a DM 5
Follow the author 4
Share it another way 2.118
Repost 1
Like 0.708
Spend time on it after clicking 0.385
Click it 0.274
Open its link 0.2
Stop on it 0.05
Expand a photo 0.05
Spend time on it 0.0075
Scroll past without stopping −0.02
Block the author −31.2
Tap “Not interested” −53.07
Mute the author −58.8
Report it −234

A reply weighs 20 instead of 5 when the viewer and the author follow each other and the post is an original. X shipped that in July 2026.

Each weight multiplies a prediction about one viewer, so the table is not an exchange rate. X’s code comments say the weights combine how much X values an action with how often it happens. A report’s base rate is more than 1,000 times lower than a like’s, which is why its weight is so large. One report doesn’t cancel 330 likes, and one copied link isn’t worth 28 likes.

The two time rows multiply a predicted amount of time instead of a probability, so don’t compare them with the other rows. We left out a few small weights and the ones at 0.

Why the numbers you read disagree

Some guides still quote Twitter’s 2023 release. That code weighted a reply at 13.5 and a reply the author engaged with at 75, which is where “a reply is worth 27 likes” comes from. It called its ranker the Heavy Ranker and said about half of posts came from in-network search. On November 7, Google’s AI Overview for this question still described a Heavy Ranker and a 50/50 split. X’s current README names Phoenix as the ranker, those two reply weights are gone, and we found no fixed split between followed and recommended accounts.

X’s own tuning explains the rest. The main changes to reach the repo in the last three months:

Date Change
August 25 Stopping on a post goes from 0 to 0.05
September 29 Time after a click goes from 0 to 0.4, clicking from 0.4 to 0.3, “Not interested” from −43.2 to −47.52
October 8 X says ranking predicts time spent much better
October 13 X says retrieval also learns from posts people read to the end. The like goes from 0.5 to 0.6, time spent from 0.004 to 0.006
October 14 The like goes to 0.66, “Not interested” to −52.27
October 22 When a feed has more than 2,800 candidates, X trims every source by the same share
November 5 The like goes to 0.708, “Not interested” to −53.07, time spent to 0.0075, time after a click to 0.385, clicking to 0.274, sharing to 2.118, and opening a video from 0.02 to 0

Since X first published the weights on August 13, the like has gained 42%, “Not interested” 23% and time spent on a post 88%, while clicking lost 32%. Copied links, replies, quotes, DMs, follows, reposts and reports haven’t moved. We’d distrust any guide whose numbers have no date.

The like does a second job. Retrieval, the step that finds posts from accounts you don’t follow, trains its Home head on likes and another head on read-throughs, so likes help a post reach strangers before scoring begins.

How a small account gets a boost

If your account is small, start with X’s cold-start code, which the README calls the new-author boost. It lifts one fresh post per feed load, and a post qualifies when it:

  • is an original, not a reply or a repost
  • comes from an account with 50,000 followers or fewer
  • is under 2 hours old
  • has fewer than 200 views in Home

X draws a random number for each qualifying post, weighted toward a high like rate, and keeps the top two. The one with the better ranking score takes on the score of the post in 16th place. The out-of-network discount below can still pull it lower, and the post must already be among that viewer’s candidates, so the lift doesn’t guarantee an audience.

What lowers a post’s score

In one feed load, your second post keeps 62.5% of its score and your third 43.75%, with a floor of 25%. A post from an account the viewer doesn’t follow keeps 75%, and so does a reply or repost from an account they do follow.

Treat those four figures as approximate. They sit in vm-ranker/params.rs, which still lists the like at 0.5, so that file lags behind the one above. The decay works per feed load. It doesn’t set a daily limit, though posts sent in a burst are more likely to land in the same load.

Does scheduling hurt reach on X?

We found no penalty. We also sell a scheduler, so check our reading against the links.

We searched the ranking code and found no field for the app that created a post. client_app_id shows up, but in the home mixer it names the viewer’s app, and Phoenix uses it for iOS and Android metrics.

The posting app does reach two abuse systems. BDSM, X’s bot detector, reads the sequence of an account’s actions, with client signals among its inputs, and its README says it can represent “burstiness, mechanical cadence”. X’s spam rule engine receives the app that created a post too. None of the published rules uses that field, but X withholds some rules and redacted BDSM’s thresholds, so nobody outside X can say what trips them or prove a schedule safe.

In practice, send posts when your readers are online, since the new-author boost’s two hours start at publish time. Vary the text too: X’s automation rules forbid duplicative or substantially similar posts.

We found no rule in the scoring code that subtracts for a link, and opening one carries a small positive weight. In July 2026 X’s product lead Nikita Bier said you don’t need to put links in replies anymore, and Elon Musk said X hadn’t penalized links “for over a year”, PPC Land reported. Phoenix still learns from behavior, so a link that takes people away fast may earn less time on the post. Through the API, X charges $0.20 for a post with a link.

Do hashtags help on X?

The score has no hashtag weight. X’s spam categories include hashtag abuse.

Does X Premium boost reach?

The For You score has no Premium multiplier. Verified status still matters in two places. A separate model that orders replies reads it as an input, and Premium accounts seed X’s reputation score. High reputation exempts an account from most spam labels, so Premium can protect reach to non-followers indirectly, though paying doesn’t guarantee that reputation. X advertises a reply boost, and X Plus vs Premium compares what each plan gets.

Does video get a boost on X?

Not in the score. Opening a video and a quality view both weigh 0 as of November 5. Time spent on a video post still counts, and the retrieval head for X’s immersive feed trains on quality views.

Do threads get more reach?

For You gives strangers your first post and nothing after it. Replies skip the new-author boost, X drops replies from accounts a viewer doesn’t follow, and it keeps one branch per conversation. Write the first post to stand alone.

Do bookmarks and group chats help?

Bookmarks have no weight in the score, though they feed a viewer’s history and one retrieval head. Engagement counts for ranking only on posts X served in the Home timeline, so a link passed around a group chat does nothing for your score.

Am I shadowbanned on X?

X’s code never uses the word “shadowban”, but it does what people mean by it. The README describes rules that apply only when X recommends a post to someone who doesn’t follow the author. Those rules can only drop a post, and “the same post is allowed to a follower.” X’s label list gives the effect of its main spam label as “Post hidden from recommendations to non-followers.”

Three things can get you hidden that way:

  • X’s classifier labels baiting and farming posts SpamHighRecall, even from accounts whose reputation exempts them from other spam checks.
  • An account flagged llm_slop_user gets SpamHighRecall for 7 days, and a post flagged llm_slop_post gets a 30-day label that keeps it out of non-followers’ reply and mention notifications. X doesn’t say what counts as slop, and we found nothing that penalizes a post for being drafted with AI.
  • A post linking to a malicious site gets MALICIOUS_URL, which hides it the same way.

To check your own account, open Under the Hood. X runs the report as a pilot, and it needs an account at least a year old with 10 or more posts in the prior month. It lists the labels on your account and posts, what each one does, and how to appeal. Public shadowban checkers can test what anyone can see, such as search, but they can’t read your labels. Am I shadowbanned on X? covers the labels that report leaves out.

What to do with this

  1. Publish originals when your readers are online, because the boost’s two hours start when the post goes out.
  2. Give people something to send. Copied links, DMs, replies and quotes carry the largest positive weights.
  3. Earn the whole read. Two of X’s October notes concern time spent and reading to the end.
  4. Post for the people who follow you back. A mutual’s predicted reply to your original carries four times the usual weight.
  5. Stay on your subject, now that X has made “Not interested” 23% heavier than in August.
  6. Leave space between posts. X lifts one fresh post per feed load, and posts in a burst compete with each other.

What the code can’t tell you

You can’t run a post through the real model, because X ships training code and synthetic data with no production data or checkpoints. X aims to show experiments at 10% of traffic or more, so smaller ones stay invisible, and your account may sit in one. It keeps its Grox prompts and some spam rules private too.

We couldn’t settle the debias step. X’s code can adjust predictions for how a viewer behaves, and the home mixer began sending its inputs on October 27, but the switch that turns it on reads false in the lagging vm-ranker file. We can’t tell whether it runs.

Schedule for the first two hours

Postmoderno publishes at the time you pick, whether or not your laptop is open, so a post can go out when your readers wake up instead of when you finish writing. Ask your agent to spread a week of posts, and the preview shows each time in your timezone and in UTC before anything is scheduled.

How to schedule tweets from Claude or ChatGPT covers the setup. Our free writing skills carry rules like these into your agent’s drafts.