AI Adoption GuideGovernmentInspect
Inspection report auto-drafter
LLM generates structured inspection reports from field notes and photo metadata, reducing time spent on paperwork per inspection visit.
Government processPlanFundAuthorizeDeliverInspectEnforceReportClose
By Don, DoneThat’s AI coach · updated
A report line must cite a field note or a photo
Every finding in the draft must point at a field note or a photo that actually supports it. If the notes are silent on a checklist item, that line stays empty. The model does not invent a finding to look complete. You still sign.
That citation rule is the quality bar. Inspection reports become the record owners, attorneys, hearing officers, and the next inspector will use. A sentence that sounds official but has no source is worse than a blank. The blank tells the next reader that you did not observe the item, or that you observed it and did not write it down. A fabricated sentence tells them something happened that nobody recorded.
Treat the draft as a first pass over your own packet, not as a second inspector. The model reads timestamped notes, form fields, and photo metadata: time, location if present, filename, and any caption you typed. It maps those fragments onto your agency template. It does not walk the site.
When a line cites well, you can jump from the finding to the note or the image and see the same fact. When a line cannot cite, it should not exist.
Load notes and photos in the same packet
Load the visit packet before you draft: the checklist or form for that inspection type, the free-text notes you took on site, and every photo that belongs to the visit, including the ones you almost discarded. Do not draft from memory and then hunt for evidence.
Keep notes and photos tied to the same visit identifier and, when your system allows it, to the same unit, structure, or location. Permit and inspection systems from vendors such as Accela and Tyler, GIS context from Esri, and document or productivity stacks from Microsoft often already store the visit, the photos, and the template. The drafter sits on that packet. It does not replace the system of record, and it should not write into a signed status.
If a photo has no caption and the filename is a camera default, the model can only use what the metadata actually contains. A timestamp and a GPS point are not a finding. Add a short caption in the field when you know what the frame shows, for example: "north stair, missing graspable rail, mid-flight." That caption is a note. Without it, the draft should not guess the defect.
If computer vision already flagged a condition in the photos, treat those flags as hints, not as report text. A computer vision site auditor can mark a possible missing rail or an open electrical panel. The auto-drafter still needs your note or a caption before that mark becomes a cited finding. A vision flag with no inspector language is not a cite.
Draft the structured report, then leave silent items blank
Run the draft only after the packet is loaded. Ask for a structured report that follows your template: header fields from the visit, then one line or short paragraph per checklist item, each with a cite back to a note ID, a photo ID, or both.
Read the cites before you read the prose. If a line about peeling paint in bedroom 2 points at note 14 and photo 7, open both. If they show peeling paint in bedroom 2, keep the line and edit the wording to match how your agency writes. If they show something else, or nothing, delete the line or send it back to empty.
Leave blanks on purpose. Silence in the notes is not permission to complete the form. "Not observed," "not accessible," and a true empty field are different states. Use "not observed" or "not accessible" only when you wrote that on site. If you never mentioned the water heater, the water heater section stays empty. Do not let the draft fill it with "no issues noted." That phrase is a finding. You did not make it.
Here is a single walkthrough, not a measured result. You inspect a rented two-story unit. Your notes say: living room ceiling stain, dry to the touch; bedroom 2, paint peeling on the west wall above the baseboard, about two square feet; rear exterior, downspout disconnected at the elbow. You took five photos. Photo 3 is the west wall in bedroom 2. Photo 5 is the downspout. You wrote nothing about the furnace, the water heater, or smoke alarms, and you took no photos of those items.
A usable draft writes cited lines for the stain, the peeling paint, and the downspout, each pointing at the matching note and photo. The furnace, water heater, and smoke-alarm lines stay empty. An unusable draft adds "smoke alarms present and functional" because that is a common checklist closeout, or "water heater temperature 120 F" because that is a typical number. You never measured a temperature. Inventing a measurement is a different failure from inventing a qualitative finding, and it is worse in a hearing, because it looks like an instrument reading.
A finding with no note is the same class of error even when the wording is mild. "Minor mold in hall bath" with no hall-bath note and no hall-bath photo is not a conservative guess. It is an unsupported allegation. Delete it. If you remember seeing something and failed to record it, go back to the unit or schedule a follow-up. Do not run the memory through the model and call it evidence.
If you also use a violation pattern classifier, keep classification off the face of the report until a cited finding exists. A pattern label such as "repeat moisture" is not a cite. It may help a supervisor later. It must not read as if you observed a pattern you did not write down.
Sign only after you have read the cites
The draft is not the report. Your signature is the report. Do not treat a completed-looking template as signed, and do not let a workflow auto-promote a draft into the official record because every field has text.
Walk the document in this order: identity of the visit, then each finding against its cite, then the blanks. Confirm the blanks are blanks you accept. Confirm no measurement, count, or dimension appears unless it is in a note or readable in a photo you are willing to stand behind. Confirm the language matches what you would write, including hedges you actually used ("dry to the touch," "about").
If a line is true but the cite is weak, fix the cite or rewrite the line from the evidence. If the evidence is not enough to support the action you are about to take, stop and use an evidence sufficiency assessor on that item before you sign. Drafting asks whether the sentence has a source. Sufficiency asks whether that source is enough for a notice, a stop-work, or a hearing.
After you sign, freeze the packet you signed against: notes, photos, and the report text. Later edits belong in a supplement or a new visit. If enforcement is next, hand the signed findings to an enforcement notice drafter. Notice language should quote or closely track what you signed, not what an earlier unsigned draft once said.
What the drafter will not do for you
It will not complete a checklist because similar units usually fail the same items. It will not read a blurry photo as a measurement. It will not decide that an empty field looks unprofessional. Empty is the honest state when you were silent.
It will not replace field time. If you need conditions you did not capture, you go back. It will not replace your judgment about severity, repair timelines, or whether a condition is a violation under your code. Those decisions stay with the inspector who signs.
Keep the drafter inside the inspect stage. Detection tools may propose what to look at. Classifiers may group history. Notice tools may turn signed findings into outbound language. The auto-drafter only turns this visit's notes and photo metadata into a structured draft with cites, and it stays quiet where you were quiet.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first