- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-11-2026 01:56 PM
This is more for esthetic purposes, but is it possible to modify the display of the Residual Heatmap built into a Risk Assessment Methodology (RAM) in such a way as to flip the y-axis so it runs in the opposite direction?
For example:
The RAM is configured for:
- Inherent Risk, Control Effectiveness, and Residual Risk
- Heatmaps are enabled for both Inherent and Residual Risk Assessment Types
- Residual Risk is configured for:
- Calculate based on - Inherent risk and control effectiveness
- Qualitative scoring logic - Lookup matrix between inherent risk and control effectiveness
Thanks in advance.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-13-2026 05:11 AM
Hi @AnthonyGates ,
Hope you are doing well.
So I chceked your request this is not recommended to chnage the axis orientation.
- Axis Factors: Defining which factors (Impact, Likelihood, Control Effectiveness) are used for the X and Y axes.
- Color Definitions: Adjusting the colors that correspond to different risk levels (Low, Medium, High).
- Scoring Logic: Customizing how the scores are calculated (e.g., lookup matrix, script).
But If you want to convert 5x5 to 6x6 or vice versa .yes that is possible.
If you find the answer Useful please mark it as Helpful.
Regards,
Sagnic
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎01-15-2026 05:10 AM
Hi @AnthonyGates ,
In one of our recent requirement Client Requested that they will give the assessment based on 6 factors but in the Hitmap it must show the details in 5x5 format.
We need to create a Business rule to map the 5x5 Matrix to 6x6.
Conditions :
Table :
Risk Assessment Instance Response [sn_risk_advanced_risk_assessment_instance_response] |
When : After
Action : Insert, Update
Condition : Assessment Instance.Risk Assessment Methodology is ( Select your Assessment Methodolody )
Code :
(function executeRule(current, previous /*null when async*/ ) {
var sys = current.assessment_instance_id;
var rec = new GlideRecord("sn_risk_advanced_risk_assessment_instance");
rec.get(sys);
var res = new GlideRecord("sn_risk_advanced_risk_assessment_instance_response");
res.addQuery("assessment_instance_id", rec.sys_id);
res.orderBy("sys_updated_on");
res.query();
while (res.next()) {
var type = res.getValue("assessment_type");
if (type == 1) {
if (res.factor.getDisplayValue() == "Impact (ERM RAM 6x6: MOE (With Inherent))") {
var impact = res.getValue("qualitative_response");
var calcImpact = res.getValue("u_normalized_score1");
//normImpact = parseInt(normImpact);
}
if (res.factor.getDisplayValue() == "Likelihood (ERM RAM 6x6: MOE (With Inherent))") {
var likelihood = res.getValue("qualitative_response");
var calcLikelihood = res.getValue("u_normalized_score1");
//normLikelihood = parseInt(normLikelihood);
}
} else if (type == 3) {//
if (res.factor.getDisplayValue() == "Impact (ERM RAM 6x6: MOE (With Inherent))") {
var impactResidual = res.getValue("qualitative_response");
var calcImpactResidual = res.getValue("u_normalized_score1");
//normImpact = parseInt(normImpact);
}
if (res.factor.getDisplayValue() == "Likelihood (ERM RAM 6x6: MOE (With Inherent))") {
var likelihoodResidual = res.getValue("qualitative_response");
var calcLikelihoodResidual = res.getValue("u_normalized_score1");
//normLikelihood = parseInt(normLikelihood);
}
}
}
// gs.info("Residual BinitaImpact " + calcImpactResidual);
// gs.info("Residual BinitaLikelihood " + calcLikelihoodResidual);
var inherent = calcImpact * calcLikelihood;
var residual = calcImpactResidual * calcLikelihoodResidual;
// gs.info("Residual Binitainherent " + residual);
var inherentRating = "";
var residualRating = "";
if (type == 1) {
if (inherent > 0 && inherent <= 6) {
inherentRating = "Low";
} else if (inherent > 6 && inherent <= 13) {
inherentRating = "Moderate";
} else if (inherent > 13 && inherent <= 19) {
inherentRating = "High";
} else if (inherent > 19 && inherent <= 25) {
inherentRating = "Very High";
}
rec.setValue("u_computed_impact_score", impact);
rec.setValue("u_computer_likelihood_score", likelihood);
rec.setValue("u_calculated_impact", calcImpact);
rec.setValue("u_calculated_likelihood", calcLikelihood);
rec.setValue("u_calculated_inherent_score", inherent);
rec.setValue("u_calculated_inherent_rating", inherentRating);
rec.update();
} else if (type == 3) {
if (residual > 0 && residual <= 6) {
residualRating = "Low";
} else if (residual > 6 && residual <= 13) {
residualRating = "Moderate";
} else if (residual > 13 && residual <= 19) {
residualRating = "High";
} else if (residual > 19 && residual <= 25) {
residualRating = "Very High";
}
rec.setValue("u_computed_impact_residual", impactResidual);
rec.setValue("u_computed_likelihood_residual", likelihoodResidual);
rec.setValue("u_calculated_impact_residual", calcImpactResidual);
rec.setValue("u_calculated_likelihood_residual", calcLikelihoodResidual);
rec.setValue("u_calculated_residual_score", residual);
rec.setValue("u_calculated_residual_rating", residualRating);
rec.update();
}
})(current, previous);
Use the code above and if you get it helpful please markit as helpful.
Regards,
Sagnic
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hello Sagnic,
You explained that the heatmap pattern is to increase from left to right, but mine is the opposite.
Do you know how I can make it return to the correct orientation?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Yes Sagnic,
But my x-axis in heatmap start with my highest score (não atende = 3):
If you see in my control assessment the order is 1,2 and 3. But in heatmap is 3,2 and 1:
Did you now how can I fix this?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 weeks ago
Hi  @pverni ,
The Heatmap configuration is not directly derived from the Qualitative Rating Criteria.
Typically, heatmaps are configured based on either inherent or residual risk ratings.
For example, in an inherent assessment, once you open the assessment, you will need to configure the heatmap by selecting the X‑axis and Y‑axis values from the Heatmap Configuration section.
Qualitative Rating Criteria :
| Assessment type | Background color | Lower rating interval | Overridden score | Rating | Risk appetite scale | Risk color style | Domain | Text color |
| Inherent Assessment | #49A252 | 0.00 | 2.00 | Very Low | Very Low Risk | global | #000000 | |
| Inherent Assessment | #B9D629 | 3.00 | 4.00 | Low | Low Risk | global | #2E2E2E | |
| Inherent Assessment | #FFC651 | 5.00 | 9.00 | Moderate | Moderate Risk | global | #2E2E2E | |
| Inherent Assessment | #EB8947 | 10.00 | 16.00 | High | High Risk | global | #2E2E2E | |
| Inherent Assessment | #D95454 | 20.00 | 25.00 | Very High | Very High Risk | global | #000000 |
Heatmap Colors :
| Assessment type | Display order | Risk color style | Domain | X-axis | Y-axis |
| Inherent Assessment | 0 | Very Low Risk | global | Insignificant | Rare |
| Inherent Assessment | 1 | Very Low Risk | global | Insignificant | Unlikely |
| Inherent Assessment | 2 | Low Risk | global | Insignificant | Possible |
| Inherent Assessment | 3 | Low Risk | global | Insignificant | Likely |
| Inherent Assessment | 4 | Moderate Risk | global | Insignificant | Almost Certain |
| Inherent Assessment | 5 | Very Low Risk | global | Minor | Rare |
| Inherent Assessment | 6 | Low Risk | global | Minor | Unlikely |
| Inherent Assessment | 7 | Moderate Risk | global | Minor | Possible |
| Inherent Assessment | 8 | Moderate Risk | global | Minor | Likely |
| Inherent Assessment | 9 | High Risk | global | Minor | Almost Certain |
| Inherent Assessment | 10 | Low Risk | global | Moderate | Rare |
| Inherent Assessment | 11 | Moderate Risk | global | Moderate | Unlikely |
| Inherent Assessment | 12 | Moderate Risk | global | Moderate | Possible |
| Inherent Assessment | 13 | High Risk | global | Moderate | Likely |
| Inherent Assessment | 14 | High Risk | global | Moderate | Almost Certain |
| Inherent Assessment | 15 | Low Risk | global | Major | Rare |
| Inherent Assessment | 16 | Moderate Risk | global | Major | Unlikely |
| Inherent Assessment | 17 | High Risk | global | Major | Possible |
| Inherent Assessment | 18 | High Risk | global | Major | Likely |
| Inherent Assessment | 19 | Very High Risk | global | Major | Almost Certain |
| Inherent Assessment | 20 | Moderate Risk | global | Catastrophic | Rare |
| Inherent Assessment | 21 | High Risk | global | Catastrophic | Unlikely |
| Inherent Assessment | 22 | High Risk | global | Catastrophic | Possible |
| Inherent Assessment | 23 | Very High Risk | global | Catastrophic | Likely |
| Inherent Assessment | 24 | Very High Risk | global | Catastrophic | Almost Certain |
After completing this setup, you will see an option to configure the heatmap colors through a related list called Heatmap Colors. Here, you can define the appropriate color mappings, which will then be reflected in the Heatmap report.
If you find this solution helpful, please mark it as useful and accept the solution to close the thread.
Regards,
Sagnic
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
2 weeks ago
Hi @pverni ,
I hope you tried this solution.
If it is useful for you plese mark it as helpful.
Regards,
Sagnic

