Skip to content
DocsChartsDeal pipelineLast updated Nov 2, 2026

Deal pipeline

Value at each stage, and how fresh it is. Sample data: open pipeline from lead ($120K) to won ($122K), fresh, aging 21+ days and stuck 45+ days.

Open in
Deal pipeline17 deals worth $615K across 5 stages: lead $120K, qualified $115K, demo $133K, proposal $125K, won $122K; 2 deals stuck 45+ days.LEAD$120KQUALIFIED$115KDEMO$133KPROPOSAL$125KWON$122KFRESHAGING 21+ DSTUCK 45+ D
Deal pipeline
StageValueAge (days)State
LEAD$24K5Fresh
LEAD$18K12Fresh
LEAD$30K8Fresh
LEAD$12K30Aging 21+ d
LEAD$20K3Fresh
LEAD$16K50Stuck 45+ d
QUALIFIED$40K10Fresh
QUALIFIED$22K25Aging 21+ d
QUALIFIED$35K6Fresh
QUALIFIED$18K48Stuck 45+ d
DEMO$60K14Fresh
DEMO$28K22Aging 21+ d
DEMO$45K9Fresh
PROPOSAL$85K18Fresh
PROPOSAL$40K33Aging 21+ d
WON$70K2Fresh
WON$52K4Fresh
Deal pipeline17 deals worth $615K across 5 stages: lead $120K, qualified $115K, demo $133K, proposal $125K, won $122K; 2 deals stuck 45+ days.LEAD$120KQUALIFIED$115KDEMO$133KPROPOSAL$125KWON$122KFRESHAGING 21+ DSTUCK 45+ D
Deal pipeline
StageValueAge (days)State
LEAD$24K5Fresh
LEAD$18K12Fresh
LEAD$30K8Fresh
LEAD$12K30Aging 21+ d
LEAD$20K3Fresh
LEAD$16K50Stuck 45+ d
QUALIFIED$40K10Fresh
QUALIFIED$22K25Aging 21+ d
QUALIFIED$35K6Fresh
QUALIFIED$18K48Stuck 45+ d
DEMO$60K14Fresh
DEMO$28K22Aging 21+ d
DEMO$45K9Fresh
PROPOSAL$85K18Fresh
PROPOSAL$40K33Aging 21+ d
WON$70K2Fresh
WON$52K4Fresh

Installation

  1. 1

    Set up the registry once

    This chart is free in Hearth and MIT licensed: no token. Add @chartory to components.json once (the URL alone, no headers), or skip this when another chart is already installed.

    Installation guide
  2. 2

    Add the chart

    One command adds the Deal pipeline component to your project.

    npx shadcn add @chartory/deal-pipeline
  3. 3

    Use it

    Pass your rows. The props are the Figma properties.

    usage.tsx
    import { DealPipeline }  from "@/components/chartory/deal-pipeline"<DealPipeline  data={openDeals}  size="m"  legend/>

Props

<DealPipeline>

Every prop but data is a Figma property with the same name and values.

PropTypeDefault
data: The chart's data. The tables below list every field.DealPipelineDataRequired
size: The size class. Each one is laid out again from the data."xs" | "s" | "m" | "l""m"
legend: Shows the legend row under the plot.booleantrue

DealPipelineData

The data prop: one object for the whole chart.

PropTypeDefault
fmt: Formats a value for its label.(v: number) => stringRequired
stages: One entry per stage.DealPipelineStage[]Required

DealPipelineStage

One object per entry in stages.

PropTypeDefault
label: The name shown on the chart.stringRequired
deals: The deals.[number, number][]Required

The data as a JSON Schema: schemas/deal-pipeline.json

Deal pipeline: a React and Figma chart in four sizes

What does a deal pipeline show?

A deal pipeline shows the value in each sales stage, split by how long deals have sat there: fresh, aging or stuck. Use it for sales pipelines, hiring pipelines and any stage-based queue.

Chartory ships it as a Figma component and a React component with the same name. The code installs from the shadcn registry with one command and lands in your project as a file you own.

What is the Deal pipeline component?

It is one <DealPipeline> component. Its props are the Figma properties with the same names and values, and the props table above lists them. The data is value per stage, split by age.

Sizes XS, S, M and L re-lay the chart out from the data instead of scaling it, so labels stay readable at every size.

When should I use it?

  • Is age per stage the point? Yes means the deal pipeline fits.
  • Is it value, not counts? Yes means the deal pipeline fits.
  • Is it stages, not a timeline? Yes means the deal pipeline fits.

When does another type fit better?

  • Counts that narrow. Use Funnel instead.
  • Counts per step. Use Funnel instead.
  • Items on a timeline. Use Block timeline instead.

Pipeline questions

Installing, data, Figma and plans.

  • Yes. It installs through the shadcn registry with the shadcn CLI, and the file lands in your project.

Stay in the loop

New charts, by email.

Get an email when new chart types and releases ship.

Unsubscribe any time.