Total number of deployments or changes made to production.
Number of changes resulting in a failure (hotfix, rollback, patch).
What is Change Failure Rate?
Change Failure Rate (CFR) is one of the four key DORA (DevOps Research and Assessment) metrics used to measure the performance of a software development team. It represents the percentage of changes released to production that result in a failure and require immediate remediation, such as a rollback or emergency patch.
How to Calculate Change Failure Rate
The calculation is straightforward. You divide the number of failed deployments by the total number of deployments and multiply by 100 to get the percentage.
CFR = (Failed Changes / Total Changes) × 100
DORA Benchmarks
According to DORA's State of DevOps reports, performance levels are categorized as follows:
Elite: 0% – 15%
High: 16% – 30%
Medium: 31% – 45%
Low: 46% – 60%+
Example Calculation
If your DevOps team deployed 50 changes to production last month, and 4 of those required a rollback or an immediate bug fix, your calculation would be:
(4 / 50) × 100 = 8%
This team would be considered an "Elite" performer in the Change Failure Rate category.
function calculateCFR() {
var total = parseFloat(document.getElementById('totalChanges').value);
var failed = parseFloat(document.getElementById('failedChanges').value);
var resultDiv = document.getElementById('cfrResult');
var valueDiv = document.getElementById('cfrValue');
var ratingDiv = document.getElementById('cfrRating');
if (isNaN(total) || isNaN(failed) || total < 0 || failed total) {
alert('Failed changes cannot be greater than total changes.');
return;
}
if (total === 0) {
valueDiv.innerHTML = "0%";
ratingDiv.innerHTML = "Performance: Elite (No Deployments)";
resultDiv.style.backgroundColor = "#e8f6ef";
resultDiv.style.color = "#27ae60";
resultDiv.style.display = "block";
return;
}
var cfr = (failed / total) * 100;
var rating = "";
var bgColor = "";
var textColor = "";
if (cfr <= 15) {
rating = "Performance Level: Elite";
bgColor = "#e8f6ef";
textColor = "#27ae60";
} else if (cfr <= 30) {
rating = "Performance Level: High";
bgColor = "#fef9e7";
textColor = "#f1c40f";
} else if (cfr <= 45) {
rating = "Performance Level: Medium";
bgColor = "#fdf2e9";
textColor = "#e67e22";
} else {
rating = "Performance Level: Low";
bgColor = "#fdedec";
textColor = "#e74c3c";
}
valueDiv.innerHTML = "CFR: " + cfr.toFixed(2) + "%";
ratingDiv.innerHTML = rating;
resultDiv.style.backgroundColor = bgColor;
resultDiv.style.color = textColor;
resultDiv.style.display = "block";
}