A quarter of the citations in filed briefs are Westlaw or Lexis ids. We list them, we do not guess.Coverage ›

Measurements

Our error rates,
one check at a time

On 209 invented cases that courts found in sanctioned filings and that carry a reporter citation, the default check flagged 187 (89%). On 345 citations in courts' own published paragraphs, it flagged 4 (1.2%). Every rate we publish is on this page, with its sample, its date and what it leaves out.

The short answer

Default check (code, no language model): flags 89% of the court-found invented cases that have a reporter citation, and 1.2% of the citations in courts' own writing.

Deep check, US (opt-in, a judgment model): at the confidence the report shows, it confirms 55.0% of good citations and marks a wrong passage as support for 4.5% of wrong pairs. That is why it is a review queue and not a verdict.

Deep check, Swiss: 73.2% of good citations confirmed and 2.2% of wrong pairs marked as support, with the model build the site runs (jev 1.14), on a held-out set that is no longer blind (see the caveat).

Find cases, US (beta): on the site's own index, on two fresh sets of 50 sentences from filed briefs, with the model it runs, readers found that 55 of 66 shown cases (83%) support the sentence and 1 does not (set G). Details.

How to read the tables

Each check gets its own table. We do not add them up into one score, because a missed invented case and a real case flagged as missing cost you different things. The false-flag number sits next to the catch number wherever we have both.

  • Flagged means a red row: "check this". False flag means a red row on a citation that was fine.
  • Confirmed (deep check) means the check found a passage that states the claim. Marked as support on a wrong pair means it did that when the passage does not support the claim. That second number is the one to watch.
  • Dev: we changed the checker while looking at these results. Held out: the set was put aside and run once, at the end. Control: a set built to test one kind of failure; the checker was fixed on it, so it is not blind.
  • Engine is the version of the checking code that produced the number. The site runs a later engine than some rows; where that matters, the caveat says so.

Does the case exist, and is it the case you named?

The default check looks up every citation in the register by volume, reporter and page, then compares the case name. No language model is involved.

what was measuredresultsamplesetdateenginecaveat
Citations a court found to be to no existing case, flagged187 of 209 (89%)345 such citations from sanctions decisions; 136 were Westlaw or Lexis ids that no open register can look upControl, from public decisions2026-09-19Bench pipeline; re-run when the engine changes (engine 0.4.7, 2026-09-23: 525 of 528 answers the same as the first run)Six bugs in the checker were found and fixed on this set, so it is not blind. Of the 22 not flagged, 19 are real cases the court faulted for an invented quotation.
Citations where a court found a different case at the volume and page, flagged48 of 68 (71%)96 such citations; 28 were Westlaw or Lexis idsControl2026-09-19Bench pipelineSame set as the row above.
Real cases the court faulted for a misquotation, flagged by the existence check (false flags)4 (10%)43 citations; 4 were Westlaw or Lexis idsControl2026-09-19Bench pipelineThe 10% is of the citations the register could look up.
Real cases the court found did not support the point, flagged by the existence check (false flags)3 (9%)35 citationsControl2026-09-19Bench pipelineTwo of the three are citations the court also found to be wrong.
Citations in courts' own paragraphs, flagged red (false flags)4 of 345 (1.2%)345 citations in 100 paragraphs of published opinionsControl2026-09-19v0 service, default mode3 quotation flags and 1 citation flag. Published opinions contain wrong citations too, so not every flag on them is false.
Planted errors in published opinions (swapped names, pages, volumes, quotations), flagged305 of 343 (88.9%)343 planted errorsHeld out, run once2026-09-19The bench's first instrument (Caselaw Access Project text and the CourtListener API), not the local register the product usesPlanted errors are mechanical edits. They are easier to catch than a language model's inventions.
Real citations in the same opinions, flagged (false flags)8 of 1,068 (0.75%)1,068 real citationsHeld out, run once2026-09-19Same first instrumentPlus 3 page disputes (0.28%) left as soft warnings, because the CourtListener quota ran out during the run.

