Check Bates-label gaps and collisions
Compare observed labels with approved ranges, exceptions and namespaces.
Tools for the documented steps
Practice relevance
Cross-practice idea · A general operational method. Review the stated tool and jurisdiction limits before use.
The problem
Compare observed labels with approved ranges, exceptions and namespaces.
Why it matters: A missing or repeated label can disrupt document references, but it does not by itself prove missing evidence or duplicate files. Checking the expected numbering scheme gives the reviewer a precise list of label problems.
Sources & evidence
Proposed / not tested. The public source describes the problem. Documentation supports only the stated method components; no result from this recipe has been verified.
What’s been verified
Source methods and reported problems have been reviewed. We have not run the adapted workflow. The sample below describes expected behavior on synthetic data, not a customer result.
What to measure: In a synthetic pilot, count correctly found exceptions, false alarms, and unresolved inputs. No time or cost saving is assumed.
- Pain evidence: Bates Numbering documents ↗Direct error/rework pain, older. In Bates Numbering documents, 7 March 2026, OP Misfit-maven describes sequence gaps causing problems with opposing counsel and renumbering forcing chronology repairs. The comment is visible in the parent page; direct comment fetch failed. Date is indexed absolute. In Organizing Insane amounts of Discovery across several productions, 24–25 May 2026, Snoo-23766 reports a suspected duplicate production because of duplicate Bates numbers. Parent-page text verified, direct comment fetch failed; dates indexed. The latter OP also discloses building a legal app elsewhere in the thread, so do not present this as wholly unaffiliated demand. The March source independently supports the pain.
- Pain evidence: describes ↗Additional self-reported public account; no independent identity or outcome verification.
- Pain evidence: Organizing Insane amounts of Discovery across several productions ↗Additional self-reported public account; no independent identity or outcome verification.
- Pain evidence: reports ↗Additional self-reported public account; no independent identity or outcome verification.
- Method: Adobe's Bates-numbering documentation ↗Adobe's Bates-numbering documentation describes page identifiers with a digit width, starting number, prefix and suffix. It documents numbering, not an automatic missing-number audit. Microsoft Power Query merge supports exact matching of one or more keys and anti joins for unmatched rows. The audit logic is our proposed use of those components.
- Method: Microsoft Power Query merge ↗Additional official capability reference. The complete adapted recipe has not been tested.
Source checked: October 15, 2026. Pain accounts are self-reported. Documentation supports components; this adapted recipe and prompt have not been tested. We wrote these prompts. The adapted workflow hasn’t been tested.
Suggested approach
Start when: A received or proposed production manifest is frozen
- compare identifiers within explicitly defined numbering namespaces against approved expected intervals and exceptions
- Keep source references and report unknowns instead of filling gaps.
- The responsible reviewer checks the report before any separately approved action.
Limits and review
The assistant drafts or reports only. Check source records and review the output before a human performs any separately approved send or change. No automatic legal decision, money movement, account connection or publication is included.
Who reviews it: Production lead checks the authoritative load file and page images. Lawyer determines whether a gap is permitted and whether any further action is appropriate. A report with no exceptions is not a production-completeness certification. Test separate namespaces and an intentionally malformed label before a real pilot.
What you need
Your firm-approved AI assistant · prepared files
- Acrobat/Reader for visual page inspection; Acrobat Pro for the documented Bates-series search aid.
- Actual production PDFs, attorney-approved namespace/range definition and approved-gap list. No Bates numbers may be assigned or repaired by this audit.
- Firm-approved Excel; optional Copilot entitlement and tenant approval for the exact minimized data. Native Excel analysis can be done manually if Copilot is absent.
- Keep raw exports and identifying source pointers in a separate restricted location. The AI workbook contains only approved alias-based tables and visible policy/scope text, never raw client records on another tab.
- Use synthetic inputs first. Keep real data in firm-approved accounts and processing, with appropriate access, confidentiality and retention controls. Aliases alone do not anonymize records. Never paste credentials, API keys or unnecessary client details.
How to use
Advanced · Advanced documentation-checked manual full-page Bates capture; no automatic Bates extraction is claimed
- No universal native page/Bates CSV extraction is verified. This route is explicit visual capture of every page in a bounded production set.
- Search/OCR can miss image-only labels, corrupt digits or return text mentions instead of the actual footer. PDF navigation labels, printed page numbers and Bates stamps are distinct.
Check access and setup
- Actual account access, plan and source-data completeness have not been tested.
Enumerate actual production pages and literal Bates labels
Adobe Acrobat and records staff · Open each PDF > Page Thumbnails; Menu > View > Page navigation on Windows (View > Page navigation on macOS)
For each actual PDF, enumerate every physical page in order and visually read the Bates stamp. Record a document alias, physical page index plus any displayed page label, production ID and literal Bates string. Record missing, illegible or multiple labels explicitly. Do not infer middle pages from the first/last stamp, change page labels or add Bates numbers.
- Expected output
- One observed page record per physical page, plus a per-document page-count/coverage note.
- Next step
- Use a stable page_id crosswalk and preserve the unmodified original PDFs.
- Check before continuing
- Every page must be inspected for a full audit. A sampled capture is labeled partial and cannot yield an all-clear.
Use native Bates search only as a navigation aid
Adobe Acrobat Pro, optional · Windows Menu > Search > Advanced search; macOS File > Advanced Search
Enter a full Bates number or distinctive prefix/suffix. Under Where would you like to search choose All PDF Documents in > Browse for Location and select the approved production folder, then Search. Open each result and confirm it is the visible page stamp, not a cited number in body text. Without Pro, continue the visual page-by-page pass.
- Expected output
- Located candidate pages for checking suspected duplicate/missing labels, not an exhaustive inventory.
- Next step
- Correct transcription errors only in the audit log after visual checking.
- Check before continuing
- No search hit does not prove a missing page; image-only labels and extraction failures require visual inspection.
Map the observed records to the starter input
Excel and authorized staff · Separate analysis workbook > Home > Format as Table
Populate bates_audit.template.json: namespaces with namespace_id,prefix,suffix,digits,expected_start,expected_end from the attorney-approved production specification; pages with page_id,production_id,namespace_id,document_alias,page_locator,bates_label from visual capture; approved_gaps with namespace_id,number,approval_id from actual approval. Copy the same data into visible Namespaces, Pages and ApprovedGaps tables. Keep full Bates strings as Text, preserving zeros, case and suffix. Add page-count coverage and unresolved/illegible labels to Scope. Create named tables for Namespaces, Pages and ApprovedGaps. Put the policy and review scope in visible worksheets or paste them into the next prompt.
- Expected output
- Editorial Bates JSON and equivalent tables; no inferred expected range.
- Next step
- Check the mapping against each original source before using AI.
- Check before continuing
- Aliases and missing policy fields are staff-created; do not relabel a native export as the kit schema. Unknown stays blank/unknown, not false or zero.
Review the bounded evidence with Copilot
Excel Copilot, optional · Approved analysis workbook > Copilot icon at lower right > Chat only
Use Chat only and submit the prompt. Without Copilot: compare exact namespace-format labels, count duplicates and check the approved sequence, leaving unreadable labels unresolved.
- Expected output
- Page-linked Bates exceptions with namespace and coverage controls.
- Next step
- Copy the draft exception list to the reviewer; retain row references.
- Check before continuing
- Check every flagged row and the scope. A fluent answer is not evidence of completeness; no automatic workbook or source-system edits.
Approve the review result
Final human reviewResponsible staff reviewer · Reviewed local worksheet
Records staff visually recheck every exception and all capture gaps; the responsible lawyer confirms expected ranges and approved omissions.
- Expected output
- Reviewed Bates audit with page-level evidence and uncertainty.
- Next step
- Any external message, source change, payment or deletion requires its own authorized process.
- Check before continuing
- An arithmetically continuous sequence does not prove complete production, correct page content or legal compliance.
What you’ll get
bates-audit.csv: namespace_id, label_or_number, finding, page_ids, approval_id, evidence, reviewer_action. Derive labels and findings from supplied namespaces, pages and approved gaps; never copy an example finding.
Inputs and a sample test Synthetic example · not a measured result
Input files
- One JSON object: - `namespaces`: array of `{namespace_id: string, prefix: string, suffix: string, digits: positive integer, expected_start: nonnegative integer, expected_end: nonnegative integer}` - `pages`: array of `{page_id: string, production_id: string, namespace_id: string, document_alias: string, page_locator: string, bates_label: string}` - `approved_gaps`: array of `{namespace_id: string, number: nonnegative integer, approval_id: string}` `expected_end >= expected_start`; page_id unique; namespace_id maps uniquely. Empty or nonconforming labels are parse exceptions. Parse only the declared prefix + exact digit width + suffix, retaining leading zeros in labels. A missing number is an interval exception, not proof a document was withheld or lost. Do not infer range ends from observed data.
Synthetic example
Synthetic inputs are included in the starter kit. bates_audit.example.json
Expected output
ProducerA-Series1: duplicate_label A-002 has pages P2/P3; approved_gap A-003 cites EX1; unexpected_gap A-004. Five manifest rows retained and four unique labels observed. Identical labels do not establish duplicate files.
Test a failure
Production lead checks the authoritative load file and page images. Lawyer determines whether a gap is permitted and whether any further action is appropriate. A report with no exceptions is not a production-completeness certification. Test separate namespaces and an intentionally malformed label before a real pilot.
Try with the sample files
Follow the tool steps above and use the inputs named in each step. Where provided, native-* files are blank scaffolds and NATIVE-INPUT-MAPPING explains their fields. Original examples and the optional full review prompt use a separate prepared-input schema. Keep them separate unless the mapping explicitly connects them. Downloading a kit does not connect accounts or prove the workflow works.
Download inputs and checklist 6 files
Instructions, blank templates and separate synthetic examples; these files do not install an automation. Blank templates still need verified source data.
- Download starter kit All inputs, synthetic examples and review notes in one ZIP. No automation is installed.
- Start here: get the sources and prepare the review Documentation-checked acquisition, explicit manual mapping, exact prompts and human review limits
- bates_audit blank input Preserve nested input structure and validate supplied field types
- bates_audit synthetic fixture Preserve nested input structure and validate supplied field types
- bates_audit JSON Schema Preserve nested input structure and validate supplied field types
- Setup and fixture review guide Recipe-specific setup, input rules, offline prompt, expected result and boundaries
Optional full review prompt for prepared inputs
Prepared-input review prompt with Your firm-approved AI assistant · prepared files
Proposed / not tested · editorial prompt. This prompt uses the original prepared-input schema shown in the sample test. Step prompts may use different tables. Follow NATIVE-INPUT-MAPPING where supplied; do not mix the original examples with native-step inputs without mapping and checking every field.