Subscribe Sign in

Method

This is what the engines do and what they refuse to do. It is published because a company that removes other people's editorial judgement has to be able to show its own.

  • A pundit in an ochre jacket talks into a cluster of microphones. One of the cables lies on the floor, unplugged.

    The pundit. The delivery: the verdicts, the loaded verbs and the adjectives that pass judgment. This is what the indicators count.

  • An editor in a green cardigan crosses out one jagged line on a page with a pencil as long as her forearm, leaving three straight lines below it.

    The editor. The edit: those words come out, and the facts, figures, names and quotations stay exactly as they were filed.

  • An older man in round glasses reads a newspaper in a green wingback armchair, a cup of tea on the table beside him.

    The reader. The reading: the same report, with its measurements beside it and the original a click away.

The three are drawings of nobody in particular: no real person, outlet or party.

Why "Mundane"

The events are rarely mundane. The writing should be. Mundane Read takes reporting from other newsrooms and returns it to plain register, so that a reader meets the facts before anyone's view of them.

The line we draw

Our version carries no adjective that passes judgment. "The embattled minister" becomes "the minister"; "a senseless attack" becomes "an attack". Those words tell the reader what to think of the thing, and the reader can decide that for themselves.

Plain description stays. "A costly delay" is still a costly delay — and for a long time it was not, because this page used to promise that every descriptive adjective went, and the engine did that. We measured it against the right question: does removing this word do what removing a word we already know is sensationalising does? One word at a time, on the sentence it sits in, across 150 published articles:

One word removedTimesSensationalism outInformation lostRatio
a sensationalising word6517.950.23833.4
a plain adjective8582.950.4776.2
a neutral concrete noun2750.120.6840.2

Removing a plain adjective takes out roughly a third of the heat that removing a sensationalising word does, and costs twice as much information to do it — under a fifth of the benchmark. Asked word by word, not one of the 37 adjectives we saw five times or more came close to it. Anyone can re-run this: npm run measure. The bottom row is there to check the instrument rather than to set the bar: if the reading moved merely because a sentence got shorter, it would look like the middle row. It does not, so the heat a plain adjective carries is real — real, and not enough to be worth the sentence it damages. So it stays, and the adjective count below is a measurement rather than a target.

How adjectives are found