Is the quotation in the opinion?

The quotation check looks for the quoted words in the opinion text, allowing for the edits courts make: omitted citations, brackets, dropped words.

what was measuredresultsamplesetdateenginecaveat
Quotations a court found were not in the cited opinion, flagged14 of 1515 quotations from sanctions decisionsControl2026-09-19Bench pipelineA small sample. The one miss was a loose paraphrase the court called a quote.
Planted misquotations, flagged11 of 1212 planted misquotationsHeld out, run once2026-09-19The bench's first instrumentA small sample.
Quotation flags on courts' own paragraphs (false flags)3 of 345345 citations in 100 paragraphsControl2026-09-19v0 service, default modePart of the 4 red rows in the table above.
Quotation flags on filed briefs, each read by hand27133 briefsDev: the quotation rules were fixed on these briefs over four runs (158 flags in the first run)2026-09-19v0 service, default modeAll 27 were quoted words that belong to a different case than the one cited, such as a sentence from Steel Co. cited to Whitmore. The report tells you to cite the source "(quoting ...)".

What a review looks like on real filed briefs

141 briefs and motions filed in 29 federal district courts from 2024 on, taken from the RECAP archive; 133 had a text layer. They hold 7,067 citations, 53 per brief. This is the set that tells you how long a review takes.

what was measuredresultsamplesetdateenginecaveat
Items to review per brief (red and orange rows, all Westlaw and Lexis ids counted as one line)median 1; 3 at the 75th percentile; 5 at the 90th133 briefsDev: wording and quotation rules were fixed on these briefs2026-09-19v0 service, default modeCounting every Westlaw or Lexis id as its own row gives a median of 8.
Red rows per briefmedian 0, mean 0.34133 briefsDev2026-09-19v0 service35 of the 133 briefs had at least one red row.
Westlaw and Lexis ids among the citations23%7,067 citationsDev2026-09-19Bench pipeline, local register99.6% of those ids stood alone, with no reporter citation beside them. They are listed as "cannot verify", never flagged.
Flags that turned out to be an invented case0 of 217,067 citationsDev2026-09-19Bench pipeline, local registerAll 21 were read. They were wrong volumes and pages (Bostock cited at 509 U.S. 644 instead of 590 U.S. 644), citations with no party names, PDF extraction errors, captions the name index missed and cases the register lacks.
Time for one briefmedian 1.63 s; 4.5 s at the 90th percentile133 briefs, 8 at a timeDev2026-09-19v0 service, default modeMeasured on the machine that holds the register. Your wait also includes the upload and the PDF text layer.

These runs predate the federal appellate backfill of 2026-09-20. A re-run after it resolved more citations: Westlaw and Lexis ids left unresolved went from 1,591 to 1,294.

What the default check finds in drafts written by language models

We cut 100 published opinions just before a paragraph that cites cases and asked three Gemini models to write the next paragraph "with full reporter citations". The court's real paragraph is the floor. This measures the drafts as much as the checker.

sourcecitationsred rows (default check)no such case, or a different case at the citationquotation not in the opinion
Courts' own paragraphs (the floor)3454 (1.2%)1%4%
gemini-2.5-flash-lite28953 (18.3%)21%4%
gemini-2.5-flash27655 (19.9%)13%12%
gemini-3-flash-preview16027 (16.9%)7%14%

Measured 2026-09-19. The red-row column is the v0 service in default mode; the last two columns are the bench's classification of the same paragraphs with an earlier instrument, which is why the court's floor differs between them. The prompt was "continue this opinion", not "write a brief", and three Gemini models are not every model.

Public benchmark: LePhantomCite

LePhantomCite is a public benchmark from Princeton: Liu, Stammbach and Henderson, "Who Checks the Citations? Benchmarking Legal Hallucination Detection" (arXiv 2606.21155; the data is CC BY 4.0). It takes excerpts of real federal appellate briefs, puts one kind of error into a citation, and adds case holdings written by language models from Dahl et al. (2024). Nobody here built it, so it is the one set on this page we did not choose.

