A real-estate photo scored under VQS is measured on a fixed set of objective checks across six families: exposure, white balance, colour, geometry, artifacts and semantic content. Each check scores 0 to 100 and returns PASS (90 and above), FLAG (70 to 89) or FAIL (69 and below), and the runner is deterministic, so the same image always produces the same score. Together the checks catch the faults that actually cost listings: blown windows, colour casts, leaning verticals, HDR ghosting and texture lost to heavy processing.
Measured, not opined
"This photo looks good" is not a standard. The Visual Quality Score exists to replace that sentence with numbers. Every image submitted to the Standard Vision Lab canonical runner is measured on a fixed set of checks, each scored 0 to 100, each returning PASS, FLAG or FAIL. The runner is deterministic: the same image produces the same score, byte-identical, every time. The checks sit in six families, and each family maps to a class of fault that working photographers and marketing managers will recognise on sight.
Exposure (EXP)
Exposure faults are the fastest way for an interior to read as amateur work. This family measures brightness at both ends of the frame and whether detail survives between them.
- exposure_bright catches frames pushed too bright, where highlight areas begin to wash out.
- exposure_dark catches underexposure, the muddy interiors that make a room feel smaller than it is.
- contrast flags frames that are flat and lifeless, or crunched so hard the midtones disappear.
- shadows_crushed looks at shadow regions clipped to solid black, taking floor and furniture detail with them.
- window_clipped is the blown-window check: white panes with no visible view, the classic sign of an interior exposed without regard for the glass.
- window_dark is its opposite, windows rendered so dark the view is lost.
White balance (WBL)
Buyers may not know the term white balance, but they know when a room looks wrong. Three checks cover it.
- white_balance measures the overall colour temperature of the frame, catching rooms that lean too warm or too cool.
- white_balance_tint catches green and magenta shifts, the tints that make white walls look sickly.
- white_balance_windows handles mixed lighting: interiors where the light through the glass disagrees with the light in the room, leaving windows blue while the walls glow orange.
Colour (COL)
Colour checks target the over-processing that buyers have learned to distrust, along with its duller opposite.
- colour_cast catches a single colour contaminating the whole frame.
- saturation_under catches colour drained until the listing looks washed out.
- grass_saturation is the nuclear-lawn check: grass pushed to a green that does not occur in nature.
- greens_saturation extends the same measurement to gardens and foliage generally.
- wood_saturation catches timber floors and joinery pushed orange, a signature of heavy-handed editing.
Geometry (GEO)
Straight lines are the cheapest credibility a listing photo has, and the easiest to lose.
- geometry_vertical measures leaning verticals: walls and door frames that converge instead of standing straight.
- geometry_horizontal measures tilt, the sloping horizon or benchtop that unsettles a frame even when nothing else is wrong.
Artifacts (ART)
Artifact checks find the fingerprints that processing leaves behind. These faults are often invisible at thumbnail size and obvious at full screen, which is exactly where buyers look.
- noise measures grain and colour speckle, common when dark interiors are lifted hard in post.
- window_artifacts catches halos and fringing around window frames, the residue of blended exposures.
- ghosting_artifacts catches HDR merge ghosts: the doubled ceiling fan, the translucent curtain, the seam where frames disagreed.
- ai_texture_blacks covers a newer class of fault: texture loss in shadow regions left behind by AI processing, where carpet and timber turn to smooth plastic in the darks.
Semantic checks (SEM)
Semantic checks look at what is in the frame rather than how it was rendered.
- camera_reflection catches the camera or photographer visible in mirrors and glass.
- cables_visible catches stray cables left in frame.
Alongside the per-image families sits set consistency: measurement of whether a run of 12 to 20 images holds together as one body of work.
How the checks become one score
Each image carries its own composite and status: PASS at 90 and above, FLAG from 70 to 89, FAIL at 69 and below. The SET score is then governed by the lowest image, on the principle that a listing is only as good as its worst photo, with set-level gates on top. The gates have teeth. In one real pattern, all 19 images PASS, the mean is 98 and the lowest image scores 93, yet two soft frames trip the focus gate and the set FAILS. No badge.
Certification is automatic. A run of 12 to 20 original JPEGs from a daytime shoot is measured by the canonical runner, and a certifiable composite earns its tier on the spot: Platinum at 100, Certified from 90 to 99, Provisional from 70 to 89, no mark below 70. A failing set never certifies, whatever its composite. Twilight and dusk shoots arrive with v2. Every certificate opens the full annotated report, every image and every measured value, and anyone can check a badge against the public verification register.
Using the checklist on your own work
Before submitting a set, walk it against the six families in order: exposure first, then white balance, colour, geometry, artifacts, and a final pass for reflections and cables. Most failing sets fall to a handful of repeat offenders, and the check names above are the vocabulary your report will use.
To see the checks applied, run a shoot through the demo or read a sample report, which shows every measured value for every image. Note that every image is fingerprinted with SHA-256, and duplicates within a set or against earlier runs are removed automatically, so every test measures fresh work. The plain-English version of the whole standard lives at explained, and because VQS is versioned, every change to the checks ships as a documented release on the releases page. Same image, same version, same score. That is the point.
Run 12 to 20 original JPEGs through the Standard Vision Lab canonical runner. A certifiable composite is issued its tier badge automatically, with a live public verification record.
Run VQS on a shoot →Common questions
- What score does a real-estate photo need to pass under VQS?
- Each check and each image is scored 0 to 100: PASS at 90 or above, FLAG from 70 to 89, FAIL at 69 or below. Sets certify automatically at Provisional (composite 70 to 89), Certified (90 to 99) or Platinum (100), and a failing set never certifies regardless of composite.
- Can one weak photo fail an entire listing set?
- Yes. The set score is governed by the lowest image, and set-level gates can fail a set even when the composite is high. In one real example, all 19 images passed with a mean of 98, but two soft frames tripped the focus gate and the set failed.
- Do the checks change over time?
- The runner is deterministic, so the same image produces the same score, byte-identical, under a given version. VQS is a versioned standard, and every change to the checks ships as a documented release on the releases page.