All Docs
FeaturesSaaS FactoryUpdated March 11, 2026

Fleet Control Room Dashboard

Fleet Control Room Dashboard

The Fleet Control Room (/dashboard/fleet) is a unified operations view for accounts running multiple SaaS products. Instead of navigating product-by-product, you get a single page that surfaces health, revenue, agent activity, and pipeline status across every product simultaneously.

Accessing the Fleet Control Room

Navigate to Dashboard → Fleet Control Room in the sidebar (Gauge icon), or go directly to /dashboard/fleet.

The page is only useful once you have more than one product. A first-run empty state with a CTA is shown for new accounts.


Dashboard Sections

Fleet KPI Cards

Six stat cards at the top of the page show fleet-wide aggregates for the selected time window:

CardWhat it shows
Total ProductsCount of all products in the fleet
HealthyProducts with a healthy status
Degraded / CriticalProducts with degraded or critical health
Total RevenueAggregate revenue across all products
Features BuiltTotal features shipped fleet-wide
Agent SpendTotal agent compute cost

Use the time-window selector (top-right of the KPI bar) to change the reporting period: 7, 14, 30, 60, or 90 days.

Fleet Health Overview Bar

A stacked proportional bar below the KPI cards provides an instant visual of your fleet's health distribution — green (healthy), amber (degraded), and red (critical) segments scale to the actual product counts.

Product Grid

Every product appears as a card. You can:

  • Search by product name using the search box.
  • Filter by health status: All / Healthy / Degraded / Critical.
  • Sort by: Name, Health Score, Recent Activity, Features Built, Revenue, or Failure Rate.

Each product card shows:

  • Health badge (Healthy / Degraded / Critical)
  • Last pipeline run (relative timestamp)
  • Features built and release count
  • Active customer count
  • Period revenue and agent spend
  • Failure rate percentage
  • Quick link to the individual product dashboard

Live Activity Feed

A real-time feed lists all currently-running pipeline runs across the fleet. The feed refreshes automatically every 10 seconds and shows a pulsing indicator when pipelines are active.

Leaderboard Sidebar

Three leaderboard tables rank products across the fleet:

LeaderboardMetric
Most Active Agentsagent_jobs count
Features Builtfeatures_built count
Highest Failure Ratefailure_rate percentage

The leaderboard is useful for quickly identifying which products need attention (failure rate) and which are the most productive (features built, agent jobs).


tRPC API

The fleet dashboard is backed by a dedicated fleet tRPC router. All procedures require an authenticated session.

fleet.getProductCards

Returns a per-product summary for all products the caller has access to.

Input:

{ windowDays: 7 | 14 | 30 | 60 | 90 }

Returns (per product):

{
  id: string;
  name: string;
  health: "healthy" | "degraded" | "critical";
  lastPipelineRun: Date | null;
  agentCost: number;
  featuresBuilt: number;
  releaseCount: number;
  activeCustomers: number;
  periodRevenue: number;
  failureRate: number;
}

Resolved via 7 parallel queries aggregated in a single database round-trip using CTEs.


fleet.getFleetKpis

Returns fleet-level aggregate KPIs.

Input:

{ windowDays: 7 | 14 | 30 | 60 | 90 }

Returns:

{
  totalProducts: number;
  healthyProducts: number;
  degradedProducts: number;
  criticalProducts: number;
  totalRevenue: number;
  featuresBuilt: number;
  agentJobsRun: number;
  failures: number;
  agentSpend: number;
}

fleet.getLeaderboard

Ranks products by a chosen metric.

Input:

{
  metric: "agent_jobs" | "features_built" | "failure_rate" | "health_score" | "revenue";
  windowDays: 7 | 14 | 30 | 60 | 90;
  limit?: number; // defaults to 5
}

Returns: Array of { productId, productName, value } sorted descending by the chosen metric.


fleet.getActivePipelines

Returns all currently-running pipeline runs across all products.

Input: None

Returns:

[
  {
    runId: string;
    productId: string;
    productName: string;
    stage: string;
    startedAt: Date;
  }
]

The dashboard polls this procedure every 10 seconds to keep the live activity feed current.


Loading & Empty States

  • Skeleton loaders are shown for each section while data is being fetched.
  • Empty state — If no products exist yet, a CTA guides the operator to create their first product.
  • Error state — Individual card sections surface fetch errors inline without crashing the rest of the dashboard.