[

[

x algorithm series

]

]

The Twitter Algorithm Update Everyone Got Wrong (October 2026)

·

·

15 min read

·

·

By Prateek Singh, founder of VoiceMoat

By Prateek Singh, founder of VoiceMoat

Summarize with AIClaudeChatGPTPerplexityShareShare

Key takeaways

  • Twitter changed three things in its published ranking code between 22 and 23 October 2026. No ranking weight changed.

  • Equal trimming: when someone's feed has more candidate posts than the 2,800 Twitter's ranking model can score, every source is now cut by the same share. Before, the last source in line lost the most, and that is where posts under 2 hours old sat.

  • A warning label: posts labelled low quality or misinformation now carry a notice in the published code. It is shown to everyone, not just non-followers, and on low-quality posts it blocks likes, replies, reposts, bookmarks and shares.

  • The AI slop label: accounts Twitter flags as "LLM slop" get a spam label that hides them from people who don't follow them. It now lasts 7 days instead of 30.

  • The viral threads got the big picture mostly right, but several details were wrong or overstated. The fix for small accounts is the same as before: post originals when you can be around for the first 2 hours, write things people read to the end, and don't post like everyone else.

Twitter's October 2026 algorithm update changed how the For You feed trims posts before ranking them, added a warning label to low-quality and misinformation posts, and shortened the "AI slop" account label from 30 days to 7. It did not change a single ranking weight. You can see all of it in the open-source code Twitter's parent company publishes at github.com/xai-org/x-algorithm, which updates almost every day.

The update went viral through two threads. Peter Mick's post on 25 October passed 2.7 million views, and Shann Holmberg's breakdown followed a day later. Both read the code and both got a lot right. But a few of the most-repeated lines don't match what the code says, and the biggest change for anyone using AI to post didn't get mentioned at all.

We compared the code from 21 October with the code from 29 October, line by line, and checked every claim in both threads. Here's what actually changed, what didn't, and what to do about it. (Disclosure: we make VoiceMoat, an AI social media tool for LinkedIn and Twitter. It comes up once, in the AI slop section.)

The short answer: three changes, no new scores

Change

Date in the code

What it does

Who it affects

Equal trimming of candidate posts

22 October

Cuts every source by the same share when a feed has more than 2,800 candidates

Everyone, most of all newer posts and posts from outside your network

Warning on low-quality and misinformation posts

23 October

Shows a notice and, for low-quality posts, blocks most reactions

Posts that get one of these labels

Shorter AI slop account label

23 October

Spam label for accounts flagged as AI slop now lasts 7 days, down from 30

Accounts flagged by Twitter's AI slop detection

Ranking weights

No change

The last weight changes were on 13 and 14 October

Nobody this week

If you only read one line: nothing about how your posts are scored changed, but a little more of your newest content now gets a chance to be scored at all.

Flow chart of how the Twitter For You feed is built in six steps, collect, filter, trim to 2,800, score, pick and show, with the two steps that changed in October 2026 and the GitHub folder for each

The six steps behind your feed, and the GitHub folder for each.

Change 1: the 2,800 cap and equal trimming

Every time you open the For You feed, Twitter gathers candidate posts from several places, then asks its ranking model to score them. The model can only score 2,800 candidates per request. That cap is in the code, and it has been there for a while.

Where the candidates come from, at the default limits:

  • Accounts you follow: up to 1,200

  • Popular posts: up to 500

  • Posts liked by people similar to you: up to 800

  • Twitter's own recommendation model: up to 1,000

  • A "cold" pool of very new posts from that model: up to 200

That adds up to about 3,700, which is where the threads' number comes from. It isn't a single number in the code; it's the sum of these limits. Filters remove duplicates, posts you've already seen and old posts before the cap kicks in, so most real feeds start with fewer.

How Twitter trims about 3,700 candidate posts to the 2,800 it scores: before 22 October the last source in line kept 300 of 1,200, after 22 October every source keeps about 76%

Before and after equal trimming, with every source at its default cap.

How it worked until 21 October. The sources were lined up in a fixed order: accounts you follow first, then popular posts, then similar-taste posts, then the recommendation model last. When there were more than 2,800, the code simply kept the first 2,800 in line. Everything after that was never scored, and a post that's never scored can't make it to the top of anyone's feed.

At full limits, that meant only about 300 of the recommendation model's 1,200 candidates got scored. Its cold pool is posts up to 2 hours old, so very new posts from people outside your network were the ones most likely to be dropped.

