The rubric, in full, before any score.
The AI Slop Index measures text-pattern signals that correlate with low-rigor AI-generated content. The rubric is the same credibility scanner that gates every build of this publication. We score competing publications on a publicly declared corpus, quarterly, with right of reply.
What this rubric IS — and what it is not
The rubric measures text patterns. A publication can score high on pattern density and still be excellent — ceremony, voice, or a deliberately conversational register are all legitimate editorial choices that this rubric will read as noise. A publication can score low on pattern density and still be slop: clean prose hiding fabricated facts, unsourced quotes, or predictions that quietly disappear when wrong.
Read the score as one signal among many. We publish the rubric openly so any reader can apply it, dispute it, or extend it. We hold ourselves to the same rubric — every build of this publication runs through it.
The 10 dimensions
Every dimension carries a Holding | Partial | Not holding verdict. The aggregate publication verdict is derived: any dimension at Not holding pulls the aggregate to Not holding; any Partial without a Not holding pulls to Partial; otherwise Holding. The grammar is identical to this publication's own claim-status grammar — applied to text-pattern dimensions, not to the publications themselves.
- D01 · banned-phrase-density
LLM cadence patterns
Frequency of phrases this publication's banned-phrase library catalogues as LLM-cadence tells: 'Here's where it gets interesting', 'let me break this down', 'plot twist', 'but here's the thing', 'you're probably wondering', and ~130 others.
Holding: 0–1 hits per 1000 words. Partial: 2–4. Not holding: 5+.Source: lib/banned-phrases.ts (canonical pattern list, dated amendments) - D02 · unsourced-numeric-claim-rate
Unsourced numeric-claim rate
Percentage of numeric claims (%, $, 'N percent', 'X-fold') that do NOT resolve to a linked primary source within 3 lines, and do not carry an our-estimate marker.
Holding: ≤ 10% unsourced. Partial: 10–30%. Not holding: > 30%.Source: scripts/flag-credibility-issues.ts (numeric-claim detector) - D03 · fabricated-framework-markers
Fabricated-framework markers
All-caps 3–5-letter putative 'frameworks' (SPARK™, ADOPT, GAINS) that appear without a citation, a methodology page, or an amendment log. Pattern is over-broad — false positives include legitimate acronyms; manual review on every flag.
Holding: 0 ungated markers. Partial: 1–2. Not holding: 3+.Source: scripts/flag-credibility-issues.ts (frameworks pattern) - D04 · fabricated-expert-quotes
Fabricated-expert quotes
Direct quotes attributed to named external analysts, executives, or researchers where the surrounding context provides no link to a verifiable interview, paper, or public statement.
Holding: every quote linkable. Partial: 1–2 unlinkable per piece. Not holding: 3+ per piece.Source: Manual review against the scrape archive - D05 · em-dash-density
Em-dash density
Em-dashes per 1000 words. High em-dash density is a known signature of LLM-generated prose; the threshold is empirical, not stylistic.
Holding: ≤ 2 / 1000. Partial: 2–5. Not holding: 5+.Source: scripts/flag-credibility-issues.ts (em-dash detector) - D06 · rhetorical-question-subheads
Rhetorical-question subheads
Subheadings phrased as questions ('What does this mean for CIOs?', 'Why does this matter?'). Editorial choice; tracked because it correlates with low-rigor templating.
Holding: 0 per piece. Partial: 1. Not holding: 2+.Source: scripts/flag-credibility-issues.ts (rhetorical subhead detector) - D07 · emoji-subheads
Emoji subheads
Emoji used as subhead chrome (📊, 🚨, 💡, ✅). Always flagged by the scanner; a publication's chrome is the most visible LLM tell.
Holding: 0 across the sample. Partial: 1–3. Not holding: 4+.Source: scripts/flag-credibility-issues.ts (emoji-subhead detector) - D08 · exclamation-points
Exclamation points in body prose
Exclamation points outside direct quotation. Editorial choice; tracked as a hype-tell.
Holding: 0–2 across the sample. Partial: 3–7. Not holding: 8+.Source: scripts/flag-credibility-issues.ts - D09 · date-grammar-violations
Date-grammar discipline (descriptive)
Whether the publication holds to a single, consistent date format. Measured descriptively — every publication has its own grammar; the rubric checks consistency, not adoption of this publication's design grammar.
Holding: < 5% of dates deviate from the publication's dominant format. Partial: 5–20%. Not holding: > 20%.Source: Custom check; pattern set per publication - D10 · status-word-violations
Claim-status discipline
Whether the publication tracks and updates the status of its prior claims at all. Measured by sampling 10 articles ≥ 6 months old and checking whether any subsequent piece, correction, or update annotation discusses the prior claim.
Holding: ≥ 5/10 prior claims have public status follow-through. Partial: 1–4. Not holding: 0.Source: Manual review against publication archive
How a quarter's index is built
- Corpus selection. Pre-declared. The first quarter's corpus is announced two weeks before the snapshot date so any party can dispute selection criteria before scraping begins.
- Snapshot. Public articles published by each publication in the prior 90 days are scraped on a fixed date. The raw scrape is archived to immutable storage; sampled archives are linked from per-publication pages.
- Scan. The scrape is run through the same credibility scanner that gates this publication's own builds. Every flag is reviewed manually; false positives are discarded with a logged reason.
- Score. Each dimension gets a verdict against the public thresholds above. The aggregate is derived.
- Right-of-reply notice. Each scored publication receives a 14-day pre-publication notice with the proposed score, methodology version, and raw scan output. Any response is rendered in full on the per-publication page.
- Publish. Quarter index lives at /slop-index/; per-publication detail at
/slop-index/{publication}/{quarter}/. Open data and the scoring scripts are linked from each page.
Right of reply
Every scored publication may respond. Their text is rendered in full on their per-publication page, unedited. If a response surfaces a methodology issue, the methodology amendment is dated and credited at /slop-index/methodology/amendments/. If a response disputes a measurement, the per-publication page shows both numbers and links the underlying scrape so readers can adjudicate.
Limitations we accept
- Pattern density is a proxy, not a measure of quality. A disciplined human voice can hit a high em-dash density; a polished template can score zero on every dimension and still fabricate facts.
- The corpus is what's public. Paywalled analyst notes and behind-the-login enterprise reports are out of scope. The index measures the publication's public surface only.
- Sample size for long-form publications can be small. Quarter-over-quarter comparisons require multiple cycles before the signal is reliable.
- We hold these limitations to the same Holding-up discipline as the rest of the publication. If a limitation breaks the rubric, the methodology version increments and prior scores are visibly tagged with the version they were computed under.
Disagree with any threshold or dimension? File a methodology objection at /corrections/. Objections that land update the methodology and the change is dated. Objections that don't land receive a public response explaining why — same Claim Archive discipline as the rest of this publication.