Gavel

Gavelly

Draft Report Checker

What Gavelly checks

Gavelly runs 51 automated checks on every draft Grand Jury report. Below is every check, what it looks for, why it matters, and how to fix it.

Last updated: June 22, 2026

Findings

Critical Report has findings Cal. Penal Code Β§933(a) ↗

What it checks

Gavelly verifies that the report contains at least one clearly labeled finding.

Why it matters

A grand jury report without findings has nothing for respondents to act on β€” findings are the factual foundation every recommendation must rest on. Without them, the report cannot compel a legal response.

How to fix

πŸ”§ How to Fix
Add a dedicated findings section β€” either a stand-alone 'Findings' section, or a combined 'Findings and Recommendations' section that lists them in sequence. Each finding should stand on its own as a verifiable fact, not an opinion or a recommendation. Findings must not be buried in the narrative of the report.
Warning Findings are numbered CGJA: Helpful Hints for Writing Reports ↗

What it checks

Gavelly checks that each finding has a unique label (F1, F2, F3 or Finding 1, Finding 2, etc.).

Why it matters

Numbered findings let respondents indicate, per Penal Code Β§933.05(a), whether they agree with the finding or disagree wholly or partially. Unnumbered findings make a Β§933.05(a) response ambiguous.

How to fix

πŸ”§ How to Fix
Prefix each finding with a sequential label: 'F1.', 'F2.', etc. Use the same format consistently throughout the report.
Warning Finding labels are valid CGJA: Helpful Hints for Writing Reports ↗

What it checks

Gavelly checks that finding labels form a clean sequence β€” no duplicate numbers, no gaps, and no mix of bare numbers with sub-lettered variants of the same number.

Why it matters

A duplicate label (F3 listed twice) or a gap (F1, F2, F4) makes responses under Penal Code Β§933.05(a) impossible to map cleanly. A mixed scheme (F1a, F1b, then a bare F2 alongside F2a) signals a structural problem the respondent will trip over.

How to fix

πŸ”§ How to Fix
Renumber findings so each label is unique and the sequence has no gaps. If you split a finding into parts (F1a, F1b), keep the parent number consistent β€” don't mix 'F2' and 'F2a' in the same report unless the bare 'F2' is the parent statement and the sub-letters are clearly its children.
Warning Findings are evidence-based assessments CGJA: Wording Your Findings ↗

What it checks

Gavelly checks that findings present evidence-based assessments β€” not hedged opinions ('we believe', 'it seems') and not recommendations dressed as findings ('the department should X').

Why it matters

CGJA's 'Wording Your Findings' explicitly says findings are 'problems, criticisms, assessments, or judgments' β€” discoveries backed by evidence, not bare facts. The two failure modes are hedge language ('we believe', 'it seems'), which strips the report of authority, and recommendation-shaped 'should/must' language, which belongs in the Recommendations section per Pen. Code Β§933.05(b).

How to fix

πŸ”§ How to Fix
Rewrite hedged findings to state the underlying evidence (CGJA's own example: 'The district's failure to maintain the levee resulted in the flooding of six homes,' rather than 'we believe the levee is poorly maintained'). Move any 'should' / 'shall' / 'must' language to Recommendations. CGJA encourages judgment words like 'failed', 'inadequate', and 'wasteful' when backed by evidence.

Recommendations

Critical Report has recommendations Cal. Penal Code Β§933 ↗

What it checks

Gavelly verifies that the report contains at least one recommendation.

Why it matters

Penal Code Β§933 requires respondents to respond to each recommendation. A report with no recommendations cannot compel any action β€” and doesn't meet CGJA expectations for a final report.

How to fix

πŸ”§ How to Fix
Add a dedicated recommendations section β€” either a stand-alone 'Recommendations' section, or a combined 'Findings and Recommendations' section that lists them in sequence. Each recommendation should propose a specific action tied to one or more findings. Recommendations must not be buried in the narrative of the report.
Warning Recommendations are numbered CGJA: Helpful Hints for Writing Reports ↗

What it checks

Gavelly checks that each recommendation has a unique label (R1, R2, R3 or Recommendation 1, etc.).

Why it matters

Penal Code Β§933.05(b) requires the respondent to answer each recommendation with one of four specific dispositions (implemented, will be implemented with timeframe, requires further analysis, or will not be implemented because not warranted or not reasonable). Unnumbered recommendations make that per-recommendation response impossible.

How to fix

πŸ”§ How to Fix
Prefix each recommendation with a sequential label: 'R1.', 'R2.', etc. Use the same format consistently.
Warning Recommendation labels are valid CGJA: Helpful Hints for Writing Reports ↗

What it checks

Gavelly checks that recommendation labels form a clean sequence β€” no duplicate numbers, no gaps, and no mix of bare numbers with sub-lettered variants of the same number.

Why it matters

