Skip to content

Bowtie chart

Win the customer, then grow the revenue.

Definition · Updated Nov 2, 2026

A bowtie chart joins a funnel that narrows to won deals with a fan that widens as revenue grows after the sale. The knot is the moment of winning. Use it for SaaS revenue models that count onboarding, adoption and expansion.

Pay once. Every update included.

Live preview

Customer bowtieSeptember cohort: visits 48K, trials 6.2K, sql 1.9K, won 420, onboard $61K, adopt $88K, expand $124K.VISITS48KTRIALS6.2KSQL1.9KWON420ONBOARD$61KADOPT$88KEXPAND$124KACQUIREWINGROW
Customer bowtie
StageSideValue
VISITSAcquire48K
TRIALSAcquire6.2K
SQLAcquire1.9K
WONWin420
ONBOARDGrow$61K
ADOPTGrow$88K
EXPANDGrow$124K

Sample data: 48K visits to 420 won deals, then $61K onboard to $124K expand

Size
Legend
Data shape
Counts before the win, revenue after
Good for
SaaS revenue, customer lifecycle
Avoid when
Nothing happens after the sale
Sizes
XS, S, M and L, re-laid out from the data

Anatomy

Inspect it like the Figma file.

The same layers, names and tokens as the component. Select one to read its size, fill and style.

Layers

087 / Bowtie

chart/087-bowtie-revenue
plot · bowtie
Layer
stage · won
Type
Vector
Size
106 × 33
Fill
text/strong
Group
Marks · 7

Layers

087 / Bowtie

chart/087-bowtie-revenue
plot · bowtie
Layer
stage · won
Type
Vector
Size
37 × 27
Fill
text/strong
Group
Marks · 7

Sizes

Re-laid out, never scaled.

The same data at XS, S, M and L. Every size is redrawn from the data, so text and line weights never shrink.

M against S

Width360 px480 px

Plot328 px440 px

Labels1414

Marks77

Height212 px246 px

Same tokens at every size: text styles, 1 px lines and mark radius stay put.

When to use

Before and after the sale.

Three signs it fits, and three signs another type fits better.

Does revenue grow after the sale?

Only the steps to a sale.

Yes: Keep the bowtie

Is it one cohort?

Many cohorts over months.

Yes: Keep the bowtie

Are both sides needed?

Value in each stage.

Yes: Keep the bowtie

Code and Figma

One name in Figma and in code.

Every Figma property is a prop with the same name and values. One command installs it.

Figma

chart/087-bowtie-revenue

size
legend
Property = propValuesDefault
size"xs" · "s" · "m" · "l""xs"
legendtrue · falsetrue
color"cat-1" · "cat-2" · "cat-3" · "cat-4""cat-1"
npx shadcn add @chartory/bowtie
bowtie.tsx
import { Bowtie } from "@/components/chartory/bowtie"import { revenueBowtie } from "./revenue-bowtie"export function RevenueBowtie() {  return (    <Bowtie      data={revenueBowtie}      size="m"      legend={true}    />  )}

Hearth widget

Bowtie as a widget.

The chart in a Hearth card with a hero number and two blocks. One token set, light and dark.

Code
Get the code

EmberPreset

ChartoryDefault preset

Pick the blocks, the size and the preset for your own widget.

Read the Hearth widget docs

FAQ

Bowtie questions.

What people ask before they put a bowtie in a dashboard.

Something else?

hello@usechartory.com
  • The left side counts people (visits, trials, SQL, won) and the right side counts revenue (onboard, adopt, expand). The knot is where one turns into the other.

Related types

The same question, a different shape of answer. Every type ships in Figma and in code.

Same family

Flow between steps

Where volume goes: funnels, bridges and cycles.