Research / Service canon
Threads
Threads differs from Facebook and X in the kind of material available. The engineering blog has no post on ranking, and there is no public code and no API that reads the feed. Instead, the product lead (Adam Mosseri) posts ranking changes with dates directly inside the product.
As a result, almost nothing is known about "what is computed and how," while "when something changed" is known more precisely than for any other feed. This note centers on the timeline.
The shared Meta structure is in facebook.md. This note does not repeat it and covers only what is unique to Threads. The shared structure handed off to facebook.md is as follows:
- value model (a score formula that multiplies per-action predictions by weights and sums them)
Vijt = Σ wijtk·Yijtk - 3-pass (a three-stage ranking split into candidate selection, main scoring, and context adjustment)
- DLRM→HSTU lineage (the generational lineage of Meta's recommendation models and infrastructure)
- dwell time (time spent on a post) normalization
- DSA (EU Digital Services Act) compliance structure
⚠ Every claim in this file based on the system card (the regulatory document in which the Meta Transparency Center explains ranking per surface) comes from a snapshot viewed on 2026-08-09. The full caveat appears only once, in the "Validity period of system card quotes" section of facebook.md.
Summary
Threads is an app built in 5 months on Instagram infrastructure verified (infrastructure section). Yet its ranking moved, date by date, in the opposite direction: away from Instagram. There are three pieces of evidence:
- On 2024-11-13, it removed the onboarding graph import verified (new users section).
- On 2024-11-21, it raised the weight on follows verified (follow weight section).
- All 50 signals listed in the system card belong to the
Text Post Appnamespace observed 2026-08-09 (signal namespace section).
Infrastructure is shared and ranking signals are separate inferred (infrastructure section).
Feed surfaces
For You ranks a mix of content from followed accounts and recommendations verified system card. Following and the Fediverse feed (a surface for external-server content arriving via ActivityPub) are reverse chronological verified system card, newsroom. How Custom feeds and Communities are sorted is not public.
| Surface | Ordering | Introduced | Grade |
|---|---|---|---|
| For You | Ranked (mix of follows and recommendations) | Released 2023-07-05 | verified system card |
| Following | Reverse chronological, no recommendations | — | verified system card |
| Fediverse feed | Reverse chronological | 2025-06-17 | verified newsroom |
| Custom feeds | (undisclosed) | Introduced 2024, sharing added 2025-02-04 | verified newsroom |
| Communities | (undisclosed) | 2025-10-22 (100) → 2025-12-15 (200) → 2026-06-16 official launch | verified newsroom |
- Choosing Following shows only content from followed accounts in reverse chronological order, with no recommended content verified ig-threads-feed system card, updated 2025-03-07.
"You can click the Threads logo on your home screen and then click "Following" to see content only from accounts you follow, in reverse chronological order. When you select this option, you won't see recommended content."
- Custom feeds were introduced in 2024 verified You Can Now Share Your Custom Feeds on Threads. The wording of the 2025-02-04 post: "We originally launched custom feeds last year".
- The statement that Communities posts enter For You with tags was confirmed only through secondary reporting inferred. The original Meta newsroom text says only that communities were "built on custom feeds and topic tags."
The fediverse is not mixed into the ranking corpus
Content arriving via ActivityPub is isolated on a separate surface in reverse chronological order. No source says this content enters the candidate pool for For You ranking. It is recorded separately because it is a fact about ranking architecture, not feature news.
The evidence is the 2025-06-17 newsroom post verified It's Now Easier to See More Fediverse Content on Threads.
"Content surfaced in the dedicated fediverse feed on Threads appears in reverse chronological order, with the newest posts from profiles you follow coming first."
This isolation appears to exist because external-server content has no Threads engagement-signal history (the 50 features below are all based on Text Post App logs), which makes scoring itself impossible inferred.
Scale
Zuckerberg said at the Q3 2025 earnings call that Threads' DAU exceeded 150M verified.
"Threads, which recently passed 150 million daily actives"
According to the 2026-06-16 newsroom post, Threads' MAU reached 500M verified.
"Threads has reached 500 million monthly active users"
Candidate generation (retrieval)
Threads collects all content from followed accounts but only a portion of public content as candidates verified system card. The card gives neither per-stage candidate counts nor approaches such as ANN or embedding retrieval observed 2026-08-09. Conversely, eligible Threads posts can be recommended to Instagram and Facebook users verified (cross-app section).
The system card defines the content it gathers as candidates (the inventory) this way verified:
"The system gathers a portion of the public content available on Threads and all the content posted by accounts you follow, which may include text posts, photos and videos that follow our quality and integrity rules."
- The asymmetry is explicit. Followed content is all, and public content is a portion.
- There is no time boundary such as "since last login" found in the Facebook Feed card.
- No candidate counts appear at all. Unlike the Facebook card, the Threads card gives no per-stage figures observed 2026-08-09.
- The Facebook card states about 500 at pass 0 and 1,000→200 for Video.
- The corpus inspected is 1 ig-threads-feed card body.
- There is no passage mentioning ANN, embedding retrieval, or two-tower (a structure that embeds users and items separately and matches them) observed 2026-08-09.
- The corpus inspected is the same card body.
Cross-app distribution exists in the opposite direction
There is no trace of Instagram signals entering Threads ranking, yet Threads content goes out to the candidate pools of Instagram and Facebook. The separation is one-way.
The evidence is the "See where content was discovered" item in New Threads Features... (original 2025-03-20, 2025-07-22 update section) verified.
"You can also see the places where people encounter your content, including on other apps. As a creator on Threads, eligible posts of yours can be recommended to people on Instagram and Facebook, extending your reach beyond the app."
Full list of 4 updates to the same post
Of the 4, only the 07-22 update relates to ranking, and the other three concern creator tools and reply management inferred. Unlike Mosseri's posts, this post carries almost no ranking changes inferred. We read this as meaning that newsroom posts and the product lead's posts convey different kinds of information inferred.
This post accumulates updates, so the following records what was added on each date verified viewed 2026-08-09, same URL.
| Date | Added | Ranking-related |
|---|---|---|
| 2025-03-20 (original) | Topic controls, follower-only replies, video player improvements, feed customization | Indirect |
| 2025-04-24 | "topics in your bio, follower-only replies and quote posts" | None (profile and reply product features) |
| 2025-05-15 | Up to 5 bio links, Insights weekly recap and engagement tips | None (creator tools) |
| 2025-07-22 | Insights overhaul: finer-grained metrics, performance comparison, where content was discovered (including other apps) | Yes: the cross-app recommendation sentence above is here |
| 2025-10-30 | "reply approvals and new filters to help you manage replies on Threads": reply approval before publication, filters based on followers/mentions | None (reply moderation) |
Ranking
The only primary source describing how Threads ranking behaves is the system card verified Instagram Threads Feed, updated 2025-03-07. The card lists 10 prediction heads and 50 signals but does not disclose the weights or how they are combined observed 2026-08-09 (prediction heads section). All 50 signals belong to the Text Post App namespace, and Instagram never appears in a signal sentence observed 2026-08-09 (signal namespace section).
10 prediction heads (verbatim, in card order)
Four of the prediction heads on the card are 2-step chained events that also ask about the next action after a click. The card has no heads predicting repost, quote, or follow, and no negative prediction heads observed 2026-08-09.
- "How likely you are to like a post"
- "How likely you are to scroll past a post rather than engage with it"
- "How likely you are to click on a post's author's profile and then click on another post"
- "How likely you are to click on a post and then click on another post"
- "How likely you are to create a reply to a post"
- "How likely you are to click on a post"
- "How likely you are to click on a post's author's profile"
- "How likely you are to click on a post and then like it"
- "How much time you spend viewing a post's permalink page"
- "How much time you spend viewing a post"
Reading the list as a structure, the following stands out:
- 4 of the 10 are 2-step chained events. The prediction target is the "next action after a click," not a single click.
- The heads are 3, 4, 8, and the permalink dwell of 9.
- This appears to be because session extension is closer to the target metric for a conversational app inferred.
- There are no repost, quote, or follow prediction heads. These are core Threads interactions, yet they do not appear on the card observed 2026-08-09.
- The corpus inspected is 1 ig-threads-feed card body.
- There is not a single negative prediction head observed 2026-08-09.
- The Facebook Feed card states that it uses hide/snooze/report/angry predictions in the direction of "lowering distribution" (see facebook.md).
- The Threads card has no counterpart; Hide/Mute/Report appear only as user controls observed 2026-08-09.
- The corpus inspected is the same card body.
scroll pasthas the same name and meaning as the head on the Facebook Feed card. It appears to reuse a shared feature definition inferred.- The information on weights and combination is 0. There is not even a value model formula.
50 signals — all in the Text Post App namespace
All 50 signals on the system card belong to the Text Post App namespace, and not one signal sentence mentions Instagram observed 2026-08-09. This is the most important fact in this note. We obtained the full card text and counted directly.
| Item | Count |
|---|---|
| Prediction heads | 10 |
| Signals (5 fixed per prediction) | 50 |
Text Post App appears in signal sentence |
50 / 50 |
Instagram appears in signal sentence |
0 / 50 |
Instagram appears in whole document |
6 (all in card title and overview text: "Instagram Threads Feed") |
- The corpus inspected is the entire body of 1 ig-threads-feed card, and the counts in the table are the string counts within it observed 2026-08-09.
- To reproduce, render
https://transparency.meta.com/features/explaining-ranking/ig-threads-feed/and count the stringsText Post AppandInstagram. - The original HTML is client-rendered, so
curlalone does not return the body. See the "Validity period of system card quotes" section of facebook.md.
The URL slug ig-threads-feed places it in the Instagram namespace, yet not one feature inside it references Instagram. Organizationally it sits under Instagram, and in the feature store it is entirely separate. Text Post App is Threads' internal codename, exposed as is even in a regulatory document. inferred
Actual feature sentences (all verified, card verbatim)
The card's feature sentences show that a minute-level real-time like sequence, a conversation tree up to depth 2, and position in the feed are all used as features verified.
- Liked media IDs are a minute-level real-time sequence feature, with a length cap of 100 verified.
"This feature captures the media IDs that the viewer has liked on Text Post App in the last 15 minutes, up to a maximum of 100 IDs"
- It builds features from the conversation tree up to depth 2 verified. This form exists only in Threads.
"This feature captures the engagement of descendants (e.g. replies, likes) on Text Post App within level 2 (i.e. replies to replies) over the past 6 hours..."
- It uses the feed's current page size as a feature verified.
"This feature captures the current page size of the Text Post App feed, which can affect the number of posts displayed to the user"
- Position is a feature. It uses the feed's page index as a feature verified. It is the same pattern as the Facebook card.
"This feature captures the page index of the Text Post App feed, which can affect the order of posts displayed to the viewer"
- It uses the device platform the viewer uses as a feature verified.
"This feature captures the device platform used by the viewer on Text Post App, such as iOS or Android"
- It aggregates media engagement by viewer country over the past week verified.
"This feature captures the engagement of media on Text Post App feed by viewer country over the past week..."
- It uses dwell as buckets, not as a continuous value verified.
"...the amount of time viewers spend on Text Post App feed broken down by time spent buckets over the past 84 days"
- The internal metric abbreviation vpvd is exposed as is in the media dwell counter feature verified. Its definition is not public.
"Media time spent counter features on Text Post App for the past 6 hours, including vpvd impressions."
- It is the profile tab of a regular author, but the internal field name is
brand profileverified."...including how many times the brand profile was tapped"
The lookback windows (past periods over which a feature aggregates actions) collected from all signal sentences are 15 minutes / 1 hour / 6 hours / 1 day / 1 week / 1 month / 28 days / 84 days verified. This differs from the Facebook card's tiers of 2 hours to 180 days, and Threads skews toward much shorter windows. The freshness window appears to be short because it is a real-time conversation app inferred.
Online results — quarterly increments are disclosed
Threads is a rare surface where ranking improvements are reported quarterly as a single number verified. The evidence is Meta's earnings calls.
| Quarter | Statement | Increment |
|---|---|---|
| Q1 2025 | "a 7% increase in time spent on Facebook, 6% increase on Instagram, and 35% on Threads" | +35% |
| Q3 2025 | "The ranking optimizations we made in Q3 alone drove a 10% increase in time spent on Threads." | +10% |
| Q4 2025 | "Threads is also seeing strong momentum again, benefiting from recommendation improvements. The optimizations we made in Q4 drove a 20% lift in Threads time spent." | +20% |
- In all three quarters the gain is well above the 5–7% for Facebook and Instagram inferred. The natural reading is that ranking started from a low level and had a lot of room to improve inferred.
- Threads is absent from the list "three giant transformers that run Facebook, Instagram, and ads recommendations" that Zuckerberg gave in Q3 2025 inferred (see facebook.md). This means Threads ranking is either a separate (and smaller) system from those three or runs on the Instagram stack; Meta did not disclose which inferred.
Re-ranking, diversity, and filters
In the inspected primary sources, the ig-threads-feed card body and 2 Threads engineering blog posts, there are no diversity and dedup (duplicate removal) rules at all observed 2026-08-09. Even a sentence like the Facebook card's "you wouldn't see multiple video posts in a row" is absent from these sources observed 2026-08-09. Threads introduced suppression of political content recommendations on 2024-02-09 and reversed it on 2025-01-08, at which point it changed the control to 3 levels with standard as the default verified (political content section). Ads were running in feeds worldwide as of the Q3 2025 earnings call verified (ads section).
The related topic note is topics/feed-diversity.md.
It says only that integrity applies at the inventory stage verified. The wording is inside the inventory sentence: "follow our quality and integrity rules".
Political content — full dated record of removing a filter layer entirely
Threads introduced a policy on 2024-02-09 to suppress political content on recommendation surfaces and reversed it on 2025-01-08 verified. In reversing it, it changed the political content control to three levels, less, standard, and more, with standard as the default verified. This is the cleanest "policy → ranking" transition case this repository can track.
Suppression was introduced on 2024-02-09 verified Continuing Our Approach to Political Content on Instagram and Threads.
Scope: "public accounts and in places where we recommend content such as Explore, Reels, In-Feed Recommendations and Suggested Users" Opt-in: "If people still want to see this type of political content on Threads and Instagram recommendation surfaces, there will be a control for people to choose to see it." The definition of the target is loose — "potentially related to things like laws, elections, or social topics". It gives no explicit definition.
It was reversed on 2025-01-08. Mosseri posted two items in a row on the same day. The post ID prefix of both is the same, DEk65….
The first post announces the rollout verified threads.com/@mosseri/post/DEk65TJTXcQ.
"As per @zuck's post yesterday about free expression yesterday, starting this week in the US, and rolling out over the coming week to the rest of the world, we're going to be adding political content to recommendations on @Threads and adjusting the political content control to three options: less, standard, the default, and more."
The second post gives the reason verified threads.com/@mosseri/post/DEk65zdTVmX.
"I've maintained very publicly and for a long time that it not our place to show people political content from accounts they don't follow, but (1) a lot of people have been very clear that they want this content, and (2) it's proven impractical to draw a red line around what is and is not political content."
- The original typos (the duplicated "yesterday", "it not our place") are reproduced as is. This marks them as actual posts, not cleaned-up quotes.
- The posts give two reasons for the reversal. Many users want this content, and drawing a boundary around political content is practically impossible verified (the posts above).
- The latter reason reads as a statement that they could not build the classifier the suppression layer requires inferred. The posts do not say which of the two reasons decided the change.
- Because standard is the default in the 3-level control (less / standard / more), it flipped from opt-in to opt-out.
- The actual completion of the US rollout appears to be around 2025-01-13 inferred. Mosseri wrote only "starting this week" and posted no completion notice. Even secondary reporting could not confirm the exact shipped date.
- The same shift at Facebook and Instagram (Joel Kaplan 2025-01-07) is in facebook.md.
Ads
Threads feed ads were running worldwide as of the Q3 2025 earnings call verified. The Q4 2025 earnings call said that, starting this month, it is beginning to expand ads to all remaining countries, including the UK, EU, and Brazil verified. Ad load (the share of the feed taken by ads) and interleaving rules are not public.
- Q3 2025 verified:
"Ads are now running globally in feed on Threads, and we're following our typical monetization playbook, of optimizing the ads formats and performance before we ramp supply."
- Q4 2025 verified:
"Within Threads, we're beginning to expand ads to all remaining countries this month, including the UK, European Union, and Brazil."
Meta's pixel-height-based interleaving patent comes from a Facebook context, so it is unknown whether it applies to Threads (see facebook.md).
Cold start
Threads removed on 2024-11-13 the sign-up step that encouraged following the same accounts as on Instagram verified (new users section). 8 days later, on 2024-11-21, it re-tuned the ranking weights to prioritize content from followed accounts verified (follow weight section). There is no primary source on what replaced the import or how new content is handled.
New users — Threads switched off the Instagram graph import itself (2024-11-13)
The 2024-11-13 change is the removal of the onboarding follow import, not the removal of a ranking feature. The widespread summary that "Threads dropped the Instagram graph from ranking inputs" is broader than what Mosseri's post actually says. However, the result is that new users' initial connection graph becomes independent of Instagram, so it is true that the cold-start input changes.
The evidence is Mosseri's post verified.
"when somebody signs up for Threads, we used to make it easy for them to follow all the same accounts on Threads that they follow on Instagram. We stopped doing that for people in a handful of countries for a few months and saw that those people used Threads more, not less. So now we're going to stop asking people to follow all the same accounts on Instagram that they do on Threads as part of the sign-up flow." — threads.com/@mosseri/post/DCVpqaKJ4-A, 2024-11-13, post
Read precisely, the post says the following:
- The evidence is a geo holdout, not an A/B test: "a handful of countries for a few months". It means the step was withheld for several months at the country level.
- It gives no figure, only a direction: "used Threads more, not less".
- The post text carries an "English version:" label, so it appears to have been posted as a pair with a non-English original inferred.
- There is no primary source on what replaced it. Whether it is an interest-selection onboarding, pure recommendation, or a reduced follow suggestion is not public, so it remains an open question.
2024-11-21 — follow weight increased (8 days later)
On 2024-11-21, Threads re-tuned the ranking weights to prioritize content from followed accounts verified. Mosseri said creators' unconnected reach would fall and connected reach would rise verified. Connected reach is reach to followers, and unconnected reach is reach to people who do not follow.
The evidence is Mosseri's post verified.
"We are rebalancing ranking to prioritize content from people you follow, which will mean less recommended content from accounts you don't follow and more posts from the accounts you do starting today. For you creators out there, you should see unconnected reach go down and connected reach go up. This is definitely a work in progress – balancing the ability to reach followers and overall engagement is tricky – thanks for your patience and keep the feedback coming." — threads.com/@mosseri/post/DCo4WiOvCB0, 2024-11-21, post
- Two changes followed within 8 days. On 11-13 the graph import was switched off, and on 11-21 the follow weight was raised.
- Switching off the import shrinks new users' follow graph, and raising the follow weight shrinks the inventory, so the two changes work in opposite directions inferred.
- Mosseri himself admits that it is hard and still in progress: "tricky", "work in progress".
- The post uses the terms connected / unconnected reach as is. It is the same basis as Facebook's Widely Viewed Content Report (see facebook.md).
- There is no ratio figure. Neither before nor after has Threads published a "recommended vs. follow share of N%" inferred.
- The corpus inspected is the 4 Mosseri posts in this note (source list), the ig-threads-feed card, Threads-related newsroom posts (source list below), and earnings call transcripts.
- This is not evidence that nothing exists in undisclosed material.
New content
There is no primary source on how Threads handles new content. Threads has nothing that corresponds to the Epinet paper from Facebook Reels (a cold start technique that approximates uncertainty to explore new videos).
inferred However, the window that the descendants (level 2) engagement features look at is very short, 1 hour and 6 hours, and the earnings calls repeatedly use same-day freshness as a metric for Facebook and Instagram (facebook.md). Taken together, Threads is likely to use early engagement velocity as a signal for new content as well. There is no direct evidence.
Feedback signals
By prediction head, what Threads counts as positive is like, reply authoring, tap, dwell time, and the chain of actions after a tap verified (positive section). Negative signals come only from user controls such as Hide and Report, not from a prediction head observed 2026-08-09 (negative signals section). On 2026-02-11, Dear Algo arrived, which lets users request feed adjustments through a public post verified. On 2026-06-16, Your Algo was added, which makes the same request privately verified (Dear Algo section).
What counts as positive (derived backward from the prediction heads)
Working backward from the prediction heads, like, reply authoring, post tap, author profile tap, post dwell time, permalink dwell time, and the chain of actions after a tap count as positive verified. The evidence is the 10-item list above.
scroll past is the only negative-direction prediction, and even this is described as the opposite prediction of "does not engage," not a separate negative head verified.
Negative signals exist only as controls, not as predictions
On the Threads card, negative signals come only from user controls, not from a prediction head observed 2026-08-09 (prediction head section). The multiplier and the degree of decay for the controls are not public, and the card does not even have a duration expression such as "temporarily", which the Facebook card has observed 2026-08-09. The corpus inspected is the body of 1 ig-threads-feed card.
The system card's list of controls is as follows verified.
- Pressing Hide means that post does not show up in the feed again, and it also helps make similar content show up less verified.
"you can click "Hide" so you won't see that post again in your feed. This action also helps to limit similar content from showing up in your feed."
- Making a Report means the system tries to show less content similar to the content you reported verified.
"The system will try to show you less content that is similar to the content you reported."
- Unfollow / Mute / Share
Dear Algo / Your Algo — instructing the ranker in natural language
Dear Algo adjusts the feed for 3 days when a user writes what they want to see more or less of in a public post verified. Your Algo makes the same request privately and lets the user choose the duration from 1, 3, or 7 days verified. How the two features combine with existing ranking signals is not public.
Dear Algo was released on 2026-02-11 verified Control Your Threads Feed With New Dear Algo Feature.
"Just type "Dear Algo" in a public Threads post, followed by what you'd like to see more or less of." "Once you share your request, Dear Algo adjusts your feed for three days, so you can stay connected to the most current conversations. You can also repost someone else's Dear Algo request to apply their content preferences to your own feed." Availability: "available now in the US, New Zealand, Australia, and the United Kingdom"
Your Algo was released on 2026-06-16 verified New Features to Celebrate 500 Million Monthly Users on Threads.
"we're introducing Your Algo, a complement to Dear Algo that lets you privately control what conversations you see in feed." "you can tell Threads you want to see more or less of certain topics and choose how long the request lasts: one, three, or seven days. Only you will be able to see your requests, and you can manage both Dear Algo and Your Algo in one unified hub."
It is worth recording for the following reasons.
- A ranking preference is a public social object. A Dear Algo request is a public post, and reposting it applies another person's ranking preferences to my feed. No other major feed has this form verified.
- It is a rare case where the decay duration is published as a number. Meta's other controls all describe it only with the expression "temporarily", but here the documentation states values: 3 days for Dear Algo and 1, 3, or 7 days for Your Algo verified.
- Within 4 months, Meta supplemented the public Dear Algo with the private Your Algo. A design that makes ranking preferences a public post likely drew privacy backlash, but Meta wrote nothing beyond "based on your feedback" inferred.
- It disclosed nothing about how this combines with existing ranking signals. It is impossible to tell whether it is a candidate generation filter, a score boost, or an embedding manipulation.
External observability — API and regulation
The Threads API has no endpoint that reads the ranked For You timeline observed 2026-08-09 (API section). A VLOP is a very large online platform that the EU DSA designates and subjects to separate obligations. Threads is not on the VLOP list verified (EU DSA section). In practical terms, primary material such as the DSA risk assessment documents available for Facebook is likely never to exist for Threads inferred (EU DSA section).
The API has no feed-reading endpoint
The Threads API has no endpoint that reads the ranked For You timeline observed 2026-08-09. The corpus inspected is the body of 1 API Reference page below, and all 9 endpoints were reviewed.
The Threads API Reference lists 9 endpoints in total verified confirmed 2026-08-09.
Publishing / Media Retrieval / Reply Management / User / Locations / Location Search / Insights / oEmbed / Debug
Userretrieves the account's own posts: "Retrieve a Threads user's posts, publishing limit, and profile".Media Retrievalis a keyword search, not a ranked timeline: "Retrieve Threads media objects by ID or keyword".
Threads ranking cannot be audited externally at scale. X has its algorithm code released and Facebook publishes measured surface composition through the Widely Viewed Content Report, but Threads has neither. The only remaining observation paths are manual [observed] checks and the system card.
EU DSA — not a VLOP
Threads is not on the EU DSA VLOP list verified List of designated VLOPs and VLOSEs, confirmed 2026-08-09. Facebook and Instagram were designated on 2023-04-25, and WhatsApp on 2026-01-26 verified same list.
In Meta's DSA Art. 15 and 24 reports as well, Threads falls into the other group, not the Facebook and Instagram VLOP group verified Regulatory and Other Transparency Reports. The group's name is: "Threads, Messenger, Instagram Direct, Messenger Notes, Instagram Notes, and Other-MPIL Offered Services".
- That an app with 500M MAU is not a VLOP means fewer than 45 million monthly EU users inferred. Meta publishes Art. 24(2) figures every six months, but we could not confirm a separate number for Threads, so it remains an open question inferred.
- In practical terms, the VLOP-specific obligations (systemic risk assessment, independent audit, a mandatory non-profiling option) do not apply to Threads inferred. Primary material such as the DSA risk assessment documents available for Facebook is likely never to exist for Threads inferred.
Meanwhile, in Japan Threads is a large-scale designated service verified. The same Regulatory and Other Transparency Reports page states: "This report is available for Facebook, Instagram, and Threads, as the designated large-scale specified telecommunications services provided by Meta Platforms, Inc. in Japan" (IDPA Art. 28).
EU release delayed by 5 months
Threads was released globally on 2023-07-05 (Introducing Threads) and in the EU on 2023-12-14 verified.
- According to secondary reporting, the reason for the delay was uncertainty about applying the DMA (the EU Digital Markets Act), and Meta responded in the EU by opening a mode that allows consumption only, without an Instagram account or a profile inferred. We could not find a Meta primary source.
- The DMA response of "usable without an Instagram account" also affects ranking inferred. A group of users with no Instagram graph at all came to exist in the EU, and this is in the same direction as the worldwide expansion on 2024-11-13 inferred.
Infrastructure — Instagram reuse
Threads used Instagram's Python (Django) backend as is and reused most of the existing data models, business logic, security features, and server infrastructure verified. The team grew to about 60 people within a few months and finished the technical work on the new app in 5 months verified. However, neither of the two engineering posts says anything about the ranking model, candidate generation, or the feature pipeline observed 2026-08-09. The corpus inspected is the body of the 2 engineering.fb.com posts below.
The ranking infrastructure itself is shared across Meta, so it is covered in facebook.md and topics/. Only facts specific to Threads are written here.
The 2023-09-07 post states the team size, the development period, and the backend reuse verified Threads: The inside story of Meta's newest social app.
"the team grew to roughly 60 engineers over the course of a few months" "we were able to complete the technical work for a new app in five months" "Instagram uses Python (Django) for its backend. By using the same backend for Threads, we could leverage a lot of the existing tech stack for Threads and reuse most of our existing data models, business logic, security features, and server infrastructure."
The 2023-12-19 post states the storage layer and the preparation for scaling verified How Meta built the infrastructure for Threads.
"TAO, backed by MySQL, is used for our social graph storage – thus you can find Threads posts and replies directly in that stack." "ZippyDB is our key/value counterpart to MySQL ... and is used for counters, feed ranking/state, and search." "we needed to prepare Threads for a 100x growth by proactively performing resharding"
- This one line, that ZippyDB handles
feed ranking/state, is the only first-party statement about Threads ranking infrastructure. It names neither a model nor feature serving; it only tells where the state is stored. - The combination of reusing most infrastructure (TAO/ZippyDB/Django) while keeping ranking signals 100% separate as
Text Post Appis the actual shape of the Threads system inferred. Reading the two primary sources together gives this picture.
Open questions
The largest gap in these notes is new-user cold start after 2024-11-13.
- What handles new-user cold start after 2024-11-13? Instagram follow import was turned off, and there is no primary source on the replacement (interest onboarding / pure recommendation / reduced suggestions). This is the largest gap in these notes.
- What is the candidate generation approach? It is unknown whether embedding retrieval is used or how many candidates there are at each stage. Unlike Facebook, the system card gives no numbers at all.
- What is the balance between recommendations and follows? Meta only said it would "rebalance" on 2024-11-21 and never gave before-and-after ratios. Threads has no measured disclosure that corresponds to Facebook's WVCR (Widely Viewed Content Report).
- Do diversity and dedup rules exist? There is no primary source at all.
- Does it predict repost, quote, or follow? The card has no head for them, and we cannot tell whether they are actually not used or whether the card lists only some of the main predictions ("some of the significant predictions").
- How are negative signals reflected in ranking? Facebook states negative prediction heads explicitly, but the Threads card does not, and the effect size of Hide/Report is not public either.
- Where in the pipeline do Dear Algo / Your Algo apply? Nothing is known about whether it is a candidate filter or a score boost, or about what parses the natural language (an LLM or a topic classifier). This intersects with
topics/llm-in-recsys.md. - Is Threads one of the "three giant transformers" or does it run on the Instagram stack? Its name is missing from Zuckerberg's remarks.
- When was the rollback of political content actually fully deployed? There is only "starting this week" and no completion announcement.
- What is Threads' EU MAU? We can only back-calculate that it is under 45 million from the non-designation as a VLOP, and we could not confirm the actual figure.
- Will fediverse content ever enter the For You ranking corpus? Currently it is isolated on a separate reverse-chronological surface.
- The system card update has stopped at 2025-03-07. The Facebook cards are updated through 2026, but the Threads card has stayed the same for 1 year and a half. The earnings calls (IR) say ranking changed significantly in Q3 and Q4 2025 in the meantime. The card likely does not reflect the current system.
Sources
Mosseri posts (first-party announcements on the product)
- Removal of onboarding graph import — 2024-11-13, post
- Follow share rebalance — 2024-11-21, post
- Resumption of political content recommendations — execution — 2025-01-08, post
- Resumption of political content recommendations — reason — 2025-01-08, post
- ⚠ The Mosseri post URL attached to DAU 150M redirects to the threads.com home page in the 2026-08-09 measurement (the post is not accessible). The actual basis for DAU 150M in the body is not the Mosseri post but Zuckerberg's Q3 2025 earnings call: "Threads, which recently passed 150 million daily actives"
Meta Transparency Center (primary documents for regulatory compliance)
- Instagram Threads Feed system card — last updated 2025-03-07. The only primary source that describes how Threads ranking works. ⚠ It is client-rendered, so
curldoes not return the body. - Our approach to explaining ranking (index) — the Threads card is included as one of 10 Instagram sections.
- Regulatory and Other Transparency Reports — DSA Art. 15/24 group, Japan IDPA designation
Meta engineering blog
- Threads: The inside story of Meta's newest social app — 2023, blog post. 60 people, 5 months, Django reuse
- How Meta built the infrastructure for Threads — 2023, blog post. TAO, ZippyDB (
feed ranking/state) - ⚠ We could not find a Threads engineering post on ranking inferred. The corpus inspected is the 2 posts tagged Threads on engineering.fb.com and all of the sources listed above (read 2026-08-09). This is not evidence that nothing exists in Meta's undisclosed internal material.
Meta newsroom
- Introducing Threads: A New Way to Share With Text — 2023-07-05
- Continuing Our Approach to Political Content on Instagram and Threads — 2024-02-09. Original text of the suppression policy
- You Can Now Share Your Custom Feeds on Threads — 2025-02-04
- New Threads Features for a More Personalized Experience That You Control — 2025-03-20 original text, with 4 updates accumulated (2025-04-24 / 05-15 / 07-22 / 10-30). The cross-app recommendation sentence is in the 07-22 update.
- It's Now Easier to See More Fediverse Content on Threads — 2025-06-17. The fediverse is a separate reverse-chronological surface.
- Introducing Threads Communities — 2025-10-22 (2025-12-15 update)
- Control Your Threads Feed With New Dear Algo Feature — 2026-02-11. 3-day window
- New Features to Celebrate 500 Million Monthly Users on Threads — 2026-06-16. Your Algo is 1, 3, or 7 days
- What is the fediverse? — 2024
Developer documentation
- Threads API Reference — 9 endpoints. No feed reading
Regulation
- EU: List of designated VLOPs and VLOSEs — Commission. Threads not designated
IR (ranking performance figures)
- Meta official transcript PDFs: Q1 2025 · Q3 2025 · Q4 2025
- ⚠ The quotes above were extracted as strings from Motley Fool's HTML transcripts, not from the PDFs (Q3 2025 · Q4 2025). We did not use PDF summarization tools because they have a record of fabricating numbers. These are public earnings call remarks, so they are kept as verified, but check the official PDFs above if the wording needs to be compared.
Secondary (grade downgrade required)
- The DMA reason for the EU release delay and the profile-less consumption mode: confirmed only through reporting, and we could not obtain a Meta primary source
- How Communities posts are shown in For You: confirmed only through reporting