Skip to content

Age pyramid

Two groups by age, back to back.

Definition · Updated Nov 2, 2026

An age pyramid sets two groups back to back, with age bands as rows, so you compare their age mix in one shape. Use it for new against returning customers, users by gender or members by region.

Pay once. Every update included.

Live preview

Customers by ageShare of new and returning customers by age band: 25–34 is the largest new band (28%), 35–44 the largest returning band (27%).18–2414%8%25–3428%24%35–4424%27%45–5417%20%55–6411%14%65+6%7%NEWRETURNING
Customers by age
AgeNew (%)Returning (%)
18–24148
25–342824
35–442427
45–541720
55–641114
65+67

Sample data: active customers by age, new against returning, 25–34 at 28% and 24%

Size
Legend
Data shape
A share per age band for two groups
Good for
Customer age mix, audience profiles
Avoid when
There are more than two groups
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

082 / Age pyramid

chart/082-pyramid-customers
plot · pyramid
Layer
right · 18–24
Type
Rectangle
Size
83 × 34
Fill
data/primary
Radius
3
Group
Marks · 12

Layers

082 / Age pyramid

chart/082-pyramid-customers
plot · pyramid
Layer
right · 18–24
Type
Rectangle
Size
19 × 16
Fill
data/primary
Radius
3
Group
Marks · 12

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

Labels1818

Marks1212

Height212 px246 px

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

When to use

Two groups, back to back.

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

Are there two groups?

One group by age.

Yes: Keep the age pyramid

Are the rows ordered bands?

Items with no order.

Yes: Keep the age pyramid

Is it shares, not answers?

Survey answers on a scale.

Yes: Keep the age pyramid

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/082-pyramid-customers

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/age-pyramid
age-pyramid.tsx
import { AgePyramid } from "@/components/chartory/age-pyramid"import { customerAges } from "./customer-ages"export function CustomerAges() {  return (    <AgePyramid      data={customerAges}      size="m"      legend={true}    />  )}

Hearth widget

Age pyramid 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

Age pyramid questions.

What people ask before they put an age pyramid in a dashboard.

Something else?

hello@usechartory.com
  • New customers on one side and returning on the other, named in the legend; each row's two shares sit at the ends.

Related types

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

Same family

Distribution

17 types in Chartory answer this question.