CleanPlateVA
Loading…
Address Name Zip Grade Compl. Trend Latest VDH
Official source Archived snapshot CleanPlateVA-derived

Methodology & provenance

Every marker has a source ID. Every score has math.

CleanPlateVA is an independent presentation of archived Virginia Department of Health records from MyHealthDepartment. It is not affiliated with or endorsed by VDH or MyHealthDepartment. VDH remains the authority. We do not inspect facilities or issue official grades.

Current access Loading… Checking this device
Snapshot generated Loading… Export time, not a live VDH query
Coverage in this snapshot Loading… Covered ZIPs, not all Virginia
Newest held report Loading… Does not imply equal freshness everywhere
01

Score anatomy

Start at 100. Every violation subtracts.

The portal publishes no usable numeric score. Our 0–100 formula runs on every report to give each inspection a score — no letter. The A–F letter belongs to the facility, not any single visit: a score bands to a grade only once it anchors a facility (see The facility grade, below).

Computed here

Deduction per violation each block is one point off the score

Risk-factor violation Form items 1–29 — the practices most tied to foodborne illness: temperatures, cooking, hygiene, approved sources, contamination.
First time flagged −6
Detected repeat 6 × 1.5 −9
Good-retail-practice violation Form items 30+ — operational upkeep: cleaning, labeling, equipment, maintenance.
First time flagged −2
Detected repeat 2 × 1.5 −3

A risk-factor violation costs three times a good-retail-practice one; a detected repeat costs half again (hollow blocks); a violation corrected on site while the inspector watched earns 25% of its deduction back. The math runs exact and rounds once at the end — halves round up, toward the better score — then floors at 0.

Worked example — one routine inspection

Every report starts at 100
1 risk-factor violation −6
1 risk-factor violation, repeat 6 × 1.5 −9
2 good-retail-practice violations, corrected on site 2 × 2 × 0.75 −3
Inspection score 82

This inspection assessed 24 distinct code items — broad — so its 82 can anchor the facility grade below.

82 / 100
as a facility grade → B
100153=82
Start − risk-factor deductions − good-retail-practice deductions.
Which inspections anchor the grade? Breadth decides. Distinct numbered items present on the report; duplicate rows count once. IN/OUT separately drives compliance.
20+
BroadAnchors the facility grade + connected trend
1–19
FocusedRe-checks that adjust the grade; OUT/addressed ratio is compliance-colored
0 / no checklist
UnknownNo grade or trend claim
From inspections to the facility grade Marker color, the A–F filters, and the hover headline show the grade — a score and a letter. It is the latest broad inspection's score, adjusted by what focused re-checks verified afterward item by item, then banded. No follow-up since the broad inspection → the grade is that score, exactly. The next broad inspection resets it. (Inspections themselves stay letterless — the circle is a grade, the squares are scores.)
B83
83 · B
F0–59 D60–69 C70–79 B80–89 A90–100
+65%
Re-checked INReturns 65% of that item’s deduction
×1.5
Still OUTA verified repeat — the full deduction grows half again
×1
OUT, fixed on siteAny on-site-correction credit is revoked — the full deduction stands, without the ×1.5
−6/−2
New findingDocks at normal category weight

Worked example — a broad inspection scoring 70, then one follow-up

Broad inspection score 70
2 risk-factor violations verified fixed 65% of their 12 points returned +7.8
6 good-retail-practice violations verified fixed 65% of their 12 points returned +7.8
1 risk-factor item still out deduction grows 6 → 9 −3
Facility grade 83 · B

A 70 broad inspection → a B 83 facility grade — visibly better, but not laundered: the calibration keeps a fully-cleared F 0 inside D at best, and no follow-up alone reaches A from D or F. Re-earning the letter takes the next broad inspection.

Exact scoring edge cases

Repeat sourceA structured VDH Repeat flag or the word “repeat” in the observation makes that violation 1.5×.

Missing item numberDefaults to the lower good-retail-practice deduction of 2 points.

Corrected on siteDeducts 75% of its weight — the structured checklist’s COS marking (every OUT row for the item) earns 25% back. The credit is provisional: a later re-check that finds the item OUT again revokes it to the full deduction. It never erases the recorded violation or softens red-flag ranking.

Follow-up reportsChecklist breadth—not the word “follow-up”—decides their role. A broad report publishes a score; focused and scope-unknown reports publish null. Their per-item IN/OUT verdicts can still adjust the facility grade above, joined on the form item number.

Grade without follow-upsIdentical to the latest broad score, banded to a letter. Items never re-checked keep their full deduction; undated or same-day reports never adjust.