Not from a word list. "A firm offer" and "a law firm", "a retired teacher" and "he retired", "the staff were rude" — whether a word is an adjective depends on the sentence it is in. Every article is read by a part-of-speech tagger trained on English that linguists annotated word by word (the CC BY parts of Georgetown University's GUM corpus) and checked against WordNet. Measured against those human annotators on text it was never trained on, it finds adjectives with an F1 of 0.81 on web writing, 0.84 across mixed genres and 0.80 on news, where matching word endings alone — the method it replaced — scores 0.32, 0.47 and 0.56 on the same texts. Anyone can re-run both: node scripts/pos/evaluate.js <ud-dir> --baseline.

That score is a floor rather than a grade, and it is worth saying why. It is measured against a linguist's definition of an adjective, and most of what it "misses" is nationality and identity — American, African, Islamic, national, Republican. Those are adjectives, and this engine deliberately leaves them alone, because taking them out changes what a sentence is about rather than how it feels. It does make real mistakes, most often with participles ("classified documents") and unusual names; when it does, the corrections ledger is the place to tell us.

Adjectives that carry a fact stay

Some adjectives do not describe a thing; they say which thing it is. Take one out and the sentence does not become more neutral, it becomes wrong:

As filedWith the adjective removedWhat goes wrong
the former prime ministerthe prime minister Names a different person.
federal fundingfunding Loses who is paying.
mental health serviceshealth services Changes which services.
a 12-year-old boya boy Loses the age, which is often the story.
found guilty of fraudfound of fraud Loses the verdict.
the nuclear reactorthe reactor Loses what kind of reactor.

So these are kept: nationalities, levels of government, former and acting office holders, ages and measurements, legal and medical status ("alleged", "guilty", "in a stable condition"), and the adjective half of fixed names ("High Court", "social media"). Because they name a fact rather than describe, they are not counted as adjectives. Words inside quotation marks are not counted either, and are never edited. The Adjectives figure on every article counts only adjectives that describe, and hovering it highlights each one in the text. The /v1/adjectives API lists every word individually — counted or not, and why — and says whether our version removed it.

Where a describing adjective cannot come out without breaking a sentence that also carries a fact — "the plan was unaffordable for 40 per cent of renters" — it is left in, flagged for an editor, and still counted.

ClassTestAction
EvaluativeAsserts a judgment the reader should be free to make. Cannot be checked.Remove
DescriptiveSays what something is like ("heated", "long-term", "busy").Remove
ClassifyingSays which thing ("former", "federal", "mental health", "12-year-old"). Removing it changes the fact.Keep, and count
Verdict sentenceA short sentence whose only content is the adjective ("The decision was controversial.").Remove the sentence
Vague magnitudeClaims a size without giving one ("massive", "paltry").Remove, and ask the editor for a figure

"Brutal crackdown" fails: no measurement distinguishes a brutal crackdown from a crackdown. "Nuclear reactor" passes: the reactor is or is not nuclear.

The Niral Score

One number from 0 to 100 for how far a piece of writing is from a plain report. 0 is mundane. It combines every indicator below, each put on the same 0–100 scale:

Adjectives carried 30% of this until recently and opinion 15%, on the view that description is where a writer's opinion enters a report unnoticed. The measurement above overturned that, and leaving it would have meant one product asserting two different things about the same sentence. The two keep 45% between them, split the way the measurement splits them — 7.95 of heat against 2.95, which is 33% and 12%. A plain adjective is not nothing: it moves the reading twenty-four times as far as taking out a neutral noun. It is just not the heaviest thing here, and it was being counted as though it were.

ComponentWeightMeasured as
Opinion26%Judgement words, weighted — see below.
Drama10%Wording that makes an event hit harder: "horror", "carnage", "mayhem". Not the event itself. A charge of 30 reads as 100.
Adjectives9%Adjectives that describe, per 100 words. 7 per 100 words reads as 100.
Repetition8%How much of the text is the same words coming round again.
Sentiment8%Distance from neutral.
Political diction8%Distance from neutral.
Jingoistic7%As scored.
Gender7%As scored.
Sourcing7%100 minus the sourcing score.
Religious5%As scored.
Generational5%Distance from neutral.
Mood0%Reported, never scored.

Adjectives carry twice the weight of the opinion component, on purpose. The opinion component counts an adjective only when it is on the evaluative list; the adjective component counts every one that describes, because description is where a writer's view enters a report without anyone noticing. Mood is weighted zero because a plain report of a bushfire is heavy news, not heavy writing. The API returns each component with its weight and contribution, so the number can always be taken apart.

Quotations are never edited

A quote is evidence. Editing one to make it neutral is fabrication, which is a worse offence than the one we exist to correct. Charged language inside quotation marks is measured and reported, never removed, and by default it is not counted against the writer. A reporter who quotes an angry source accurately has not editorialized.

Contested terms: we do not pick a side

Some words are the argument, not a description of it — terrorist and militant, undocumented immigrant and illegal alien, protester and rioter. There is no neutral third option, so choosing one would be exactly the editorial act we claim to remove. Attributed, they are kept and noted. Asserted in the article's own voice, they are flagged, never silently swapped.

What the indicators claim

Each dial measures a property of the text. None measures whether the article is correct. On a readable article the panel measures our version; on a summary it measures the report as filed. Every scale on an article page links here, to the row for that dial.

IndicatorScaleWhat the ends meanClaim
Niral Score0 … 100 mundane → loaded Every indicator below in one number, judgement words weighted most. 0 is a plain report. How it is built is set out above.
Sentiment−10 … +10 hostile → favourable How favourably the writing treats its subject. Not how cheerful the events are: a warm write-up of a disaster scores high here and low on mood.
Political diction−10 … +10 left-coded → right-coded Which side's vocabulary was chosen where a choice existed — "estate tax" against "death tax". Not a claim about who the article favours, and not portable between countries, which is why the market pack is named in every response.
Generational−10 … +10 harder on the old → harder on the young Behaviour explained by age cohort rather than by circumstance, plus whether a cohort that is discussed is ever quoted.
Gender0 … 100 no gendered framing → framing throughout Gendered role names ("chairman"), sex named where the role is the story ("female engineer"), looks and family status reported where they are not the story ("mother-of-two"), verdicts gendered by usage ("shrill"), and framings that soften violence ("domestic dispute"), which weigh most. Reports which way the charge falls. Who the story is about is not bias and is never scored.
Jingoistic0 … 100 reports to a reader → writes from a camp Whether the copy reports to a reader or writes from inside one nation's camp: first-person national voice, and asymmetric treatment of casualties.
Religious0 … 100 not invoked → overt Faith named where it is not germane, collective blame, uneven treatment between traditions. Mention counts are reported as salience and never added to the score.
Adjectivescount none → heavily descriptive How many adjectives describe rather than report — "costly", "embattled", "heated". Words that carry a fact ("former", "federal", "12-year-old") and words inside quotations are not counted. The bar shows the count per 100 words, so a long article is not marked down for being long. Hover or tap the count on an article to see each one highlighted. Not a bias measure on its own: a feature is meant to be descriptive.
Repeated wordscount says it once → drives it home How many different words appear more than once, leaving out names and structural words such as "the" and "said". Click the count for each word and how often it appears, most frequent first. The bar shows how much of the text is the same words coming round again, beyond a second use.
Sourcing0 … 100 unattributed → named sources How much of the article rests on named sources. It starts from the share of sentences that attribute what they say — naming who said it, quoting them, or crediting a document — and then loses 12 points for each claim credited to no one ("critics say", "experts warn"), 15 for each contested label used in the article's own voice ("terrorist" with no one's name on it), 8 for each prediction nobody is quoted making ("the plan will fail"), and 6 for each unattributed ranking ("the biggest day", up to three). Higher is better here, unlike the dials above. On our own corpus the middle article reads about 58, a heavily sourced report about 80, and an opinion piece that rests on nobody reads near zero.
Mood0 … 100 grief → joy How heavy the events are, and how heavily they are written — not a bias measure. A restrained report of a disaster belongs at the low end and is not being accused of anything; a sensational report of the same disaster ("horror smash", "chilling") belongs lower still, because the writing adds weight the events did not have. Hype ("must-see", "record-breaking") is left out of this one entirely.

