What counts as evidence
A verdict is only as good as what the text was compared with. This page says exactly what Assay counts as evidence, why, and which sources it uses, so that anyone can disagree with a verdict by opening the same record.
On this page
- 1. Why this page exists
- 2. What counts as evidence
- 3. Evidence, check by check
- 4. The sources
- 5. Source quality: the tiers behind the gate
- 6. How a verdict is reached
- 7. How the safeguards work, and what they do not do
- 8. Adding your own source
- 9. Known limitations
- 10. Citing Assay, and the licence
- 11. Corrections
1. Why this page exists
A tool that says "verified" without saying against what is asking to be trusted blindly. Assay does not ask for that. Every verdict names the comparison it made, and this page is the definition behind those words.
2. What counts as evidence
Assay uses "evidence" in a narrow sense. Something is evidence only if all four hold:
- A person could open and read it. It is a record or a text, not a feeling. Anyone who disagrees with a verdict can open the same record.
- It comes from a source named on this page, whose coverage and limits are stated, so the meaning of "found" and "not found" is knowable.
- It was fetched or supplied at the time of the check. An old answer is only used when it is plainly marked stale.
- It can be compared with the text mechanically, so that two people running the check get the same result.
What does not count, anywhere in Assay: a model's statement that a source exists or says something; a tag the model wrote (such as [[c3]]) before it has been checked against the claims you approved; a search engine's snippet; a link elsewhere in the same text; and the fact that a web page loads, which is evidence of liveness only and is reported as that. A model's judgement that a source supports a sentence is not evidence either: only a quotation it points to can be, and only once that quotation has been found in the source.
Why these rules. The documented harms from AI-written text share one pattern: something plausible was accepted because nothing it could be compared with was looked at. Four conditions make the comparison contestable (open it yourself), bounded (the source's limits are written down), fresh, and repeatable.
3. Evidence, check by check
| Check | Counts as evidence | Does not count | Why |
|---|---|---|---|
| Citations | A bibliographic record whose authors, title and year match; a registry entry for the DOI given. | A model’s say-so. A record that matches only the title. | A record can be opened by anyone; a model’s confidence cannot. |
| Quotes | The sentence occurring in the source text you supply. | A paraphrase. A fragment under twelve characters. | A short fragment appears in almost any text and proves nothing. |
| Figures | The same value in the materials you supply. | The same digits with another unit or kind (40% against 40). | A percentage and a count are different claims. |
| Gate | A source whose domain is in your tier policy at the tier the claim needs, counted over distinct sites. | A source’s own claim about its standing. An unlisted domain raised above tier 3. | Nobody, least of all the author of a claim, may promote their own source. |
| Grounding | An approved claim that exists and states the same figure. | A tag that names no approved claim. Reasoning offered to justify a number. | A tag the model wrote proves nothing until it is checked. |
| Values | A published series for the exact period and unit. | A nearby year. A different unit. A model’s figure. | A close number for another year is a different measurement. |
| Links | An HTTP response from the page. | A blocked or unreachable response read as absence. | A site refusing a robot says nothing about whether the page exists. |
| Support | A quotation given by a judge that is found in your source. | The judge’s verdict on its own. | A model can propose evidence; only evidence that can be found can count. |
| Retractions | A retraction, withdrawal, correction or concern notice for the DOI. | An absence of notice read as proof that there is none. | Notices reach Crossref late, and from different places. |
| Legal | A decision held under the citation, with the case named. | A citation not held (reported as not verified, never as invented). | No database holds every court. |
4. The sources
These are all the places Assay ever sends a request, apart from the addresses in a text you ask its link checker to check. It does not add to this list by itself: a new source is a new thing whose answers are believed, so adding one is a decision for a person (see section 8). The self-test column is the work each source must be able to find before its "not found" is believed.
| Source | Used by | What it holds | How it is reached | Its self-test | Checked against the live service |
|---|---|---|---|---|---|
| CrossRef | citations, retractions | Metadata that publishers deposit for journal articles, books and more; notices of retraction, withdrawal and correction, including Retraction Watch’s. | Free API. Give an address (mailto) so they can contact you. | finds “The Problem of Social Cost” (Coase) | Yes |
| OpenAlex | citations | An open index of scholarly works; stronger on books and working papers. | Free. Each address has a small daily credit budget; a free key lifts it. | finds “Attention Is All You Need” (Vaswani) | Yes |
| Open Library | citations | A free catalogue of books, which the journal indexes hold under other titles. | Free. | finds “Why Nations Fail” (Acemoglu) | Yes |
| PubMed (opt-in) | citations | The biomedical literature, including work the others index poorly. | NCBI E-utilities, free. | finds “The sequence of the human genome” (Venter) | Yes |
| Semantic Scholar (opt-in) | citations | A broad index, strong in computer science. | Free shared pool; a key lifts it. | finds “Attention Is All You Need” (Vaswani) | No: its shared pool answered 429 whenever tried |
| DOI registries | citations (links) | Where a DOI, SSRN or arXiv link resolves: doi.org, and DataCite for DOIs CrossRef does not hold. | Free. | none (a lookup, not a search) | Tested on recorded replies |
| World Bank | values | The Indicators API: remittances, GDP, inflation, unemployment, population and more, by country and year. | Free, no key. | returns about 309,000,000 for USA, 2010 | Yes |
| IMF | values | DataMapper: World Economic Outlook aggregates only. | Free, no key. | returns about 309,000,000 for USA, 2010 | Yes |
| Eurostat (opt-in) | values | European statistics for the EU, Iceland, Norway and Switzerland: unemployment, inflation, GDP, population. | Free, no key. | returns about 83,166,711 for DEU, 2020 | Yes |
| Seeded figures | values | Figures a person read off a primary publication (a central bank’s report, a statistics office’s release) where no API exists. | Supplied by you. Every figure is reported as verified, so none should come from memory or from a model. | none (a person verifies) | Not applicable |
| CourtListener | legal | The Free Law Project’s database of US court decisions, with a citation-lookup API. | Free token. Sends the text to courtlistener.com. | none yet | No: built from the API reference; no token has been used |
5. Source quality: the tiers behind the gate
The gate judges how a claim is sourced, not whether it is true. Sources are ranked by tier, from a policy that you supply (Assay ships only a small neutral default).
| Tier | What it is | May it carry a claim? |
|---|---|---|
| 0 | Your own first-party data | Yes |
| 1 | An authority within its mandate | Yes |
| 2 | A specialist | Yes |
| 3 | The press | Yes, but a loss estimate, a causal or legal claim needs a tier-2 source or better |
| 4 | An aggregator: it points to a source and is never one | Never alone |
A rule says which claims need stronger backing, chosen by label or by what the text reads like, so a wrong label does not dodge it, and satisfied by alternatives counted over different sites ("one authority, or two news sources"). Nobody, including the claim's author, can raise an unlisted domain above tier 3 by saying so.
6. How a verdict is reached
Every item in every check gets one bucket and a sentence in plain words.
| Bucket | Means |
|---|---|
| ok | Nothing was found against it, by the evidence this check accepts. |
| check | Look at it: the evidence is partial, ambiguous, or could not be gathered. This includes every “could not look”. |
| failed | The evidence this check accepts contradicts it, or is missing where it should exist. Do not rely on it. |
| skip | Not checked, and nothing is implied. |
The rule that matters most: "could not look" is never "not found." If a source is throttled, down, or answers in a shape it does not normally use, the result is check ("this says nothing about the citation"), never failed.
7. How the safeguards work, and what they do not do
Assay is only as trustworthy as its safeguards, so be clear about what they are:
- They regulate themselves while Assay runs. A failing or throttled source is left alone and probed later; a changed reply is treated as an outage; a source that cannot find a work it must know has its "not found" discarded; an earlier answer is served, marked stale, when sources are down.
- They do not update themselves. Nothing in the running library notices that a source has permanently renamed a field or retired the work used as its self-test. In those cases Assay fails safe (the source is treated as unreliable and its answers are discarded) but does not repair itself, and a source that stays broken quietly reduces coverage.
- Something outside the library notices.
assay healthasks every built-in source for a work it must know, and a scheduled job in the repository runs it every week and opens an issue when one answers wrongly. That is monitoring, not repair: a person still has to fix the source, and a weekly check can miss a change for up to a week.
Self-regulating, then, not self-updating. The technical paper sets out the mechanisms and their failure modes.
8. Adding your own source
You can add a source; Assay will not add one to itself. A library that adopted sources automatically could be pointed at a poisoned one, and would change which hosts it contacts without anyone deciding to. A source you add inherits the same safeguards: its replies are shape-checked, its "not found" is not believed until it passes its self-test, and a failing source is left alone.
You can write one with data, for any service that answers JSON over https. It must have a fixed host and a self-test work, or Assay refuses it:
import { createAssay, defaultSources, jsonSource } from '@extrafemi-ai/assay';
const myIndex = jsonSource({
name: 'My Institution Repository',
url: 'https://repo.example.org/api/search?title={title}&author={surname}',
results: 'data.items',
fields: { title: 'name', authors: 'writers', year: 'meta.year', doi: 'ids.doi' },
authorName: 'fullName',
canary: { title: 'A work this repository certainly holds', surname: 'Surname', authors: ['Surname'] },
});
const assay = createAssay({ sources: [...defaultSources, myIndex] });
Or implement the SearchSource or ValueSource interface in code, or supply figures you checked yourself with seededSource. To add a source to Assay itself, open a pull request with the source, a fixture recorded from the real service, a self-test work, and a note saying whether it was verified live. The reference has the details.
9. Known limitations
- Evidence that something exists is not evidence that it says what the sentence claims. A verified citation can still be attached to a false claim. The support check reaches toward this, but only as far as a model's reading plus a quotation found in the source.
- Coverage has gaps. Books, reports, grey literature and non-English work are thinly indexed, so a real work can come back "not verified". That is why Assay says "not verified", never "invented".
- Sources can be wrong. A bibliographic database with an error will pass it on.
- "No notice recorded" is not proof. For retractions, notices arrive late and from several places.
- The labelled sample is small. Thirty hand-labelled citations are not a benchmark, and no accuracy figure is claimed. See what Assay cannot do.
10. Citing Assay, and the licence
Assay is free and open source under the MIT licence. To cite the method:
Olorunfemi, O., & Olusegun, P. (2026). Assay: Checking AI-written text against evidence, one question at a time (Technical report, version 1.0). Extrafemi Research. https://assay.extrafemi.com/paper/
11. Corrections
If a source is described wrongly, a limit is missing, or a definition here does not match what Assay does, open an issue on GitHub. This page is generated in part from the code: the self-test works in section 4 are read from the sources themselves.