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.

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.

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 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.

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

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.

What happens after an account is flagged as AI slop.

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 |

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:
The 48-hour limit: after 48 hours, a post stops appearing in For You (why the 48-hour rule exists).
Who sees what: replies and reposts only reach your followers; original posts can reach people who don't follow you, scored 25% lower for them by default (how out-of-network reach works).
Posting several times: when your posts compete in one person's feed, the second keeps 62.5% of its score and the third 43.75%, by default (what that means for how often to post).
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
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.
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.
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.
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.
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.
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.
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.
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.

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 |
|---|---|---|
The service that builds your For You feed | The whole pipeline: sources, filters, scorers | |
Live settings, synced from production | ||
Where candidate posts come from | How many posts each source can add | |
What gets removed before ranking | fair_share_ranking_filter.rs, the age and duplicate filters | |
Scoring steps after the model | author_cold_start.rs: the small-account boost | |
How predicted reactions turn into one score | ||
Final ordering | Author diversity and the out-of-network discount (code defaults) | |
The recommendation model | How posts from outside your network are found, including the 2-hour fresh pool | |
Safety rules applied to posts | tweet_rules.rs: the warning; levels.rs: which labels hide you from non-followers | |
Spam and abuse labels | enforcement_user.yaml: the AI slop label | |
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.
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.
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

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

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

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

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

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