Valid since:
XL Release 6.2.0

XL Release calculates a risk level for each release based on different factors such as flags, failed or failing states, or due dates. This allows you to see which releases have a high risk level so you can take the appropriate actions.

You can see if a release has a high risk level in the release overview. An icon next to the release indicates the risk level.

image - Shows At risk state, the reason (Example: Release has tasks flagged as red.), and a message (Example: Task name: Flag comment)

image - Shows Attention needed state, the reason (Example: Release has tasks flagged as amber.), and a message (Example: Task name: Flag comment)

image - Shows On track state - The release is on track.

Click the icon to see the detailed risk information and the risk score.


Risk assessors

The risk assessors used to calculate the risk level of a release are:

  • Release flags: Red or Amber
  • Release state: Failed or Failing
  • Task flags: Red or Amber
  • Release past due date
  • Current task past due date
  • Retries for a failed task

Custom risk assessors

XL Release allows you to create custom risk assessors. To do that, extend the RiskAssessor class with the execute method implemented where any new risk condition is defined. Example:

@Metadata(label = "ReleaseFlaggedAtRiskAssessor", versioned = false)
public class ReleaseFlaggedAtRiskAssessor extends RiskAssessor {

    private static final String RELEASE_AT_RISK_HEADLINE = "Release is flagged as red";
    private static final String RELEASE_FLAGGED_MESSAGE = "%s: %s";

    public RiskAssessment execute(final Release release, final RiskProfile riskProfile) {
        RiskAssessment assessment = new RiskAssessment();

        List<String> messages = new ArrayList<>();

        if (release.getFlagStatus() == FlagStatus.AT_RISK) {
            messages.add(getMessage(release.getTitle(), release.getFlagComment()));
        } else {

        return assessment;

    private String getMessage(String releaseTitle, String flagComment) {
        return format(RELEASE_FLAGGED_MESSAGE, releaseTitle, ofNullable(flagComment).orElse(""));

Markdown in risk assessment messages

In XL Release 8.6.1 and later, assessment messages support Markdown which allows you to format them with hyperlinks and custom icons. For example:

return String.format("[release forecast](%s)", url);

The default risk threshold:

Flag Score
Red 50 - 100
Amber 10 -49
Green < 10

The default risk score:

The default values for the risk assessors are used in the default risk profile. For more information about risk profiles, refer to Configure risk profile settings.

Risk assessor Score
Release flags Red - 80
  Amber - 30
Release state Failed - 90
  Failing - 70
Task red flag Red
  * 1 red flag: 65
  * 2-3 red flags: 70
  * 4-6 red flags: 75
  * >6 red flags: 80
Task amber flag amber
  * 1 amber flag: 10
  * 2-3 amber flags: 20
  * 4-6 amber flags: 30
  * >6 amber flags: 40
Release past due date 30
Task past due date 1 task - 25
  >1 task - 35
Retries for failed task Task failed once - 50
  Risk score increases by 10 for each subsequent task failure
  When task failed more than 6 times, the score is 100

Important To order the release overview by risk level, click Order by and select Risk. The sorting is done based on risk calculation, displaying the release with the maximum risk score at the top. If multiple releases have the same maximum risk score, a second sorting rule is applied calculating the total risk sum for each release.