Written-verdict follow-upsSome follow-ups publish no checklist at all — the inspector’s verdict lives only in the written comments (“all violations corrected”). Those comments are adjudicated into a machine verdict by a separate, audited step — never parsed loosely at scoring time — and then adjust the grade exactly like a re-check of the items the broad inspection docked: “all corrected” restores like a full re-checked-IN clear, “not corrected” charges the verified-repeat ×1.5. Hedged or ambiguous comments (“corrected or are continuing to be implemented”) grant nothing until reviewed. A written verdict can restore or re-charge existing deductions, never add new ones, and a later structured re-check always outranks an earlier comment.

02

Not the same measurement

What the other signals mean

Each answers a different question. None is an official VDH rating.

Derived

Checklist compliance

IN÷(IN + OUT)

Only applicable checklist rows count. N/A, not observed, and the non-scoring item-99 sentinel are excluded.

Derived

Trend

86◇ 3/372

Only broad assessments join the connected line. A focused re-check plots as an unconnected diamond at the share of its re-examined items in compliance, labeled with that OUT ratio. Its report score is null: a number subtracting only the handful of items the visit examined could look deceptively high even when every one failed. Direction is not a forecast.

Heuristic

Biggest red flags

Risk factorRepeatKeyword weight

Up to five observations ranked by category, repeat status, and the documented keyword groups below. Empty means none crossed the heuristic, not “safe.”

Derived

Open repeats

OUT+RepeatCOS

Latest checklist rows simultaneously marked out and repeat, excluding rows marked corrected on site.

Exact red-flag ranking weights
+10 risk-factor item +3 detected repeat Top 5 ranks above 1
+8 sewage/wastewater · rodents/pests · vomit/diarrhea/ill employee +6 no handwashing/bare hand · raw food over cooked food · no hot water +5 cross-contamination · mold/slime +4 holding temperature · cooling/cook temperature +3 hand sink · date marking · sanitizer · expired food +1 dirty/buildup/grease/debris/soiled

Matching groups accumulate. Ties retain source order; displayed observation text is capped at 180 characters. This rank selects what to show—it does not change the 0–100 score.

03

Source to screen

How a VDH report becomes this website

The browser reads a prepared snapshot. It never scrapes VDH while you wait.

Snapshot pipeline
  1. 1

    Official VDH surfaces

    MyHealthDepartment provides a search roster, permit-history pages, and individual inspection reports.

    permitIDinspectionID12VAC5-421
  2. 2

    Archive a snapshot

    A polite, resumable collector stores roster JSON and compressed permit/report pages by covered ZIP.

    raw HTMLroster JSONcollected time
  3. 3

    Parse & preserve IDs

    We extract identity, history, observations, citations, corrective actions, checklist rows, temperatures, and comments.

    fac:<permitID>insp:<inspectionID>
  4. 4

    Derive & store

    Addresses are geocoded; rules compute metrics; idempotent CouchDB projections retain each permit and inspection separately.

    geocodecomputed fieldscontent hash
  5. 5

    Merge & whitelist

    At export, likely re-permits are presentation-merged. Explicit field lists shape the shared finder, the grade overlay, the closed supplement, and per-facility history records while retaining lineage.

    lineagefinder + overlay + closed shardsfacility history
  6. 6

    Publish two contracts

    Small manifests name each prepared snapshot. Data objects publish first and the manifest flips last; the full archive JSON lives in R2 and is served by the Worker once the terms have been acknowledged.

    static liteacknowledged fullfull → lite fallback
VDH GUIDs stay attached through the path. Views link back where the corresponding MyHealthDepartment tenant route is available.
04

Field-level boundary

What is official, and what is ours

Color is not the contract. Every group is labeled in words.

Official VDH record

Archived and reorganized

  • Facility name, address, permit type, and status
  • Permit and inspection GUIDs
  • Inspection date, type, and purpose
  • Violation item, citation, observation, and corrective action
  • Checklist IN/OUT/N/A/N/O, COS, and Repeat markings
  • Temperatures and inspector comments when present
CleanPlateVA-derived

Computed or enriched

  • Inspection score: raw 0–100 formula on each report (no letter)
  • Facility grade: score + A–F letter, latest broad ± follow-up re-checks
  • Checklist compliance percentage
  • Broad-only score trend, red flags, and open-repeat count
  • Map coordinates and approximate-location flag
  • “Restaurants only” classification
  • Presentation merge of likely predecessor permits

Basic map

Identity, location, source handoff

Snapshot markers recorded as active at export time, names, addresses, geocoded coordinates, restaurant classification, approximation and mobile-unit flags, permit IDs, and the VDH district route needed for the source handoff. Status can age; presence is not proof a facility is currently open or permitted. No report dates, scores, grades, or inspection content.