How it works from 22 October. A setting called EnableFairShareRanking was switched on, using a fair-share filter. Now, when there are too many candidates:

  • Every source keeps the same share of the 2,800.

  • Each source drops its own lowest-ranked posts, not whatever happens to be at the end of the line.

  • If a feed has 2,800 candidates or fewer, nothing is cut.

At full limits, everyone keeps about 76%. The recommendation model now gets roughly 757 of its posts scored, plus about 151 from the cold pool, instead of about 300 in total.

The PhoenixScoresResultSize cap of 2800 and the EnableFairShareRanking switch set to true in Twitter's home-mixer/params/param.rs

The 2,800 cap and the switch that turned on equal trimming. Source: github.com/xai-org/x-algorithm

What nobody knows yet: how often a real feed goes over 2,800. That isn't in the code. If most feeds stay under the cap, this change does very little. If many go over, newer posts from outside people's networks get a noticeably fairer shot.

Where the threads went slightly wrong: "new posts used to be cut first" is close, but not quite it. The old cut was by position in line, not by age. Very new posts suffered because they sat inside the source that came last. The fix is real, but it is about sources, not timestamps.

Change 2: the warning label on low-quality and misinformation posts

The 23 October release added a rule that puts a notice on posts with one of these labels:

  • Low quality

  • Misinformation (civic, generic, medical or crisis)

What the notice does, according to the code:

  • Who sees it: everyone. The rule's audience is literally Everyone. The tests expect it for people who don't follow you and for the post's own author.

  • What it blocks on low-quality posts: replies, reposts, likes, reactions, sending by DM, bookmarks, pinning, viewing post activity, sharing and copying the link. Quoting is not on the list. This list comes from the code's tests, because the live settings file isn't published.

  • What it blocks on misinformation posts: only what the specific label says. Some limit replies; some just show the notice.

  • What it doesn't do: it doesn't remove the post from the feed or lower its ranking. It runs when posts are shown, not when they are ranked.

Flow chart of Twitter's low-quality and misinformation notice: shown to everyone, blocks likes, replies, reposts, bookmarks and shares on low-quality posts, quote still works, ranking unchanged

What the notice does, and what it doesn't.

Twitter's public interest label rule in visibility-filtering/rules/tweet_rules.rs, with audience Everyone and the low quality and misinformation labels

The warning rule. Note the audience: Everyone. Source: github.com/xai-org/x-algorithm

Why this probably isn't new. The rule has a start date written into it: 1 April 2019. That matches Twitter's long-running "public interest" notices. The most likely story is that an old system was published in the open code for the first time, not that a new penalty switched on this week.

What the code doesn't tell you: what earns the label. That decision comes from Twitter's safety systems, and those aren't in the repo.

Where the threads went wrong: "non-followers can't like, reply or share" is wrong on one point. The published rule applies to everyone, followers included. And "misinformation labels limit your reach" isn't supported by the For You code: labelled posts are kept and ranked as normal; they just show the notice.

Change 3: the AI slop label (the one nobody covered)

This is the change that matters most if you use AI to post, and neither thread mentioned it.

Twitter's enforcement rules include a check for accounts flagged as llm_slop_user. In plain English: accounts its systems think are posting generic, mass-produced AI content. When an account gets that flag:

  • It gets a spam label. That spam label is on the list of labels that remove your posts from the For You feed of people who don't follow you.

  • As of the 23 October release, the label lasts 7 days. It used to last 30.

  • Large accounts are skipped. The real follower threshold isn't published (the repo uses a placeholder "to reduce gaming").

  • Individual posts can be flagged too, with a separate label that lasts 30 days.

Flow chart of Twitter's AI slop label: a flagged account gets a SpamHighRecall label for 7 days instead of 30 and is hidden from non-followers, while large accounts are skipped

What happens after an account is flagged as AI slop.

Twitter's enforcement rule act_add_llm_slop_label adding a SpamHighRecall label with ttl_msec 604800000, which is 7 days

The AI slop rule: 604,800,000 milliseconds is 7 days. Source: github.com/xai-org/x-algorithm

The shorter label is good news if you get caught by mistake: a week instead of a month. But it also tells you this check exists, runs on accounts like yours, and costs you all your non-follower reach while it lasts.

What we don't know: how the AI slop check decides. The code shows what happens after an account is flagged, not what the detector looks for.

