Cue doesn't just track what you watch — it builds a multi-dimensional model of your taste and uses it to recommend with real reasoning. Here's how the engine works.
A 1-to-6 anchored scale — not the generic 5-star system everyone else uses. Why? Because "good" and "masterpiece" are fundamentally different signals, and a 5-star scale can't tell them apart.
1 = Hated it, 2–5 = Standard stars, 6 = Masterpiece. That 6th star is the highest-signal data point in the entire system — it tells us what you truly love, not just what you didn't mind.
Your taste evolves. So should your recommendations. Ratings lose influence over time using a half-life model — a rating from 18 months ago carries 50% of the weight of a recent one.
This means Cue adapts as your taste shifts. That show you loved three years ago still matters, but it won't override what you've been enjoying lately.
Not all ratings are created equal. 6-star "Masterpiece" and 1-star "Hated it" ratings carry 3× the weight of a middle-of-the-road rating.
These are your strongest opinions, and they are the most useful signal for understanding what you actually want. A lukewarm 3-star tells us little; a 1-star pulls that show's genres, networks and era back down — and Cue tells its AI outright which titles you hated.
Cue clusters your 6-star ratings by the people behind them — directors, creators, and top-billed cast. When someone you consistently love shows up in a recommendation, Cue knows to push it up.
Rate three Christopher Nolan films as Masterpieces, and Cue recognizes that pattern. The next Nolan title Cue puts in front of you climbs the list on his name alone — even if it sits outside the genres you usually watch.
Knowing what you hate matters as much as knowing what you love. Cue clusters the tags you attach to 1-star ratings into an anti-taste profile, then matches it against what other viewers criticised in a title.
Tag a few shows "Slow pacing" on a 1-star and titles that other viewers also called slow-paced get pushed down your list — the more consistently you have flagged it, the further down they go. Tags that name a whole genre are set aside: one bad horror night should not cost you the genre, and the opt-in content boundary is the deliberate way to rule one out.
A soft filter, not a hard censor. Tell Cue what you would rather avoid and matching titles drop sharply down the ranking — far enough that a marginal one may not reach your shelf at all.
You set boundaries for violence, language, sexual content, horror and substance use. Where a title's ratings-board data or other viewers' flags say it matches, Cue ranks it well down and tells you why: "Contains content you prefer to avoid." That data is patchy by title, so treat it as a strong steer rather than a guarantee.
Cue learns from your conversations. When you ask for recommendations, describe a mood, or talk through what to watch, Cue pulls out the factual preferences and keeps them.
Mention you have been on a sci-fi kick and Cue remembers it next time. It holds your fifty most recent insights and leans on the freshest of them, so the memory stays current rather than dragging around what you liked two years ago. Cue's memory engine is instructed to note entertainment preferences only.
Your taste doesn't exist in a vacuum. Cue finds people whose rating history genuinely overlaps with yours and lets what they loved nudge your recommendations.
The overlap is measured from your rating histories, not assumed — a closer match carries more weight. The signal is anonymous: Cue passes along the titles, never who rated them, and only ratings people chose to make public. Separately, Pro lets you check your compatibility with a friend or ask for picks that work for a whole group.
Cue weighs how the wider audience received a title alongside your own taste. TMDb's score is damped by how many people voted, so a 9.5 from twelve voters cannot outrank an 8.1 from four thousand.
It is the reason a warmly-received title with a real audience behind it gets a nudge, while a barely-voted one is treated with more caution. The crowd gets a vote, not a veto — it is worth a tenth of the score.
Community score
Cue rates on a 1–6 scale, and a title's community score is not the plain average of those ratings. A plain average lets two enthusiastic ratings outrank two hundred merited ones, which is how a title nobody has heard of ends up at the top of everything.
Instead, every title starts out blended with ten imaginary ratings sitting at the community average. Real ratings then have to outweigh them. With two ratings the blend dominates and the score stays near the middle; by a couple of hundred it is rounding error and the score is essentially what people actually gave it. Nothing is capped or discarded — confidence is simply earned.
The technique is Bayesian shrinkage — there is a card on the mechanics under the hood below. It is one input among several: it carries 15% of a recommendation's score, it is recomputed nightly, and the average it blends toward is the community's real running average rather than a fixed number.
The technical architecture powering Cue's recommendation engine.
6-star and 1-star ratings carry 3× base weight when Cue builds your taste vectors, so your strongest opinions move your genre, network and era preferences hardest. Auteur and anti-taste clusters are built from anchor ratings exclusively, so there the multiplier is uniform and does not change their relative ordering.
A title's community score is a Bayesian posterior rather than a mean: (C·m + Σratings) / (C + n), where C = 10 virtual ratings held at m — the community's running average, sampled from the 1,000 most recently updated titles, and 3.5 until there are enough titles to measure one. Σ and n are taken over a title's 500 most recent ratings. Against that 3.5 starting prior, two 6-star ratings land at 3.92 rather than 6, while at a few hundred ratings the prior moves the score by less than a tenth of a star. Recomputed nightly at 05:00, and it carries a 15% weight in the ranker's five-layer score.
An exponential decay model with an 18-month half-life. Each of your ratings' influence on your taste profile is calculated as weight × 0.5^(months_since / 18) — fractional months, no floor — so the profile evolves as you do. Other people's ratings and TMDb vote data are not age-weighted.
Masterpiece ratings are clustered by attributed person (creator, director, top-4 billed cast), each cluster weighted by the sum of its temporally-decayed ratings. Cue seeds every recommendation pool with work from your eight strongest loyalties, so those titles are in the running regardless of genre, and your strongest single loyalty on a title — not an average across its cast — drives the boost.
When you rate something 1 star you can tag what went wrong, and those tags cluster by temporally-decayed weight into an anti-taste profile. On the other side, a title carries the criticisms at least two distinct raters independently agreed on — the same tag vocabulary on both sides, so nothing has to be inferred or translated. Where the two overlap, the candidate's score is multiplied down in proportion to how strongly you hold that aversion, floored so a title is deprioritized and never excluded. Tags naming a whole genre are dropped at both ends.
Content boundaries are applied as a 0.3 score multiplier rather than a hard filter: a matching title is ranked down, not removed from the pool, and its card carries the reason "Contains content you prefer to avoid." Because the shelf shows only candidates above a 0.12 confidence threshold, a heavily demoted title can fall below that line and not appear — deprioritized by the scorer, never blocklisted.
A pure numeric scorer does the ranking: five weighted layers (0.35 taste affinity, 0.25 auteur loyalty, 0.15 social, 0.15 community score, 0.10 external audience data) summing to 1.0, scaled by era, content-constraint and anti-taste multipliers. The order is total — descending score, then TMDb id, then media type — with no randomness and no rotation, so a fixed profile and a fixed candidate set always produce the same order. The Recommended for You shelf renders that ranking directly with no model involved; where a language model is used it receives the finished list and narrates it in order without introducing titles.
Text you type — queries, moods, saved memory, support-chat history — is wrapped in XML tags, and the prompts that answer you are prefixed with a standing instruction that tagged content is untrusted data to be analysed, never obeyed as instructions. Most AI actions are also constrained to a fixed JSON response schema; the long-form ones — recaps, summaries, spoiler-safe explanations — return prose.
Marking an episode, changing a rating or untracking a show is appended to an operation log in the browser BEFORE anything else happens — then applied to local state, then queued for the server. There is no offline mode and no connectivity branching anywhere in the command layer: the identical code runs on wifi and in a tunnel. Opposing actions collapse, so tapping watched and unwatched five times sends one operation rather than ten, and each account gets its own physical database on the device.
Every operation carries a client-generated id and a per-device sequence number, and the server keeps a ledger keyed on that id, so replaying a batch after a dropped connection is acknowledged as a duplicate rather than applied again. The backend offers no unique index, so the ledger uses a reserve-then-claim protocol that resolves every replay in which either request can see the other's reservation; in the narrow case where neither can, every operation but a rewatch is idempotent on its own logical key and converges anyway. Pushes retry with exponential backoff — 10 seconds, doubling to a 15-minute ceiling — and a network failure retries indefinitely while reconnecting cancels the wait immediately. Episode totals are always recomputed on the server from your actual history, never trusted from a number a device sent.
Show and movie metadata flows through an in-memory LRU (per instance, 500 entries, sub-millisecond) → a shared database cache → the TMDb API, and a stale entry is served instantly while it refreshes in the background. TTLs adapt to the content: 5 minutes for a search, 6 hours for a season, and up to 90 days for a series that has already ended. A nightly janitor expires stale rows and collapses duplicates. Separately, the app keeps season data and reference shelves in the browser's IndexedDB so Watch Next and the Discover shelves work offline. AI answers are cached too, in their own database table.
A probabilistic data structure (10K capacity, 1% false-positive rate) stored per-user as a hex string on their taste profile. Candidate titles are checked against it in O(k) time before scoring, so nothing you've already watched reaches the ranking — backed by an exact check, so a false positive never silently drops a title.
Each user's rated title IDs are hashed into a 128-component MinHash signature, split into 32 bands of 4 rows, for approximate nearest-neighbor lookup in taste space. A shared bucket is only a candidate — the actual overlap is then measured, and weak matches are dropped rather than trusted.
A token-to-title mapping built from cached TMDb metadata (titles, genres, overviews), stored as database records queried by exact token match. It turns a natural-language search into candidates without a round-trip to TMDb.
A partitioned bitmap splitting the 32-bit ID space into 2¹⁶ chunks. Search unions the ID sets of your query's tokens through it — O(n) with excellent cache locality on sparse integer sets — before the Bloom filter removes what you've seen.
Find Similar narrows to the same primary genre, then ranks by distance across dimensions where distance actually means something — era, runtime, and critical rating. Genres are compared by name, never by a numeric code, because two genres with adjacent IDs have nothing to do with each other.
Every recommendation starts as arithmetic. Your ratings, the people you're loyal to, the taste you overlap with, what everyone else thinks, the critics, and your own content boundaries each become a number, and those numbers decide the order. Only once the list is ranked does the AI step in to explain why each pick landed where it did. The reasoning is the part you read; the ranking is the part you can count on.
Your taste profile and AI memory exist for your benefit. We don't sell your data to advertisers, and you can delete everything — account and all — at any time. Pro members can also export a full copy to take with them. The AI's accumulated knowledge about your preferences is a tool that serves you — not us.
Read our full Privacy PolicyRate a few shows and watch Cue's recommendations get smarter instantly.