Skip to main content
The hosted dashboard is the workspace view for stored measurements and team workflows. The CLI runs audits; the dashboard stores each pushed result as a measurement so a workspace can review trends, compare periods, manage Optimizations, and configure integrations over time.
Local CLI audits and --compare do not require an account. The hosted dashboard works with a free workspace: up to 2 members, the last 30 days of pushed audit history, and up to 100 stored audit snapshots per month. Team, Growth, Scale, and Enterprise workspaces get full history, unlimited members, Ask Xerg, hosted MCP, Slack, policies, and one-way Linear issue creation.
Hosted pricing follows known Monthly Audited Agent Spend in explicitly pushed audits: Free through $2,000 per UTC month, Team at $99 through $10,000, Growth at $299 through $50,000, Scale at $799 through $250,000, and custom Enterprise above $250,000. Historical imports, duplicate-review spend, and unpriced usage do not count toward MAAS.

Requirements

You need:
  • a signed-in Xerg account (a Free workspace is created automatically on first sign-in)
  • at least one pushed audit for real dashboard data
The primary new-workspace flow starts at Get Started. Clerk creates the first workspace and the normal dashboard opens in a waiting state. It offers two paths: give set up https://xerg.ai/skill.md to a terminal-capable agent, or run npx @xerg/cli@latest activate. Neither path displays the workspace API key. If you are starting from the CLI, run a local audit first:
activate opens the browser for explicit workspace approval, securely stores the paired credential, and pushes the latest audit. You can also use activate without --push-latest to connect, detect a source, run the first audit, and push it.

Dashboard sections

The dashboard is organized around the current workspace:
  • Overview: an outcome-free calendar-period ledger with three selectable KPI tiles, one daily chart, current next action, identified-waste rate grouped by current department or runtime posture, Source Performance, and the first-push continuation checklist
  • Measurements: related pushed results grouped into series, human-readable source and date filters from 24 hours through paid all-time history, latest-measurement sorting, URL-restorable pages, plus measurement detail pages
  • Sources: current source economics and outcomes, a compatible prior-measurement comparison, the top open Optimization, activity-date-aligned charts and measurement history, rename/archive controls, current department and runtime-posture assignment, and a concise data range
  • Source Attributes: departments and runtime posture are current source metadata. Members can read both; workspace admins can manage departments and assign or clear posture. Runtime posture uses a fixed vocabulary rather than customer-created values, while the surface remains open to later source-attribute types
  • Compare: source-first baseline-to-current comparison for two pushed measurements, including cost per successful run, success rate, and compatible evidence recurrence groups
  • Optimizations: prioritized modeled and provisional opportunities from the latest active measurements
  • Policies (Alpha, paid bands): recommendation-backed policy drafts and Cedar previews. Drafts are not evaluated or enforced at runtime
  • Ask Xerg (paid bands): workspace-grounded answers about measurements, sources, and Optimizations. The streamlined desktop drawer omits demo, New chat, and context chrome; the full-page and mobile surface retains the explicit demo control and visible context freshness. Sample data is never silently substituted for an empty workspace
  • Settings: separate Workspace, Members, Billing, API Keys, and Integrations sections. Integrations shows one client configuration at a time and never puts a workspace secret in visible or accessible page text (hosted MCP, Slack, and Linear require a paid band)
Free workspaces can open paid-capability routes directly and receive an in-place upgrade prompt instead of the feature. Paid-only ambient affordances, including the top-right Ask Xerg trigger, remain hidden.

Ask Xerg

