Documentation Menu

Admin Dashboard & Metrics

The RegressionBot Dashboard provides org-level visibility into test durations, execution trends, API key usage patterns, and historical job results.

Operational Metrics

The top of the dashboard displays aggregate metrics summarizing all visual regression activity within your organization:

Total Jobs Ran

The cumulative number of jobs executed by the organization across all projects and ad-hoc runs.

Average Job Duration

The average execution time (in seconds) of completed checks, tracking visual regression engine efficiency.

Average Pages Scanned

The average number of page/device combinations tested per execution.

Execution Trends

The Execution Trends chart displays duration trends for the 10 most recent jobs. Spikes in duration usually correlate with adding more pages or viewports to a project configuration.

Job History & Diff Downloads

The Jobs tab lists your runs, newest first: project, job ID, pages checked, how many changed, creation date, and status. It opens on the fifty most recent. Filter by project, by status, or to changed runs only, and load more to go further back.

Project history

A run can be started with an intent: a sentence saying what you meant to change, such as “updated the pricing copy”. When a run carries one, each changed page gets a verdict — whether that page's change is covered by the intent or contradicts it. A run started without an intent gets no verdict. See giving a run an intent.

Every project card on the Sites tab opens that project's history: each run on its own dated row, with what the run found. A run that carried an intent shows its verdict (“Changed, all cleared”, “1 contradicts intent”); one without shows its change count. Toggle Changed only to see the days something moved. A run opened from the history shows a back link at the top of the run, labelled with the project's name, that returns you to the history. The dots on a Sites card show the run's date on hover, and a quiet project links to its last change so the review workspace is one click away.

Job Status Lifecycle

Jobs transition through the following states, visible in the history badges:

  • INITIALIZING: Preparing the environment and parsing target URLs.
  • PROCESSING: Headless workers capturing and comparing screenshots in parallel.
  • FINISHING: Every page has been captured and compared, and the run has not yet reached one of the states below. This is what you see in the gap, not a state a run stops in — keep polling.
  • SUMMARIZING: Post-map AI summary is running, generating regressionbot summaries of visual changes.
  • COMPLETED: Execution finished. Diff metrics, images, and regressionbot summaries are ready.
  • APPROVED: Every page carrying a diff was reviewed and approved, and those pages were promoted to the baseline.
  • RESOLVED: Every page carrying a diff was reviewed, and at least one was rejected. The run is finished with review; the rejected pages kept their existing baseline.
  • FAILED: Execution aborted due to system or network issues.

A run reaches APPROVED or RESOLVED once every page carrying a diff has a decision. Pages with nothing to decide do not hold it back, so a 33-page run with one diff resolves on that one decision. RESOLVED is the common outcome whenever you reject anything at all.

Comparisons are the only thing metered. Every changed page gets a regressionbot summary — there is no separate summary allowance to run out of.

Diff Links

If a past job contains visual regressions, clicking the Diff Links button expands the job row to display each failed URL.

Click a changed page to open it in the inspect view, where every change is outlined on both versions. There is no separate diff image to download.

Visual Triage Workspace

The Visual Triage Workspace allows you to review visual differences side-by-side. Click on any URL flagged with regressions to open the interactive modal.

Triage Interface

Inside the triage view, you can compare the baseline and current versions of the page using:

  • Interactive Comparison Slider: Click and drag the vertical slider left and right to compare the two screenshots.
  • Side-by-Side View: Compare the baseline and current screenshots side-by-side (especially useful for layout changes or structural redesigns).
  • Page View (V): Both captured pages, rebuilt side by side from saved snapshots. Changed elements are outlined and changed words are highlighted.
  • Code View (C): A line diff of the page structure the engine compared, the HTML source, and the CSS.
  • Text View (D): The page's text in reading order, with the changes marked.
  • Runs from before page snapshots were saved have no Page view; they show the screenshots instead.
  • AI-Powered Summaries: Read plain-English descriptions of detected regressions in the side panel (collapsible to prevent blocking screenshot details).
  • Element Mask Overlay: View selectors configured to be hidden from comparison, showing how they were masked to prevent noise.
  • The verdict: On a run that carried an intent, the verdict sits above the capture: the decision, its confidence, the basis it was reached on, and the words of the intent it cites, quoted. The button the verdict recommends — Approve or Reject — is outlined. Approving or rejecting against that recommendation asks once, optionally, what the verdict missed; you can skip the question. A run with no intent says so in the same place.