We report its eval split, the 390 excerpts the paper scores, run once on 2026-09-24 through the default check of engine 0.5.0, after the engine was frozen. The changes in 0.5.0 were tuned on the other split (910 excerpts) and on our filed-briefs control, never on these 390. No language model and no paid call. Caught means a red row on the labelled citation or quotation.

the benchmark's classitemsengine 0.5.095% intervalbefore 0.5.0 (engine 0.4.10)caveat
Citation in a reporter series that does not exist3131 of 31 (100%)89.0 to 1000 of 31All 31 use a series that never existed, such as F.5th or S.W.4th. Invented citations in real filings mostly use real series with an invented volume and page; the tables above measure those.
Case name does not match the citation6848 of 68 (70.6%)58.9 to 80.138 of 68 (55.9%)3 more are shown orange, "cannot verify".
Quotation altered by a word or two4625 of 46 (54.3%)40.2 to 67.83 of 46 (6.5%)Most quotations follow a short form such as "Id. at 12". Since 0.5.0 those are tied to their case and checked; 11 still hang off a short form the text does not tie to a case.
Wrong pin cite, inside the opinion55not checked by the default checknot checked by the default checkThe default check flags a pin page outside the opinion (orange). The benchmark always moves the pin to a page inside it.
Holding misstated131not checked by the default checknot checked by the default checkReading the holding is the deep check's job, and the deep check was not run on this benchmark.

False flags. Of the 786 citations the benchmark labels correct, the default check flagged 21 red (18 of 695 before 0.5.0; the new rows are short forms). We read all 21. In our reading, 8 are real errors in the source briefs that the benchmark does not label as errors, such as a wrong volume or page, or a quotation the opinion does not contain. That leaves 13 of 786 (1.7%, 95% interval 1.0 to 2.8) where the checker itself was wrong, against 10 of 695 (1.4%) before. One reader, ours, did this reading against the register's text.

Beside the paper's systems. The table below uses the paper's own metric and its own scoring code. It is not a like-for-like race: the default check is code, it addresses three of the five classes (series that do not exist, name mismatches, altered quotations), and it does not read holdings or check a pin inside the opinion. The paper's agentic systems search CourtListener and the web and read the opinions, up to 30 steps per excerpt. That is where their recall comes from.

systemprecisionrecallF1
proofread.law default check, engine 0.5.0 (code, no model)83.931.145.4
proofread.law default check, before 0.5.069.012.120.6
Paper, agentic: Claude Code (Opus 4.8)76.162.868.8
Paper, agentic: GPT-540.884.455.0
Paper, agentic: Qwen3-8B12.041.118.6
Paper, without the agent loop: GPT-536.958.245.2

The paper rows are copied from its Table 2; it reports more systems. Its labels treat the source-brief errors above as correct (one is marked optional), so a flag on them counts against our precision. Counting the 7 that are among our predictions as right gives 89.5%, again on our reading.

Does the case say what you cite it for? (deep check, US)

The deep check is opt-in. A judgment model (jev) reads the ten passages of the opinion that best match your sentence and answers whether one states your claim, states the opposite, or neither, and who is speaking: the court, a party or a dissent. The report shows the passage.

The set: 920 held-out pairs from published opinions (the CLERC corpus). Each pair is a sentence that cites a case, and the whole cited opinion. 300 are the court's own citations, 300 point at a passage from another case on a similar subject, 120 at a random passage, and 200 keep the true passage but negate the claim.

