---
# === IDENTITY ===
id: software/startup-dashboard/dashboard-template-library/2026
canonical_question: "What are pre-built dashboard templates by startup type — SaaS, marketplace, ecommerce, services with default KPIs?"
aliases:
  - "startup dashboard template library"
  - "pre-built KPI dashboard templates by business model"
  - "SaaS marketplace ecommerce dashboard defaults"
  - "dashboard template selection by startup type"
entity_type: execution_recipe
domain: software > startup-dashboard > dashboard-template-library
region: global
jurisdiction: global
temporal_scope: 2025-2026

# === VERIFICATION ===
last_verified: 2026-03-13
confidence: 0.88
version: 1.0
first_published: 2026-03-13

# === TEMPORAL VALIDITY ===
temporal_validity:
  status: evolving
  last_breaking_change: "Net Revenue Retention replaced Net Dollar Retention as standard SaaS term (2025); marketplace liquidity metrics standardized by a]16z (Q3 2025)"
  next_review: 2026-09-09
  change_sensitivity: high

# === CONSTRAINTS ===
constraints:
  - "Templates are starting points, not final dashboards. Every startup should customize KPIs within 30 days based on actual data availability and team priorities."
  - "KPI formulas must match the accounting basis and data sources available. Template assumes standard definitions — verify LTV, CAC, and churn calculations match your methodology."
  - "Benchmarks embedded in templates are industry medians. Top-quartile and bottom-quartile ranges should be displayed alongside to avoid false confidence."
  - "Template widget layouts are designed for 1280px+ desktop screens. Mobile-responsive layouts require separate breakpoint configuration."
  - "Data source connections are template-specific. SaaS template assumes Stripe + CRM; marketplace assumes payment processor + matching engine; ecommerce assumes Shopify/WooCommerce."

# === SKIP CONDITIONS ===
skip_this_unit_if:
  - condition: "User needs to build the dashboard infrastructure from scratch"
    use_instead: "software/startup-dashboard/data-integration-architecture/2026"
  - condition: "User needs only one specific domain dashboard (finance, sales, etc.)"
    use_instead: "software/startup-dashboard/financial-operations-dashboard/2026"
  - condition: "User needs industry benchmarks without a dashboard"
    use_instead: "finance/industry-benchmarks/saas-industry-benchmarks-2026/2026"

# === AGENT HINTS ===
inputs_needed:
  - key: business_model
    question: "What is the startup's business model?"
    type: choice
    options: ["SaaS/subscription", "marketplace/platform", "ecommerce/DTC", "services/agency", "hybrid/unsure"]
  - key: stage
    question: "What stage is the startup?"
    type: choice
    options: ["pre-revenue", "early revenue (< $1M ARR)", "growth ($1M-$10M ARR)", "scale ($10M+ ARR)"]
  - key: dashboard_tool
    question: "Which dashboard tool will be used?"
    type: choice
    options: ["Retool", "Metabase", "Google Looker Studio", "Grafana", "custom (React/Next.js)", "no preference"]
  - key: data_sources
    question: "Which data sources are available?"
    type: choice
    options: ["Stripe only", "Stripe + CRM", "Shopify/WooCommerce", "custom database", "multiple sources"]

# === EXECUTION METADATA ===
execution:
  required_inputs:
    - name: "Business model type"
      source: "user input"
      format: "one of: saas, marketplace, ecommerce, services"
    - name: "Available data sources"
      source: "user's tech stack"
      format: "List of connected APIs/databases"
    - name: "Dashboard tool"
      source: "user's platform choice"
      format: "Retool, Metabase, or custom framework"

  outputs:
    - name: "Dashboard template configuration"
      format: "JSON layout + SQL queries"
      description: "Pre-configured dashboard with model-specific KPIs, widget layout, data source mappings, and benchmark thresholds"
    - name: "KPI calculation queries"
      format: "SQL files"
      description: "Ready-to-use SQL queries for each KPI in the template, with inline documentation"
    - name: "Benchmark reference card"
      format: "embedded data"
      description: "Industry median, top-quartile, and bottom-quartile benchmarks for each KPI by business model"

  tools_required:
    - name: "Dashboard tool"
      purpose: "Render template layout and visualizations"
      tier: "free"
      cost: "$0 (Metabase OSS) to $10/user/month (Retool)"
      alternatives: ["Google Looker Studio", "Grafana", "custom React"]
    - name: "PostgreSQL"
      purpose: "KPI calculation engine"
      tier: "free"
      cost: "$0 (Supabase free tier) to $25/month"
      alternatives: ["BigQuery", "DuckDB"]

  credentials_needed:
    - service: "Data source (Stripe, Shopify, etc.)"
      type: "API key"
      where_to_get: "Platform developer settings"
      free_tier_limits: "Varies by platform"

  estimated_duration: "1-3 hours to deploy a template; 2-4 hours to customize"
  estimated_cost: "$0 (open source tools) to $50/month"