A duplicate label ('R3' listed twice) or a gap ('R1, R2, R4') breaks the per-recommendation response Penal Code Β§933.05(b) requires. A mixed scheme like 'R1a, R1b, R2a, R2b, R3, R3, R4, R5a, R5b' is the most common real-world failure: the duplicate '3' and the inconsistent sub-lettering both make the required response unmappable.

How to fix

πŸ”§ How to Fix
Renumber recommendations so each label is unique and the sequence has no gaps. If you split a recommendation into parts (R1a, R1b), keep the parent number consistent β€” don't mix bare and sub-lettered labels for the same number unless the bare label is clearly the parent.
Warning Recommendations linked to findings CGJA: Wording Your Findings ↗

What it checks

Gavelly checks that each recommendation references the specific finding(s) it addresses.

Why it matters

Recommendations must flow from findings β€” otherwise there's no evidentiary basis for the action being recommended. Linking R1 to F2, for example, shows respondents why the change is warranted.

How to fix

πŸ”§ How to Fix
At the end of each recommendation, reference the finding(s) it addresses: 'R1. The Board should... (F1, F3)'.
Warning Recommendations are actionable Cal. Penal Code Β§933.05(b) ↗

What it checks

Gavelly checks that recommendations contain clear action verbs like 'should', 'shall', or 'must'.

Why it matters

A recommendation without an action verb isn't actually a recommendation β€” it's an observation. Respondents can't agree to implement something that isn't phrased as an action.

How to fix

πŸ”§ How to Fix
Rewrite each recommendation to start with an action verb: 'The Board should...', 'The Sheriff shall...', 'The department must...'.
Warning Each recommendation has a deadline Memo Β§1.1 ↗

What it checks

Gavelly checks that each recommendation ends with a deadline phrase (<em>by [date]</em>, <em>no later than [date]</em>, <em>beginning FY [year]</em>, <em>within [N] months of [trigger]</em>).

Why it matters

The Β§933.05(b) response options include <em>will be implemented</em> with a required timeframe β€” that timeframe is what makes the four allowed responses comparable and trackable. A recommendation without a deadline forces the respondent to invent one or default to the catch-all <em>requires further analysis</em>, neither of which is what the jury intended.

How to fix

πŸ”§ How to Fix

Append a deadline phrase to each recommendation:

  • ... by Dec 31, 2026.
  • ... no later than Jun 30, 2027.
  • ... beginning FY 2025–26.
  • ... within 90 days of receipt.

This is the recommendation's action deadline (when the respondent has finished the work), distinct from the Β§933.05 response deadline (60 or 90 days from publication for the response itself, which Gavelly checks separately).

Respondents

Critical Required respondents identified Cal. Penal Code Β§933(a) ↗

What it checks

Gavelly verifies that each recommendation has a clearly identified required respondent β€” a governing board or elected county official.

Why it matters

Penal Code Β§933(a) requires grand jury reports to specify who must respond. Without identified respondents, the report has no legal force and cannot compel action.

How to fix

πŸ”§ How to Fix
For every recommendation, add an explicit 'Required Response' line naming a governing board (Board of Supervisors, city council, special district board) or an elected county official (Sheriff, District Attorney, etc.).
Warning Respondents categorized as Required or Invited CGJA: Required and Invited Respondents ↗

What it checks

Gavelly checks that the report separates 'Required Responses' from 'Invited Responses' in distinct sections.

Why it matters

CGJA guidelines draw a clear line between entities that must respond (governing boards, elected county officials) and those invited to respond (subordinate boards, department heads). Mixing the two creates confusion about who is legally obligated to respond.

How to fix

πŸ”§ How to Fix
Split respondent sections into 'Required Responses' and 'Invited Responses' with clear headings. List each recommendation's respondents under the correct category.
Warning Respondent types are valid Cal. Penal Code Β§933.05 ↗

What it checks

Gavelly checks that required respondents are governing boards or elected county officials β€” not appointed staff, elected city officials (mayor, city clerk, except in San Francisco), state/federal employees, courts, legislators, or private entities. When a department head or appointed official is listed, Gavelly identifies their governing board.

Why it matters

Penal Code Β§933.05 limits who can be required to respond to a grand jury report. Appointed staff (city managers, police chiefs, department directors) and elected city officials like a mayor or city clerk are NOT required respondents β€” the response must come from their governing board (e.g. City Council, Board of Supervisors). San Francisco is the one exception, because it is a consolidated city-county.

How to fix

πŸ”§ How to Fix
Replace appointed staff with their governing board: city-level staff (City Manager, Police Chief, Fire Chief) β†’ City Council; county-level staff (County Administrator, Public Defender, Chief Probation Officer) β†’ Board of Supervisors. Move elected city officials (Mayor, City Clerk β€” except in San Francisco) and subordinate boards (planning commissions, advisory committees) to 'Invited Responses'. Remove state/federal agencies, courts, and private entities entirely.
Warning Recommendation actor matches respondents Cal. Penal Code Β§933.05 ↗

