Skip to content
DocsChartsMilestone trackLast updated Nov 2, 2026

Milestone track

How many reach each milestone, and when. Sample data: onboarding from signed up on day 0 (100%) to paid on day 14 (18%).

Open in
Onboarding milestonesShare of sign-ups reaching each of 6 onboarding steps, from 100% signed up to 18% paid by day 14.1DAY 0Signed up100%REACHED2DAY 1Invited72%REACHED3DAY 2Connected58%REACHED4DAY 4Report44%REACHED5DAY 7Shared31%REACHED6DAY 14Paid18%REACHED
Onboarding milestones
StepDayReached
Signed upDay 0100%
InvitedDay 172%
ConnectedDay 258%
ReportDay 444%
SharedDay 731%
PaidDay 1418%
Onboarding milestonesShare of sign-ups reaching each of 6 onboarding steps, from 100% signed up to 18% paid by day 14.1DAY 0Signed up100%2DAY 1Invited72%3DAY 2Connected58%4DAY 4Report44%5DAY 7Shared31%6DAY 14Paid18%
Onboarding milestones
StepDayReached
Signed upDay 0100%
InvitedDay 172%
ConnectedDay 258%
ReportDay 444%
SharedDay 731%
PaidDay 1418%

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 Milestone track component to your project.

    npx shadcn add @chartory/milestone-track
  3. 3

    Use it

    Pass your rows. The props are the Figma properties.

    usage.tsx
    import { MilestoneTrack }  from "@/components/chartory/milestone-track"<MilestoneTrack  data={onboarding}  size="m"/>

Props

<MilestoneTrack>

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.MilestoneTrackDataRequired
size: The size class. Each one is laid out again from the data."xs" | "s" | "m" | "l""m"
color: The data colour of the primary marks (data/primary)."cat-1" | "cat-2" | "cat-3" | "cat-4""cat-1"

MilestoneTrackData

The data prop: one object for the whole chart.

PropTypeDefault
steps: One entry per step.MilestoneTrackStep[]Required

MilestoneTrackStep

One object per entry in steps.

PropTypeDefault
label: The name shown on the chart.stringRequired
pct: The share, in percent.numberRequired
day: The day as shown.stringRequired

The data as a JSON Schema: schemas/milestone-track.json

Milestone track: a React and Figma chart in four sizes

What does a milestone track show?

A milestone track lines up the key steps of a journey by day, with the share of people who reached each one. Use it for onboarding, activation and trial journeys.

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 Milestone track component?

It is one <MilestoneTrack> component. Its props are the Figma properties with the same names and values, and the props table above lists them. The data is milestones with a day and a share reached.

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 the day of each step known? Yes means the milestone track fits.
  • Is it one group? Yes means the milestone track fits.
  • Is it people, not a shipment? Yes means the milestone track fits.

When does another type fit better?

  • Steps with counts only. Use Funnel instead.
  • Many groups over months. Use Cohort instead.
  • One shipment's stages. Use Shipment journey instead.

Milestone track 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.