Transparency is the product. If you can't see how we reached a conclusion, the conclusion isn't much use to you. This page walks through each layer of the Curate Feeds analysis.
The Bias Spotlight runs two parallel detection tracks, following the two-type taxonomy established by the BASIL corpus (Fan et al., 2019). No single signal is treated as definitive. We look at the combination of signals across the full article.
No AI language model determines these results.
The Bias Spotlight is fully algorithmic: deterministic pattern matching and rule-based analysis derived directly from the published research listed in this section. No company's large language model is used to judge whether a sentence is biased.
This is a deliberate choice. An LLM trained on human-generated text has absorbed the same linguistic patterns and editorial conventions it would be asked to evaluate, which makes it a circular and opaque arbiter of what counts as bias. Every flag the Bias Spotlight surfaces traces back to a specific research-derived rule rather than to a neural network's learned associations, so you can audit it and see exactly what triggered the flag.
Track 1: Lexical Bias
Word and phrase choices that carry ideological charge, independent of the facts being reported:
Loaded language: Emotionally charged words, spin terms, patriotic appeals, and racial or ethnic framing that color a factually accurate sentence. Examples: "radical measures," "invasion," "existential threat."
Epistemological bias: Factive verbs that present unverified claims as established fact: "revealed," "confirmed," "exposed." Identified following Recasens et al. (2013), who formalized this as a distinct linguistic sub-type.
Prescriptive and evaluative language: Language expressing what the author believes should happen ("must," "ought to") or personal evaluations that are not attributed to a source.
Track 2: Informational Bias
Structural choices about what to include, exclude, and emphasize, independent of the words used:
Selective emphasis and omission: Facts that are present in comparable coverage but absent from this article, or claims that are buried versus led with. Omission is the hardest to verify; we flag it with a higher uncertainty margin.
Narrative framing: One-sided character roles (heroes, villains, victims) that structure events as a story with moral stakes rather than as reported facts.
False balance: Treating two sides as equivalent when the evidence heavily favors one, creating misleading symmetry through a structural rather than linguistic choice.
Statistical manipulation: Unsupported numerical claims, misleading aggregations, or cherry-picked data points presented without the context that would change their meaning.
Quote manipulation: Selective quoting, out-of-context attribution, or presenting a quote as representative when it is an outlier.
Ad hominem and straw man: Personal attacks on sources rather than their arguments, or misrepresentation of an opposing position to make it easier to dismiss.
Anecdotal generalization: A single story or case used to support a claim about a broad pattern, without evidence that the example is representative.
Propaganda Technique Classification
A third pass maps detected bias spans to specific rhetorical techniques (repetition, appeal to fear, name-calling, slogans) following the annotation framework from the SemEval-2020 propaganda detection task (Da San Martino et al., 2020).
Context-aware exclusions: Direct quotes are excluded from authorial bias detection. A quoted source saying something charged is not the author saying it. Legal/procedural terms and factual numeric contexts are excluded from speculative language flags. These exclusions reduce false positives where a technically biased pattern appears in a neutral context.
What we don't claim: Bias detection helps you see how a story was put together. It is not a verdict on the story. An article with detected bias isn't necessarily inaccurate; it may be well reported on the facts. Bias and accuracy are separate dimensions. We display both because conflating them is one of the most common mistakes readers make. And because no AI model determines these results, no AI model's own perspective is baked into what gets flagged.
For political bias classifications (Left, Lean Left, Center, Lean Right, Right), we use third-party ratings from AllSides, a trusted media bias rating organization. These ratings are based on the news source, not individual articles or individual journalists.
Important note: There is nothing inherently wrong with a source having a political bias. A source with a known lean can still produce factual and valuable reporting. What matters is being aware of how that lean may influence the presentation, framing, and selection of information.
What we don't do: We do not have a partnership, affiliation, or endorsement arrangement with AllSides. We reference their publicly available ratings as one data point in our broader analysis. Our methodology will be updated as we develop and validate proprietary ratings over time.
Personal impact context is drawn from a combination of your location (provided voluntarily), the geographic scope of the story being read, and regional source coverage of the same topic.
Representative data is sourced from public government databases and updated on a regular cycle. We surface federal, state, and local representatives based on your address, and give you their contact information alongside the names.
Upcoming hearings come from two published calendars and nowhere else: the US Senate’s committee schedule, and Open States’ record of state-legislature events. We do not list city council, county or school board meetings — those are published by hundreds of separate systems with no common feed, and we would rather show you nothing than a schedule we cannot stand behind. An empty result means we have no calendar to show you, never that nothing is scheduled.
Civic action recommendations are verified manually and reviewed regularly. We curate them against two standards: specificity (is this a real meeting with a real date and location?) and relevance (is this connected to what the reader just read?).
Our news literacy curriculum is developed in collaboration with news literacy researchers and working journalists. Lessons are structured around documented, named techniques: logical fallacies, rhetorical devices, framing patterns, and source evaluation frameworks. None of them are frameworks we invented ourselves.
Short and repeated: a guided read moves one station at a time through a single article, on the principle that short, repeated practice outperforms long, infrequent sessions.
Connected to real articles: wherever possible, we use real published articles as lesson examples, so skills transfer immediately to the reader's actual feed.
Progressively structured: lessons build on each other, from foundational concepts (what is a source?) to advanced applications (how do you evaluate a leaked document?).
Standards are handled in two places, and neither is a claim we make by hand. Every assignment template declares the codes it covers — the North Carolina Literacy Instruction Standards, the Civic Literacy objectives, and Session Law 2025-38 — and those codes follow the work into the class dashboard. Separately, the pilot report scores coverage of Common Core ELA, NC HB 959, ISTE, CASEL and NC Civics from what students actually did: each standard names the activities that count toward it, and it is marked covered only when those activities happened.
Separately from bias, we measure how an article is written. Every line in that section names something you can go and look at in the text — a word, a clause, a figure. It runs on the article body only. If we could retrieve just the opening lines, we say so rather than measure a teaser and present the result as if it described the whole piece.
Headline against body: Words that appear in the headline and nowhere in the article, charged words the headline uses in the outlet’s own voice but the body only ever quotes, and definite verbs in the headline over a body that hedges. Reported as the matched words themselves, never as a mismatch percentage.
Actions without actors: Passive constructions with no named agent — "mistakes were made," "the decision was taken." We list the clauses so you can judge whether the actor was withheld or was simply not known.
Names given without explanation: Organizations, acronyms, and people introduced on first mention with no gloss. This measures a demand the article makes on its reader. It is not a statement about who the reader is.
Figures with nothing beside them: Quantities stated with no baseline, total, or comparison in the same sentence. "Rose 40%" without a starting point is a number you cannot evaluate.
Hedges and assertions: Rates per 1,000 words of hedging ("appears to," "reportedly") against assertion ("clearly," "undeniably"), plus characterizations stated as settled before the article establishes them.
The reading grade is the Flesch-Kincaid grade level, and it has exactly two inputs: average sentence length, and average syllables per word. Nothing else. It does not read the article, know the subject, or assess whether the writing is clear.
Most mainstream reporting lands between grade 8 and grade 12, so we print that band beside the number. A grade on its own is an unanchored figure — the same thing this section flags when an article does it with a statistic.
We also name which of the two inputs is moving the grade, because they mean different things. Long sentences usually mean quotation, attribution, and qualification. Long words usually mean institutional or technical vocabulary. Those are different articles with the same score.
A high reading grade is not a criticism, and a low one is not a compliment.
The formula rewards short sentences and short words. A tabloid paragraph scores as highly accessible; a sentence carrying an attribution and a caveat scores as difficult. Writing toward the number means writing away from careful reporting. We show the grade because readers ask for it by name — unbanded, uncolored, and never leading the section.
The measure we put more weight on is variation. Mean sentence length alone says very little; mean plus spread separates a short-and-uniform persuasive register from prose that is quoting documents and legislation. Syllable counting is approximate — it is derived from vowel groups with the usual English corrections, and lands around 85–90% on ordinary prose. Nothing load-bearing depends on it.
None of these measures produce a score, a grade for the article, or a verdict. They are counts and matched words, shown so you can check them against the page.
This is the one part of the research layer we do not compute ourselves. The article body is sent to GPTZero, a detector trained to separate AI-written prose from human prose, and we report what it returned. We do not add to it, average it with anything else, or convert it into a score of our own.
Two separate numbers appear, and they answer different questions. One is the probability the detector assigns to the whole document being AI-written. The other is how many individual sentences it marked. A piece can read overwhelmingly AI-written overall while only a third of its sentences are marked, so we keep them apart rather than merging them into a single headline figure that nobody measured.
The marked sentences are printed in full. A percentage is something you have to take on trust; a sentence is something you can read and disagree with. It also runs on the article body only — below roughly 150 words we say the article is too short to check rather than report a number that would mean nothing.
The detector returns a reading for everything it is given. We show far fewer than that. A reading is only reported when the detector rates its own confidence high — the band it publishes an error rate below 1% for — and, where the reading is that AI was involved, when it also puts the document above 90% and can point at specific sentences. Anything else is reported as inconclusive, in those words.
Inconclusive means the check ran and produced nothing worth acting on. It is not a quiet way of saying AI was involved, and it is not a clean bill either. We would rather say that than hand you a number we do not stand behind.
The bar is deliberately lopsided. We require much more evidence to say AI wrote something than to say a person did, because the two mistakes are not comparable: one costs you some misplaced confidence in an article, the other accuses someone of passing off work that is not theirs. The cost of that choice is real — we will miss AI-written text that a looser threshold would catch, and we would rather miss it.
A detector is not proof, and this one is wrong often enough to matter.
GPTZero reports a false-positive rate under 1%. Independent testing has put it between 5% and 20% on human writing, and higher again on prose by people writing in a second language — formal, careful, plainly structured writing is what these tools misread most. Treat a marked sentence as a reason to read it again, never as a finding about who wrote it. We will not use this to accuse a journalist, and neither should you.
A check runs only when you ask for it, and the result is stored against the text rather than against you — so once anyone has checked an article, everyone who opens it sees the same answer without it being re-run. We record which detector version produced each result, because a different model is a different measurement and the two should never be averaged.
Curate Feeds is an independent company. We are not affiliated with, endorsed by, or in a commercial relationship with any news organization, political party, advocacy group, government body, or media rating organization. We reference third-party ratings (including AllSides) as data points, not as endorsements.
We make money when readers choose to upgrade their plan. We do not make money from advertising, data sales, or content promotion. That means our incentive is to make the research layer genuinely useful, rather than to hold your attention, flatter the beliefs you already hold, or steer you toward a particular outlet or viewpoint.
Our bias detection methodology is grounded in peer-reviewed computational linguistics and media studies research. The papers below directly inform how the Bias Spotlight detects bias, classifies signals, and calculates scores.
Fan et al. (2019), "In Plain Sight: Media Bias Through the Lens of Factual Reporting". EMNLP-IJCNLP 2019.
Introduces the BASIL corpus — 300 articles, 1,727 annotated spans — and the two-type LEXICAL_BIAS / INFORMATIONAL_BIAS taxonomy that structures our detection system. Each span carries a target entity and a polarity, which ours do too.
View paper →Recasens et al. (2013), "Linguistic Models for Analyzing and Detecting Biased Language". ACL 2013.
Formalizes epistemological bias — factive verbs, entailments and implicatives, assertive verbs, and hedges — as a distinct linguistic sub-type alongside framing bias. All four are detected here, and the paper’s distribution of real bias edits guides where we invest.
View paper →Entman (1993), "Framing: Toward Clarification of a Fractured Paradigm". Journal of Communication.
Foundational framing theory establishing that early story placement disproportionately shapes reader perception. Informs our positional weighting of detected bias spans.
Card et al. (2015), "The Media Frames Corpus: Annotations of Frames Across Issues". ACL 2015.
Establishes 14 topic-agnostic framing dimensions and documents expected inter-annotator disagreement at framing boundaries. Informs the uncertainty qualifiers displayed with each detected span.
View paper →Da San Martino et al. (2020), "SemEval-2020 Task 11: Detection of Propaganda Techniques in News Articles". SemEval 2020.
Annotation framework for propaganda techniques. Fourteen of them are classified here — including repetition, appeal to fear, name-calling, flag-waving and causal oversimplification — driving the technique layer in the Bias Spotlight.
View paper →van den Berg & Markert (2020), Cross-article omission and contextualization detection. ACL 2020.
Methodology for detecting topics present in comparable coverage that are absent from the article under review. Informs the omission signal type and its higher uncertainty weighting.
Kincaid, Fishburne, Rogers & Chissom (1975), Derivation of New Readability Formulas for Navy Enlisted Personnel. Naval Technical Training Command, Research Branch Report 8-75.
The origin of the Flesch-Kincaid grade level. Derived on Navy technical manuals, not journalism — which is why we report the grade with its two inputs named and never use it to rank or rate an article.
View paper →AllSides Media Bias Ratings, Third-party political bias classifications by outlet. allsides.com/media-bias/ratings.
Source of outlet-level political lean ratings (Left, Lean Left, Center, Lean Right, Right). Used as a data point alongside article-level analysis; not an endorsement.
View paper →