Compliance hub, scores, exports, scan history, and full report drill-down.
Compliance (/reports/compliance) turns crawls into audit-ready artifacts: scores, charts, issues, and downloads.

Why it matters
| Stakeholder | Need |
|---|---|
| Legal / DPO | Evidence of discovery and remediation |
| Engineering | Before-consent tracker list |
| Leadership | Trend of scan-derived score |
Hub layout
When no scan exists
Empty states prompt Choose property or Run first scan with link to website detail.
Summary row
| Stat | Meaning |
|---|---|
| Scan-derived score | 8–99 style score from risk + issues |
| Trackers | Total in latest report |
| Pages scanned | Crawl coverage |
| Open issues | Compliance issue count |
| Before consent | Trackers flagged pre-consent |
| Missing descriptions | Copy gaps |
Cards may link to full report with query presets (before-consent, missing-descriptions, category).
Alert banners
Examples: high unclassified %, score drop vs prior run, before-consent count, last scan age.
Charts
| Chart | Interaction |
|---|---|
| Category doughnut | Click legend → filtered report |
| Tracker density bar | Per-domain counts |
Scan history table
Each row: date, score, risk, pages—CSV per run, link to full report.
Run new scan panel
Expandable controls:
| Field | Purpose |
|---|---|
| Max pages | Limit crawl |
| Crawl depth | Link depth |
| Concurrency | Parallel fetch |
| User agent | Custom UA string |
| Scan schedule | Automation when enabled |
Run new scan triggers crawl with these parameters.
Export formats
| Format | Contains | Best for |
|---|---|---|
| CSV | Tabular trackers & metadata | Excel, data teams |
| Formatted summary | Legal binders |
Buttons: Download CSV, Download PDF (disabled until report exists).
Uses /reports/{siteId}/{reportId}/export?format=.
Full report page
Route: /compliance/report/{reportId}?siteId=...
| Section | Content |
|---|---|
| Executive summary | Score, risk, counts |
| Tracker tables | Category, risk, domain, issues |
| Issue narratives | Why flagged |
| Filters | Category, preset query params |
Share URL with teammates; include siteId.
Remediation workflow
- Export PDF baseline
- Fix Scanner inventory + Consent Setup
- Re-scan → new
reportId - Compare scores in history table
- Archive exports with dates
User journey: audit export
- Complete scan
- Open Compliance
- Download PDF + CSV
- Export Consent logs for same date range
- Store in audit folder with ticket ID
FAQ
Score changed but we changed nothing
New third-party tags, CMS update, or CMS A/B test. Re-scan and diff inventory.
PDF export empty
Report ID missing or scan incomplete—refresh after Completed status.