Compare incidence rates between exposed and unexposed populations
Group 1: Exposed / Study Group
Group 2: Unexposed / Control Group
Mortality Rate Ratio (MRR)
0.00
Enter values above to see the interpretation.
Exposed Rate: 0 per unit time
Unexposed Rate: 0 per unit time
How to Calculate Mortality Rate Ratio
The Mortality Rate Ratio (MRR), often referred to as the Incidence Rate Ratio (IRR) in epidemiology, is a vital metric used to compare the rate of events (such as death) occurring in two distinct populations over a specific period. It is commonly used in cohort studies to determine if an exposure (like smoking, a specific treatment, or an environmental factor) increases or decreases the risk of mortality compared to a control group.
The Formula
The MRR is calculated by dividing the incidence density rate of the exposed group by the incidence density rate of the unexposed group. The formula requires the count of deaths and the total "person-time" contributed by individuals in each group.
Deaths: The total count of mortality events observed in the specific group.
Person-Time: The sum of the time periods that each individual in the group was at risk (e.g., person-years). If precise person-time is unavailable, the average population size multiplied by the time interval is often used as an approximation.
Step-by-Step Calculation Example
Let's assume we are studying the effect of a specific occupational hazard on mortality.
Step 1: Calculate the Rate for the Exposed Group
Suppose the exposed group consists of factory workers.
Deaths observed: 15 Total Person-Years at risk: 2,500 Rateexposed = 15 / 2,500 = 0.0060 (or 6 deaths per 1,000 person-years)
Step 2: Calculate the Rate for the Unexposed Group
The unexposed group consists of office workers.
Deaths observed: 10 Total Person-Years at risk: 5,000 Rateunexposed = 10 / 5,000 = 0.0020 (or 2 deaths per 1,000 person-years)
Step 3: Divide the Rates
MRR = 0.0060 / 0.0020 = 3.0
Interpreting the Result
The interpretation of the MRR is straightforward:
MRR = 1.0: Null value. The mortality rate is the same in both groups. There is no association between exposure and mortality.
MRR > 1.0: Increased risk. The exposed group has a higher mortality rate than the unexposed group. An MRR of 3.0 means the exposed group is 3 times as likely to die per unit of time compared to the control.
MRR < 1.0: Decreased risk (Protective factor). The exposed group has a lower mortality rate. An MRR of 0.5 implies the rate in the exposed group is half that of the unexposed group.
Why Use Person-Time?
Using person-time (such as person-years) is superior to using simple raw counts or proportions because it accounts for participants entering or leaving a study at different times. It provides a true "density" of risk, making it the preferred method for long-term clinical trials and epidemiological cohort studies.
function calculateMRR() {
// 1. Get Input Values using explicit IDs
var d1 = document.getElementById('exposedDeaths').value;
var pt1 = document.getElementById('exposedTime').value;
var d0 = document.getElementById('unexposedDeaths').value;
var pt0 = document.getElementById('unexposedTime').value;
// 2. DOM Elements for output
var resultArea = document.getElementById('result-area');
var mrrDisplay = document.getElementById('mrr-value');
var rateExposedDisplay = document.getElementById('rate-exposed');
var rateUnexposedDisplay = document.getElementById('rate-unexposed');
var interpretationDisplay = document.getElementById('interpretation-text');
// 3. Validation Logic
// Convert to floats
var deathsExposed = parseFloat(d1);
var timeExposed = parseFloat(pt1);
var deathsUnexposed = parseFloat(d0);
var timeUnexposed = parseFloat(pt0);
// Check for validity
if (isNaN(deathsExposed) || isNaN(timeExposed) || isNaN(deathsUnexposed) || isNaN(timeUnexposed)) {
alert("Please enter valid numbers in all fields.");
return;
}
if (timeExposed <= 0 || timeUnexposed 0) {
mrrText = "Undefined (Infinite Risk)";
} else {
mrrText = "Undefined (0/0)";
}
} else {
mrr = rateExposed / rateUnexposed;
mrrText = mrr.toFixed(4);
}
// 5. Update DOM
resultArea.style.display = "block";
mrrDisplay.innerHTML = mrrText;
// Format the individual rates for readability (scientific notation if very small, or fixed)
rateExposedDisplay.innerHTML = rateExposed 0 ? rateExposed.toExponential(4) : rateExposed.toFixed(5);
rateUnexposedDisplay.innerHTML = rateUnexposed 0 ? rateUnexposed.toExponential(4) : rateUnexposed.toFixed(5);
// 6. Interpretation Logic
var interpretation = "";
if (rateUnexposed === 0) {
interpretation = "Since the unexposed group has zero deaths, a mathematical ratio cannot be calculated definitively, but the exposed group carries higher absolute risk if deaths > 0.";
} else if (mrr === 1) {
interpretation = "The mortality rate is identical in both groups (Null Value). The exposure is not associated with an increased risk of death.";
} else if (mrr > 1) {
var pctIncrease = ((mrr – 1) * 100).toFixed(1);
interpretation = "The exposed group has a higher risk of mortality. specifically, the rate is " + mrr.toFixed(2) + " times higher than the unexposed group (a " + pctIncrease + "% increase).";
} else {
var pctDecrease = ((1 – mrr) * 100).toFixed(1);
interpretation = "The exposed group has a lower risk of mortality. The exposure appears to be protective, with a " + pctDecrease + "% reduction in rate compared to the unexposed group.";
}
interpretationDisplay.innerHTML = interpretation;
}