Key takeaways
- Merito's deterministic audit engine (`packages/audit`) runs 8 distinct check families covering 18 individually-named finding categories — link liveness, page quality, exhibit integrity, date validity, sensitive-data scanning, required-document coverage, readability, and language/translation detection — with zero AI model calls involved in any of them.
- A separate, AI-assisted consistency pass (name, title, organization, and date conflicts; generic or unsupported language) exists too, but it's a genuinely different layer — probabilistic pattern-reading, not deterministic code — and the two shouldn't be conflated when counting "how many checks" a pre-filing review actually runs.
- "Code before AI" isn't a slogan here — it's a real cost and reliability distinction: the deterministic layer runs at zero marginal AI cost and produces the same finding every time given the same input, which is exactly the property you want from a pre-filing mechanical check.
Before a petition — an I-140 immigrant petition, for EB-1A and EB-2 NIW, or its nonimmigrant O-1A counterpart — ever reaches the substantive question of whether the evidence meets a given criterion, it passes, or fails to pass, a much more mundane review: are the links in it live, is the scan quality high enough to read, does the exhibit index actually match what's in the binder, is the petitioner's name spelled the same way on every document. None of these questions require judgment about extraordinary ability, national importance, or sustained acclaim. They're mechanical, and mechanical problems are exactly the kind a reviewer — human or automated — notices immediately, often before reading a single substantive argument.
That's the specific gap a deterministic, code-first audit is built to close, and it's worth being precise about what "deterministic" means here and how many distinct things it actually checks — a number worth stating carefully rather than rounding to something that sounds tidy, since an earlier engineering discipline in this same codebase exists specifically because a prior session once cited a plausible-sounding but wrong number as fact.
What "deterministic" actually buys you
Merito's engineering rules are explicit that anything checkable by plain code — link status, DPI, exhibit numbering, date consistency, word counts — is implemented as plain code, never as a model call, specifically because deterministic checks are reproducible and auditable in a way that AI-generated findings aren't: the same input produces the same output every time, with no variance to account for. The actual implementation lives in packages/audit, and its own source is unusually explicit about counting itself correctly — packages/audit/src/index.ts concatenates each checker's own declared CATEGORIES constant into one canonical CHECK_CATEGORIES list specifically so the count "can't silently drift from what the checkers actually produce," and that same live-computed number is what the product's own marketing stats band reads from (apps/web/src/lib/marketing/stats.ts's getIndividualCheckCount()) rather than a hand-maintained figure anywhere else.
That live count is 8 check families — one function per family, each named checkXyz by convention — covering 18 distinct finding categories in total: 2 from link checking (dead and redirected links), 3 from readability (low resolution, low contrast, tiny text), 1 from language and certification detection (missing certification), 3 from exhibit integrity (numbering gaps, missing exhibit references, table-of-contents mismatches), 2 from date validity (expired items, stale current evidence), 4 from duplicate and page-quality detection (duplicate, blank, rotated, and truncated pages), 1 from sensitive-data scanning (a single collapsed "sensitive data" category covering SSN-, passport-, and bank-account-shaped patterns internally, deliberately counted once rather than three times), and 2 from required-document coverage (missing required and missing recommended documents). Every one of these is a pure function over already-extracted page and document data — no network calls beyond the link checker's own HTTP liveness probe, no LLM involved anywhere in the chain.
Where 18 stops and a genuinely different layer begins
It's worth naming the boundary precisely, because it's easy to round it away. Merito's product also runs a separate AI-assisted consistency pass — checking for name inconsistencies across documents, conflicting titles, organization-naming mismatches, date or figure conflicts, generic boilerplate language, unsupported claims, orphaned evidence, and overstated claims. These are real, useful checks, and they surface in the same audit workspace a petitioner or attorney reviews. But they are not part of the deterministic 18 — they come from a distinct AI prompt pipeline in packages/ai, not from packages/audit, and they carry the same probabilistic character as any other AI-generated finding rather than the reproduce-exactly-every-time property that makes the deterministic layer valuable as a mechanical pre-filing gate. Treating "18 deterministic checks" and "8 more AI-assisted consistency categories" as a combined, undifferentiated number obscures a distinction that actually matters for how much to trust each finding type, and for what a pre-filing checklist should specifically guarantee versus what it should merely flag for a human's judgment.
What actually runs, in what order
In Merito Audit, starting a run kicks off the full deterministic scan against your existing Case File — no separate upload step, since it reads the same structured file every other tool reads. Findings come back grouped by severity (Critical, Warning, Info) with a prioritized "Top 3 to fix first" list surfaced ahead of the full findings table, and a separate translation-needs card appears automatically when any pages are detected in a non-English language, with a direct quote-request action rather than a note-to-self. Every finding names its category, the affected document and page, and carries a resolve/reopen toggle that records who addressed it and when — useful specifically in a workflow where a case manager, a paralegal, and an attorney might each be working through the same list.
Why mechanical review has to happen before substantive review, not after
The sequencing argument here isn't aesthetic. A reviewer — again, human or automated — who hits a dead citation link, a scan too low-resolution to read, or a name spelled two different ways across two documents in the same binder is forming an impression of the filing's overall care before they ever reach the substantive question of whether the underlying evidence meets a given criterion. USCIS's own evidentiary guidance evaluates a record under a "preponderance of the evidence" standard applied to the whole file (Volume 1, Part E, Chapter 6), and a real Administrative Appeals Office review draws on the complete record submitted, not a curated subset (AAO Decisions is the public library of that review in practice). None of that changes the substantive merits of a case. But a mechanical defect that's entirely preventable — and that a deterministic scan catches for a fixed, small credit cost rather than a reviewer catching it for free, later, in a context you don't control — is exactly the kind of avoidable weakness a pre-filing workflow exists to remove before it ever becomes someone else's first impression.
A workflow fact worth stating plainly: this isn't a one-time gate
Re-running the audit after every substantive change to a Case File — new evidence added, a document replaced, an exhibit renumbered — is the intended usage pattern, not a one-time pre-filing gate run once and forgotten. Resolving and reopening individual findings costs nothing; only a fresh full run spends credits, which is a deliberate design choice to make iterative use cheap. For counsel managing several cases through Merito's Attorney View — the same read-only, token-scoped sharing mode Case Canvas also supports for collaborating with outside counsel — this also means the "Top 3 to fix first" list and the full findings table stay live artifacts through the life of a filing, not a snapshot taken once near a deadline — worth building into a firm's own internal review checklist rather than treating as a final, pre-submission-only step.
Where this fits alongside a substantive review
None of the above claims mechanical review is sufficient on its own — it explicitly isn't, and Merito Audit's own "Info"-level findings (generic language, orphaned evidence) exist precisely because narrative quality is a real, separate concern from pure mechanics. A case can pass all 18 deterministic checks cleanly and still have substantively thin evidence for a given criterion; the two questions are independent. What deterministic review does guarantee is that whatever substantive review happens next — a real attorney's read, Officer Simulator's stress test, Case Canvas's chronology and coverage views — happens against a file that's already mechanically clean, so the reviewer's attention goes to genuine substance rather than getting spent on a dead link or a name-spelling mismatch that a deterministic pass would have caught for free.
For a related read on how organized exhibits and mechanical soundness interact with actual evidence strategy, the self-petitioning guide and Responding to an EB-1A RFE: Common Patterns are both worth reading alongside this piece — a surprising share of real RFE objections trace back to exactly the kind of mechanical gap a pre-filing audit is built to catch early. eb1mentor.com covers the organizational side of the same problem in The Exhibit Index: Why Petition Organization Is Evidence Strategy, Not Paperwork, and Merito's community includes ongoing discussion among petitioners and counsel about pre-filing checklists more broadly. Pricing covers what a Pro plan's monthly credits cover for running the audit as many times as a case actually needs it.
FAQ
Why does the audit cost credits if none of it is AI?
The credit cost reflects real compute and document-processing work — re-scanning every page, checking every link, computing readability metrics — not model usage specifically. Cost in this product isn't a stand-in for "AI versus not AI"; several genuinely AI-free tools still carry a real processing cost.
Is 18 the total number of things Merito Audit can flag, including the AI-assisted consistency checks?
No — 18 is specifically the deterministic, code-only finding-category count from packages/audit. The AI-assisted consistency pass (name/title/organization/date conflicts, generic language, unsupported or overstated claims, orphaned evidence) adds roughly 8 more category types through a separate pipeline, and the two shouldn't be added together and called "deterministic."
Does resolving a finding guarantee the underlying issue won't be flagged again?
Only a genuinely new instance of the same category on a later re-run would surface again — resolving a finding doesn't suppress future occurrences of that category, and reopening a resolved finding is always available if it turns out the fix wasn't complete.
Can a case pass every deterministic check and still get an RFE?
Yes, and that's expected, not a contradiction. Deterministic checks catch mechanical defects; they say nothing about whether the underlying evidence substantively meets a given criterion or survives a final-merits review. The two are independent questions, and a pre-filing workflow needs both, not either alone.
This article describes how a specific deterministic engineering layer works and what it does and doesn't check — it is not legal advice, does not evaluate any specific filing, and is not a claim about any case's odds of success. Merito is not a law firm.
Merito Editorial Team
Merito editorial team
Merito is not a law firm and does not offer legal advice or predict approval odds. This is a readiness review to help you and your attorney strengthen your case.