Terms acknowledgedinspection grades load; otherwise the basic map remains

Inspection grades

Reports plus derived signals

Inspection histories, citations, observations, checklists, temperatures, comments, status, lineage, and CleanPlateVA-calculated metrics, loaded after the visitor acknowledges the Terms of Use and Data Acknowledgment (section 06). If that data cannot be loaded, the basic map remains.

05

Limits & verification

What this view cannot promise

Transparency includes the edges, not just the happy path.

Selected coverage

Coverage is the ZIP count shown above, not every Virginia jurisdiction. Absence from this map does not mean absence from VDH; some places are outside the selected ZIPs or use other systems.

Snapshot, not live

Collection and publication can lag. “Newest report” is one maximum date, not proof that every covered area is equally current.

Permit status can age

An incremental scan can retain the last known “active” state after a facility stops receiving inspections. A full resweep reconciles closures; a marker is not operating-status proof.

Source retention

The portal typically exposes about two years of history. Missing report pages remain missing or unscored; this is an archive of what was collected, not a complete lifetime record.

Geocoded locations

Pins come from address lookups through VGIN, the U.S. Census Bureau, and OpenStreetMap/Nominatim, refined against Overture Maps and Foursquare OS Places, with a ZIP-centroid fallback—not VDH coordinates. Some pins are manually placed after review. Where an address is a room or space number rather than a street address, as at an airport or on a campus, the pin is placed at the venue the establishment belongs to, derived from other permits at that venue whose addresses resolved. Some unbadged pins are street-level or interpolated, not rooftop; venue-level and centroid pins are labeled approximate.

Presentation heuristics

“Restaurants only” uses permit-type/name patterns. History merging uses shared location/address plus name similarity. Either can misclassify, combine, or miss a match; retained permit IDs are the audit trail.

Focused is not facility-wide

A focused follow-up stays visible as the latest event and adjusts the facility grade item by item, but it never replaces the broad inspection that anchors it. Its own score is null; the OUT/addressed result describes that targeted visit. When comments enumerate corrected items omitted from the structured rows, both channels count once and the structured row governs any conflict.

VDH wins conflicts

Scores and summaries are comparison tools, not safety or illness predictions. If our presentation and the source disagree, the official VDH record is authoritative.

Verify at the source

Facility rows and report cards expose MyHealthDepartment links where available. Compare the observation, citation, corrective action, and checklist markings yourself.

Open VDH portal
06

Terms & attribution

Terms of Use and Data Acknowledgment

Inspection Records and Source Data

CleanPlateVA collects, organizes, and presents publicly available food establishment inspection records published by the Virginia Department of Health through MyHealthDepartment.

CleanPlateVA is an independent service and is not affiliated with, operated by, or endorsed by the Virginia Department of Health or MyHealthDepartment.

Inspection information displayed on this site is an archived snapshot and may not reflect the most recent information available from VDH. The original VDH inspection record remains the authoritative source. Users should consult the source record when current or official information is required.

CleanPlateVA Scores and Grades

Scores, letter grades, compliance percentages, trends, flags, classifications, and other summaries displayed by CleanPlateVA are calculated by CleanPlateVA from the underlying inspection records.

These calculations are not issued or approved by VDH and should not be interpreted as official restaurant grades, food safety certifications, health-risk assessments, or predictions of whether a person will become ill.

CleanPlateVA provides these calculations as a tool for comparing and reviewing inspection histories. They are provided as is, without warranty as to accuracy, completeness, or suitability for any particular purpose.

Location Data

Restaurant locations and map coordinates are compiled from public and open geographic data sources, including:

  • Virginia Geographic Information Network (VGIN), Virginia Department of Emergency Management
  • U.S. Census Bureau Geocoder and Gazetteer
  • OpenStreetMap and Nominatim
  • Overture Maps Foundation
  • Foursquare OS Places

Some locations are approximate. Certain locations may also be manually placed or corrected by CleanPlateVA based on available source information.

Data and Map Attribution

CleanPlateVA’s independently calculated scores, grades, classifications, and presentation may be cited with credit to CleanPlateVA. No additional license to CleanPlateVA-created material is granted by these terms.

Acknowledgment

By selecting “Agree and View Grades”, you acknowledge that you have read and understood these terms and that CleanPlateVA’s scores and grades are independent calculations rather than official VDH ratings.

If you do not agree, you may continue using the basic map without CleanPlateVA inspection grades.

Your selection will be remembered on this device and can be changed later from the About page.