KPI thresholdBands contract playground

Executable copy of the MI frontend / BI backend contract. Source of truth: Google Doc "Widget data reference" §2.1, §3, §5.3 (agreed 2026-10-15/16).

Editor

KPI
thresholdBands

min is inclusive, max is exclusive. Empty = open end. Row order does not matter: the backend sorts by min. 0, 1 or 4+ rows are allowed here so you can see them fail.

threshold (legacy)

Widgets saved before bands existed. Ignored when thresholdBands has entries.

JSON

Request fragment (editable)

Response fragment (backend should send)


    
Tone name: the doc currently says success for on_track. The backend ships healthy and the frontend accepts both. This page shows healthy.
Open, not a rule: clearing on save.
Backend proposal: omitted, null and [] all keep stored bands.
Frontend proposal: omitted = keep, [] or null = clear.

Preview

Scale

Each band covers min ≤ value < max. Hatched = no band.

Validation

How the response is derived