Outcome Metric Rows

Outcomes

What changes in the first quarter

Measured across the practices that finished onboarding in 2025, compared against their own numbers from the quarter before.

31%

Fewer no-shows

Reminders go out on the member's own channel, and a cancelled slot reopens to the waitlist before anyone at the desk notices it.

up from 24% last year

6.5h

Given back to each clinician, weekly

Notes, plans, and coverage checks live on the same record, so the evening admin block quietly disappears.

up from 4h last year

4 days

Faster to get paid

Claims leave the same day the appointment closes and reconcile themselves against incoming payments.

96%

Of practices still here after a year

Teams stay because the workflow bends to how they already work, not the other way around.

up from 92% last year

Averages across 240 practices, measured over the first 90 days after go-live.

About this block

Outcome Metric RowsFREE

A results section that stacks each metric on its own hairline row, pairing an oversized figure with a short label, a sentence of context, and an optional year-over-year delta.

Stats66: Outcome Metric Rows

Results section that gives every metric a hairline row of its own: an oversized figure on the left, the label and a sentence of context in the middle, and an optional year-over-year delta with a trend icon pinned right.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/stats66"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/stats66"

This installs the block to components/beste/block/stats66.tsx plus the badge23 component it uses for the eyebrow.

Quick start

The installed file exports stats66Demo alongside the block: the exact props behind the preview above. Spread it to get a working metrics section in one line.

tsx
import { Stats66, stats66Demo } from "@/components/beste/block/stats66";

export default function Page() {
  return <Stats66 {...stats66Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Stats66 } from "@/components/beste/block/stats66";

export default function Page() {
  return (
    <Stats66
      badge={{ label: "Outcomes" }}
      heading="What changes in the first quarter"
      description="Measured against the same practices a quarter earlier."
      items={[
        {
          value: "31%",
          label: "Fewer no-shows",
          description: "Reminders go out on the member's own channel.",
          delta: "up from 24% last year",
        },
        {
          value: "4 days",
          label: "Faster to get paid",
          description: "Claims leave the same day the appointment closes.",
        },
      ]}
      footnote="Averages across 240 practices, measured over the first 90 days."
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Monospace eyebrow above the hairline rule, rendered via Badge23
headingstringSection heading in the left column
descriptionstringSupporting paragraph, right-aligned from md up
itemsMetric[][]One hairline row per metric
footnotestringMethodology line under the last row
classNamestringExtra classes for the outer <section>
ts
type Metric = {
  value: string;
  label: string;
  description: string;
  delta?: string;
};

Behavior notes

  • value is a string, not a number, so a row can read 31%, 6.5h, or 4 days without a separate unit prop and without any formatting logic in the block.
  • The delta column only renders when delta is set, and the row's three-column grid is md:grid-cols-[minmax(0,14rem)_1fr_auto], so a missing delta leaves the middle column to take the space rather than a gap.
  • Rows align on md:items-baseline, which puts the oversized figure and the label on the same baseline instead of centring a tall figure against a short one.
  • The figure follows the set's metric scale (text-4xl rising to md:text-6xl in font-light) rather than a monospace face, so a page can carry this beside other Sirius sections without a second numeric voice appearing.
  • The delta is styled as accent text with a TrendingUp icon regardless of direction, so a metric that fell should say so in the copy rather than expecting the block to flip the icon.
  • Rows are separated by their own bottom rule under a shared top rule on the container, which is what closes the list off cleanly above the footnote.

More Stats blocks

View all Stats
PRO

stats67

Before And After Pairs

A results section stacking each measure on its own hairline row, moving a muted starting figure to an accented result across an arrow, with a soft closing panel that floats a live comparison card.

PRO

stats69

Quarterly Metric Matrix

A quarterly results matrix of hairline cells, each pairing a light figure with a signed change tinted by whether the movement is good or bad rather than by its direction, over a line of context.

PRO

stats61

Typographic Stats

Oversized number rows with labels and context, editorial style.

FREE

stats68

Segmented Total Breakdown

A results section that leads on one oversized total, splits it across a segmented accent bar, then legends each segment on a hairline row aligning its value, share, and what it covers.

PRO

stats45

Category Performance Stats

Product category cards with images and sales metrics showing units sold and growth percentage for each category.

PRO

stats17

Zigzag Image Stats

Alternating rows of images and stats that swap sides. Each row pairs a photo with key metrics and descriptions.