# === DISTRIBUTION ===
canonical_source: "https://knowledgelib.io/software/startup-dashboard/dashboard-template-library/2026"
suggested_citation: "Source: knowledgelib.io — AI Knowledge Library (verified 2026-03-13)"

# === RELATED UNITS ===
related_kos:
  depends_on:
    - id: "software/startup-dashboard/data-integration-architecture/2026"
      label: "Data integration layer templates connect to"
  feeds_into:
    - id: "software/startup-dashboard/multi-tenant-architecture/2026"
      label: "Templates used in multi-tenant platform as selectable defaults"
  related_to:
    - id: "finance/saas-metrics/cac-ltv-benchmarks/2026"
      label: "B2B SaaS CAC and LTV benchmarks — the core unit-economics metrics — and how to apply them"
  alternative_to:
    - id: "software/startup-dashboard/executive-command-center-design/2026"
      label: "Executive command center design — cross-functional 8-12 KPI selection, RAG thresholds, alert triggers and action rules for a single aggregated screen"

# === SOURCES ===
sources:
  - id: src1
    title: "A KPI Dashboard for Early-Stage SaaS Startups"
    author: Christoph Janz
    url: http://christophjanz.blogspot.com/2013/04/a-kpi-dashboard-for-early-stage-saas.html
    type: industry_guide
    published: 2025-01-01
    reliability: high
  - id: src2
    title: "Marketplace Metrics: 26 Key Metrics"
    author: Sharetribe
    url: https://www.sharetribe.com/academy/measure-your-success-key-marketplace-metrics/
    type: industry_guide
    published: 2025-06-01
    reliability: high
  - id: src3
    title: "10 Essential SaaS Dashboard Metrics and KPIs for 2026"
    author: FanRuan
    url: https://www.fanruan.com/en/blog/saas-dashboard-essential-metrics-kpis
    type: industry_guide
    published: 2025-11-01
    reliability: high
  - id: src4
    title: "15 Essential E-commerce KPIs and Metrics to Track in 2026"
    author: ThoughtSpot
    url: https://www.thoughtspot.com/data-trends/ecommerce-kpis-metrics
    type: industry_guide
    published: 2025-10-01
    reliability: high
  - id: src5
    title: "10 Marketplace KPIs for VC-Backed Companies"
    author: Phoenix Strategy Group
    url: https://www.phoenixstrategy.group/blog/10-marketplace-kpis-for-vc-backed-companies
    type: industry_guide
    published: 2025-08-01
    reliability: high
  - id: src6
    title: "SaaS Metrics Benchmarks 2026"
    author: PM Toolkit
    url: https://pmtoolkit.ai/benchmarks/saas-metrics-2026
    type: industry_guide
    published: 2025-12-01
    reliability: high
---

# Dashboard Template Library

## Purpose

This recipe produces a library of pre-built dashboard templates organized by startup business model (SaaS, marketplace, ecommerce, services), each with default KPIs, widget layouts, SQL calculation queries, and embedded industry benchmarks. The output enables any startup to deploy a functional metrics dashboard in 1-3 hours by selecting their business model template, connecting data sources, and customizing from a working baseline rather than starting from scratch. [src1]

## Prerequisites
<!-- Agents: verify ALL prerequisites before executing. Missing prerequisites = failed execution. -->