Paid workspaces can open Ask Xerg from any dashboard page without leaving the current work. Ask Xerg is absent from primary navigation. On desktop, the top-right Ask Xerg trigger stays in a standalone sticky bar above the page title and page-owned controls. A subtle bottom divider separates that fixed bar from scrolling content. The trigger opens a right-side drawer that shares space with the page instead of covering it and relocates into the drawer header; a standard right-panel close control closes the drawer and returns the trigger to the top bar. Desktop workspace and drawer headers remain divider-free. The desktop navigation and Ask drawer each have a pointer- and keyboard-operable vertical resize separator, and both chosen widths persist locally. On smaller screens, Ask opens the full-page /dashboard/ask view. The desktop drawer is intentionally streamlined: it omits New chat, Try demo/Use workspace, the context-switch notice, and context/freshness chrome. Its empty state shows the transparent Xerg triangle, the title Ask about your agent fleet economics, and the composer directly beneath the title with the placeholder Ask a question. It does not show the explanatory or latest-measurement footer copy. The full-page and mobile Ask surface retains New chat, the explicit workspace/demo switch, and visible context freshness. Both surfaces use the same in-memory conversation, so navigation to a cited measurement, source, or Optimization keeps the current chat visible. Reloading, signing out, changing workspaces, switching between workspace and demo context, or choosing New chat clears the conversation. Conversation content is not stored locally; only the desktop layout widths and existing dashboard display preferences persist. Answers are grounded in the authenticated workspace and can use the measurement, source, or Optimization currently open as focused context. Source and Measurement Detail rely on that global route context instead of adding a second Ask about this… control. Assistant answers support safe Markdown without raw HTML. Fractional values attached to known percentage-rate labels render as percentages even when Markdown emphasis separates the label and value; unit-based rates remain unchanged. Identifier-like tokens of at least 32 characters show their first 16 characters plus an ellipsis; the full value remains in a hover title and screen-reader text, and the shortened token is keyboard-focusable. Embedded USD amounts in chat text render with two decimal places. The dashboard does not render the private response’s evidence metadata as capsules or add an answer-copy control; it keeps at most two follow-up prompts. Ask Xerg is read-only: it can explain evidence and navigate through links included in an answer, but it does not change Optimizations, policies, sources, billing, or configuration. The hosted chat buffers model output and applies Xerg’s pricing- and detection-coverage truth rules before answer text reaches the browser. Streaming transport therefore carries only the finalized answer, message actions, and evidence. Stopping a response cancels the request. The full-page context labels continue to distinguish workspace data from explicit sample data, and demo requests make no workspace-context reads. Legacy dashboard links such as /dashboard/actions and /dashboard/mcp redirect into the current Optimizations or Settings views. /dashboard/ask remains the full-page chat surface for deep links and smaller screens.

Measurements and identity

Measurements groups incremental pushes that share the same complete source, environment, audit kind, and comparison identity. The parent row is the latest stored result and shows the source name rather than a hosted measurement ID or copy control. A one-measurement series shows no redundant count badge or expander; a longer series shows its measurement count and expands to “Earlier measurements” without duplicating the latest row. Expanded individual measurements retain their hosted IDs and copy controls, and “Load older measurements” continues through longer histories in bounded pages. Expansion is page-local, closes on refresh or list-control changes, and never adds an internal series key to the browser URL. Overview does not duplicate the series list; Measurements is the dedicated cross-source history surface. Measurements can sort only by the latest measured time, newest or oldest first. The date picker defaults to 30 days and offers 24 hours, 7 days, 30 days, 90 days, 6 months, 12 months, and all time. Free workspaces can select through 90 days, while the server still limits visible results to the Free 30-day history window; 6 months, 12 months, and all time are visibly marked Team+ and become selectable on every paid band. Six and 12 months are rolling 180-day and 365-day windows. Source/date filters, Active or Archived status, sort direction, and page number are restored from the URL; expansion is intentionally excluded. Archiving hides history without deleting it or refunding monthly snapshot quota. Archive and unarchive actions still apply to one stored result at a time. If a series contains measurements hidden by the Active or Archived tab, the row states how many are hidden. The explanation that archiving hides rather than deletes history appears only in Archived; any paid-history notice remains independent of that status. “Compare latest 2 measurements” assigns the earlier result to baseline A and the latest result to current B. Sources cards and Source Detail use the newest eligible measurement rather than summing overlapping measurements. An active source excludes archived measurements; an archived source can use its newest retained measurement. A source whose retained measurements are all archived stays visible in Active as No active measurement instead of showing synthetic zeroes. Cards omit the redundant CLI-version badge and measurement-count metric, and show compact pricing-qualified runtime spend, identified waste and rate, attached-baseline change, activity range, measured time, and coverage state. CLI version remains under Advanced source metadata. Source Detail is a decision view rather than another series browser. Its latest eligible measurement uses the same full decision summary as Measurement Detail: pricing-qualified runtime spend, identified waste and rate, optional outcome metrics, attached-baseline change, and the highest-priority open Optimization. Missing outcomes say Not instrumented, not zero. The attached comparison is the one stored with that measurement, so Source Detail and the linked Measurement Detail cannot select conflicting baselines. Spend change remains workload-dependent and renders only when the stored comparison explicitly establishes priced calls on both measurements; a missing availability flag is unavailable rather than an exact zero. Waste change additionally requires the stored detector-compatibility gate. The selected activity period controls both daily charts and the flat measurement-history table. A row is eligible when its daily coverage overlaps that UTC range, even if it was pushed later. Each chart day uses the latest eligible measurement for that source and day, so overlapping audit windows are not added together. If spend and waste-rate coverage differ, the notice names the affected metric. A blank waste-rate day is unavailable—not 0%—because compatible assessment evidence is absent or runtime spend is $0 and no rate denominator exists. Active measurements are the default; archived measurements are opt-in, except an archived source retains access to its history. The history table labels measurement links Activity period, keeps Measured at separate, retains each individual hosted measurement ID and copy control, and omits series IDs, source icons, and singleton snapshot badges. Source ID, stable source key, host, collection environment, and CLI version live under Advanced source metadata. Collection environment remains immutable measurement identity used by comparison and duplicate-label behavior; it is not presented as runtime posture. Customer-facing pages call each stored result a measurement. Audit describes the analysis process or CLI action; snapshot is reserved for the immutable technical identity below. Each stored result has two existing identities:
  • Hosted snapshot ID (aud_…): use this for support, dashboard routes, archive actions, and comparisons. Dashboard copy actions always copy this ID.
  • Analysis fingerprint: content identity used for analysis deduplication. It appears only under Advanced metadata on an audit detail page.
