Idea / exploring · Cedar Valley County Health Department
Source codePlain-language restaurant inspection summaries
Result in one line: 92% of drafted summaries passed the weekly style review without edits
Nightly job that rewrites inspector code citations into two-sentence summaries a resident can understand, for the public inspection lookup site.
Published February 20, 2026
- Skills needed to set it up
- Developer
- Readiness
- Needs customization Human review built in
- Data it touches
- Public data only
- Who sees the output
- Public-facing
- License
- MIT
- Cost to stand up
- No new spend
- Portable to other platforms
- Partially — with rework
- Use case category
- Communications, media & writing
- Reviews it went through
- Not yet reviewed
What do these mean?
- Developer
- A software developer to deploy or adapt it.
- Needs customization
- Your team will need to adapt it before use.
- Human review built in
- A person checks the AI's output before it is used.
- Public data only
- Only data that is already public.
- Public-facing
- Residents or the general public interact with it.
- MIT
- Permissive; reuse with attribution.
- No new spend
- Built with licences, staff and infrastructure the organization already had.
- Partially — with rework
- Some pieces are vendor-specific and would need swapping.
- Communications, media & writing
- Drafting, translating, summarising and publishing.
- Not yet reviewed
- Shared honestly — this has not been through a formal review.
Problem
Inspection results are already public, but they are written for inspectors. A resident looking up a restaurant sees “Red 5 — Improper hot holding, 118°F at steam table” and has no way to tell whether that means the food was dangerous, whether it was fixed, or whether it matters at all. We wanted a two-sentence summary a resident can read, without implying an overall verdict on the business.
What we built
A nightly scheduled query in BigQuery selects inspections recorded that day. A Cloud Run job sends each citation, along with the official code description, to a model with a tightly scoped prompt and a short set of style rules: no adjectives, name what was found, say whether it was corrected, and state any required follow-up. Nothing else.
Drafts are written to a review table rather than the public site. The food program lead reviews a weekly sample and approves or rejects each one.
How it works
The prompt is deliberately boring. It gets the citation text, the code description and the correction status, and it is told which sentence patterns are allowed. Anything that adds a judgement — “minor”, “easily fixed”, “serious” — is rejected in review, and the rejected examples are kept as a test set we run the prompt against whenever we change it.
All inputs are already-published data, which is why this project has been able to move without a governance review.
Results
This is still an exploration and nothing has been published to the public site. Over eight weeks of weekly samples, 92% of drafts passed review unedited. The failures cluster in one place: the model wants to reassure the reader, and reassurance is exactly what we are not willing to publish.
Lessons learned
The technical problem was solved in about a week. The open question is presentation, and it is a policy question rather than a modelling one. If a summary sits next to a restaurant name, residents will read it as a rating no matter how carefully it is worded, so we are testing layouts where the summary is one click in from the result list.
How to reuse
The repository has the query, the job and the style rules. It expects an inspections table with a citation code, a description and a correction flag; if your data has that shape, swapping the loader is a short job. We would rather hear from jurisdictions that already publish inspection data than from anyone who wants the prompt — feedback on how residents read these is what we need most.
About
- Area of work
- Environmental health
- Communications & outreach
- Review status
- Reviewed & approved
How it's built
- How AI is involved
- AI is part of the solution
- Types of AI
- Generative text (LLM)
- AI tools & models
- Google Vertex AI
- Gemini
- BigQuery
- Cloud Run
- Where it runs
- Google Cloud
Sharing & licensing
- Portability notes
- The summarisation code is plain Python; the prototype calls Vertex AI and would need a different model client elsewhere.
What it took
- Cost to keep running
- No ongoing cost
- How it was bought
- No procurement needed
- Who it affects
- Still an idea, so nothing has been checked. If it ships, the obvious hazard is a summary that reads harsher for a small independent restaurant than for a chain with tidier paperwork describing the same violation, and the summary would be published next to the establishment's name. That comparison is the first thing we would test.
Data & access
- No PII/PHI in the shared material
- Yes
- Data sources
- Food inspection results
- Inspection code reference table
- Data-governance caveats
- Inspection results are public records; the summaries name establishments, not people, and inspector names are stripped before generation.