Inside CitationLab · Coverage

We check the references you already had, not just the ones we found

CitationLab Team · August 2026 · 9 min read
WHAT GETS CHECKED WE PROPOSED 9 the visible part YOU ALREADY HAD 603 nobody flagged these RESOLVED DURING ANNOTATION 612 one lookup each AND THE DOI YOU SUPPLIED IS FOLLOWED your entry doi:10.xxxx/hsr.2022 describes your entry linked describes another paper withheld retrieves nothing unresolved The nine we proposed are the ones you would have found eventually. The six hundred we verified are the ones you would not. Ref[In]
The nine references a check proposes are the visible part. The other six hundred — the ones you assembled yourself — are verified too, one lookup each.

People arrive at a citation check expecting an asymmetry: it will tell them what is missing, and the references they already have will be left alone, because those are the part they did themselves.

That is not what happens, and the difference is most of the work.

The asymmetry that would be easy to build

It would be entirely reasonable to write this product the narrow way. Find the citations with no matching entry, propose sources for them, and hand back a short list of additions. Nine findings on a thesis with six hundred references, delivered in a minute, and every claim we made would be about something we produced.

The trouble is that the nine are not where the risk is. A reference you added last week after a supervisor suggested it is fresh in your mind and probably correct. The one you imported into a reference manager in 2022, formatted automatically ever since and never opened again — that is the one carrying a DOI you have never tested.

The references most likely to be wrong are the ones you are least likely to suspect, for the same reason: you have not looked at them in years.

What actually runs over your list

During annotation, a stage called enrichment resolves a real, verified link for every reference in your bibliography — not the flagged ones, not a sample. Its own description in the code is unambiguous about the scope: resolve real DOIs and URLs for every bibliography reference, so that the annotated bibliography and the exports can offer direct links rather than search links.

Coverage, on one thesis
References in your bibliography            612

  proposed by the check (were missing)        9
  already in your list when you arrived     603
                                            ───
  independently resolved during annotation  612

Lookups performed                           612
Lookups you asked for                         9

This is why enrichment is a stage of its own rather than a step inside another one. Six hundred network calls is the bulk of the compute in a session, and it is spent almost entirely on references nobody flagged.

Your own identifiers are checked too

The sharper version of this, and the part that surprises people: a DOI already sitting in your reference list is not taken on trust. It is fetched, and the record it retrieves is compared against the entry it is attached to.

What happens to a DOI you supplied
Your entry
  Okonkwo, C. B., & Ferreira, L. (2022). Workflow
  variance in regional centres.
  doi:10.xxxx/hsr.2022.0447

We fetch that DOI, and ask what it describes

  CASE A   the record is Okonkwo & Ferreira, 2022,
           Workflow variance in regional centres
           → identifier verified, direct link attached

  CASE B   the record is a different paper entirely
           → NOT attached. The entry keeps a search
             link, and the mismatch is reported.

  CASE C   the DOI retrieves nothing at all
           → not attached, reported as unresolved

Case B is the one worth dwelling on, because it is silent everywhere else. A DOI copied from the wrong row of a search results page, or from a manager record that was stale before your paper was drafted, produces a reference that looks impeccable and points at someone else's work. Nothing about reading the entry reveals it. The only way to find it is to follow the identifier and see where it goes, which is precisely what nobody does for six hundred entries by hand.

See what your existing list resolves to. Every reference you already had, checked against a real record, with the evidence for each — and the ones that do not resolve shown as unresolved rather than quietly linked.

Check my references

Why a wrong link is worse than no link

Only hits that pass verification are attached. The rule behind that is stated in the code more bluntly than we would normally write it: wrong direct links are worse than title-search fallbacks.

It is worth explaining because it will otherwise read as a shortfall. If your annotated bibliography gives a direct link for four hundred entries and a search link for the rest, the natural reading is that the tool failed on the rest. The actual reason is that it declined to guess.

Two ways to be unhelpful, and one that is worse
DIRECT LINK, VERIFIED
  goes to the work the entry describes
  → the reader confirms in one click

