Methodology

Rotten Tweets answers one question per title: what are ordinary people saying about it? Every number on a title page can be traced to public posts that you can open. This page says exactly how. Last reviewed 1 November 2026.

1. Where reactions come from

Only open, documented sources that allow this use, without logging in and without paying anyone. Every request identifies itself as RottenTweetsBot with a link to this page, waits between calls, and follows robots.txt; a source that blocks us is switched off, not worked around.

SourceWhat we collectTermsReactionsLabel checkIn scores?
BlueskyPublic posts found with Bluesky's open search API (app.bsky.feed.searchPosts) for the title name plus a word like “movie”, “series” or “game”.Open AT Protocol API, no account. We honour deletions on re-fetch and list a contact for removal.1,456,42466% of 100 (Oct 7, 2026)no — shown only
MastodonPublic posts in the title's hashtag timeline on mastodon.social (keyless full-text search does not exist on Mastodon).Public timeline API, no account; 300 requests / 5 min limit respected.116,95573% of 100 (Oct 7, 2026)no — shown only
LemmyPosts and comments returned by lemmy.world's public search.Open federated API, no account; search limit respected.55,45159% of 100 (Oct 7, 2026)no — shown only
Steam reviewsEnglish user reviews of the game from Steam's public review feed, plus Steam's own all-language rating.Steam Web API terms; disclosed in our privacy policy. Reviewer names are not shown — each review links to the original.1,490,023100% of 100 (Oct 7, 2026)yes

Not used: X/Twitter (its API is paid and scraping it is against its terms — the 195,000 X posts this site collected in March–April 2026 are archived and not used in any score), Reddit (commercial use needs Reddit's written approval), Letterboxd, Rotten Tomatoes and Metacritic (their terms forbid automated collection), YouTube comments (YouTube's policy forbids derived scores).

2. Which posts count

A post counts only if it names the title as a title — capitalised like a name, or as its hashtag — so “that did so much damage” is not a post about Damage. Short or common names (“Sugar”, “Mayday”, “To The Rescue!”) also need a context word such as movie, episode, Steam or gameplay close to the mention. Only posts their authors marked as English. Piracy spam (“watch full movie free”) and long hashtag lists are dropped. Posts from the title's own official accounts are listed but never scored.

Language check. Since 1 November 2026 a small language model (qwen3.5-9b) also reads every collected post and names its language. Before it was switched on we hand-labelled 340 posts: it named the language correctly on 98.5% of them, caught all 30 non-English posts, and wrongly flagged 5 English posts that quote a Japanese title. A post it marks as not English is listed nowhere and never counted. The model writes nothing; it only answers “which language”.

3. Positive, negative or neutral

Steam reviews carry the reviewer's own thumbs up or down; we use it as is. Everything else is labelled by an AI language model (DeepSeek V4 Flash, on a private inference server), asked for the post's attitude to the title; news, questions, plot talk, passing mentions, comparisons, lists and posts about something else are neutral. Labelling is slower than collecting, so each run labels the most-liked unlabelled reactions of every title first; the rest wait their turn and are counted on the page as “waiting for a label”. Only labelled reactions count toward a score. If the model is unavailable, the VADER lexicon is used instead and the reaction says so. Every reaction on a title page shows its label and who made it.

Hand check before any score. Before a source's labels can move a public score, a person reads 100 of its positive/negative labels drawn at random and marks each right or wrong. A source needs 85% or better. Below that its reactions are still listed (marked *) but do not count. The current results are in the table above.

4. The score

score = positive ÷ (positive + negative) × 100, over reactions from sources that passed the hand check, excluding official accounts. Neutral reactions are counted and shown but never move the score. We show no score below 10 opinionated reactions, and we publish a 95% Wilson interval next to every score so a 90% from 12 posts does not look as solid as a 90% from 1,200. Labels: 75%+ Loved, 60%+ Fresh, 40–59% Mixed, under 40% Rotten.

Every title page shows the counts behind the score: “n reactions from k sources”, the newest post date, when the page was last updated, and a per-source table. Games also show Steam's own all-language rating, which is Valve's figure, not ours.

