Retirement drawdown card

Investable wrappers stacked over the plan horizon against the pot each retirement date demands, with the shortfall at the target age.

Can you retire at 50?

Your forecast's investable assets against the line each date demands

Projected investable assets at 50

£1.2m

You need £2m to retire at 50

£820k short

Cash

£300k

ISA

£200k

GIA

£510k

Pension

£170k

By 50 you're £820k short of the pots. Most of the shortfall is an empty pension and cash sitting idle, the levers below put it to work.

<RetirementDrawdownCard data={drawdown} title="Can you retire at 50?" />

Usage

import { RetirementDrawdownCard, type RetirementDrawdownData } from "@reva/ui";

Renders the retirement drawdown tool output (wiring lands with the follow-up agent tool). The series list names each investable wrapper in stack order (bottom to top), each point carries the wrapper balances for a date as decimal strings, and the optional required value on a point draws the dashed "pot each date demands" line. When a target is set, the card adds the headline stat, the short or surplus badge, the amber target tick and a bracket on the chart marking the gap between the projected stack and the required pot at that date.

Pass data with a stable reference (module scope, state or useMemo). The x-axis is categorical, so the target and event years must land on plotted years — a year between points renders no marker, though the stat block still renders from the wire numbers. When every point carries an age, the x-axis plots age instead of the calendar year.

Examples

Shortfall at the target age

The full state: four wrappers stacked, the required line climbing to the target then holding flat, the gap bracket reading short, an event flag on the business sale and a narrative footer. Hover the chart for the per-wrapper values, total, required pot and gap at any date.

Can you retire at 50?

Your forecast's investable assets against the line each date demands

Projected investable assets at 50

£1.2m

You need £2m to retire at 50

£820k short

Cash

£300k

ISA

£200k

GIA

£510k

Pension

£170k

By 50 you're £820k short of the pots. Most of the shortfall is an empty pension and cash sitting idle, the levers below put it to work.

<RetirementDrawdownCarddata={{  reporting_currency: "GBP",  series: [    { key: "cash", label: "Cash" },    { key: "isa", label: "ISA" },    { key: "gia", label: "GIA" },    { key: "pension", label: "Pension" },  ],  points, // one per year, each with assets keyed by series and a required value  target: { year: 2036, age: 50, required: "2000000", projected: "1180000" },  events: [{ year: 2035, label: "Business sale", sublabel: "GIA" }],}}title="Can you retire at 50?"subtitle="Your forecast's investable assets against the line each date demands"narrative="By 50 you're £820k short of the pots."/>

Surplus

When the projected stack clears the required pot, the badge and the bracket flip constructive.

Can you retire at 50?

Your forecast's investable assets against the line each date demands

Projected investable assets at 50

£1.2m

You need £900k to retire at 50

£280k surplus

Cash

£300k

ISA

£200k

GIA

£510k

Pension

£170k

<RetirementDrawdownCard data={surplusDrawdown} title="Can you retire at 50?" />

Minimal

Two wrappers over a short horizon, no events and no narrative — the flag headroom collapses and the default title reads through.

Your retirement drawdown

Investable assets against the pot each date demands

Projected investable assets at 50

£370k

You need £500k to retire at 50

£130k short

ISA

£200k

Pension

£170k

<RetirementDrawdownCard data={minimalDrawdown} />

Without a target

No target and no required values: the stat block, badge, bracket and dashed line all skip, and the legend reads at the end of the horizon.

Your retirement drawdown

Investable assets against the pot each date demands

Cash

£328k

ISA

£256k

GIA

£594k

Pension

£268k

<RetirementDrawdownCard data={wrappersOnly} />

Props

PropTypeDefaultDescription
dataRetirementDrawdownDataThe card payload. Stable reference required.
titlestring"Your retirement drawdown"Card title.
subtitlestring"Investable assets against the pot each date demands"Muted line under the title.
narrativestringAgent-authored sentence rendered in a highlighted footer panel.

The data fields:

FieldTypeDescription
reporting_currencystringISO currency for every value (e.g. "GBP").
seriesRetirementDrawdownSeries[]The investable wrappers in stack order, bottom to top: key, label.
pointsRetirementDrawdownPoint[]One per date: year, optional age, assets (decimal strings keyed by series key, missing key plots as zero), optional required.
targetRetirementDrawdownTargetOptional target: year, optional age, required, projected (both decimal strings). Drives the stat block, badge, bracket and amber tick.
eventsRetirementDrawdownEvent[]Optional one-off markers: year, label, optional sublabel.

Series colours assign positionally over the chart role token families — neutral (brass), positive (fern), primary (amber), accent (gold), negative (mulberry) — so the canonical wrapper order lands Cash on brass, ISA on fern, GIA on amber and Pension on gold, and every hue flips with colour mode.

On this page