The short version
For every parking garage in our database without a posted clearance, our batch pipeline pulls four Google Street View images at the entrance, asks Claude Vision what clearance sign is posted, and records the reading only if the model's self-reported confidence is high.
Step by step
Find the entrance
We start with the latitude/longitude already in our database (from OpenStreetMap,
the FHWA National Bridge Inventory, or hand-curation). Before spending a cent, we ping
Google's free Street View metadata endpoint — /streetview/metadata — to check
whether imagery even exists at that point. If not, we skip and mark it "no imagery."
Pull four images
We fetch four Google Street View Static images at headings 0° / 90° / 180° / 270° (N/E/S/W) with a slight upward pitch to catch ceiling-mounted signage. Four angles, not one, because the clearance sign is usually visible from at most one or two directions — we want to give the model the best chance.
Ask Claude Vision, strictly
All four images go to Claude Vision in a single API call with a tightly-scoped prompt. The model returns JSON with:
found_sign— whether any clearance sign is visibleheight_in— the posted height, in inches (null if not readable)confidence—low,medium, orhighraw_text— exactly what the sign saidnotes— occlusion, glare, or ambiguity flags
Key part of the prompt:
This matters because an LLM that's been told "tell me what you see" will cheerfully
make something up. Our prompt instructs it to answer "no sign" when the sign isn't there,
and to flag partial views as low confidence.
Only write if the model is certain
By default we only commit a reading when confidence === "high". Anything
medium or low is logged for a human to spot-check later. The script has a
--confidence medium flag we can use on a case-by-case basis, but the
production pass is high-only.
Before writing, two hard sanity bounds:
- Readings outside 4 ft – 20 ft are treated as parse errors and discarded.
- If the new reading differs from our existing (non-AI) value by more than 2 ft, it's held for manual review rather than overwritten.
Record provenance, not just the number
Every AI-verified entry keeps:
source: "AI-verified (Street View + Claude Vision)"verified_on: "2026-04-18"— ISO date so the app can stale-check later- A note appended to the entry with the exact sign text Claude read
The AI-verified badge you see in the app is driven by that source
field. No behind-the-scenes relabeling.
What this is not
This is not a substitute for looking at the sign. AI vision is good — on our test set it agrees with a human reader about 90% of the time — but 10% is still wrong 1 in 10. Wrong about a clearance, at the wrong moment, costs you a torn-off AC unit, a shattered windshield, or worse.
Every time you drive toward a garage, the posted sign at the entrance is the only authoritative number. Our data — AI-verified or otherwise — is for planning. The sign is for committing.
Why we think it's still worth doing
Before AI verification, about 38% of the garages in our database had no posted clearance from any upstream source (OpenStreetMap, operator websites, FHWA). Those entries rendered as "Unverified" — which is honest, but not useful.
AI verification converts most of those into real numbers you can filter and sort on. The remaining 10% of AI errors get surfaced two ways:
- User reports. Every garage has a "Report clearance" button. When a user tells us our number is wrong, the AI-written value gets flagged for immediate re-verification.
- Periodic re-runs. The
verified_ondate drives a "data may be stale" banner after two years, at which point we re-fetch Street View (which may itself be fresher imagery) and re-ask.
What data we keep about you
None. The AI-verification pipeline is entirely offline — it runs against Google Street View and Claude, not against your session. We don't send your location, vehicle height, or any identifying information to the AI. See our privacy policy for the full disclosure.
Technical details, if you're curious
- Models: two stages.
claude-haiku-4-5first, on five wide shots per pano, answering only "is a clearance sign visible here?" — cheap, and it never transcribes. Any pano where it finds one is re-shot at a tighter field of view and read byclaude-sonnet-4-6, which is the model that actually produces the number. Panos with no sign never reach the second stage, which is where most of the cost saving comes from. - Image source: Google Street View Static API, 640×640 JPEG.
- Image transport: base64-encoded, sent in a single multi-image message.
- Cost per verification: ~$0.012. A full pass on our unverified inventory runs us ~$13 every time we do a refresh sweep.
- Source code for the pipeline lives in
scripts/streetview_verify.py— open-source in our main repo.
Frequently asked questions
How does AI-verified clearance work on WillIFit.ai?
For each parking garage without a posted clearance in our database, we pull four Google Street View images (headings 0°, 90°, 180°, 270°) at the entrance coordinates and send them to Claude Vision. The model returns a structured reading — height in inches, confidence (low / medium / high), and the exact sign text — and we only commit the result when confidence is high and the reading falls within 4–20 ft.
Is AI verification a substitute for reading the posted sign?
No. The posted sign at the entrance is the only ground truth. AI verification gives drivers enough information to plan — knowing a garage posts 7'0" vs 12'6" before leaving the house — but every driver should still read the physical sign before entering.
What happens when the AI is not confident?
If Claude Vision returns confidence lower than 'high', the entry stays unverified and we do not write a height. Readings outside 4–20 ft are discarded as parse errors. Readings that differ from an existing non-AI value by more than 2 ft are flagged for human review rather than overwritten.
What does the 'AI-verified' badge mean on a garage listing?
The badge marks entries whose clearance height was read from a Google Street View image of the posted sign by Claude Vision, with high confidence. Every AI-verified entry records the verification date, the exact text of the sign, and the Street View pano ID — so users can independently verify in Google Maps.
What personal data does WillIFit.ai collect during AI verification?
None. The AI-verification pipeline runs offline against Google Street View imagery, independently of any user session. No driver location, vehicle information, or personal data is involved in producing a verified clearance reading.
Questions or corrections
Spot a bad AI-verification? Open the entry in the app and click Report clearance. It goes to a queue we review daily.