What it checks

Gavelly checks that each recommendation's required respondents include the entity named as the actor inside the recommendation text (the subject of 'should', 'shall', or 'must').

Why it matters

Penal Code Β§933.05 gives respondents only four prescribed dispositions for each recommendation; none of them is 'this recommendation isn't directed at us'. When a recommendation says 'the Board of Supervisors should X' but is also assigned to seven cities, those cities are forced to file responses noting they have no authority β€” wasted statutory effort, diluted accountability, and a real-world failure mode that is invisible to anyone reading published responses without text-mining.

How to fix

πŸ”§ How to Fix
For each recommendation, identify the entity that must take action (the subject of 'should/shall/must'). List that entity (or its governing board if it is a department) as the Required Respondent. Move other entities you want to inform β€” but who can't act on the recommendation β€” to Invited Responses. If a recommendation truly applies to multiple entities ('the County and each city should adopt …'), make sure the action verb is plural and every named entity has the authority to act.
Warning Recommendation actor is a government entity Cal. Penal Code Β§933.05 ↗

What it checks

Gavelly checks that the entity named as the actor inside each recommendation (the subject of 'should', 'shall', or 'must') is a government body subject to Penal Code Β§933.05 β€” not a private corporation, 501(c) non-profit, destination marketing organization, or generic private actor like 'the property owner' or 'the contractor'.

Why it matters

Penal Code Β§933.05 only binds public agencies. When a recommendation says 'Visit Lompoc Inc. shall…' or 'the property owner should…', no respondent is statutorily required (or able) to make that happen β€” the gov body assigned to respond has no authority over the named actor, and the Β§933.05 response codes have no path to enforcement against private entities.

How to fix

πŸ”§ How to Fix
Rewrite the recommendation so the actor is the public agency that has authority to direct or contract with the non-government entity (e.g. 'the City Council shall re-evaluate the agreement with Visit Lompoc Inc.' rather than 'Visit Lompoc Inc. shall…'). If the recommendation is genuinely about private behavior outside any agency's reach, move it to a finding instead.
Warning Respondents confidently identified Cal. Penal Code Β§933.05 ↗

What it checks

