# Budget runway

> Spend to date against the budget, and where it lands. Sample data: model spend in October, $10,214 to date, $19,640 forecast against a $20K budget.

- Type 101 · Change over time
- Component: `<BudgetRunway>`, the same name as the Figma component
- Install: `npx shadcn add @chartory/budget-runway` (Code and Complete plans)
- Type page: https://usechartory.com/charts/budget-runway

## Installation

1. **Set up the registry once.** Your token in .env and @chartory in components.json. Skip this when another chart is already installed. [Installation guide](https://usechartory.com/docs/installation)

2. **Add the chart.** One command adds the Budget runway component to your project.

```bash
npx shadcn add @chartory/budget-runway
```

3. **Use it.** Pass your rows. The props are the Figma properties.

usage.tsx:

```tsx
import { BudgetRunway }
  from "@/components/chartory/budget-runway"

<BudgetRunway
  data={modelSpend}
  size="m"
  legend
/>
```

## Props

### `<BudgetRunway>`

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

| Prop | Type | Default | Note |
| --- | --- | --- | --- |
| data | BudgetRunwayData | Required | The chart's data. The tables below list every field. |
| size | "xs" \| "s" \| "m" \| "l" | "m" | The size class. Each one is laid out again from the data. |
| legend | boolean | true | Shows the legend row under the plot. |
| color | "cat-1" \| "cat-2" \| "cat-3" \| "cat-4" | "cat-1" | The data colour of the primary marks (data/primary). |

### BudgetRunwayData

The data prop: one object for the whole chart.

| Prop | Type | Default | Note |
| --- | --- | --- | --- |
| days | number | Required | The number of days. |
| cum | number[] | Required | The running total. |
| fc | number[] | Required | The forecast. |
| lo | number[] | Required | The lower values. |
| hi | number[] | Required | The upper values. |
| budget | number | Required | The budget. |
| max | number | Required | The top of the value scale. |
| ticks | [number, string][] | Required | The axis ticks: [value, label] pairs. |
| daily | number[][] | Required | The daily values. |
| dmax | number | Required | The top of the daily scale. |
| toks | string[] | Required | The colour token of each item, in order. |
| xl | [number, string][] | Required | The x axis labels: [position, label] pairs. |
| nowText | string | Required | The label at now. |
| endText | string | Required | The label at the end. |
| budgetText | string | Required | The budget's label. |

## Budget runway chart: a React and Figma chart in four sizes

### What does a budget runway chart show?

A budget runway chart shows spend building up through the month, split by what spends it, with a forecast to the end and the budget as a line. You see today's spend, the projected total and whether it crosses the budget. Use it for model spend, cloud cost and any monthly budget.

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 Budget runway component?

It is one **<BudgetRunway>** component. Its props are the Figma properties with the same names and values, and the props table above lists them. The data is daily spend by source, a budget.

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 there a budget line?** Yes means the budget runway fits.
- **Does spend build up over the period?** Yes means the budget runway fits.
- **Is it split by source?** Yes means the budget runway fits.

### When does another type fit better?

- **A forecast with a range.** Use Forecast band instead.
- **A budget that only burns down.** Use Burn-down instead.
- **One total only.** Use Area chart instead.

## Budget runway questions

### Does the Budget runway chart work with shadcn/ui?

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

### How do I install it?

Add your token and the @chartory registry once, then run npx shadcn add @chartory/budget-runway. The Installation guide has the steps.

### Can my coding agent install it?

Yes. Connect the Chartory MCP server and ask for the budget runway chart; the agent runs the same command and you review the diff.

### What data does it expect?

Daily spend by source, a budget. The sample data comes with the component, and the props table lists every field.

### Which sizes does it ship in?

XS, S, M and L, in Figma and in code. Each size is laid out again from the data, so text and lines keep their size.

### Is it in the Figma file too?

Yes. chart/101-budget-runway has the same properties as the component.

### Does it follow light and dark mode?

Yes. Every paint is a token, so the chart follows light and dark mode and the collection you pick.

### Which plan has the code?

Code and Complete. Figma has the Figma file only.
