Traffic Light KPI Custom Field
The Traffic Light KPI custom field lets you store a numeric value per work item and display it as a three-color indicator β π΄ red, π‘ yellow, and π’ green β resolved from per-context thresholds.
It's designed to represent KPIs, service levels, response times, completion percentages, risks, or other indicators where the numeric value matters but, above all, you need to communicate at a glance whether the situation is good, intermediate, or critical.
The Traffic Light KPI on Cloud ships functional parity equivalent to version 1.2.0 of the Data Center add-on: per-context thresholds, descriptive legend, rule tooltip, "Lower value is better" mode, and dark-mode support.
Create the Traffic Light KPI fieldβ
-
In Jira, click the Settings (gear) icon in the top-right corner.
-
Select Issues.
-
In the left sidebar, under Fields, click Custom fields.
-
Click Create custom field in the top-right corner.
-
On the "Select a field type" screen, find and pick Traffic Light KPI (provided by Admin Essentials). Click Next.
π‘ You'll recognize it by its description: "Numeric KPI rendered as a red/yellow/green indicator with per-context thresholds." and the traffic-light icon.

-
Name and description:
- Enter a Name (for example, "Compliance level", "Project risk", "Support SLA").
- Add an optional Description.
-
Click Create.
-
Associate to screens: Pick the relevant screens (create, edit, view, transition) and click Update.
The field is now available. However, the indicator won't show colors yet: you need to configure thresholds in each context (next section).
While a field context has no thresholds, saved numeric values render in gray (no status). This is intentional: it avoids displaying a color that could lead to misinterpretation until the administrator defines the business rule.
Configure thresholds per contextβ
The Traffic Light KPI thresholds are always tied to the field's configuration context (FieldConfigContext). That means you can define different thresholds per project or issue type, based on the contexts you create on the field.
Threshold modelβ
Each context requires two numeric values and an interpretation mode:
- Low threshold (Red max) β Maximum value considered red. Any value less than or equal to this threshold renders a red indicator.
- High threshold (Yellow max) β Maximum value considered yellow. Values greater than
Lowand less than or equal toHighrender yellow. Values greater thanHighrender green. - Lower value is better β Optional checkbox that inverts the color assignment for KPIs where a lower value means better performance.
In the default mode (higher is better) the rule is:
| Issue value | Resulting color |
|---|---|
value β€ Low | π΄ Red |
Low < value β€ High | π‘ Yellow |
value > High | π’ Green |
| Empty value / context not configured | βͺ Gray (no status) |
When Lower value is better is enabled, the assignment is inverted without changing the threshold order:
| Issue value | Resulting color |
|---|---|
value β€ Low | π’ Green |
Low < value β€ High | π‘ Yellow |
value > High | π΄ Red |
| Empty value / context not configured | βͺ Gray (no status) |
Enable it for KPIs where a lower value means a better result: resolution time, open issues, critical defects, mean response time, etc. The indicator will show green for low values (desirable) and red for high values (critical) without you having to manually invert the meaning of the thresholds.
Invariantβ
The editor enforces Low < High. If you enter values that don't respect this relation, the form refuses to save with an error.
Steps to configure thresholdsβ
-
Go to Settings β Issues β Custom fields.
-
Find the Traffic Light KPI field you created and click the actions menu (
β―) β Contexts and default value. -
On the field contexts page, open the context you want to configure.
-
Inside the context you'll see a section provided by Admin Essentials called Traffic Light thresholds, with a summary of the current thresholds (or the message "No thresholds configured. Values render gray." if none are set yet).
-
Complete the form:
- Low threshold (Red max): numeric value.
- High threshold (Yellow max): numeric value strictly greater than the previous one.
- Lower value is better: tick the checkbox if your KPI runs in reverse.
-
Click Save.

After saving, issues in that context will start rendering the indicator with the resolved colors.
Example: compliance KPI (0β100)β
Imagine a field called "Compliance level" expressed as a percentage:
- Low:
30β0to30is critical (red). - High:
70β31to70is at risk (yellow). - Greater than
70β on track (green). - Lower value is better: off.
If you reuse the same field across multiple projects with different tolerances, simply create a context per project and define independent thresholds in each.
Example: average resolution time ("lower is better" mode)β
For a Traffic Light field called "Resolution time (hours)" where a low value is desirable:
- Low:
4β0to4hours is excellent (green). - High:
12β5to12hours is acceptable (yellow). - Greater than
12β slow response (red). - Lower value is better: on.
Note that the thresholds keep the order Low < High; the meaning change comes from the Lower value is better option.
Possible validation errorsβ
The editor validates input and shows specific messages when:
- One of the fields is empty β "This field is required."
- The entered value is not a valid number β "Please enter a valid number."
Lowis greater than or equal toHighβ "Low threshold must be strictly less than the high threshold."
Rendering on the issue viewβ
When an issue has a numeric value and its context has thresholds defined, the add-on renders a colored indicator along with the numeric value. The color reflects the resolved status and an accessible aria-label describes it for screen readers.

Descriptive legendβ
Below the indicator appears a legend describing the ranges configured for the context. It adapts automatically to the active mode:
- In the default mode, ascending ranges are shown (
β€ Low β red,Low < β¦ β€ High β yellow,> High β green). - In Lower value is better mode, the ranges stay the same but the color assignment reflects the inversion.
Hover tooltipβ
Hovering over the colored indicator shows a tooltip with the exact range to which the current issue value belongs (for example, "Red: β€ 30" or "Green: > 70"). This lets you interpret the state at a glance without having to open the field configuration.
The legend, tooltip, and numeric value are built with UI Kit 2 design tokens (color.text, color.text.subtlest), so they render with accessible colors in both light and dark themes of Jira Cloud, preserving contrast in either mode.
Search and JQL supportβ
The field is registered in Forge with type: number, which enables JQL's standard numeric operators:
| Operator | Supported | Example |
|---|---|---|
= / != | β | "Compliance level" = 100 |
< / <= / > / >= | β | "Compliance level" >= 70 |
is EMPTY / is not EMPTY | β | "Compliance level" is not EMPTY |
in / not in | β | "Compliance level" in (50, 75, 100) |
JQL queries operate on the stored numeric value, not the resolved color. To list "all red issues", combine JQL operators with the context's own thresholds: "Compliance level" <= 30.
Colour band in issue propertiesβ
From version 5.0.0, the add-on automatically syncs the field's colour band (π΄ red, π‘ yellow, or π’ green) as an issue property, allowing workflow validators, Jira Automation rules, and external integrations to query the current colour without knowing the numeric thresholds.
See the Colour Band Properties guide for property keys, Jira Automation and REST usage examples, and important limitations (no JQL search by colour, no automatic backfill).