shapeconfidencegood citations confirmedwrong pairs marked as supportnegated claims marked as supportsetdateengine
single_v4, the shape the site runs0.8, the level the report serves55.0%4.5%1.5%Held out, run once2026-09-20jev-1.13.0 via TypeSafe; reproduced exactly on engine 0.3.0
single_v40.950.0%3.1%0.5%Held out, run once2026-09-20Same
single_v4any67.7%11.3%6.5%Held out, run once2026-09-20Same
v4, the shape before engine 0.3.0any68.7%10.5%5.5%Held out, run once2026-09-19jev-1.13.0 via TypeSafe
v40.856.0%5.0%3.0%Held out, run once2026-09-19Same
Baseline: a word-overlap rule, tuned to the same share confirmedn/a54.3%23.9%23.5%Held out, run once2026-09-20No model
Baseline: gemini-2.5-flash-lite on the same passagesany67.7%24.7%47.5%Held out, run once2026-09-19A general language model
  • A different model build. These numbers were measured on jev-1.13.0 through TypeSafe. The site's deep check now calls a dated build of jev 1.13 through OpenRouter, and the US numbers have not been re-measured on that build.
  • The label is strict. Some passages from another case state the same standard rule (standard of review, leave to amend), so part of the "wrong pairs marked as support" is the label and not the check.
  • Courts citing courts. The truth set is published opinions. An advocate's paraphrase is harder, and we have no hand-labelled number for it yet.
  • Who is speaking. On 120 paragraphs where a court reports a party's argument, v4 marked 2 as support; the word-overlap rule marked 118.
  • Court-found misstatements. On 18 citations that courts found misstated, the support check of 2026-09-19 marked 1 as support at 0.8. Read by hand, that opinion does say what the filing claimed; the court's complaint was an invented quotation.

Does the decision say it? (deep check, Swiss)

No Swiss briefs are public, so the set is court text: a Federal Supreme Court sentence that cites a leading case with a considerando, and the whole cited BGE. 757 held-out pairs, 64% German, 30% French, 6% Italian. The wrong pairs are passages from a leading case of another part of the reports in the same language, random passages, and true passages with the claim negated.

sliceconfidencegood citations confirmedwrong pairs marked as supportnegated claims marked as supportdateengine
All 757 pairs0.873.2%2.2%0.0%2026-10-30Engine 0.8.8; jev 1.14 dated build via OpenRouter (the build the site runs)
All 757 pairs0.968.8%2.0%2026-10-30Same
Same language, jev 1.140.881.2%2.3%2026-10-30Same
Different languages, jev 1.140.854.9%0.0%2026-10-30Same
All 757 pairs0.876.5%3.1%2.6%2026-09-20Engine 0.4.2; jev 1.13 dated build via OpenRouter
All 757 pairs0.972.5%2.2%0.0%2026-09-20Same
Claim and decision in the same language0.886.0%3.0%2026-09-20Same
Claim and decision in different languages0.854.9%2026-09-20Same
  • Not blind. This held-out set was run three times, and the truth set was redesigned after reading its errors. Treat these as dev numbers until a fresh set is run once.
  • The error rate is a ceiling. All 14 confident errors at 0.8 were read: 12 are leading cases that do state the proposition (procedural formulas such as Art. 42, 95, 105 and 106 BGG appear in leading cases of every part). 2 are real errors.
  • Not yet measured on filed Swiss briefs. The site runs a later engine than 0.4.2.

Does a suggested case state your sentence? (Find cases, US beta)

On Find cases you paste a sentence from your draft and get up to three cases. An input check first turns away text that states no rule of law. The search then ranks candidates by the sentences in which federal appellate courts and the Supreme Court cite them and by the cases' own text, and puts cases that bind the brief's court first. A judgment model (jev) reads the opinion of the court in each of the top 10, and a case is shown only when the model finds a passage that states the sentence, at confidence 0.9 or higher (0.8 until 29 September 2026; sets C and D below ran at 0.8). Cases that a later court overruled or reversed are left out.

The sets: 50 sentences each from briefs filed in federal district courts (the RECAP archive), none used before, each run once. Set G ran on the site itself with jev 1.14, the model build the site has run since 25 October 2026. Sets E and F ran on the site with jev 1.13, both at the 0.9 floor; set E decided the move to 0.9 under a rule written before it ran. Set D ran on the site at 0.8, and set C ran three days earlier on the machine that built the index. The sets come from cases filed in 2025; the briefs themselves are mostly from 2026. Each set is reported on its own, never pooled. Two readers read every shown case, with its passage between the paragraphs before and after, without seeing each other's label or the model's score.