- [ ] **Business model identified** — SaaS/subscription, marketplace/platform, ecommerce/DTC, or services/agency
- [ ] **PostgreSQL database** with at least 3 months of transactional data — [Supabase](https://supabase.com) or [Neon](https://neon.tech)
- [ ] **Dashboard tool** — [Retool](https://retool.com), [Metabase](https://www.metabase.com), or custom React framework
- [ ] **Primary data source connected** — Stripe (SaaS), Shopify (ecommerce), or custom payment system (marketplace)
- [ ] **Revenue model parameters** — pricing structure, billing frequency, commission/take rates

## Constraints
<!-- Hard rules. Agents: enforce throughout execution. -->

- Templates are starting points. Customize KPIs within 30 days based on actual data availability and team priorities. Stale default templates mislead decision-making.
- KPI formulas assume standard definitions (e.g., LTV = ARPU / monthly churn rate). Verify calculations match your accounting methodology before presenting to investors. [src1]
- Benchmarks are industry medians from 2025-2026 data. Show top-quartile and bottom-quartile ranges alongside to avoid false confidence. [src6]
- Widget layouts designed for 1280px+ desktop. Mobile layouts require separate breakpoint configuration in the dashboard tool.
- Data source connections are template-specific. Swapping data sources (e.g., Stripe to Paddle) requires query modifications — templates are not data-source-agnostic.

## Tool Selection Decision

```
Which template?
├── SaaS / Subscription business
│   └── TEMPLATE A: SaaS Metrics — MRR, churn, NRR, LTV/CAC, pipeline
├── Marketplace / Platform business
│   └── TEMPLATE B: Marketplace Metrics — GMV, take rate, liquidity, match rate
├── Ecommerce / DTC business
│   └── TEMPLATE C: Ecommerce Metrics — AOV, ROAS, conversion rate, inventory
└── Services / Agency business
    └── TEMPLATE D: Services Metrics — utilization, project margin, pipeline, capacity
```

| Template | Primary KPIs | Data Sources | Setup Time | Best For |
|----------|-------------|-------------|-----------|----------|
| A: SaaS | MRR, ARR, Churn, NRR, LTV/CAC | Stripe, CRM, Accounting | 1-2 hours | Subscription businesses |
| B: Marketplace | GMV, Take Rate, Liquidity, Match Rate | Payment processor, matching DB | 2-3 hours | Two-sided platforms |
| C: Ecommerce | AOV, ROAS, Conversion, Inventory | Shopify/WooCommerce, GA4, Ads | 1-2 hours | DTC brands, online retail |
| D: Services | Utilization, Project Margin, Pipeline | Time tracking, CRM, Invoicing | 2-3 hours | Agencies, consulting firms |

## Execution Flow

### Step 1: Select and Deploy Template

**Duration**: 15-30 minutes
**Tool**: Dashboard tool

Choose the template matching your business model. Each template includes a JSON layout configuration and a set of SQL queries.

Template A — SaaS default layout:

```
SaaS Dashboard Template
┌──────────────────────────────────────────────────────┐
│  KPI Row: MRR ($) | ARR ($) | Net Churn (%) | NRR (%)│
│           LTV:CAC | CAC Payback (mo) | Active Cust.  │
├──────────────────────────┬───────────────────────────┤
│  MRR Trend + Growth %    │  MRR Waterfall            │
│  (line + bar combo)      │  (new/expansion/churn)    │
├──────────────────────────┼───────────────────────────┤
│  Cohort Retention Heatmap│  Revenue by Plan/Tier     │
│  (monthly cohorts)       │  (stacked bar)            │
├──────────────────────────┴───────────────────────────┤
│  LTV/CAC Trend (dual axis) | Pipeline Value (funnel) │
├──────────────────────────────────────────────────────┤
│  Churn Analysis: by reason, by plan, by tenure        │
└──────────────────────────────────────────────────────┘
```

Template B — Marketplace default layout:

```
Marketplace Dashboard Template
┌──────────────────────────────────────────────────────┐
│  KPI Row: GMV ($) | Net Revenue ($) | Take Rate (%)  │
│           Liquidity (%) | Match Rate | Active Users   │
├──────────────────────────┬───────────────────────────┤
│  GMV Trend by Category   │  Supply/Demand Balance    │
│  (stacked area)          │  (buyer:seller ratio)     │
├──────────────────────────┼───────────────────────────┤
│  Transaction Funnel      │  Time-to-Match Histogram  │
│  (search→request→book)   │  (distribution by cat.)   │
├──────────────────────────┴───────────────────────────┤
│  Cohort Retention (buyers)│ Cohort Retention (sellers)│
├──────────────────────────────────────────────────────┤
│  Geographic Heatmap | Category Growth Matrix          │
└──────────────────────────────────────────────────────┘
```

Template C — Ecommerce default layout:

```
Ecommerce Dashboard Template
┌──────────────────────────────────────────────────────┐
│  KPI Row: Revenue ($) | Orders (#) | AOV ($) | Conv %│
│           ROAS | CAC ($) | Repeat Rate (%)            │
├──────────────────────────┬───────────────────────────┤
│  Revenue by Channel      │  Conversion Funnel        │
│  (organic/paid/social)   │  (visit→cart→checkout→buy)│
├──────────────────────────┼───────────────────────────┤
│  Product Performance     │  Ad Spend vs Revenue      │
│  (top 10 by revenue)     │  (ROAS by channel)        │
├──────────────────────────┴───────────────────────────┤
│  Inventory Status (stock levels by SKU category)      │
├──────────────────────────────────────────────────────┤
│  Customer Segments: new vs repeat, LTV distribution   │
└──────────────────────────────────────────────────────┘
```

Template D — Services default layout:

```
Services Dashboard Template
┌──────────────────────────────────────────────────────┐
│  KPI Row: Revenue ($) | Utilization (%) | Avg Margin │
│           Pipeline ($) | Active Projects | Capacity   │
├──────────────────────────┬───────────────────────────┤
│  Revenue by Client       │  Utilization by Person    │
│  (top 10 + other)        │  (target line at 75%)     │
├──────────────────────────┼───────────────────────────┤
│  Project Margin Scatter  │  Pipeline by Stage        │
│  (budget vs actual)      │  (weighted forecast)      │
├──────────────────────────┴───────────────────────────┤
│  Resource Capacity: available hours by role/seniority │
├──────────────────────────────────────────────────────┤
│  Client Health Scores: NPS, project status, renewals  │
└──────────────────────────────────────────────────────┘
```

**Verify**: Template layout renders in dashboard tool. All widget placeholders visible.
**If failed**: Check dashboard tool supports the JSON layout format. Retool uses JSON, Metabase uses saved questions + dashboard cards.

### Step 2: Configure KPI Calculations

**Duration**: 30-60 minutes
**Tool**: SQL

Template A — SaaS KPI queries:

```sql
-- MRR (Monthly Recurring Revenue)
SELECT
  DATE_TRUNC('month', period_start) as month,
  SUM(amount / EXTRACT(MONTH FROM AGE(period_end, period_start))) as mrr
FROM subscriptions
WHERE status = 'active'
GROUP BY month ORDER BY month;

-- Net Revenue Retention (NRR)
WITH cohort_revenue AS (
  SELECT customer_id,
    DATE_TRUNC('month', first_payment) as cohort_month,
    DATE_TRUNC('month', payment_date) as payment_month,
    SUM(amount) as revenue
  FROM payments
  GROUP BY customer_id, cohort_month, payment_month
)
SELECT cohort_month,
  SUM(revenue) FILTER (WHERE payment_month = cohort_month + INTERVAL '12 months')
  / NULLIF(SUM(revenue) FILTER (WHERE payment_month = cohort_month), 0) * 100 as nrr_12mo
FROM cohort_revenue GROUP BY cohort_month;

-- Logo Churn Rate (monthly)
SELECT month,
  churned_customers::NUMERIC / NULLIF(start_customers, 0) * 100 as churn_rate
FROM (
  SELECT DATE_TRUNC('month', churned_at) as month,
    COUNT(*) as churned_customers,
    (SELECT COUNT(*) FROM customers WHERE created_at < DATE_TRUNC('month', c.churned_at)
     AND (churned_at IS NULL OR churned_at >= DATE_TRUNC('month', c.churned_at))) as start_customers
  FROM customers c WHERE churned_at IS NOT NULL
  GROUP BY month
) sub;
```

Template B — Marketplace KPI queries:

```sql
-- GMV (Gross Merchandise Value)
SELECT DATE_TRUNC('month', completed_at) as month,
  SUM(transaction_amount) as gmv,
  SUM(platform_fee) as net_revenue,
  ROUND(SUM(platform_fee) / NULLIF(SUM(transaction_amount), 0) * 100, 2) as take_rate_pct
FROM transactions
WHERE status = 'completed'
GROUP BY month ORDER BY month;

-- Liquidity (% of listings that result in a transaction within 30 days)
SELECT DATE_TRUNC('month', created_at) as month,
  COUNT(*) FILTER (WHERE first_transaction_at IS NOT NULL
    AND first_transaction_at - created_at <= INTERVAL '30 days')::NUMERIC
  / NULLIF(COUNT(*), 0) * 100 as liquidity_pct
FROM listings GROUP BY month;

-- Buyer:Seller Ratio
SELECT DATE_TRUNC('month', last_active) as month,
  COUNT(*) FILTER (WHERE user_type = 'buyer') as buyers,
  COUNT(*) FILTER (WHERE user_type = 'seller') as sellers,
  ROUND(COUNT(*) FILTER (WHERE user_type = 'buyer')::NUMERIC
    / NULLIF(COUNT(*) FILTER (WHERE user_type = 'seller'), 0), 2) as buyer_seller_ratio
FROM users WHERE last_active >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY month;
```

Template C — Ecommerce KPI queries:

```sql
-- AOV (Average Order Value) and Conversion Rate
SELECT DATE_TRUNC('month', order_date) as month,
  COUNT(*) as orders,
  SUM(total_amount) as revenue,
  ROUND(AVG(total_amount), 2) as aov,
  ROUND(COUNT(*)::NUMERIC / NULLIF(sessions.count, 0) * 100, 2) as conversion_rate
FROM orders
LEFT JOIN (SELECT DATE_TRUNC('month', session_date) as month, COUNT(*) as count
  FROM sessions GROUP BY month) sessions USING (month)
GROUP BY month, sessions.count ORDER BY month;

-- ROAS by Channel
SELECT channel,
  SUM(revenue_attributed) as revenue,
  SUM(ad_spend) as spend,
  ROUND(SUM(revenue_attributed) / NULLIF(SUM(ad_spend), 0), 2) as roas
FROM marketing_attribution
WHERE attribution_date >= CURRENT_DATE - INTERVAL '30 days'
GROUP BY channel ORDER BY roas DESC;

-- Repeat Purchase Rate
SELECT DATE_TRUNC('month', first_order_date) as cohort_month,
  COUNT(*) as total_customers,
  COUNT(*) FILTER (WHERE order_count > 1) as repeat_customers,
  ROUND(COUNT(*) FILTER (WHERE order_count > 1)::NUMERIC / COUNT(*) * 100, 1) as repeat_rate
FROM (
  SELECT customer_id, MIN(order_date) as first_order_date, COUNT(*) as order_count
  FROM orders GROUP BY customer_id
) sub GROUP BY cohort_month;
```

**Verify**: All KPI queries return data for at least 3 months. No NULL values in primary metrics.
**If failed**: Check table names — templates assume standard naming. Map to your actual schema.

### Step 3: Embed Industry Benchmarks

**Duration**: 30 minutes
**Tool**: SQL or dashboard config

```json
{
  "saas_benchmarks": {
    "mrr_growth_monthly": {"bottom_quartile": 3, "median": 8, "top_quartile": 15, "unit": "%"},
    "logo_churn_monthly": {"bottom_quartile": 5, "median": 2.5, "top_quartile": 1, "unit": "%"},
    "nrr_annual": {"bottom_quartile": 90, "median": 106, "top_quartile": 120, "unit": "%"},
    "ltv_cac_ratio": {"bottom_quartile": 1.5, "median": 3.0, "top_quartile": 5.0, "unit": "x"},
    "cac_payback_months": {"bottom_quartile": 24, "median": 15, "top_quartile": 8, "unit": "months"},
    "gross_margin": {"bottom_quartile": 60, "median": 72, "top_quartile": 82, "unit": "%"}
  },
  "marketplace_benchmarks": {
    "take_rate": {"bottom_quartile": 5, "median": 12, "top_quartile": 20, "unit": "%"},
    "liquidity_30d": {"bottom_quartile": 15, "median": 30, "top_quartile": 60, "unit": "%"},
    "buyer_seller_ratio": {"bottom_quartile": 2, "median": 5, "top_quartile": 10, "unit": "x"},
    "gmv_growth_monthly": {"bottom_quartile": 5, "median": 12, "top_quartile": 25, "unit": "%"},
    "repeat_transaction_rate": {"bottom_quartile": 20, "median": 40, "top_quartile": 65, "unit": "%"}
  },
  "ecommerce_benchmarks": {
    "aov": {"bottom_quartile": 35, "median": 65, "top_quartile": 120, "unit": "$"},
    "conversion_rate": {"bottom_quartile": 1.0, "median": 2.5, "top_quartile": 4.5, "unit": "%"},
    "roas": {"bottom_quartile": 1.5, "median": 3.0, "top_quartile": 5.0, "unit": "x"},
    "repeat_rate_90d": {"bottom_quartile": 15, "median": 27, "top_quartile": 45, "unit": "%"},
    "cart_abandonment": {"bottom_quartile": 80, "median": 70, "top_quartile": 55, "unit": "%"}
  },
  "services_benchmarks": {
    "utilization_rate": {"bottom_quartile": 55, "median": 68, "top_quartile": 78, "unit": "%"},
    "project_margin": {"bottom_quartile": 25, "median": 40, "top_quartile": 55, "unit": "%"},
    "revenue_per_employee": {"bottom_quartile": 120000, "median": 180000, "top_quartile": 250000, "unit": "$"},
    "client_retention_annual": {"bottom_quartile": 70, "median": 82, "top_quartile": 92, "unit": "%"},
    "win_rate": {"bottom_quartile": 15, "median": 25, "top_quartile": 40, "unit": "%"}
  }
}
```

Display benchmarks as colored bands on KPI charts: green (above median), yellow (median), red (below bottom quartile). Add benchmark reference lines on trend charts.

**Verify**: Benchmark bands visible on all KPI widgets. Color coding matches threshold values.
**If failed**: Check conditional formatting rules in dashboard tool.

### Step 4: Connect Data Sources

**Duration**: 30-60 minutes
**Tool**: Dashboard tool data source configuration

For each template, connect the required data sources:

| Template | Primary Source | Secondary Source | Optional |
|----------|---------------|-----------------|----------|
| SaaS | Stripe / billing DB | CRM (HubSpot/Pipedrive) | Accounting (QBO/Xero) |
| Marketplace | Payment processor / transaction DB | User/listing DB | Analytics (GA4) |
| Ecommerce | Shopify / WooCommerce API | Google Analytics 4 | Ad platforms (Meta, Google) |
| Services | Time tracking (Harvest/Toggl) | CRM / invoicing | Project management (Asana) |

**Verify**: KPI widgets populate with real data. At least 3 months of history visible.
**If failed**: Check API connection credentials. Verify date range filters include historical data.

### Step 5: Customize and Extend

**Duration**: 1-2 hours
**Tool**: Dashboard tool

1. Remove KPIs not relevant to your business (e.g., remove "Inventory" widgets for digital-only ecommerce)
2. Add company-specific metrics not in the template (e.g., "Trial-to-Paid Conversion" for freemium SaaS)
3. Set alert thresholds based on your targets, not industry benchmarks
4. Configure date range defaults: weekly for operational, monthly for strategic, quarterly for board
5. Create filtered views: CEO view (all KPIs), dept head view (domain-specific), investor view (financials only)

**Verify**: All active widgets show data. Custom KPIs calculate correctly. Alert thresholds fire test notifications.
**If failed**: Check SQL query syntax for custom metrics. Verify data types match widget expectations.

### Step 6: Export Template for Reuse

**Duration**: 15-30 minutes
**Tool**: Dashboard tool export or JSON

```javascript
// Export template configuration for sharing or multi-tenant use
const templateExport = {
  template_id: 'saas-standard-v1',
  model: 'saas',
  version: '2026.1',
  widgets: dashboardWidgets.map(w => ({
    id: w.id,
    type: w.type,
    position: w.position,
    query_template: w.query, // with {{table_name}} placeholders
    benchmarks: w.benchmarks,
    format: w.format
  })),
  required_tables: ['subscriptions', 'customers', 'payments', 'pipeline'],
  optional_tables: ['marketing_spend', 'support_tickets'],
  setup_instructions: 'Map your tables to the required schema, then import this JSON into your dashboard tool.'
};
```

**Output files**:
- `template-{model}-v1.json` — Full dashboard layout + queries
- `queries/{model}/` — Individual SQL files per KPI
- `benchmarks-{model}-2026.json` — Benchmark data for embedding

## Output Schema

```json
{
  "output_type": "dashboard_template_library",
  "format": "JSON configuration + SQL query files",
  "templates": [
    {"model": "saas", "kpi_count": 12, "widgets": 8, "queries": 6},
    {"model": "marketplace", "kpi_count": 10, "widgets": 8, "queries": 6},
    {"model": "ecommerce", "kpi_count": 10, "widgets": 7, "queries": 5},
    {"model": "services", "kpi_count": 8, "widgets": 6, "queries": 5}
  ],
  "benchmarks_included": true,
  "customization_level": "widget-level (add, remove, reposition, restyle)"
}
```

## Quality Benchmarks

| Quality Metric | Minimum Acceptable | Good | Excellent |
|---------------|-------------------|------|-----------|
| KPI coverage | 5 core KPIs per model | 8-10 KPIs + benchmarks | 12+ KPIs + cohort analysis |
| Data freshness | Daily refresh | Hourly refresh | Real-time (streaming) |
| Benchmark accuracy | 2024 data | 2025 data | 2026 H1 data |
| Template reusability | One-off import | Parameterized queries | Full multi-tenant integration |
| Customization time | 4+ hours to adapt | 1-2 hours | < 30 minutes (guided wizard) |

**If below minimum**: Check that SQL queries use standard table/column naming conventions. Templates with hardcoded table names break on import.

## Error Handling

| Error | Likely Cause | Recovery Action |
|-------|-------------|----------------|
| KPI shows $0 or NULL | Table name mismatch between template and actual schema | Map template table names to your schema; check column names |
| Benchmark bands not visible | Dashboard tool doesn't support conditional formatting | Add benchmark values as reference lines instead of background bands |
| Cohort heatmap empty | Insufficient historical data (< 6 months) | Switch to simple line chart until enough cohort data accumulates |
| Conversion funnel shows 100% at every stage | Funnel stages not ordered correctly in query | Verify stage ordering matches your actual user journey |
| ROAS shows negative values | Revenue attribution window too narrow | Extend attribution window from 7 to 30 days; check UTM parameter capture |
| Template import fails | Dashboard tool version incompatibility | Export as individual queries + manual widget creation as fallback |

## Cost Breakdown

| Component | Free Tier | Paid Tier | At Scale |
|-----------|-----------|-----------|----------|
| Dashboard (Metabase OSS) | $0 (self-hosted) | $85/mo (cloud) | $85/mo |
| Dashboard (Retool) | $0 (5 users) | $10/user/mo | $50/mo |
| Database (Supabase) | $0 (500MB) | $25/mo | $25/mo |
| Analytics (GA4) | $0 | $0 | $0 |
| **Total** | **$0** | **$35-110/mo** | **$75-135/mo** |

## Anti-Patterns

### Wrong: Using a SaaS template for a marketplace business
Marketplace fundamentals (GMV, take rate, liquidity, match rate) are structurally different from SaaS metrics (MRR, churn, NRR). Forcing marketplace data into SaaS templates produces misleading KPIs — a marketplace with $1M GMV and 10% take rate shows $100K in "revenue," but SaaS benchmarks treat that as low-growth. [src5]

### Correct: Match template to business model, then customize
Select the template that matches your primary revenue model. Hybrid businesses (e.g., SaaS with marketplace component) should start with the dominant model and add KPIs from the secondary model as custom widgets.

### Wrong: Treating template benchmarks as targets
Industry median benchmarks describe average performance, not your target. A pre-seed startup comparing against Series B medians will appear to underperform. Benchmarks without stage context mislead founders and investors. [src6]

### Correct: Layer stage-appropriate benchmarks with your own targets
Display three reference points on each KPI: (1) your own target, (2) stage-matched median, (3) top-quartile for your stage. Set targets based on your fundraising plan, not on general industry data.

## When This Matters

Use when a startup needs to deploy a metrics dashboard quickly from a working template rather than designing one from scratch. Especially valuable for founders who know their business model but lack dashboard design experience, or for agencies deploying dashboards for multiple startup clients. This recipe provides the templates — for building the underlying data infrastructure, use the data integration architecture recipe.

## Related Units

- [Data Integration Architecture](/software/startup-dashboard/data-integration-architecture/2026) — data pipeline that templates connect to
- [Multi-Tenant Dashboard Architecture](/software/startup-dashboard/multi-tenant-architecture/2026) — templates used as selectable defaults in multi-tenant platform
- [Financial Operations Dashboard](/software/startup-dashboard/financial-operations-dashboard/2026) — detailed finance dashboard (beyond template basics)
- [SaaS Unit Economics Benchmarks](/finance/saas-benchmarks/saas-unit-economics/2026) — benchmark data referenced in SaaS template