Keyboard Shortcuts

Use keyboard shortcuts to quickly navigate and triage multiple changes without taking your hands off the keyboard:

On a run that carried an intent, one of A (approve) and R (reject) is the one the verdict recommends, and its button is outlined in the view. Pressing the other one asks what the verdict missed.

Key BindingAction
Enter or O or IInspect / Toggle open or close the visual comparison modal.
B (Hold)Blink baseline vs. current screenshots rapidly to pinpoint changes.
VToggle the Page view (both pages rebuilt from their snapshots).
CToggle the Code view (structure, HTML and CSS line diffs).
DToggle the Text view.
HToggle element mask overlay visibility.
A or ArrowRightApprove the visual change and promote current to baseline.
R or ArrowLeftReject the visual change and keep the current baseline.
J or ArrowDownNavigate to the next regression result.
K or ArrowUpNavigate to the previous regression result.
+ or =Zoom in on the screenshot comparison (up to 300%).
-Zoom out on the screenshot comparison.
0Reset zoom level to 100%.
EscClose the comparison triage modal and return to dashboard.

Schedules

The Schedules tab lists every project that runs unattended — its interval, the UTC hour it is pinned to, when it last ran and when it is next due, and the API key its runs are billed to. A scheduled check is a project setting, not a separate job: the tab is the same thing as schedule in project configs, with a form in front of it.

Creating one

Pick an existing project, or enter a name and URL to create a new site and schedule it in one step. Choose every day or every week, optionally a UTC hour, and the API key the runs will use. The key is required: scheduled runs have no request to draw a key from, and a run with no key cannot meter AI usage, so its summaries would be skipped and the alert would list changed pages without saying what changed. Saving puts a managed project on a rolling baseline — every run becomes the new baseline, and owners are emailed when a run finds changes. Live-vs-live projects keep their policy, since they store no baseline.

The standing intent

A scheduled run has no PR to say what it was meant to do, so on its own it is never judged. Each row carries a short intent — what the pages are expected to do between checks and what must not change — and every scheduled run is judged against it, the same way a PR run is judged against its description. It can be set when the schedule is created or edited on the row afterwards, and changing it never invalidates baselines. A row with no intent says so: its runs report “not judged” until one is written.

Removing one

Remove stops the unattended runs and nothing else: the project, its baselines and its history are kept, and it stays on a rolling baseline, so a run you start by hand still rolls forward. Schedule it again whenever you like — neither change invalidates baselines.

The tab is available to owners and admins; members do not see it, because choosing a key means seeing the key list.

API Keys & Usage Analytics

Manage your credentials and monitor comparison volumes in the lower dashboard section.

Manage API Keys

Generate multiple API keys (e.g. sk_live_...) for separate CI pipelines, staging systems, or development environments. Keys can be toggled visible, copied, or deleted at any time.

Plan Limits & Comparison Usage

The progress bar displays your current comparison usage against your pricing plan tier. Your regressionbot summaries for the month are shown beside it as a count, for reference only — they are not capped separately. Pricing tiers enforce the following limits:

  • Free Trial: 500 comparisons (expires after 7 days).
  • Hobby: 2,000 comparisons ($9/mo).
  • Starter: 5,000 comparisons ($29/mo).
  • Pro: 15,000 comparisons ($79/mo).

The Comparison Limit:

The comparison allowance is a hard limit. Once your monthly comparisons are exhausted, subsequent jobs are blocked and return a usage limit error. It is the only limit: comparisons are the only thing metered, and every changed page gets a regressionbot summary regardless of how many you have already used.

Usage Analytics

The stacked bar chart tracks daily comparison volumes for the last 30 days, segmented by the API key labels you created. This helps isolate which pipeline or team is consuming your monthly allocation.