Design

SaaS Metric & KPI Card UX Patterns: Real Screenshots (2026)

The metric card is the small tile that carries a single number — revenue, active users, error rate, MRR — and it is the most repeated component in the whole SaaS product, stacked in rows across every dashboard, billing page, and admin overview. It looks like the easiest thing in the interface to build and is quietly one of the easiest to get wrong: a bare number with no comparison is trivia, not insight, so the real work of a metric card is context. This guide covers the decisions that turn a stat tile into something a user can act on — pairing the value with a delta against a prior period, showing direction and whether up is actually good, adding a sparkline for shape, making the comparison window explicit, letting the card drill into the detail behind the number, handling loading and empty and error states, and keeping a row of cards scannable instead of a wall of digits — each shown with real SaaS screenshots instead of mockups.

Rakesh Mondal

Rakesh Mondal

Ai Native SaaS UX UI Product Designer

·17 min read
Share

Open almost any SaaS dashboard and the first thing you see is a row of small tiles, each holding a single number: revenue this month, active users, sign-ups today, error rate, MRR, open tickets. That tile — the metric card, the KPI card, the stat card — is the most repeated component in the entire product. It sits at the top of the analytics view, on the billing page, in the admin overview, in the project summary, in the onboarding progress panel. Stripe leads with gross volume and its change; Vercel shows requests and bandwidth with deltas; Linear surfaces cycle and issue counts; PostHog and Datadog stack dozens of them; a customer-support tool opens on tickets, response time, and CSAT. Because it is drawn so often and looks so simple, the metric card is the component teams are most tempted to ship as a bare label and a big number — and that is exactly the version that fails, because a number with no context is trivia, not insight.

DocuX Dashboard screen with real SaaS Document Management UI patterns - SaaSUI design example
DocuX logo
DocuX
Document Management·Dashboard
View all

DocuX — a real dashboard screen from the SaaSUI library.

The whole job of a metric card is to answer three questions in one glance: what is the value, how has it changed, and is that good or bad. A card that shows "1,204 active users" tells the user almost nothing — 1,204 compared to what? Up from last week or collapsing from last month? Is more users the goal, or is this a churn-risk cohort where the number should be smaller? The difference between a decorative stat tile and a genuinely useful one is entirely in the context it wraps around the number: a comparison against a prior period, a direction and a delta, coloring that reflects whether the movement is desirable, a sparkline for shape, and a way to get from the summary to the detail. It is worth being precise about scope: this is not about the whole analytics dashboard (the layout, the chart grid, the filters — that is its own surface), it is about the single tile that appears dozens of times across the product. The decisions below are what separate a metric card users read and act on from a row of context-free digits, each shown with real SaaS screenshots so you can see how shipped products handle it.

Never ship a number without a comparison

The single most important decision is that a metric card must pair its value with a point of comparison, because a raw number is almost meaningless on its own. "$48,210" is trivia; "$48,210, up 12% vs last month" is a signal a user can act on. The comparison is what turns a stat into a story: it tells the user whether the metric is healthy, trending, or in trouble without making them remember what it was yesterday. The strongest pattern is a delta against a defined prior period — this week vs last week, this month vs last month, last 30 days vs the previous 30 — rendered right on the card as a percentage or absolute change. Some cards go further and offer a comparison against a target or goal ("$48k of $60k monthly target") which reframes the number as progress rather than a bare count. What almost never earns its place is a metric card that shows only the current value with no anchor at all; it forces the user to either already know the baseline or go dig for it, which defeats the purpose of a summary tile. The rule is simple and load-bearing: if a card shows a number, it should also show what that number is being measured against, because the comparison is the insight and the number alone is just a fact.

Dovetail Dashboard screen with real SaaS Consumer Research UI patterns - SaaSUI design example
Dovetail logo
Dovetail
Consumer Research·Dashboard
View all

Dovetail — a real dashboard screen from the SaaSUI library.

Show direction — and be honest about whether up is good