SEARCH LINK
  goes to a results page for the title
  → the reader does the last step themselves
  → honestly incomplete

DIRECT LINK, UNVERIFIED
  goes to something plausible
  → the reader clicks, sees a real paper, and
    concludes the reference is fine
  → confidently wrong, and it removes the very
    check the link was supposed to make possible

The third case is the one to design against. An unverified direct link does not merely fail to help — it actively defeats the reader's own verification, because a link that opens something real is taken as proof that the reference is real. A search link makes the reader do one more step; a wrong direct link stops them doing any.

What "free-first" means, and why it is a rule

Enrichment queries every enabled source and prefers metadata from the open ones — Crossref, then Semantic Scholar, then OpenAlex — before falling back to Google Scholar, Google Books or the open web.

That ordering is deliberate rather than incidental. Open bibliographic records are citable, stable and checkable by anyone: a reader who wants to confirm what we resolved against can go and look. A result scraped from a search engine is none of those things, and while it is often the only way to reach older or non-journal material, it should be the last resort rather than the first answer.

It also means the expensive tiers are queried only for what the free ones could not answer, which is a cost argument and a quality argument pointing the same way — an agreeable position that does not arise often.

What to do with a finding you did not ask for

A pass over six hundred references returns things about entries you had no concerns about, which raises a practical question: how much of this is worth your afternoon?

The ordering that pays is by consequence rather than by count.

First, the mismatches. An identifier that retrieves a different paper is the highest-consequence finding and usually the fastest fix, because you know the source and only the pointer is wrong. It is also the one with a downstream cost if left: a wrong DOI in a published paper enters the citation graph as an assertion that you cited something you did not.

Second, anything you have cited repeatedly. A defective entry used once is a defective entry; the same entry cited in four places has been carried into four arguments, and the annotated bibliography's cited at line tells you which is which at a glance.

Third, the unresolved. These are the largest group and the least urgent, because most are real works that the databases we can reach do not index. Work through them when you have time, and treat "unconfirmed" as what it says rather than as a verdict.

And ignore the tidy findings entirely. An entry with a slightly different title case from the record it matched is not worth a minute of a submission week. The check reports what it observed; deciding what deserves attention is yours, and a report that pretended everything mattered equally would be wasting the thing it is supposed to save.

The uncomfortable part

Running a lookup over every reference produces findings on references nobody asked about, and some of those findings are unwelcome. An entry you have cited in three papers turns out to carry an identifier for a different article. A source you have relied on since your literature review cannot be resolved to any record at all.

Most of those are mechanical and mildly annoying: a typo, an entry the parser read badly, or a real work that no database we can reach happens to index — a thesis, a standard, an older monograph. Those are reported as unconfirmed rather than absent, which is the honest description of what was observed.

One is not mechanical. Where nothing anywhere corresponds to the title, authors and year together, the possibility to rule out is that the work does not exist — and citing work that was never written is academic misconduct, however it arrived in the list. That is a finding a check can surface and cannot adjudicate. What it does is show you, with the evidence, in time to do something about it.

Which is the argument for the coverage in one line. The nine references we proposed are the ones you would have found eventually. The six hundred we verified are the ones you would not.

Check the whole list, not the gaps. Every reference resolved against a real record, every identifier followed to see where it actually goes, and every result shown with what it was checked against.

See plans
Filed under: Inside CitationLab verification refin-methodology doi academic-engines cross-check
Share: Post on X Share Email

Keep reading

Inside

The seven steps of a Ref[In] annotation

Where enrichment sits in the run, and why six hundred lookups is a stage of its own.

Go inside →
Guides

Match 10 — what ten pairs tell you

The five reasons a reference comes back unresolved, and which one to stop on.

Read the guide →
Guides

Audit your own paper's references

The manual version of this pass, and why re-resolving identifiers is the step people skip.

Read the guide →
Case Files

The DOI that pointed at the wrong paper

Case B, in full: a correctly formatted identifier resolving to somebody else's work.

Coming soon