The internal series key is not a support identifier. The dashboard never displays it, copies it, or puts it in the browser address bar.

Workspace API keys

Workspace API keys are used by:
  • xerg audit --push
  • xerg push
  • hosted MCP clients
  • non-interactive hosted automation
Create or rotate a key from Settings. If an older active key cannot be recovered, rotate it once to reveal a fresh secret. Browser-paired activation reuses the workspace’s single active key without showing it during signup or onboarding.
Advanced masked-paste login and XERG_API_KEY for CI remain documented under Authentication and push.

Pushed audit data

Pushed audits use the versioned AuditPushPayload wire contract from @xerg/schemas. The payload includes totals, daily rollups, findings, recommendations, optional compare deltas, and source metadata. Current Push v7 producers can also add detector-attributed waste by workflow, detector-versioned finding changes, explicit comparison-pricing availability, and optional observed parent-to-child agent-delegation paths. Relationship spend is already included in child agent and audit totals. Older Push v7 and v6 payloads remain valid without these fields; missing comparison availability remains conservatively unavailable. The payload excludes raw prompt and response content, local source file paths, local snapshot store paths, and internal local finding details.

Assessment and pricing status

Audit Detail puts a compact persistent status row before its totals. It reports two separate questions while their supporting counts and methodology remain in the collapsed Coverage & methodology section:
  • Waste assessment coverage says whether active finding detectors assessed all, some, or none of the audit evidence.
  • Pricing coverage says whether model-call pricing is complete, partial, entirely unavailable, or unknown for older history.