what was measuredresultsamplesetdateenginecaveat
Shown cases the readers found support the sentence55 of 66 (83%)66 cases shownHeld out, run once (set G)2026-10-25The site: engine 0.8.8, its index, 0.9 floor; jev 1.14 (dated build) via OpenRouter95% interval 73 to 90. On the same sentences, jev 1.13 showed 68 cases: 54 supporting (79%), 1 not.
Shown cases the readers found do not support the sentence1 of 66Same 66Held out, run once (set G)2026-10-25SameDescribed below. 10 more were relevant but not a full statement of the sentence.
Sentences with at least one supporting case shown22 of 5050 sentencesHeld out, run once (set G)2026-10-25SameThe same with jev 1.13.
Shown cases the readers found support the sentence68 of 81 (84%)81 cases shownHeld out, run once (set E)2026-09-29The site: engine 0.8.6 and its index, 0.9 floor; jev 1.13 dated build via OpenRouter95% interval 75 to 90. The readers are language models, not practising lawyers (see below).
Shown cases the readers found do not support the sentence1 of 81Same 81Held out, run once (set E)2026-09-29SameDescribed below. 12 more were relevant but not a full statement of the sentence.
Sentences with at least one supporting case shown29 of 5050 sentencesHeld out, run once (set E)2026-09-29SameAt the old 0.8 floor, the same run showed 90 cases: 75 supporting (83%), 2 not, 30 of 50 sentences covered.
Shown cases the readers found support the sentence52 of 65 (80%)65 cases shownHeld out, run once (set F)2026-09-29The site: engine 0.8.6 and its index, 0.9 floor95% interval 69 to 88.
Shown cases the readers found do not support the sentence5 of 65Same 65Held out, run once (set F)2026-09-29Same3 of the 5 came from a fault in our test, not the site: see below. Re-run as the brief wrote it, that sentence shows no case (counted after the fact: 52 of 62 support, 2 do not).
Sentences with at least one supporting case shown22 of 5050 sentencesHeld out, run once (set F)2026-09-29Same8 more were relevant but not a full statement of the sentence.
Shown cases the readers found support the sentence73 of 94 (78%)94 cases shown for 34 of the 50 sentencesHeld out, run once (set D)2026-09-29The site: engine 0.8.5 and its index, 0.8 floor; jev 1.13 dated build via OpenRouter95% interval 68 to 85. The readers are language models, not practising lawyers (see below).
Shown cases the readers found relevant, but not a full statement of the sentence17 of 94Same 94Held out, run once (set D)2026-09-29SameShown the same way as the others. The passage is there so you can tell.
Shown cases the readers found do not support the sentence4 of 94 (4%)Same 94Held out, run once (set D)2026-09-29Same95% interval 2 to 10. The four cases are described below.
Sentences with at least one supporting case shown33 of 5050 sentencesHeld out, run once (set D)2026-09-29SameThe input check turned away 8 of the 50.
Shown cases the readers found support the sentence59 of 73 (81%)73 cases shown for 29 of the 50 sentencesHeld out, run once (set C)2026-09-26Engine 0.7.0 candidate; jev 1.13 dated build via OpenRouter95% interval 70 to 88. The readers are language models, not practising lawyers (see below).
Shown cases the readers found relevant, but not a full statement of the sentence13 of 73Same 73Held out, run once (set C)2026-09-26SameShown the same way as the others. The passage is there so you can tell.
Shown cases the readers found do not support the sentence1 of 73 (1%)Same 73Held out, run once (set C)2026-09-26Same95% interval 0 to 7. The one case is described below.
Sentences with at least one supporting case shown23 of 5050 sentencesHeld out, run once (set C)2026-09-26SameThe input check turned away 11 of the 50: 6 stated no rule of law, 4 were about the brief's own record or a party's argument, 1 was a question.
Shown cases from the Supreme Court or the brief's own circuit42 of 73Same 73Held out, run once (set C)2026-09-26SamePlus 1 from a district court in that circuit.
Time per sentence the input check acceptedmedian 2.1 s; 4.0 s at the 90th percentile; 4.9 s at most39 sentencesHeld out, run once (set C)2026-09-26SameMeasured on the machine that holds the indexes. The site stops waiting for a model call after 8 s and for an answer after 15 s.
The same reads on an earlier fresh set, before the engine fix for printed-line opinions and separate opinions45 of 71 support (63%); 5 of 71 do not (7%)50 sentences from 50 other filed briefsHeld out, run once (set B)2026-09-26Engine 0.5.4Three of the five were a paragraph cut into line fragments or a dissent's paragraph shown as the court's. Engine 0.7.0 fixed both, and set C was drawn after the fix.
  • Who read. The readers were language models reading blind, two per case, not practising lawyers. On set E they agreed on 84 of 92 (the cases shown at either floor), and a third model read the other 8; on set F they agreed on all 65. On set D they agreed on 91 of 94, and a third model read the other 3; on set C they agreed on 72 of 73, and a third read the one disagreement.
  • The shown case in set G that did not support its sentence. Skinner v. Switzer was shown for a sentence saying that notice pleading does not require pinning a claim to a precise legal theory. Skinner does say that, but in another paragraph; the paragraph shown is its discussion of the Rooker-Feldman doctrine. Both model builds showed it.
  • The shown case in set E that did not support its sentence. Washington State Grange (2008) was shown for a sentence that argues the brief's own record ("These record-review principles are not disregarded just because Plaintiffs raise constitutional claims"). The input check should have turned that sentence away.
  • The five in set F. Two are real: for a sentence about a "pure question of law" under 28 U.S.C. § 1292(b), the list showed two qualified-immunity cases about the collateral-order doctrine, with the right words and the wrong doctrine. Three came from our test, not the site: the tool that strips line numbers from the briefs turned "convert Rule 5 into a rigid specification" into "convert Rule into a rigid specification", and for that altered sentence the model matched cases rejecting "a rigid test". Sent as the brief wrote it, the sentence shows no case. The tool is fixed.
  • The four shown cases in set D that did not support their sentence. Each time the model matched a passage that is about something else. A one-line paragraph of a California case ("We begin with the issue of duty") was shown for a Minnesota brief. Burlington Industries v. Ellerth, on a tangible employment action, was shown for Title VII's "materially adverse action". A footnote of Barnes v. Yahoo! on the motion-to-dismiss standard was shown for a Section 230 point. NCAA v. Board of Regents, on per se rules and the rule of reason under Section 1 of the Sherman Act, was shown for a Section 2 point.
  • The one shown case in set C that did not support its sentence. For "These complaints, therefore, do not constitute protected activity and cannot form the basis of a retaliation claim" (a brief filed in the District of Minnesota), the list showed Johnson v. Portfolio Recovery Associates (E.D. Va. 2009). Its paragraph says the conduct was not in the EEOC charge and so cannot support the retaliation claim: a point about exhaustion, not about protected activity. The model matched the words of the conclusion. The sentence also applies the law to the brief's own facts, which the input check let through.
  • Why it is a beta. Our bar before users was 80% supporting and none that does not support its sentence. Set G, on the model the site runs, reached 83% with 1 of 66 not supporting. At the 0.9 floor with jev 1.13, set E reached 84% with 1 of 81 not supporting, and set F 80% with 5 of 65 (2 of them real). Neither clears the bar, so the list stays a beta. At the old 0.8 floor, set D had 78% and 4 of 94.
  • An empty list is not a finding. At the 0.9 floor, set E covered 29 of 50 sentences and set F 22 of 50. In set D, 33 of the 50 sentences got at least one supporting case; in set C, 23 of 50. In set C, of the other 27, the input check turned away 11, and for the rest no candidate passed the check. That does not mean no case states the sentence.
  • What the site runs. The settings measured are the ones the site uses: the input check, the brief's court first, the top 10 candidates read, cases a later court overruled or reversed left out. The site adds the time limits above. A candidate the model has not read in time is not shown, and the page says how many. Sets E and F ran on the site itself; set C ran on the engine 0.7.0 candidate, whose suggestion code the site kept, adding the time limits and later the 0.9 floor.
  • Federal district court briefs only. How the list does for briefs filed in state courts, or for a sentence a lawyer writes from scratch, is not measured.