Each indicator has a page of its own: what raises it, what is never counted, and the stories at each end of it this week. Niral Score · Sentiment · Political · Generational · Gender · Jingoistic · Religious · Adjectives · Repeated words · Sourcing · Mood

Each scale is drawn as a gradient rather than a bar because the reading that matters is where along it a piece sits, not how much of something it accumulated. Confidence is drawn as opacity: a dial we cannot stand behind is visibly faded, because "neutral" and "we cannot tell" are different answers and the panel has to be able to say both.

Direction and charge are reported separately: an article that calls one side heroic and the other monstrous nets out near zero, and it is not neutral — it is the most biased kind there is. Confidence is reported and allowed to be low, because "neutral" and "we cannot tell" are different answers. And salience is not bias: an article about a papal conclave is saturated with religious vocabulary and is not biased, so mention counts are reported separately and never added to a score.

Opinion, inside the Niral Score

Opinion is not shown as a dial of its own, because the Niral Score already contains it. It measures how much judgement the writing carried when it reached us: we count the words that pass judgement rather than report — evaluative adjectives, loaded verbs, intensifiers, editorial framing — weight each by how strongly it imposes a verdict, and measure that against the length of the piece. The API still returns it as opinion_score.

ScoreTypically
0–10News agency copy. Almost nothing to remove.
10–35A straight newspaper news story.
35–60A news story written with a view.
60–100Tabloid or comment-heavy writing.

Two things it does not mean. It is not a truth rating: a scrupulously accurate report can score high because of how it is written, and a false one can score 0. And it is not a verdict on the outlet — we score the language of one document, never the record of a publication.

Shortened articles

Where we may publish an article, we print it shorter: about four in ten of its words, up to 250. Our own shortener does it; no AI model or outside service is involved, and nothing is written that was not in the article. It keeps the opening sentence, then the sentences that carry the most of the story: what the headline is about, what the rest of the article keeps returning to, and the facts (names, numbers, dates, what happened). It drops sentences that repeat others, cuts asides and clauses that change nothing, and swaps long words for everyday ones. Quotations are never cut or reworded: a sentence with one is kept whole or left out.

The shorter version is then scored like everything else and used only if it is at least as mundane: a Niral Score no higher, and no more dramatic wording. Otherwise the page keeps the full neutralized version.

Summaries: thirty plain words

The summary on every card is made the same way, from one or two of the article's most important sentences, cut to thirty words at a natural break, in everyday words, with the verdicts removed and no quotations. Because every word comes from the article, a summary cannot invent a fact; it can leave one out, and if it leaves out the one that matters, report it and it goes in the ledger.

The overview: five sentences that cover the story

Above longer articles there are up to five bullet points. Nothing in them is written by us. Each one is a whole sentence of our plain-language version of the report, chosen so that between them they cover the story rather than repeat its opening — which is what a summary made of the first paragraph does. They are picked for how much each carries, with the rule that no two can be neighbours and none may repeat half of one already chosen, and at least one has to come from the last third of the article, because a story whose ending is missing has not been covered.