Once a card carries a delta, it needs to communicate direction at a glance, and this is where a small but critical decision hides: up is not always good. The conventional treatment is an arrow and a color — green up, red down — and it works beautifully for revenue, active users, or conversion, where more is the goal. But the same green-up/red-down reflex is actively misleading for metrics where less is better: error rate, churn, page load time, support ticket backlog, refunds, bounce rate. A card that colors a rising error rate green because "the number went up" is worse than no color at all, because it signals success during a failure. The mature pattern is to decouple direction from sentiment: the arrow shows which way the number moved, but the color reflects whether that movement is good or bad for this specific metric. So churn falling is green-down, error rate rising is red-up, and the user reads sentiment correctly without having to think. Getting this right per-metric is a real design decision, not a global style: each card needs to know its own "good direction" so the coloring tells the truth. A row of stat cards where green always means up will eventually celebrate the wrong thing, and users learn to distrust the colors entirely — which throws away the fastest signal the card has.

dropbox sign formerly hellosign screenshot 16
Dropbox Sign (formerly HelloSign) logo
Dropbox Sign (formerly HelloSign)
Document Management·Dashboard
View all

Dropbox Sign (formerly HelloSign) — a real dashboard screen from the SaaSUI library.

Add a sparkline for shape, not decoration

A single delta answers "up or down since the last period", but it hides the shape of how the metric got there, and that shape is often the real story — which is what the small inline chart on a metric card, the sparkline, is for. A sparkline is a tiny, axis-less trend line tucked into the card that shows the recent trajectory: steady climb, sudden spike, gradual decay, or a wobble that a single point-to-point delta would flatten into a misleadingly calm "up 3%". Two cards can both read "up 3% this month" while one rose smoothly and the other crashed mid-month and recovered — the sparkline is what makes that difference visible in the same glance. The discipline is that the sparkline should support the number, not compete with it: it is decoration if it has no scale a user can reason about and no relationship to the headline value, and it is signal when it shares the card's period and shows the trajectory behind the delta. Keep it small, keep it secondary to the value and the comparison, and resist turning the metric card into a full chart — if the shape needs axes, a legend, and interaction, that belongs in the detail view the card links to, not crammed into a tile. Used with restraint, the sparkline adds the one dimension a delta cannot carry, the path the metric took, without turning a scannable summary tile into a busy micro-dashboard.

Dub Dashboard screen with real SaaS Productivity UI patterns - SaaSUI design example
Dub logo
Dub
Productivity·Dashboard
View all

Dub — a real dashboard screen from the SaaSUI library.

Make the comparison window explicit

A delta is only meaningful if the user knows what it is being compared against, and a surprising number of metric cards show "+12%" with no indication of the window, which quietly undermines trust in the whole number. Twelve percent up compared to what — yesterday, last week, last month, the same period last year? The same card reading "+12% vs previous 30 days" and "+12% vs yesterday" tells two completely different stories, and a user who cannot tell which one they are looking at cannot act on it. The reliable pattern is to state the comparison period on or near the card in plain language — "vs last month", "vs previous 7 days", "vs same week last year" — so the delta is anchored and unambiguous. This matters even more when a dashboard has a global date-range control at the top: the metric cards should reflect and clearly echo that selected range, so changing the range from "last 7 days" to "last quarter" visibly updates both the values and the comparison, and the user is never left guessing whether a card is honoring the filter. The failure mode is a card whose delta silently ignores the global range, or whose comparison window is a hidden assumption baked into the code — either way the user is reading a percentage without knowing its denominator. Making the window explicit is a small label with an outsized effect on whether the card is trustworthy: it turns an ambiguous percentage into a precise, dated statement.

Dukaan Dashboard screen with real SaaS E-commerce UI patterns - SaaSUI design example
Dukaan logo
Dukaan
E-commerce·Dashboard
View all

Dukaan — a real dashboard screen from the SaaSUI library.

Let the card drill into the detail behind the number

A metric card is a summary, and a good summary invites a next step: when a user sees revenue jump or error rate spike, their immediate question is "why", and the card should be the doorway to the answer rather than a dead end. The pattern is to make the card — or a clear affordance on it — a link into the detailed view behind the metric: click the revenue card to land on the revenue breakdown by plan and period, click the active-users card to reach the cohort view, click the error-rate card to open the log filtered to those errors. This turns the row of tiles from a static readout into the top of a drill-down: the cards are the overview, and each one is a route into the workflow that explains or acts on it. The discipline is to make the interaction discoverable and its destination predictable — the card should signal that it is clickable, and the click should land somewhere the user expects (the detail for that exact metric and period), not a generic reports page they then have to re-filter. Not every card needs to be a link; a purely informational tile can stand alone. But for any metric where the natural response to a surprising value is "show me more", pairing the summary with a drill-in is what makes the card part of a workflow instead of a decorative statistic, and it is a defining trait of dashboards users actually operate from rather than just glance at.