With complete pricing, spend is labeled Runtime spend. With mixed priced and unpriced calls, it is Known runtime spend, and the unpriced-call count is disclosed rather than treated as zero. When every call is unpriced, monetary totals say Cost unavailable. Older history without pricing-coverage metadata keeps its Reported spend and identifies completeness as unknown. Runtime spend can be observed or catalog-estimated and is not a provider invoice. Finding, Signal, recommendation, and Optimization dollar presentation is cents-based: structured amounts and embedded narrative amounts render with exactly two decimal places. Existing stored narrative copy is normalized at display/copy time, while underlying calculation precision and pushed numeric values are unchanged. A fully assessed audit may say No identified waste found. A partially assessed audit instead leads with Not fully assessed and limits any amount to assessed evidence. An audit with no active-finding assessment leads with Not assessed. Overview and audit-list cells use the same rules. Compare treats Measurement A as the baseline and Measurement B as current, so deltas are B − A. The default workflow selects one source and offers compact activity periods, choosing the newest result as B and the nearest earlier compatible period as A when available. Existing explicit links remain authoritative, and an advanced mode supports independent sources. Spend, identified waste, and waste-rate decreases are favorable; run and call changes remain neutral. Directional waste and new/resolved/changed evidence counts appear only when source key, environment, comparison key, and detector coverage are compatible. Otherwise Compare shows membership-only Only in baseline/current counts and omits directional waste claims. Overview uses one inclusive UTC calendar range across all of its economics. The header offers the last 7, 30, or 90 completed dates and a bounded custom range, and restores from, to, and the selected metric from the URL. Free keeps its existing 30-day history limit; longer choices use the existing upgrade affordance. The default ends yesterday. If that implicit first load is empty but the current UTC date contains measurement evidence, Overview extends the range through today once, marks it in progress, records that state in the URL, and suppresses all deltas. Explicit ranges never auto-extend. Three real keyboard-operable tabs show Runtime spend (qualified as Known runtime spend when incomplete), Identified waste, and Verified savings. Selecting one swaps the single daily chart without refetching. Missing days stay blank rather than becoming zero, and partial identified-waste segments use lower-bound styling. An accessible data table carries the chart’s exact numeric values, and reduced-motion preferences disable nonessential chart animation. Positive partial waste keeps ; a zero becomes No identified waste found only when coverage is complete. Missing or incomparable deltas render as unavailable with a short explanation. Verified savings uses prospective immutable validation facts, not the Optimization’s mutable current status. Each validation action freezes qualified or unqualified evidence; an identical repeat is idempotent, changed evidence creates a new fact, and later regression or archive does not rewrite history. Retained archived before/after measurements can still supply frozen evidence when they remain entitled and satisfy the same workspace, source, runtime, and comparison checks. Only positive qualified facts recorded at or after the advertised fact-history availability time and dated inside the selected range contribute an amount. A range crossing that exact time shows recorded savings as a visible lower bound, labels its counts as recorded history only, leaves earlier dates unavailable, and suppresses the prior-period delta. Fully post-epoch dates retain exact and evidence-specific empty states. A prior-period delta uses only sources with reportable qualified facts in both periods and discloses sources excluded by a cohort mismatch. The strict exact-seven-day, complete-pricing and detector, stable-source, resolved-finding, tracked-outcome, non-declining-success, and lower-spend standard is unchanged. The current top supported Optimization appears in one compact Next action strip beneath the chart. The source-attribute control groups period identified-waste rates by current department or runtime posture on a fixed 0–100% plot with 25-point ticks. Rates inside that domain use literal widths and fleet-marker positions; higher values cap at the endpoint while retaining their real numeric label and an explicit above-scale cue. It keeps exact waste and runtime-spend dollars visible and distinguishes complete figures from proven lower bounds. Warning color is used only when an exact row exceeds an exact fleet rate. Either grouping reconciles to the same period totals. Open plot space is neutral axis space: Xerg does not fill it as a 100% remainder or imply that unclassified spend is efficient. Departments are current-state source metadata available on Free and paid plans. A source can have one department or be Unassigned. Renaming preserves assignments; deleting moves its sources to Unassigned without changing audits. Reassigning a source immediately changes Overview grouping and does not rewrite historical snapshots. Department rows show source counts without exposing internal department identifiers. The MVP has no department hierarchy, budgets, owners, memberships, split allocation, or department-specific access controls. Runtime posture is separate current-state source metadata on Free and paid plans. It is strictly assigned by an interactive workspace admin and accepts only vpc, on-prem, saas, local, hybrid, air-gap, or no value. Existing and newly pushed sources remain Not set until assigned. Xerg never derives posture from a framework, brand, source host, collection environment, or any audit evidence, and subsequent audit pushes never assign, clear, or overwrite it. Assignment immediately changes Sources filtering and Overview grouping without rewriting measurements. The Sources posture select names its default option All runtime postures without a separate visible label while preserving its accessible filter name. Filters match exact posture values; only null, or a temporarily omitted field from an older API during a rolling deployment, is treated as Not set. Source Attributes lists all six fixed values plus Not set with active-source and all-source counts. Those counts come from the workspace source registry and remain complete even when a workspace’s ordinary measurement history is retention-scoped. Source and Source Detail surfaces show the authoritative current posture; historical Measurement lists, Measurement Detail, and Compare do not present posture as a captured measurement fact. The authenticated source contracts expose runtimePosture as one of the six exact values or null on source list/detail and Economic Ledger source rows. GET /v1/sources/runtime-postures returns { runtimePostures: [{ runtimePosture, activeSourceCount, allSourceCount }] } in stable, zero-filled posture order. PUT /v1/sources/:id/runtime-posture assigns or clears posture for active or archived sources, returns the refreshed non-null source even when its measurement history is outside the current entitlement window, and requires an interactive workspace admin; members and API keys remain read-only. Rename, department assignment, archive, and restore preserve posture. These additions do not change Push v7, Event Payload v4, audit identity, CLI behavior, pricing, or entitlements. Overview’s outcome-free Source Performance table starts from every current active source. Each row shows period runtime spend, identified waste and rate, current department and runtime posture, measured-day and pricing/assessment state, and a source drill-down. A source without selected evidence stays visible as No data in period; it is not silently dropped or zero-filled. Outcome fields, success rate, and cost per successful run remain on Source Detail, Measurement Detail, Compare, and the legacy latest Economic Ledger. See the Economic ledger API for both authenticated response contracts. Audit Detail is a decision view with sticky links ordered Summary, Spend and waste drivers, optional Performance, Findings and additional actions, and Analysis details. Its breadcrumb is Sources → source → Measurement; the source name is the sole page heading, while a compact metadata line separates the activity period from when Xerg measured it. Exceptional legacy/archive state remains visible without putting the date range in the title, while collection environment is confined to collapsed Advanced technical metadata. Comparison plus copy/archive measurement actions remain beside the heading. The first section combines pricing-qualified runtime spend, identified waste and rate, success rate, known cost per successful run, and a compact run/call evidence count. The spend metric states Runtime-observed or catalog-estimated; not an invoice. Missing outcomes say Not instrumented, not zero. An adjacent pair shows attached-baseline → current plus signed Runtime spend change, Identified waste change, and Waste-rate change, and promotes the next supported source-level Optimization. Waste-rate changes use percentage points; spend change remains workload-dependent and requires explicit pricing availability for both measurements, while waste change additionally requires compatible detector evidence. Missing legacy availability is labeled unavailable rather than rendered from placeholder zeroes. No unsupported directional Optimization score is shown. Spend and waste drivers follow the decision summary. Performance appears only when at least two usable UTC days can support an actual trend; one-point and zero-point measurements rely on the exact summary metrics rather than duplicate or synthetic daily cards. Partial monetary evidence is a labeled lower bound, unavailable waste-rate days remain blank rather than becoming 0%, and the waste-rate y-axis stays fixed at 0–100%. Monetary findings and their current source-level remediation states share one Findings and additional actions section. The action promoted in Decision summary is excluded from this lower list. Informational Signals are collapsed by default, group by kind and a human-readable workflow label when Push v7 provides one, and retain scope-ID and “Unlabeled run” fallbacks for older history. Every Signal includes kind-specific Suggested investigation — not a savings estimate guidance and creates no savings estimate, Optimization, recommendation, or CI impact. Where spend and waste occurred renders one selected view at a time: workflow economics, model spend, agent spend, or finding-evidence provenance. Workflow economics shows runtime spend, calls, spend share, detector-attributed identified waste, and waste rate; unresolved ownership remains Unattributed, while older audits without wasteByWorkflow say the breakdown is unavailable rather than showing zero. Agent spend keeps authoritative flat totals and, when Push v7 supplies them, groups observed immediate parent-to-child relationships under Delegation paths. Relationship spend is never added to child or audit totals; older delegated totals without stored paths say so, and absent agent attribution is not mislabeled as no delegation. Spend share uses a visibly bounded neutral 0–100% part-to-whole rail: its unfilled portion is spend attributed to other rows, not a quality judgment. Per-detector eligibility and pricing detail use evidence-oriented labels inside collapsed Coverage & methodology. The glossary and Advanced metadata remain collapsed; Advanced carries the hosted snapshot ID, analysis fingerprint, and analyzer version used for support and deduplication.

Access and billing

Dashboard routes require a signed-in browser session. Free workspaces see the last 30 days of pushed audits; older snapshots are hidden, not deleted, and become visible again when the same workspace chooses a paid band. Paid-only pages and controls (Ask Xerg, hosted MCP, Slack, Policies, Linear issue creation) show an upgrade path instead of the feature. Members and billing are managed from Settings. Free workspaces support up to 2 members. Team, Growth, and Scale have no paid member limit and share the same capabilities. Local CLI usage stays free and local-first regardless of workspace plan. Routine Free limits and the paid-band link appear in desktop and mobile account navigation. Global banners remain reserved for member-limit, quota, and billing lifecycle states. At 90 through 99 stored snapshots, the dashboard shows remaining pushes and the UTC reset date. At 100, it shows a deliberate blocked state and paid-band path instead of a generic API error. Older-history guidance appears beside Audits controls. An already saved first-audit success view remains available.