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:
| Card | What it shows |
|---|---|
| Total Products | Count of all products in the fleet |
| Healthy | Products with a healthy status |
| Degraded / Critical | Products with degraded or critical health |
| Total Revenue | Aggregate revenue across all products |
| Features Built | Total features shipped fleet-wide |
| Agent Spend | Total 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:
| Leaderboard | Metric |
|---|---|
| Most Active Agents | agent_jobs count |
| Features Built | features_built count |
| Highest Failure Rate | failure_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.