KQ-952 · SLO/BURN
SLO Burn
An error budget drawn as the minutes it has left and the pace it is spending them at. The bar drains from the right on glide — a budget settling, never a bounce — while a pace rule slides on snap to where the budget should stand at this point in the window, and a burn-rate line carries its marker past a ticked fast mark. Above the fast rate the bar and chip turn warn and the chip pulses on a mirrored tween, and the Project switch, flipped with Enter or Space, opens the slice this rate would take by window end.
KQ-952 · SLO/BURN
gate-relay availability · 99.9%42.8 min left
0.13×Ahead
—
Install
One command — the source lands in your repo. Or copy it from the Code tab.
$ pnpm dlx shadcn@latest add @kinetiq/slo-burn
Props
- remaining
- number
- default —
- Share of the error budget left, 0 to 1.
- elapsed
- number
- default —
- Share of the compliance window elapsed, 0 to 1; the pace rule stands at what is left of it.
- budgetMinutes
- number
- default 43.2
- The whole budget in minutes, so the readout names real minutes.
- windowHours
- number
- default 720
- Length of the compliance window, used for the time to exhaustion.
- objective
- number
- default 99.9
- The objective, printed in the header.
- fastAt
- number
- default 2
- Burn rate at or above which the meter reads fast.
- maxRate
- number
- default 10
- Top of the burn-rate line; the marker clamps there and the reading says so.
- projected / defaultProjected
- boolean
- default false
- Controlled or initial state of the projection switch.
- onProjectedChange
- (projected: boolean) => void
- default —
- Fires from the press or key that flipped the switch.
- onBurnChange
- (reading: BurnReading) => void
- default —
- Rate, state, minutes left, minutes projected at window end and hours to exhaustion — a state, so it also fires on the first commit.
- label
- string
- default "Error budget"
- Names the meter.
| Prop | Type | Default | Description |
|---|---|---|---|
| remaining | number | — | Share of the error budget left, 0 to 1. |
| elapsed | number | — | Share of the compliance window elapsed, 0 to 1; the pace rule stands at what is left of it. |
| budgetMinutes | number | 43.2 | The whole budget in minutes, so the readout names real minutes. |
| windowHours | number | 720 | Length of the compliance window, used for the time to exhaustion. |
| objective | number | 99.9 | The objective, printed in the header. |
| fastAt | number | 2 | Burn rate at or above which the meter reads fast. |
| maxRate | number | 10 | Top of the burn-rate line; the marker clamps there and the reading says so. |
| projected / defaultProjected | boolean | false | Controlled or initial state of the projection switch. |
| onProjectedChange | (projected: boolean) => void | — | Fires from the press or key that flipped the switch. |
| onBurnChange | (reading: BurnReading) => void | — | Rate, state, minutes left, minutes projected at window end and hours to exhaustion — a state, so it also fires on the first commit. |
| label | string | "Error budget" | Names the meter. |