What it means in practice. The cheapest way to stay clear is not to post like a template. Posts that read like every other AI post (the same hooks, the same lists, the same "here's the thing") are exactly what a slop detector is built to catch. Use AI to help you get more done, but make sure what goes out reads like you.

What didn't change: the weights, the boost, the 48-hour limit

No ranking weight changed between 21 and 29 October (see the weights in param.rs). The last changes were on 13 and 14 October, when the weight on a like went from 0.5 to 0.66 and the weight on time spent went up by half, from 0.004 to 0.006.

Here's how the current weights compare with a like. These multiply Twitter's predicted chance of each reaction, so they're not points per action, but the ratios show what the feed values:

Reaction

Weight

Compared with a like

Copy link

20

about 30x

Reply, on an original post by someone you follow who follows you back

20

about 30x

Reply

5

about 7.6x

Quote

5

about 7.6x

Share by DM

5

about 7.6x

Follow from the post

4

about 6x

Share (other ways)

2

about 3x

Repost

1

about 1.5x

Like

0.66

1x

Bookmark

0

0

Block

-31.2

about -47x

"Not interested"

-52.272

about -79x

Mute

-58.8

about -89x

Report

-234

about -355x

Twitter ranking weights as multiples of a like: copy link and a reply on a mutual's original post 30x, reply, quote or DM share 7.6x, follow 6x, bookmark 0, report -355x

How much each predicted reaction counts compared with a like. Weights multiply predicted chances, not counts.

Shann's ratios check out to the decimal. One thing worth knowing: reports carry a huge weight because they're rare. A report is predicted more than 1,000 times less often than a like, so the weight has to be large to matter at all. For more on how these signals work, see our guides to the 25 signals that rank your posts and negative signals like mutes, blocks and reports.

The small-account boost is unchanged:

  • Who: original posts from accounts with 50,000 followers or fewer.

  • When: in the post's first 2 hours, while it has fewer than 200 views in the Home feed.

  • How much: one eligible post per feed load can be lifted to about 16th place.

  • How it's picked: a random draw based on each post's like rate shortlists two posts, and the one the ranking model scores higher wins. "The best like rate wins" is close, but not exact.

The reach rules are unchanged too:

Viral claims vs the code

Most of what the threads said holds up. These are the lines that don't, or that need a caveat:

Claim

Verdict

What the code shows

"New posts used to be cut first"

Mostly right

The last source in line was cut first. Very new posts sat in that source, so they suffered most

"Non-followers see a warning and can't like or share"

Wrong

The warning's audience is everyone, followers included. Quoting isn't blocked

"Misinformation labels limit reach"

Not in the For You code

Labelled posts are kept and ranked; they show a notice

"Time-spent score is 50% higher than two weeks ago"

Right number, wrong date

It rose 50% on 13 October, then stayed flat

"A tap that bounces is worth 0.3"

Wrong

A profile tap is weighted 0. The 0.3 is for opening a post

"A 10+ second read adds 0.4"

Overstated

0.4 multiplies the predicted chance of that read; it isn't a flat bonus

"Replies between mutuals score 20"

Right number, narrower meaning

A reply counts 20 instead of 5 when it's predicted on an original post by someone you follow who follows you back. Replies traded in a thread don't get it

"Self-reply chains under big accounts get zeroed"

Wrong

That spam check only runs under accounts with more than 250,000 followers, and skips replies to yourself

"The 1st and 32nd like open new routes to strangers"

Overstated

The 32-like route only applies to videos 14 to 30 days old

"One account label and non-followers stop seeing you"

Partly

True only for specific labels, such as spam and do-not-amplify

"Hashtag stacks add nothing"

Right, but neutral

There's no hashtag factor in the code, for or against

"Bookmarks are worth 0"

Right

Weight 0

"After 48 hours, For You is finished with a post"

Right

The age filter drops it