Because every bullet is a sentence you can find in the article underneath, you can check any of them against the text in a second. That is the whole reason they are taken rather than written. Across three hundred articles the five points average 4.9 per story and span 81% of the article's length.

What kind of day the news is having

Above the stories, on days there are enough of them to be sure about, there is a line saying what share of today's reporting is heavy news and what that share usually is. One story in five against one in six is an ordinary day; one in three is not.

It is a share and not an average, and the reason is that the average does not move. Over ten days of our own corpus the mean happiness across all the day's stories ranged from 44.0 to 47.3 — three points on a scale of a hundred, across days that felt nothing alike, because averaging twelve hundred articles washes out everything in them. Over the same ten days the share of heavy stories went from 12.9% to 32.7%: one story in eight against one in three. That is the number worth printing.

“Heavy” means a happiness reading under 40, which is the same line the News Diet uses. “Usually” is the fortnight behind today, counting only days with at least 120 stories in them, because a share taken over a handful of articles is mostly noise. A day is called unusual when it is two standard deviations from that fortnight — a line drawn by the spread of the days themselves rather than picked — which works out at roughly one day a month. A phrase printed every morning saying today is unusual would be worth as little as one that never said it.

It changes no story's score, and it never will. The indicators are a reading of how a piece of writing is put together. A reading that moved with the weather of the day would stop being a reading of anything. This line describes the day; the numbers beside each article describe that article.

Before the evening it says “so far”, because a day that has not finished arriving has not been measured.

Comments, questions and reactions

Under most stories you can react, leave a comment, or ask a question that any subscriber can answer. Questions and answers are for subscribers; comments and reactions need only an account.

Some stories take no comments. A report about a matter before the courts does not, because what gets written under those can prejudice a trial or damage somebody who has been charged with nothing. Neither does a report about a death, because the people closest to it are among the people who read it. That is about one story in eight: of three thousand published articles, 88% take comments, 11% are closed because the report is about a death, and 1% because it is a court matter. On a closed story you can still react, and you can still tell us the report is wrong.

Why the reactions are the ones they are. There is no angry face, no laughing face and no thumbs-down. This site exists to take the heat out of a report; a row of angry faces underneath would put it back on the same page by a different door, and a story about a death would carry a laughing face the moment somebody thought it was funny. The four say something about the reading — whether it was clear, whether you learned something, whether something is missing — which is what this site is for and is also worth knowing.

What happens to what you write. Anything containing a phone number, an address, an email, a link, an accusation about a person, or written entirely in capitals waits for a person to read it before it appears; you can see your own while it waits and nobody else can. A slur is refused outright and never stored. Everything else appears straight away.

Nothing posted here is ever deleted. A comment taken down keeps its text and gains the reason it was taken down, so the decision can be looked at again and argued with. A moderation record that destroys what it moderated cannot be audited and cannot be appealed.

Under Australian law we are the publisher of what appears under our reports, not a noticeboard for it. That is the reason for all of the above: it is our decision what is published here, so it has to be a decision somebody made rather than one nobody did.

Still running: what survived the week

Most of what is published is never referred to again by anyone, including the masthead that published it. Still running is the remainder: stories first reported three to ten days ago that a different newsroom has gone back to in the last two days.

It cannot be done with the grouping that puts today's coverage of one event together, and the database says so — of the groups holding more than one article, almost all span a single day. A follow-up is by definition a different event: "charged" is not "found", "apologises" is not "sparks opposition", and the words two reports share days apart are the names, not the verbs.

So two headlines are compared on their rare words rather than on all of them. How distinctive a word is comes from the fortnight of headlines around it, not from a fixed list, because the words that are ordinary in Australian news change with the news — "finals" is unremarkable in September and distinctive in March. Two reports count as the same story when enough of their distinctive vocabulary is shared.

The bar was set by reading the results rather than by choosing a number. At the level used, every pair over sixteen days of the live corpus was a real continuation. Loosen it and the first thing that appears is "Police investigating after body of mother found on Queensland beach" matched to "Woman charged after body of newborn found in bin" — two different deaths that happen to share three ordinary words. A page that tells you a story is still running has to be right about that or it is worth nothing, so it is set where it is still right and the list stays short.

A follow-up counts only from another newsroom, not another masthead. Nine's four metropolitan papers carry one another's copy, so a story running in all four has been filed once. One newsroom returning to its own story is an editor's decision; a second newsroom returning to it is the story still being alive, which is the only thing this page claims to measure.

