Quality pillars
VisualQ's eight-pillar Quality OS — what each pillar measures, how to run it, and how scores roll up.
VisualQ organizes web quality into eight pillars. Together they form the Quality OS — a single composite score, rolling page health, and CI gates across visual, functional, accessibility, performance, SEO, security, tracking, and privacy.
For the exact trigger matrix (which button runs which pillar), see Audit trigger matrix.
The eight pillars
| # | Pillar | Technical id | What it measures | Primary guide |
|---|---|---|---|---|
| 1 | Visual | visual | Pixel-perfect regression vs baselines | Visual testing |
| 2 | Functional (FRT) | functional | User journeys compiled from Gherkin / plain language | FRT |
| 3 | Accessibility | a11y | axe-core violations + RGAA scoring | Accessibility |
| 4 | Performance | perf | Web Vitals and Lighthouse metrics | Page audits |
| 5 | SEO | seo | On-page SEO + Lighthouse SEO | Page audits |
| 6 | Security | security | HTTP headers, TLS, CVE checks | Page audits |
| 7 | Tracking | tracking | Tracking-plan events on linked VRT pages and FRT journeys | Tracking |
| 8 | Privacy | privacy | CMP consent-before-tracking (triple-run) | Privacy |
The Functional pillar maps to the Scenarios (FRT) tab in the dashboard. An FRT journey is never triggered from a VRT page alone — that is a product constraint, not an exclusion from the quality score.
Free public audit vs full platform
| Surface | Pillars included |
|---|---|
| Free public audit | 6 automated page audits: Visual, Accessibility, Performance, SEO, Security, Tracking |
| Signed-in project | All 8 pillars — add Functional (FRT) journeys and Privacy (CMP triple-run) |
| Full quality audit | All unlocked pillars in one orchestrated run |
The public audit is a lead magnet: it runs six page-level probes in one worker pass. Privacy requires three isolated browser contexts per page (initial, reject-all, accept-all). Functional requires FRT features — neither fits the anonymous URL-only flow.
Every plan (including Free) unlocks all eight pillars inside a project. See Plan limits.
Rolling health
VisualQ uses a rolling health model — site scores aggregate fresh per-page scores, not a single latest run. The Functional pillar uses separate frt_health storage.
See Rolling page health for coverage, freshness, and how partial runs update only affected pages.
Run everything at once
From the project overview, click Run full quality audit to fan out to every unlocked pillar. Or use MCP / CI:
POST /api/quality-score/full-audit
Content-Type: application/json
{
"project": "<projectId>",
"pillars": ["visual", "functional", "a11y", "perf", "seo", "security", "tracking", "privacy"]
}Agents should call run_full_audit with pillars[] and then wait_for_run. For KPIs, use get_site_health or gate_pr_quality — never treat a single latest run as the site score.