Gavelly consumes its own entity matcher's verdict on each respondent and flags three cases the text-only respondent checks can't see: a respondent that could <strong>not be matched</strong> to any known government body; one matched <strong>only by name similarity at low confidence</strong> (the link may be the wrong entity β€” e.g. a county department's brand name force-matched to a like-named city); and one <strong>named like a non-government entity</strong> (corporation, destination-marketing org, 'the property owner').

Why it matters

The matcher will otherwise force <em>some</em> government entity onto almost any respondent name, silently. A respondent linked to the wrong government body β€” or to none β€” still renders on the report page with a confident-looking link, and Β§933.05 responses can only be required of the body actually named. This check is the bridge between the matcher and the published report: it raises the matcher's low-confidence / unresolvable / non-government verdict as a warning a human can act on, instead of letting a wrong assignment pass.

How to fix

πŸ”§ How to Fix
For each flagged respondent, confirm the named body and the government entity it refers to. If the respondent is named like a private entity, replace it with the public agency that has authority over it (and move the private party to an invited respondent or a finding). If the matcher's link is wrong β€” most often a county department or program matched to a like-named city β€” correct it to the proper governing body (the Board of Supervisors for a county department, the city council for a city department).
Warning Named respondent has its own governing body Memo Β§2.4 β€” Cal. Penal Code Β§933.05 ↗

What it checks

Gavelly checks every named respondent against a list of California local-government entity classes that typically have <strong>no governing body of their own</strong> β€” County Service Areas (CSAs), Mello-Roos Community Facilities Districts (CFDs), 1972 and 1982 Act assessment districts, permanent road divisions, redevelopment successor agencies, public financing authorities, tourism marketing districts, and district-dependent charter schools. When a match is found, Gavelly suggests the parent governing body (Board of Supervisors, city council, school district board) as the correct Β§933.05 respondent.

Why it matters

Β§933.05 only allows responses from a body that can vote and sign one. A dependent entity β€” one without its own governing body β€” cannot. Naming a CSA, CFD, or successor agency as a respondent leaves the recommendation directed at something that has no separate authority to act; the parent body that actually governs it never receives the legal hook.

How to fix

πŸ”§ How to Fix

For each flagged respondent:

  1. Confirm the entity is dependent. Check the entity's enabling resolution; check whether its “board meeting” is held at the same time and place as the parent body's; check whether it has separate staff or a website of its own.
  2. If dependent, replace the entity name with the parent governing body β€” the Board of Supervisors for most CSAs, the city council or BoS for CFDs and assessment districts, the school district board for district-operated charter schools.
  3. If you intended both (e.g. a recommendation that requires the city council to act and the contracted operator to follow), name the public body as the required respondent and the operator as an invited respondent β€” never the other way around.

Report Structure

Warning Methodology section present CGJA: Report Content Checklist ↗

What it checks

Gavelly checks for a methodology section describing how the investigation was conducted.

Why it matters

Methodology explains what records were reviewed, how many interviews were conducted, and what sites were visited β€” without it, readers cannot evaluate the rigor of the investigation, and respondents may question the findings' credibility.

How to fix

πŸ”§ How to Fix
Add a 'Methodology' or 'Investigation' section listing the records reviewed, number of interviews, site visits, and any other investigation activities.
Warning Summary/Executive summary present CGJA: Report Content Checklist ↗

What it checks

Gavelly checks for a summary or executive summary near the start of the report.

Why it matters

Media, elected officials, and the public usually read the summary first. Without one, the report's key findings and recommendations may be lost in the narrative.

How to fix

πŸ”§ How to Fix
Add a 'Summary' or 'Executive Summary' section at the start (after the title page) with 2-4 paragraphs covering the topic, key findings, and main recommendations.
Warning Background section present CGJA: Report Content Checklist ↗

What it checks

Gavelly checks for a background section that provides context on the subject of the investigation.

Why it matters

Background sections give readers the context they need to understand why the topic matters β€” organizational structure, recent history, budget, relevant laws. Without it, findings may not make sense to readers unfamiliar with the subject.

How to fix

πŸ”§ How to Fix
Add a 'Background' section after the summary with relevant context: what the entity does, its history, its budget, and any laws or policies that apply.
Warning PDF Creator field is not a leaked user-agent UnGovr CGJ corpus audit, 2026 ↗

What it checks

Gavelly verifies that the PDF's <code>/Creator</code> metadata field does not contain a browser user-agent string (e.g. <code>Mozilla/5.0 (Windows NT 10.0; ...) Chrome/87.0...</code>) or an internal-looking hostname.

Why it matters

When a PDF is exported through a browser-based viewer, the Creator field can leak the exact OS and Chrome version of the office workstation that generated it. Roughly 1% of CGJ reports in the 2020–24 corpus do this, with one county accounting for the majority. The leak is not dangerous on its own, but neither does it need to be public.

How to fix

Fix is in Microsoft Word How to Fix

Two fixes work, in order of preference:

  1. Export the PDF from Microsoft Word (or another desktop PDF tool) rather than printing through a browser viewer. Word's exporter sets /Creator to a clean generic value.
  2. If you must use a browser viewer, set the Word document's Author field explicitly (File β†’ Properties β†’ Author) before export so the leaked workstation metadata is overridden.
Warning PDF Producer field is not an internal hostname UnGovr CGJ corpus audit, 2026 ↗

What it checks

Gavelly checks that the PDF's <code>/Producer</code> metadata field does not contain an internal-network hostname (e.g. <code>GJ-Copier</code>, <code>KHCHEXEC</code>, <code>121M-BWCOPY1</code>) β€” which discloses the device name on the office network.

Why it matters

Network-attached copiers default to broadcasting their device name in PDF Producer when used to scan or rasterize a document. Several California grand jury reports in the 2020–24 corpus carry copier hostnames in this field. The fix is one-time and the leak is not dangerous, but it is unnecessary and easy to prevent.

How to fix

πŸ”§ How to Fix

One-time fix: rename the office copier's display name in its admin console to a generic value (e.g. Office Copier). The change applies to every PDF exported from that device thereafter.

If the report has already been scanned through the affected copier, re-exporting it from Word or Acrobat will overwrite the Producer field cleanly.

Warning Source filename has no draft/version tokens or personal names UnGovr CGJ corpus audit, 2026 ↗

What it checks

Gavelly checks the filename the report will be published under for workflow tokens (<code>_draft</code>, <code>_v2</code>, <code>_signed</code>, <code>_proof</code>, <code>_copy_of</code>, <code>final-final</code>) and for personal names of court personnel or members of the public.

Why it matters

Workflow tokens in a published filename imply earlier private-but-similar versions exist and indirectly disclose the office's review state. Personal names in URL paths persist in every search engine that crawls the agency's site β€” long after a person's role has ended. Both are easy to prevent at posting time.

How to fix

πŸ”§ How to Fix

Before posting:

  1. Rename the file to a clean topic-based name (animal-services-report-2025.pdf) that doesn't reference its drafting history.
  2. Remove any personal names from the path. Use the bench (Dept5) or a case number rather than a judge's surname; use a generic submission directory rather than the submitter's name.
Warning Translated report references its English original Memo Β§4.6 ↗

What it checks

Gavelly detects when a report appears to be a translation (e.g. body text is in Spanish but the report number references an English original) and verifies the translation includes a one-line cover note linking back to the authoritative version.

Why it matters

Translated PDFs are typically posted as separate files with no metadata link to the English original. Future readers β€” and our extractor β€” must guess at the relationship, which leads to broken cross-references and lost provenance.

How to fix

πŸ”§ How to Fix

Add a one-line cover note to each translated edition:

  • Spanish: "TraducciΓ³n del Informe NΓΊm. [N]. VersiΓ³n autoritativa en inglΓ©s."
  • Other languages: a parallel one-liner naming the report number and identifying the English version as authoritative.

Use the same finding/recommendation numbering across all language editions so a respondent's response under Β§933.05 maps cleanly to either version.

Accessibility (WCAG 2.1 AA)

Opt-in. Accessibility checks run only when you tick "Include accessibility checks (WCAG 2.1 AA)" on the upload form. They are off by default because the ADA Title II Web Accessibility Rule (WCAG 2.1 AA) compliance deadline is 4/26/2027.

Critical PDF has accessibility tags WCAG 2.1 SC 1.3.1 (Info and Relationships) ↗

What it checks

Gavelly checks that the PDF contains structural tags that describe document elements (headings, paragraphs, lists, tables) to assistive technology.

Why it matters

Screen readers rely on tags to navigate a PDF. An untagged PDF is effectively invisible to blind users β€” they hear a flat stream of text with no structure. California AB 434 and federal Section 508 already require tagged PDFs, and the ADA Title II web rule (28 CFR Part 35) requires them for state and local government content by April 26, 2027.

How to fix

Fix is in Microsoft Word How to Fix

When exporting to PDF from Microsoft Word (Desktop):

  1. Click File β†’ Save As (or Export)
  2. Choose PDF as the file format
  3. Click Options... (or More Options...)
  4. Check "Document structure tags for accessibility"
  5. Click OK, then Save
Critical Logical reading order WCAG 2.1 SC 1.3.2 (Meaningful Sequence) ↗

What it checks

Gavelly verifies that the document's heading structure follows a logical hierarchy (H1 β†’ H2 β†’ H3) without skipping levels.

Why it matters

Screen reader users navigate by heading level. Skipping from H1 to H3 makes it impossible to build a mental map of the document, and readers miss section boundaries entirely.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word (Desktop):

  1. Click in the paragraph you want as a section heading
  2. Go to Home tab β†’ Styles group
  3. Click Heading 1 for main sections (e.g., "Findings", "Recommendations")
  4. Use Heading 2 for subsections, Heading 3 for sub-subsections
  5. Do not skip levels β€” go H1 β†’ H2 β†’ H3, never H1 β†’ H3 directly

Tip: Open the Navigation Pane (Ctrl+F, then click the "Headings" tab) to verify your heading hierarchy.

Critical Document language is set WCAG 2.1 SC 3.1.1 (Language of Page) ↗

What it checks

Gavelly verifies that the document has a primary language set in its metadata (e.g., English - United States).

Why it matters

Screen readers use the language setting to choose the correct pronunciation engine. Without it, English text may be read with French or Spanish phonemes, making it incomprehensible.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word (Desktop):

  1. Press Ctrl+A to select all text in the document
  2. Go to the Review tab in the ribbon
  3. Click Language β†’ Set Proofing Language
  4. Select English (United States) from the list
  5. Click OK to apply
Critical Document title is set WCAG 2.1 SC 2.4.2 (Page Titled) ↗

What it checks

Gavelly verifies that the document has a descriptive title in its metadata (not the filename or a placeholder).

Why it matters

The document title appears in screen reader announcements, browser tabs, and search engine results. A missing or generic title ('Document1') makes the report unfindable and unrecognizable.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word (Desktop):

  1. Click File β†’ Info
  2. On the right side, find the Properties panel
  3. Click the Title field (it may say "Add a title")
  4. Type your full report title (e.g., "2024-2025 Grand Jury Report: County Emergency Services")
  5. Click elsewhere or press Enter to save
Warning PDF has navigation bookmarks WCAG 2.1 SC 2.4.5 (Multiple Ways) ↗

What it checks

Gavelly checks that the PDF contains bookmarks that let users navigate directly to sections.

Why it matters

Bookmarks are the primary navigation mechanism for long PDFs. Readers with motor disabilities who can't scroll rely on them. Reports longer than a few pages without bookmarks are difficult for everyone to navigate.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word (Desktop):

  1. Apply Heading styles to all section titles (Home β†’ Styles β†’ Heading 1, 2, 3)
  2. When saving as PDF: click File β†’ Save As β†’ select PDF
  3. Click Options...
  4. Check "Create bookmarks using: Headings"
  5. Click OK, then Save

Note: PDF bookmarks are generated from Word heading styles. Without headings, there are no bookmarks to create.

Critical Images have alt text WCAG 2.1 SC 1.1.1 (Non-text Content) ↗

What it checks

Gavelly checks that every non-decorative image has alternative text describing its content.

Why it matters

Blind and low-vision readers depend on alt text to understand images. A chart, map, or photograph with no alt text is invisible to them β€” they hear nothing.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word (Desktop):

  1. Right-click the image that needs alt text
  2. Select Edit Alt Text from the context menu
  3. In the Alt Text pane on the right, type a concise description of what the image shows
  4. If the image is purely decorative (e.g., a divider line), check "Mark as decorative" instead
  5. Repeat for each image missing alt text

Tip: Run File β†’ Info β†’ Check for Issues β†’ Check Accessibility to find all images missing alt text at once.

Critical Tables have headers WCAG 2.1 SC 1.3.1 (Info and Relationships) ↗

What it checks

Gavelly checks that data tables have a designated header row so screen readers can announce column names when reading cells.

Why it matters

Without header rows, screen readers read data cells in isolation β€” users hear '$1,200' with no context about whether that's a budget, a deficit, or a fine. Header rows provide the context.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word (Desktop):

  1. Click anywhere inside the table
  2. The Table Design tab appears in the ribbon β€” click it
  3. In the Table Style Options group, check "Header Row"
  4. Ensure the first row of your table contains column headers (e.g., "Finding", "Description"), not data
  5. If the table spans multiple pages: click Layout tab β†’ Repeat Header Rows
Critical Document contains real text (not scanned images) WCAG 2.1 SC 1.4.5 (Images of Text) ↗

What it checks

Gavelly checks that the document contains selectable, searchable text rather than scanned page images.

Why it matters

A scanned PDF is a picture of text β€” screen readers see nothing, search tools find nothing, and users cannot copy-paste or resize the text. This excludes every reader with a disability.

How to fix

Fix is in Microsoft Word How to Fix

This document appears to be a scanned image, not real text:

  1. Do not scan your report and save it as a PDF
  2. Write or paste your report text directly in Microsoft Word
  3. Export to PDF using File β†’ Save As β†’ PDF
  4. If you must start from a scan, use OCR software first, then paste the recognized text into Word and reformat
Warning Text color contrast WCAG 2.1 SC 1.4.3 (Contrast Minimum) ↗

What it checks

Gavelly checks that text color has at least a 4.5:1 contrast ratio against its background (3:1 for large text).

Why it matters

Readers with low vision, color blindness, or reading in bright sunlight can't distinguish low-contrast text. Light gray text on white backgrounds fails every standard.

How to fix

πŸ”§ How to Fix
Use standard black text (#000000) on a white background for body copy. If you need colored headings, verify contrast with a tool like the WebAIM Contrast Checker. Avoid light gray, pale blue, or any pastel on white.
Warning Content reflows at high zoom WCAG 2.1 SC 1.4.10 (Reflow) ↗

What it checks

Gavelly checks that the PDF is tagged so content can reflow for different screen sizes and zoom levels up to 400%.

Why it matters

Users with low vision need to zoom to 200% or more. Without reflow support, zoomed content requires horizontal scrolling, which is unusable on phones and exhausting on desktops.

How to fix

Fix is in Microsoft Word How to Fix

When exporting to PDF from Microsoft Word (Desktop):

  1. Ensure your document uses Heading styles and proper paragraph formatting (not manual spacing or line breaks)
  2. Click File β†’ Save As β†’ select PDF
  3. Click Options...
  4. Check "Document structure tags for accessibility"
  5. Click OK, then Save

Note: Tagged PDFs can reflow content for different screen sizes and zoom levels.

Warning Non-text contrast (charts, icons, borders) WCAG 2.1 SC 1.4.11 (Non-text Contrast) ↗

What it checks

Gavelly checks that charts, icons, table borders, and other visual elements have at least a 3:1 contrast ratio with adjacent colors.

Why it matters

Users with low vision need to distinguish chart lines, icon shapes, and table cell boundaries. Light gray borders on white, or pale blue bars on white, disappear for many readers.

How to fix

πŸ”§ How to Fix
Darken chart lines, icon colors, and table borders so they contrast strongly with the page background. If a chart uses multiple colors to distinguish data series, ensure each pair has a 3:1 contrast ratio, or add patterns/labels in addition to color.
Warning Text spacing adjustable WCAG 2.1 SC 1.4.12 (Text Spacing) ↗

What it checks

Gavelly checks that the PDF uses proper paragraph spacing and heading styles, not manual line breaks or spaces, so assistive technology can adjust text spacing.

Why it matters

Users with dyslexia or low vision often need to increase letter spacing, word spacing, or line height. Documents built with manual spacing can't be adjusted without breaking the layout.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word (Desktop):

  1. Use Word's built-in paragraph spacing (Layout tab β†’ Spacing) instead of pressing Enter multiple times
  2. Use Heading styles rather than manually changing font size and bold
  3. When saving as PDF, check "Document structure tags for accessibility" in Options

Note: Tagged PDFs allow assistive technology to adjust text spacing for users who need it.

Warning Consistent help mechanism WCAG 2.2 SC 3.2.6 (Consistent Help) ↗

What it checks

Gavelly checks that if the document references help resources (contact info, instructions), they appear in a consistent place.

Why it matters

Readers with cognitive disabilities rely on predictability. Help resources scattered through the document, or appearing in different places each time, create confusion.

How to fix

πŸ”§ How to Fix
Put all contact information, 'how to respond' instructions, and help resources in one consistent location β€” typically the introduction or a dedicated 'Responding to This Report' appendix.
Warning Footnote font size WCAG 2.1 AA / readability ↗

What it checks

Gavelly checks that footnote and endnote text uses a font size of at least 9pt. This check is DOCX-only β€” in PDFs, footnote text is part of the page and covered by the general text-spacing check.

Why it matters

Footnotes are often set in small fonts to save space, but text below 9pt is difficult to read for users with low vision. Grand jury reports are public documents that must be accessible to all readers.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word:

  1. Select all footnote text (View β†’ Draft β†’ click in footnote area β†’ Ctrl+A)
  2. On the Home tab, set the font size to at least 9pt (10pt recommended)
  3. Alternatively, modify the Footnote Text style: right-click the style in the Styles pane β†’ Modify β†’ set size to 10pt
Warning Report title describes its subject WCAG 2.1 SC 2.4.2 (Page Titled) + Memo Β§4.5 ↗

What it checks

Gavelly checks that the report's title is more than boilerplate. Generic strings like <code>Grand Jury Report</code>, <code>2024 Final Report</code>, or <code>[County] Civil Grand Jury Final Report 2024-25</code> are flagged because they describe the document's category, not its subject.

Why it matters

WCAG 2.1 SC 2.4.2 requires titles that 'describe topic or purpose,' not category. Beyond accessibility, a descriptive title is the single biggest determinant of whether a report is read by anyone outside the immediate respondent set. About 20% of CGJ reports in the 2020–24 corpus carry generic titles that no reader will remember.

How to fix

πŸ”§ How to Fix

Rewrite the title to describe the subject. Examples from published reports:

  • "Auditor-Controller: Distrust, Disagreements, Dysfunction" (Humboldt, 2022)
  • "Hate @Schools β€” Opportunities Lost" (San Mateo, 2020)
  • "Skyline Academy at Juvenile Hall: Delay and Disorganization" (Napa, 2024)
  • "Pot Luck: Santa Ana's Monopoly on Licensed Retail Adult-Use Cannabis" (Orange, 2021)

The same descriptive title belongs in both the cover page and the PDF /Title metadata field β€” one fix solves the SC 2.4.2 accessibility requirement, the discoverability problem, and the citation-manager problem at once.

Warning Consistent font usage CGJA: Report Content Checklist ↗

What it checks

Gavelly checks that the report body uses a single, consistent font, and flags any text set in a different font.

Why it matters

Mixed fonts usually come from text pasted out of email or another document. They look unprofessional, undercut the report's authority, and can break the reading order and reflow that screen-reader and large-print users rely on.

How to fix

Fix is in Microsoft Word How to Fix
In Microsoft Word, select the affected text (or the whole document with Ctrl+A / Cmd+A) and set it to the report's standard font on the Home tab. Paste future text with 'Keep Text Only' so it adopts the surrounding font. Use the 'Show the text in other fonts' button above to see exactly which passages differ.
Warning DOCX accessibility checks are limited WCAG 2.1 AA ↗

What it checks

When you upload a DOCX, Gavelly can only verify a subset of accessibility checks. Tagging, bookmarks, reflow, and contrast can only be verified on the exported PDF.

Why it matters

Many accessibility requirements apply to the final PDF that readers download, not the Word source. A DOCX that looks accessible in Word can still produce an untagged PDF that fails the audit.

How to fix

Fix is in Microsoft Word How to Fix

In Microsoft Word (Desktop), export to PDF with accessibility tags:

  1. Click File β†’ Save As (or Export) β†’ choose PDF
  2. Click Options... and check "Document structure tags for accessibility"
  3. Click OK, then Save
  4. Upload the PDF to Gavelly for a complete accessibility audit β€” it checks tagging, bookmarks, reflow, and contrast that cannot be verified from the DOCX

Privacy

Warning Filename/title has no internal investigation tracking ID UnGovr CGJ corpus audit, 2026 ↗

What it checks

Gavelly scans the published filename and the document's title/metadata for internal grand-jury tracking identifiers β€” Request-for-Information numbers (<code>RFI 24</code>), investigation/complaint numbers (<code>Investigation No. 5</code>), <code>ID No. 1</code>, and clerk filing numbers like <code>25-00698</code>.

Why it matters

These are internal process identifiers. Published in a filename or title they leak the jury's internal tracking scheme into the permanent public record β€” and into every search engine that indexes the agency's site β€” with no benefit to the reader. One Santa Barbara report in the 2020–26 corpus published <code>RFI-24</code> directly in its filename.

How to fix

πŸ”§ How to Fix

Before posting:

  1. Rename the file and set the document title to a clean, topic-based phrase (sheriff-overtime-report-2026.pdf) with no tracking number.
  2. Keep the RFI / investigation / case number in the jury's internal records only β€” never in the published filename, title, or metadata.
Critical No personal email or phone for private individuals Memo Β§5.1 β€” UnGovr CGJ corpus audit, 2026 ↗

What it checks

Gavelly flags personal-domain email addresses (<code>@gmail</code>, <code>@yahoo</code>, <code>@hotmail</code>, <code>@aol</code>) that appear within ~80 characters of a phone number or street address in the body of a report or response document.

Why it matters

Penal Code Β§924.2 protects grand jury secrecy, but the Β§933.05 response process has no equivalent statutory frame for protecting third-party PII. Private board members' personal Gmail addresses, cell phone numbers, and home addresses regularly show up in published response documents β€” once posted, that contact block is indexed everywhere downstream. The harm is to the individual, not the jury.

How to fix

πŸ”§ How to Fix

Replace the personal-contact block with the agency's public-facing contact information:

  • The agency's board-secretary email and office phone, or
  • The agency's general public-records request address, or
  • Strike the contact block entirely if it is not necessary for the response.

If the report has already been posted with leaked PII, ask the originating agency to republish a redacted copy. UnGovr honors per-document redaction requests on civilgrandjury.org while the agency works on republication.

Warning Grand jury contact is not a foreperson's personal email Memo Β§5.2 β€” UnGovr CGJ corpus audit, 2026 ↗

What it checks

Gavelly flags contact-block lines in cover letters or signatures where the official jury contact is a personal Gmail/Yahoo/Hotmail address belonging to a sitting juror.

Why it matters

A foreperson's personal email persists in the public record long after their term ends; future juries cannot rotate it; and bouncing public correspondence through a personal account creates real practical and security problems for the individual juror. Several California grand juries currently publish such addresses.

How to fix

πŸ”§ How to Fix

Use one of these alternatives:

  • The Superior Court's clerk address (in counties where the court hosts the jury)
  • A county-domain alias such as [email protected]
  • A generic forwarding address controlled by the court that future juries inherit

If no such alias exists, request one from the court before publishing β€” the IT lift is small and the result is durable across jury terms.

Warning Filename does not contain a personal name Memo Β§5.3 / Β§5.4 β€” UnGovr CGJ corpus audit, 2026 ↗

What it checks

Gavelly checks the source PDF's URL path and filename for proper-noun patterns that look like a person's name β€” both members of the public who submitted material to the jury and assigned court personnel.

Why it matters

URLs are indexed by every search engine that ever crawled the agency's site. A submitter's name in a directory path (<code>/submittedplan/[NAME]/...</code>), or a judge's surname in a response filename, becomes a permanent public record of the individual's role β€” well beyond what either statute or convention requires.

How to fix

πŸ”§ How to Fix

Before posting, rename the file:

  1. Use a content-based filename (map-proposal-04.pdf) rather than the submitter's name.
  2. For court personnel, use the bench number (Dept5) or the case number rather than a judge's surname.
  3. File the document in a generic dated directory (/submitted/2024/) rather than a per-person directory.

Citations

Warning Cited URLs are reachable Memo Β§4.7 β€” UnGovr CGJ corpus audit, 2026 ↗

What it checks

Gavelly probes every external URL cited in the draft and reports any that return 4xx/5xx errors or fail to resolve. For broken government domains, Gavelly also checks the Wayback Machine and suggests an archive URL where one is available.

Why it matters

Roughly 52% of external URLs cited in CGJ reports from the 2020–24 corpus were unreachable when audited. A citation that points to a now-dead URL with no archive is, in practice, no citation at all β€” readers cannot verify the underlying claim and respondents cannot rely on the source. Encouragingly, 59 of 60 broken government links sampled had a Wayback snapshot, so most broken citations are recoverable if caught at draft time.

How to fix

πŸ”§ How to Fix

For each broken URL Gavelly flags:

  1. Open the suggested Wayback snapshot if Gavelly found one β€” it is usually the same content frozen at the cited date.
  2. Update the citation to the working URL or the Wayback URL.
  3. For any URL that should remain a citation, submit it to web.archive.org/save/ before publication so it remains accessible later.

UnGovr is also building a managed archive (per #1243) that will capture every cited URL automatically when the report is published on civilgrandjury.org β€” juries that prefer not to maintain their own archive will not have to.