Floik Dashboard screen with real SaaS App Experience UI patterns - SaaSUI design example
Floik logo
Floik
App Experience·Dashboard
View all

Floik — a real dashboard screen from the SaaSUI library.

Design the loading, empty, and error states of the card itself

Metric cards are populated by queries that can be slow, empty, or fail, and because a row of cards is usually the first thing rendered, their non-ideal states are highly visible and worth designing on purpose rather than leaving to chance. The loading state should hold the layout: a skeleton placeholder in the shape of the card — a shimmer where the value and delta will be — so the dashboard does not reflow or jump as numbers arrive, and the user sees structure immediately instead of a blank gap or a spinner soup. The empty or zero state needs a real decision: a genuine zero ("0 errors") is often good news and should read as calm, not broken, while "no data yet" for a new account is an onboarding moment that should explain what will appear here once the user takes the first action — the two look identical as a bare "0" and must be distinguished. The error state — the query failed, the metric could not be computed — should say so in place, on the card, rather than showing a stale value, a misleading zero, or a blank that the user mistakes for real data; a small "couldn't load" with a retry is far better than a card that silently lies. The through-line is that a metric card is a live data component, and its value is only trustworthy if its non-value states are honest: a skeleton while loading, a distinguished empty vs zero, and an explicit error rather than a fabricated number, so the user always knows whether they are looking at a real measurement or the absence of one.

Keep a row of cards scannable, not a wall of digits

Metric cards rarely appear alone — they come in rows and grids, often a dozen at the top of a dashboard — and the design problem shifts from the single tile to the set, because a wall of equally-weighted numbers is as useless as no numbers at all. The first discipline is hierarchy: not every metric deserves the same visual weight, so lead with the two or three that matter most (the North Star and its closest drivers) at a larger size or a more prominent position, and let secondary metrics sit smaller or below. The second is consistency: cards in a row should share a structure — value, label, delta, sparkline in the same arrangement — so the eye can scan across them without re-learning each tile, and units and formatting should be consistent (abbreviate 1,204,000 to 1.2M, align decimals, keep currency symbols uniform) so the row reads as a set rather than a ransom note of differently-styled figures. The third is restraint on count: a dashboard that opens with twenty cards has effectively prioritized nothing, and the fix is to promote the vital few and move the rest into a detail view or a secondary section. The goal is that a user can scan the row in one pass and know the state of the product — which is only possible when the cards are ordered by importance, formatted consistently, and few enough to actually read, rather than an exhaustive dump of every number the system can compute.

The details that separate a read-and-act metric card from a decorative one

Each decision above is modest on its own; a metric card feels genuinely designed when they are handled together. These are the behaviours mature SaaS products share across their KPI and stat cards.

  • The card pairs its value with a comparison — a delta against a prior period or a target — because the number alone is trivia and the comparison is the insight.
  • Direction and sentiment are decoupled: the arrow shows which way the number moved, the color reflects whether that is good for this specific metric (churn-down and error-rate-up are not green).
  • A sparkline shows the shape behind the delta — steady climb vs mid-month crash-and-recover — kept small and secondary to the headline value, not a full chart.
  • The comparison window is stated in plain language ("vs last month") and honors the dashboard's global date range, so the delta is never an ambiguous percentage.
  • The card drills into the detail behind the number where "show me more" is the natural response, turning the tile into the top of a workflow, not a dead-end statistic.
  • Loading shows a skeleton in the card's shape (no reflow), and empty-vs-zero and error states are distinguished honestly rather than all rendering as a bare "0".
  • A row of cards is scannable: the vital few are emphasized, structure and number formatting are consistent, and the count is restrained rather than a wall of every available metric.
  • The metric card is kept distinct from the full analytics dashboard, from charts, and from progress bars — it is the single summarizing tile for one number.

