Skip to main content

Conditional Formatting

Conditional formatting turns raw values into readable signals. It applies visual formatting — colour, icons, data bars, text style — to output components based on the value in each cell or the edition data driving each component.

Conditional formatting is configured per component in the Output DesignerFormat panel → Conditional formatting.

Report Forge conditional formatting rules


Rule types

Threshold colour

Changes the background or text colour of a cell, card, or component based on a numeric or text threshold.

PropertyDescription
Source fieldThe field whose value is evaluated
ConditionComparison: >, >=, <, <=, =, , between, is null, is not null
Threshold valueThe value or range to compare against
Apply toBackground colour, text colour, or border colour
ColourHex, named colour, or theme colour picker

Example: Colour the "CPI" column red when CPI < 0.9, amber when CPI 0.9–1.0, green when CPI ≥ 1.0:

PriorityConditionColour
1CPI < 0.9Red background #FFEBEE
2CPI < 1.0Amber background #FFF8E1
3CPI ≥ 1.0Green background #E8F5E9

Icon set

Displays a compact status icon in a table cell or KPI card alongside or instead of the value.

Icon setIconsTypical use
Traffic light🔴 🟡 🟢RAG status
Arrows↑ → ↓Trend direction
Stars★★★Rating fields
Checkmark / Cross✓ ✗Toggle / completion
PriorityHigh / Med / Low flagsPriority Select fields

Configuration:

  1. Open the component → Format panel → Conditional formatting+ Add ruleIcon set.
  2. Select the icon set type.
  3. Define thresholds for each icon tier.
  4. Choose whether to show value alongside icon or icon only.

Threshold example for traffic light on a Percent field:

IconCondition
🔴Value < 0.7
🟡Value < 0.9
🟢Value ≥ 0.9

Data bar

Renders an inline horizontal bar proportional to the cell value — useful for comparing magnitudes across rows without a separate chart.

PropertyDescription
MinimumValue that represents 0% bar width (default: min of dataset)
MaximumValue that represents 100% bar width (default: max of dataset)
Bar colourFill colour of the bar
Negative bar colourColour for negative values (if applicable)
Show valueDisplay the numeric value alongside the bar
Bar directionLeft-to-right (default) or right-to-left

Data bars are best used in table columns containing comparable numeric values — cost per period, completion %, duration days.


Text style

Changes the font style of a cell's text without changing the background.

StyleOptions
BoldOn / Off
ItalicOn / Off
UnderlineOn / Off
StrikethroughOn / Off
Text colourHex or theme colour
Font sizeRelative (100%, 120%, 80%) or absolute (pt)

Example: Bold and red text for overdue rows:

[DueDate] < TODAY() AND [Status] ≠ "Complete"

Background fill

Applies a background colour to an entire row (in a table) or an entire component.

ApplicationEffect
CellBackground of a single table cell
RowBackground of the entire table row
ComponentBackground of the entire component (KPI card, section)

Row-level background fill is configured on the table component level, not per-column. Set the rule source to any field in the repeating section.


RAG-based conditional formatting

RAG fields have a dedicated RAG source option that automatically applies the standard colour scheme:

RAG valueDefault colour
Red#F44336
Amber#FF9800
Green#4CAF50
Not set#9E9E9E (grey)

To use RAG source:

  1. Open Conditional formatting+ Add ruleRAG source.
  2. Select the RAG field.
  3. Choose the apply target (background, text, border, or icon).
  4. Optionally override the default colours per value.

RAG source is available on table cells, KPI cards, indicator components, and RAG grid components.


Rule stacking and priority

Multiple conditional formatting rules can apply to the same component. When multiple rules match, they are applied in priority order (lowest number = highest priority).

Evaluation:

  • Each rule is evaluated independently.
  • If multiple rules apply to the same property (e.g. both Rule 1 and Rule 2 set background colour), only the highest priority rule wins.
  • Rules targeting different properties (e.g. Rule 1 sets background, Rule 2 sets text style) can both apply simultaneously.

Example — layered rules on a risk table:

PriorityConditionApply toEffect
1RAG = RedRow backgroundRed highlight
2Status = "Overdue"Text styleBold, italic
3Owner = ""Text colourGrey (indicating unassigned)

Rules 1, 2, and 3 can all apply to the same row simultaneously — they target different properties.

To reorder rules: drag the rule handles in the Conditional Formatting panel.


Applying to specific columns vs. entire rows

TargetWhen to use
Specific columnHighlight a single metric (e.g. colour only the CPI column)
Entire rowHighlight the full row for a row-level condition (e.g. Red risk rows)
Component backgroundApply a state colour to a KPI card or indicator

Row-level formatting applies the same background to all cells in the row. Column-level formatting applies to a single cell in each row.


Conditional formatting in charts

Charts support conditional formatting on:

Chart elementSupported formatting
Bar seriesColour per category based on a field value or threshold
Line seriesColour not conditional per data point (uniform line colour)
Data labelsText colour based on threshold
Reference linesFixed colour — no conditional formatting

Example — bar chart coloured by RAG:

  1. Open the chart → SeriesBarConditional colour.
  2. Set source: RAG Status field.
  3. Each bar is coloured Red, Amber, or Green based on the RAG value for that category.

Troubleshooting conditional formatting

Issue: Rule is not applying

  • Check that the source field is the correct field type for the condition (numeric conditions require a numeric field).
  • Verify the threshold value is in the correct unit (Percent fields are stored as decimals — use 0.9 not 90 for 90%).
  • Check rule priority — a higher-priority rule may be overriding the one you expect.

Issue: All rows show the same colour

  • The condition may always be true. Open the preview and check what values are in the source field.
  • For date conditions (< TODAY()), check that the field contains actual date values, not text.

Issue: Background colour not visible in PDF

  • Some PDF viewers suppress light background colours. Use a stronger contrast colour (e.g. #FFCDD2 instead of #FFF9F9).
  • Ensure Print background is enabled in the export settings (PDF).

Issue: Icon shows "?" or placeholder

  • The source field returned null. Add a null check to your threshold: set the lowest tier to trigger on null values and display a neutral icon.

Best practices

PracticeReason
Use consistent colour meaningsRed always means critical. Green always means on target. Do not reuse colours for unrelated meanings in the same report.
Keep the palette small3–4 colours maximum. More colours reduce readability.
Test with edge case dataInclude a row with null values and a row at the exact threshold boundary in your test edition.
Document your thresholdsAdd a legend component to the output explaining what each colour means — especially for client-facing reports.
Avoid conditional formatting in Excel exportsExcel export renders conditional formatting as static colours, not as Excel conditional formatting rules. The exported file will not update when the data changes.