What small accounts should do this week

  1. Post originals when you can stay around for 2 hours. The boost only works while a post is under 2 hours old and has fewer than 200 Home views. A post at 3 a.m. burns that window while your audience sleeps.

  2. Lead with one strong post, not a burst. Your second post in someone's feed keeps 62.5% of its score. Spread posts out instead of stacking them.

  3. Write for the read, not the click. Twitter's 8 and 13 October model updates reward time spent and posts people read all the way through. Put the payoff early and cut the filler.

  4. Write things people pass on. A copied link counts about 30 times a like, and a reply, quote or DM share about 7.6 times. Useful, opinionated posts get shared; vague ones get scrolled past.

  5. Don't post like a template. The AI slop label hides you from non-followers for a week. If you use AI, edit until it reads like you.

  6. Check your pinned post. Pinning a post with a link Twitter rates as bad can put a 7-day spam label on your whole account.

  7. Avoid what people hide. "Not interested" costs about 79 likes' worth and a mute about 89. Rage bait and engagement bait cost more than they earn, and engagement bait gets labelled no matter how big you are.

  8. Measure it fairly. Compare reach from people who don't follow you in the weeks before and after 22 October. Give it two to three weeks before you judge.

Check it yourself: where everything lives on GitHub

You don't have to take our word (or anyone's thread) for any of this. The whole ranking pipeline is public, and every link below is pinned to the 29 October version (commit 606b254), so the line numbers won't move.

The xai-org/x-algorithm GitHub repository at commit 606b254, showing its top-level folders, 33.9k stars and 5.5k forks

Twitter's open-source ranking code on GitHub, 29 October 2026. Source: github.com/xai-org/x-algorithm

Folder or file

What's inside

Look here for

home-mixer/

The service that builds your For You feed

The whole pipeline: sources, filters, scorers

home-mixer/params/param.rs

Live settings, synced from production

The weights; the 2,800 cap and the equal-trimming switch

home-mixer/sources/

Where candidate posts come from

How many posts each source can add

home-mixer/filters/

What gets removed before ranking

fair_share_ranking_filter.rs, the age and duplicate filters

home-mixer/scorers/

Scoring steps after the model

author_cold_start.rs: the small-account boost

xai-value-model/

How predicted reactions turn into one score

scoring.rs

vm-ranker/

Final ordering

Author diversity and the out-of-network discount (code defaults)

phoenix/

The recommendation model

How posts from outside your network are found, including the 2-hour fresh pool

visibility-filtering/rules/

Safety rules applied to posts

tweet_rules.rs: the warning; levels.rs: which labels hide you from non-followers

abuse-enforcement-service/

Spam and abuse labels

enforcement_user.yaml: the AI slop label

README.md

Dated notes from the team

The 8 and 13 October model updates, the Brazil filter removal

To follow changes yourself, open the repo's commit history. Every commit has the same message, so compare two days with GitHub's compare view (for example 21 to 29 October) and look at home-mixer/params/param.rs first.

What we still don't know

  • How often feeds hit the 2,800 cap, so how big the trimming change really is.

  • What earns a low-quality, misinformation or AI slop label.

  • Whether every value in the published code matches what runs live. The main settings file mirrors production defaults (last synced 28 October); some ranking settings are code defaults that production can override.

  • Several new features arrived switched off this week, including a step that makes users who like everything count for less, and two whole-page re-rankers that add some randomness. None of them affect your feed yet.

Frequently asked questions

Frequently asked questions

What changed in the Twitter algorithm in October 2026?

Three things in the published code. On 22 October, equal trimming was switched on, so every source of candidate posts is cut by the same share when a feed has more than 2,800. On 23 October, a warning label for low-quality and misinformation posts appeared in the code, and the AI slop account label was shortened from 30 days to 7. No ranking weights changed.

Does the new Twitter algorithm help small accounts?

A little, in some feeds. Very new posts from outside someone's network used to be the most likely to be dropped before scoring, and now they're cut at the same rate as everything else. But this only matters when a feed has more than 2,800 candidates, and nobody outside Twitter knows how often that happens. The small-account boost itself didn't change.

What does "2,800 posts" mean? Is that all I see?

No. 2,800 is the most candidates Twitter's ranking model scores each time your feed loads. From those, it picks the top posts to show. You see far fewer than 2,800.

Did Twitter officially confirm the update?

Not in an announcement. The changes are in the open-source code at github.com/xai-org/x-algorithm, which updates almost daily. The only official statement this month was Elon Musk's 20 October post about ranking by time spent and read-through.

Why can't I like or reply to some posts?

If a post has a low-quality label, the code shows a notice and blocks likes, replies, reposts, bookmarks and shares for everyone. Quoting still works. Some misinformation labels block replies only.

Is the warning label a shadowban?

No. The warning doesn't remove the post from the feed or lower its ranking. A real reach cut comes from account labels such as spam or do-not-amplify, which hide your posts from people who don't follow you.