Common SaaS metric card mistakes

  • Showing a bare number with no comparison, so the user cannot tell if it is healthy, trending, or in trouble.
  • Coloring every increase green and every decrease red, so a rising error rate or growing churn reads as success.
  • Omitting the comparison window, leaving "+12%" ambiguous about whether it is vs yesterday, last week, or last year.
  • Cards that ignore the dashboard's global date-range filter, so the values and deltas silently disagree with the selected range.
  • Turning the card into a full chart with axes and legends instead of a scannable tile with an optional sparkline.
  • Rendering a query failure as a stale value or a misleading zero instead of an explicit "couldn't load" with retry.
  • Treating a "no data yet" new-account state and a genuine zero as the same bare "0", missing an onboarding moment.
  • Opening a dashboard with twenty equally-weighted cards, prioritizing nothing and making the row impossible to scan.

Frequently asked questions

What information should a metric card show besides the number?

At minimum, a comparison — because the number alone is almost meaningless. A useful metric card shows the value, a delta against a defined prior period (or a target), and the direction of that change, with coloring that reflects whether the movement is good or bad for that specific metric rather than a blanket green-up/red-down. Beyond that, the high-value additions are an explicit comparison window ("vs last month") so the delta is unambiguous, a small sparkline to show the shape of the trend behind the delta, and a drill-in to the detail behind the number for metrics where "why" is the natural next question. What a card does not need is everything at once: a full chart with axes, a legend, and multiple series belongs in the detail view the card links to, not crammed into a summary tile. The test for any element on a metric card is whether it helps the user answer "what is this, how has it changed, and is that good" faster — if it does, it earns its place; if it is decoration, it makes the card harder to scan.

Should a metric card always use green for up and red for down?

No — and this is one of the most common mistakes. Green-up/red-down works for metrics where more is better (revenue, active users, conversion, MRR), but it is actively misleading for metrics where less is better: error rate, churn, latency, support backlog, refunds, bounce rate. A card that colors a rising error rate green because the number went up is signaling success during a failure. The correct approach is to decouple direction from sentiment: the arrow shows which way the value moved, but the color reflects whether that movement is desirable for this particular metric. So churn going down is green, error rate going up is red, and the user reads the situation correctly at a glance. This means each card has to know its own "good direction" rather than inheriting a global rule, which is a small per-metric design decision with a big payoff: a row of cards where the colors are always honest is trusted, while one where green sometimes celebrates the wrong thing teaches users to ignore the colors entirely.

How is a metric card different from a chart or a dashboard?

They operate at different levels of detail. A metric card is a single summarizing tile: one number, its comparison, its direction, and an optional sparkline, designed to be scanned in a glance and repeated dozens of times across the product. A chart is the detailed view — axes, multiple series, a legend, interaction, the full shape of the data over time — and it usually lives one click behind a card, as the answer to "show me more". A dashboard is the whole surface that arranges cards, charts, and filters together into an overview. The reason this distinction matters is that teams often blur them: they cram a full interactive chart into a card until it is no longer scannable, or they build a dashboard as an undifferentiated wall of twenty equal cards with no hierarchy. Keeping the levels distinct — cards summarize, charts detail, the dashboard arranges — is what lets a user scan the top row to know the state of the product, then drill into a specific card when a number surprises them, instead of being confronted with everything at maximum detail all at once.

Study real SaaS metric & KPI cards in the SaaSUI library

Every decision above is easier to apply when you can see how real products solved it. Browse real metric cards, KPI tiles, stat rows, revenue and usage summaries, sparklines, and dashboard overviews from shipped SaaS applications like Stripe, Vercel, Linear, PostHog, Datadog and other polished tools in the SaaSUI.Design library, with real screenshots instead of mockups, to study how mature products pair values with comparisons, decouple direction from sentiment, add sparklines with restraint, state the comparison window, drill into the detail behind the number, and keep a row of cards scannable.

Rakesh Mondal

Written by

Rakesh Mondal

Ai Native SaaS UX UI Product Designer

Connect on LinkedIn

Interested in sponsoring SaaSUI.Design? Learn about sponsorship options →