Does the Swiss decision exist?

what was measuredresultsamplesetdatecaveat
Invented Swiss citations reported not found1,700 of 1,7001,000 BGE citations to pages outside any decision, 500 dockets past the highest number, 200 chambers that do not existControl2026-09-20; re-run 2026-09-23, unchangedMechanical inventions. A made-up page inside a real decision's span resolves to that decision as a pincite (587 of 587 in the same control), as a pincite would in the US register.
BGE citations in 1,000 Federal Supreme Court decisions from 2010 on, found8,823 of 8,831 (99.9%)8,831 citationsControl2026-09-20Found at the cited page or as a pincite inside the decision.
Federal Supreme Court docket citations in the same decisions, found7,888 of 8,198 (96.2%)8,198 citationsControl2026-09-20The misses are mostly dockets from before 2000, which the court does not publish online, and unpublished decisions.
Citations checked by hand (BGE and dockets, German, French and Italian)50 of 5050 citationsControl2026-09-20A small sample.

What these numbers do not tell you

  • Whether a case is still good law. This is not a citator, and nothing here measures overruling, reversal or later limits. Use KeyCite or Shepard's.
  • How the default check does on short-form citations ("Id. at 352", "Feist, 499 U.S. at 352") in real briefs. Since engine 0.5.0 it ties them to their case and checks their quotations, but only the LePhantomCite section measures that; the other tables predate it. A short form the text does not tie to a case gets no row, and the report counts it as not checked.
  • Westlaw and Lexis ids are listed, not resolved. They are about a quarter of the citations in filed briefs, and 136 of the 345 court-found invented cases above were ids.
  • The register holds published federal appellate opinions from 2018 for every circuit, but only 87.2% of the 2d Circuit's are matched, and unpublished appellate opinions are not held. A miss there is "cannot verify", not a flag. Coverage.
  • How the deep check does on real briefs. Both support sets are courts citing courts.
  • How the Swiss checks do on filed Swiss briefs.
  • Whether a practising lawyer reads the US suggestions as our model readers did, and how they do for state-court briefs.
  • That an unflagged citation is right. It passed the mechanical checks. Nobody has read it for you.
  • How sure we are about each rate. We have not published confidence intervals yet; the sample size is beside every number so you can judge.
  • Anyone else's view. These are our measurements, on sets we built. No one outside has reproduced them yet.

How the sets were built and kept

The court-found set comes from the sanctions decisions collected in Damien Charlotin's AI Hallucination Cases database: every finding that names a reporter citation, 528 citations in all. Ten decisions from the same database are laid out citation by citation on Replays: each citation the court listed, what the register holds there, and the default check's row today. The filed briefs come from the RECAP archive of PACER documents. The support sets come from published opinions in the CLERC corpus (built on the Caselaw Access Project) and from Swiss Federal Supreme Court decisions. All of these are public records.

Each set is split. We change the checker only while looking at the dev part; the held-out part is read once, at the end, by the script that scores it. The Swiss support set is the exception, and the table says so. Each engine change that can move a verdict is re-run against the court-found control. The held-out splits stay private, so they keep measuring something.

Test it yourself

Take five briefs you filed last year. They are public on PACER, so nothing privileged leaves your desk. Run them through the checker and count two things: the rows you would have wanted to see, and the rows that were noise. Your own count will tell you more than our tables can. See a sample report first, or read how to check a citation by hand.

ProofreadCompared with other checkers