What is the AI slop label on Twitter?

An account-level spam label for accounts Twitter's systems flag as posting mass-produced AI content. While it's on, your posts don't show in For You for people who don't follow you. Since 23 October it lasts 7 days instead of 30. Large accounts are exempt, and how the detector decides isn't public.

Is the Twitter algorithm really open source?

Mostly. The ranking pipeline, weights, filters and many settings are published and updated almost daily. Some parts aren't: how labels are decided, some live settings, and the trained models themselves.

AI disclosure

AI disclosure

This article was drafted with AI assistance and human-edited by Prateek Singh. All technical claims are sourced to the xai-org/x-algorithm repository at commit 606b254 (29 October 2026); file paths are linked inline.

More in the series

The 25 signals that rank a post on Twitter: reply, repost, like, stopped to read, share via copy link, mute, report and not interested, plus 17 more

Twitter Algorithm

The Twitter algorithm's 25 signals: a creator's guide to how Phoenix ranks every post

Phoenix, the model behind the Twitter algorithm, predicts how likely each viewer is to take 25 different actions on a post, and a weighted sum of those predictions sets the order. This guide lists all 25 with the default weights published in home-mixer/params/param.rs in August 2026, from share via copy link at 20 to report at -234. It explains why every weight multiplies a predicted probability, not a count, and closes with a five-move framework for posts that earn several strong signals at once.

15 min read

·

·

Mutes count more than likes: mute, block, report, not interested, scrolled past and muted keywords all pull a post down

Twitter Algorithm

Twitter algorithm negative signals: what a mute, block or report really costs

The Twitter algorithm predicts five negative actions for every post and gives them the largest weights in the code: report -234, mute -58.8, not interested -52.272, block -31.2 and not dwelled -0.02. Those weights multiply one viewer's predicted probability of the action, not counts, so a single mute does not cancel dozens of likes. This article explains the offset branch exactly as the code runs it, the filters that act after a real mute or block, and the visibility labels you can now check with Under the Hood.

13 min read

·

·

Reach beyond your followers: where Twitter For You candidates come from, in network, Phoenix retrieval, SimClusters and popular posts

Twitter Algorithm

Twitter out of network: how your posts reach people who don't follow you

Out-of-network posts reach strangers on the Twitter For You feed through three live lanes: Phoenix retrieval, SimClusters and a shared popular-posts list. This refresh rebuilds the article from the October 2026 code, including the 0.75 out-of-network discount, the filters that keep replies and reposts from travelling, the extra visibility rules for recommendations and the new-author boost for small accounts.

11 min read

·

·

Recency is a window, not a boost: a new-author boost in the first 2 hours, eligible for For You up to 48 hours, filtered out after 48 hours

Twitter Algorithm

Twitter algorithm recency: why For You drops posts after 48 hours

How long do tweets stay in the For You feed? In the open-source code as of 21 October 2026, the answer is 48 hours: an AgeFilter removes older posts from every candidate source before scoring. There is no hand-set recency multiplier, but Thunder serves followers' posts newest first, the Phoenix training code reads post age as a feature, and the new-author boost only covers posts up to two hours old. This refresh corrects our May claim that old posts live on out of network.

10 min read

·

·

Why your third post a day fades: the first post is ranked as usual, the second is discounted, the third more, so post fewer and space them out

Twitter Algorithm

How often to post on Twitter: author diversity, DPP and your third post of the day

How often should you post on Twitter? The open-source For You code answers part of it: each extra post from the same author in one feed request is multiplied by (1 - floor) × decay^n + floor, and a determinantal point process then picks a varied set from the top-scored posts. The repo's code defaults are decay 0.5 and floor 0.25, but production values are not confirmed. This refresh fixes our May file paths and explains what the maths does and does not say about posting frequency.

10 min read

·

·

The whole series

The Twitter/X algorithm in May 2026: all ten articles

Read ›

Read ›

[

ready to start?

]

Create more.
Stay unmistakably you.
Grow from there.

3-day trial from $1 · Cancel anytime · Your content stays private

[

ready to start?

]

Create more.
Stay unmistakably you.
Grow from there.

3-day trial from $1 · Cancel anytime · Your content stays private

[

ready to start?

]

Create more.
Stay unmistakably you.
Grow from there.

3-day trial from $1 · Cancel anytime · Your content stays private