The headline check

A headline makes claims; the report either backs them or it does not. That is a question about facts, not about tone, so it is answered above the story rather than on the dials beside it. We take three kinds of claim out of the headline as filed — a figure, a named person, place or organisation, and anything inside quotation marks — and look for each one in the outlet's own report. The page then says how many were checked and how many were found, and names the ones that were not.

Two things are read from the headline alone. A headline that asserts something outright ("proves", "reveals") over a report that attributes or hedges the same claim is marked as putting it more firmly than the reporting does. A headline written to withhold what happened ("you won't believe what happened next") is marked whatever the report says, because the construction is the problem.

What it cannot do, said plainly. Figures are matched digit for digit, so a headline saying "40%" over a report that writes "forty per cent" is queried when it should not be. Names are matched as spelled, so a headline saying "the Bureau" over a report that says "the Bureau of Meteorology" is queried too. Where that happens the limitation is printed next to the finding rather than left for you to discover.

Two kinds of claim are not reported at all, because the comparison behind them cannot tell a real miss from a spelling. A figure with a decimal point in it: the report's punctuation is stripped before the comparison, so "1.5 million" in the report reads as "15 million" and a headline saying "1.5" would never be found in it. And a short acronym: a report that spells "NDIS" out in full on first mention, which is house style almost everywhere, does not contain those four letters. Both are left unsettled rather than reported as missing, the claim comes out of the count so the page cannot claim to have checked it, and the reason is printed where the finding would have been. A missed catch costs you nothing; telling you a newsroom named something its own story never mentioned, when it did, costs you the reason to believe the rest of this page.

Where the headline carries no figure, no name and no quotation there is nothing to check, and the page says so instead of showing a tick — "we could not tell" is never reported as "this is fine".

The check runs only where we hold the outlet's report itself, at least 150 words of it. Against a two-sentence feed standfirst it would report half of any headline as unsupported, which would be true of the standfirst and say nothing about the article, so on those stories the section does not appear at all. Nothing is stored: the check is run when the page is built, so an improvement to it improves every article we hold at once.

Every indicator reads the writing

The indicators measure how a story is told, not only what happened in it. A plain report of a flood, a war or a crime should read close to neutral on every bias indicator; the same events written up with loaded or sensational wording should not; and our version should always read calmer than the original, never more charged. A test holds that for every article we check.

What our version removes, and what it keeps

Adjectives that pass judgment go, favourable or not, and plain description stays — see the measurement above. Sensational wording goes ("horror smash" becomes "crash"). Framing the gender and religious indicators find goes: "glamorous mother-of-two" and "female chief executive" lose the descriptors, "chairman" becomes "chair", and "a Muslim man was charged" becomes "a man was charged" when nothing makes the faith relevant.

Positive spin that is not an adjective stays: "hailed", "a triumph", "thankfully", "shares soared". Taking only the favourable colour out of a report, while its facts stay, would tilt it negative. Kept spin still counts toward the Niral Score.

Pictures

A wrong picture is worse than no picture. Photographs are sourced from Openverse, Wikimedia Commons and the NASA library under CC0, Public Domain Mark or CC BY; ShareAlike, NonCommercial and NoDerivatives are refused. Every candidate is scored for relevance against the article, and below a floor of 0.34 nothing is attached:

No image attached. The closest candidate scored 0.26 against a floor of 0.34. A generic picture on a specific story asserts something the reporting did not; no picture is the safer error.

What we cannot measure

Selection. Which facts were included, which were left out, which stories were never assigned at all. Selection is arguably the larger bias in professional journalism, and no lexicon will ever detect it. A report can pass every check on this page, contain no evaluative word, carry impeccable attribution, and still mislead completely by what it omits. We say so here because it is true and because the first serious journalist to test us will find it in an afternoon.

POST /v1/omissions narrows this gap; it does not close it. Given an article and other outlets' coverage of the same event, it can report a fact several independent outlets corroborate that this one left out. It cannot say anything about a story with no independent coverage to compare against, and a fact absent from every available source is as invisible to this check as it is to a reader of one article alone.

The related limit: we score the language of a document, not the record of an outlet. We publish no outlet-level ratings, and the API is not a licence to describe a publication as biased on our authority.

Corrections

Where the engine makes a judgement we cannot defend, it goes in the corrections ledger: public, append-only, and linked from the article it affected. A company that removes other people's editorial judgement and hides its own errors has no argument left.