5. The written summary

For titles with a score, an AI model drafts a short summary from up to 40 reactions sampled in proportion to the real mix of positive and negative posts. It may only use those reactions. Code then checks the draft before it is published:

The summary is rewritten when the number of opinionated reactions moves by 20% or every 14 days.

5b. “What players / viewers are saying”

Newer title pages carry a “What players / viewers are saying” summary instead of the paragraph summary above. A title gets one only when we have collected at least 15 real public posts about it, of which at least 5 carry the author's own verdict (a Steam thumbs up/down, or a TMDB user review with a 0–10 rating). Below that the page shows the facts, scores and posts, but no summary.

5c. RottenBot

RottenBot is our one automated account. Its job is to start conversations: each title page carries one question from it, and the link under it opens a Bluesky post you can answer with. Everything RottenBot says is a fixed sentence filled in from the numbers already on the page — the reaction count, the score, the Steam recommend split counted from reviewers' own thumbs — and from the liked / disliked points of the summary above, which are themselves checked against the posts they cite. It never says anything about a cast, a plot or a quality that is not in that data, no model writes its words, and it is never shown as a reader's post: the name, the robot avatar and the “automated account” handle are the label. Real reactions on this site are always real posts.

5d. “If you liked this” and “At a glance”

If you liked this is counted, not guessed: two titles are related when they are the same kind, share a genre, and at least three people (the same account on the same source) reacted to both; the strongest overlaps are shown, with the number of people who reacted to both. Where that gives fewer than three titles we fall back to the same genre by reaction count. At a glance appears on pages that have no written summary yet: one sentence assembled from the title's year, genres, director / creator / developer and cast as stored from TMDB, Wikidata and Steam, plus counts from our own data (how many people posted, the date span, Steam reviewers' median hours played and recommend share). Code checks that every name in the sentence is one of those stored fields before it is shown; if the check fails, nothing is shown. No model writes any of it.

What we tried and do not use. We tested the same small model (qwen3.5-9b) on other jobs against hand-labelled posts before letting it touch anything. Sentiment: 73.8% agreement on 400 audited labels (bar 90%) — it stays with the larger model. Is-this-post-about-this-title: 85.5% on a held-out set, wrongly dropping 8.5% of real on-topic posts (bar: under 5%). Spam and promotion: 86.5%, wrongly dropping 13.6%. Spoiler tagging: caught 0 of 4 real spoilers. Sorting posts into themes for the summary writer: 75% on stance, 48% on topics. None of those is used; the numbers are kept here so you can see the bar.

6. Critic context and metadata

Where Wikipedia has a reception section, we show an excerpt labelled “Critics, per Wikipedia” with a link and the CC BY-SA 4.0 licence. It is context only and never part of the audience score. Film and TV descriptions, dates, genres, cast, directors, posters and the list of tracked titles (trending, upcoming and popular, refreshed every 12 hours) come from TMDB. This product uses the TMDB API but is not endorsed or certified by TMDB. Where TMDB has nothing, we fall back to Wikidata (CC0) and Wikipedia (CC BY-SA, credited on the page) and to freely licensed Wikimedia Commons images (credited under the image). Games use Steam's store data, Wikipedia where it exists, and their own key art for games published by indie.io. IMDb, Rotten Tomatoes and Metacritic figures, where shown, come from OMDb.

7. Freshness and indexing

TMDB user reviews are checked weekly per film or series. Bluesky, Mastodon and Steam are checked about once a day per title, Lemmy about every two days, Wikipedia weekly. Scores are recomputed hourly. Pages with fewer than 10 reactions are kept out of search engines until they have enough to say something. We monitor how many new reactions each source delivers per day; if any source drops to zero for 24 hours we are alerted.

8. Removal and corrections

Posts are quoted from public profiles with a link back. If you want your post removed, or think a label is wrong, use the contact page with the link to the post. Rotten Tweets is run by indie.io, which also publishes games; indie.io titles are marked “Published by indie.io” and are scored by exactly the same rules.