Total number of people in contact with the pathogen.
Vaccinated or previously infected individuals.
Number of exposed people who became infected.
Calculated Secondary Attack Rate (SAR)
0.00%
How to Calculate Infectivity Rate: Understanding Secondary Attack Rate (SAR)
In epidemiology and public health, calculating the "infectivity rate" is crucial for understanding how contagious a pathogen is within a specific environment. The most common metric used to quantify this in real-world scenarios—such as households, dormitories, or offices—is the Secondary Attack Rate (SAR).
Unlike the Basic Reproduction Number ($R_0$), which measures potential spread in a completely susceptible population over time, the Infectivity Rate (SAR) measures the probability that infection occurs among susceptible people within a specific group after exposure to a primary case.
The Infectivity Rate Formula
To calculate the infectivity rate manually, you need to identify the population at risk. This requires excluding individuals who are already immune due to vaccination or prior infection.
SAR (%) = ( New Cases / Susceptible Population ) × 100
Where the Susceptible Population is calculated as:
Susceptible = Total Exposed – Already Immune
Step-by-Step Calculation Example
Let's look at a realistic scenario to understand how the numbers work. Imagine a daycare center outbreak.
Total Exposed: There are 30 children in a classroom exposed to a virus.
Immune: 5 children are already vaccinated against this specific virus.
Susceptible Population: 30 (Total) – 5 (Immune) = 25 children at risk.
New Cases: After the incubation period, 10 of the susceptible children become sick.
Calculation:
(10 New Cases / 25 Susceptible) = 0.40
0.40 × 100 = 40% Infectivity Rate.
Why Exclude Immune Individuals?
When calculating infectivity, accuracy is paramount. If you include people who cannot get sick (because they are immune) in your denominator, you artificially lower the infectivity rate. For example, if a virus is extremely contagious but everyone in the room is vaccinated, 0 people get sick. This doesn't mean the virus isn't infectious; it means the population was protected. To measure the virus's true power, we look only at those who could have gotten sick.
Interpreting the Results
The resulting percentage helps public health officials determine necessary interventions:
Low SAR (< 10%): Suggests the pathogen requires close, prolonged contact or has low transmissibility (e.g., Tuberculosis in casual settings).
Moderate SAR (10% – 40%): Typical for seasonal influenza in households.
High SAR (> 40%): Indicates a highly contagious pathogen (e.g., Measles or Omicron variant of SARS-CoV-2 in unventilated spaces).
Factors Influencing Infectivity
Several variables can alter the calculated rate beyond the biology of the virus:
Duration of Exposure: Longer contact time increases the probability of transmission.
Ventilation: Poor air circulation increases the attack rate of airborne pathogens.
Viral Load: The amount of virus shedding from the primary case affects how easily contacts get infected.
Host Factors: The immune system strength of the susceptible individuals.
function calculateSAR() {
// Get input elements
var totalExposedInput = document.getElementById("totalExposed");
var alreadyImmuneInput = document.getElementById("alreadyImmune");
var newCasesInput = document.getElementById("newCases");
var resultBox = document.getElementById("resultBox");
var errorDisplay = document.getElementById("errorDisplay");
var sarResult = document.getElementById("sarResult");
var susceptibleResult = document.getElementById("susceptibleResult");
var interpretation = document.getElementById("interpretation");
// Reset display
errorDisplay.style.display = "none";
resultBox.style.display = "none";
// Parse values
var totalExposed = parseFloat(totalExposedInput.value);
var alreadyImmune = parseFloat(alreadyImmuneInput.value);
var newCases = parseFloat(newCasesInput.value);
// Validation Logic
if (isNaN(totalExposed) || totalExposed <= 0) {
errorDisplay.innerText = "Please enter a valid number for Total Exposed Population.";
errorDisplay.style.display = "block";
return;
}
if (isNaN(alreadyImmune) || alreadyImmune < 0) {
alreadyImmune = 0; // Default to 0 if empty or invalid
}
if (isNaN(newCases) || newCases = totalExposed) {
errorDisplay.innerText = "Immune individuals cannot equal or exceed Total Exposed population (there must be someone susceptible).";
errorDisplay.style.display = "block";
return;
}
// Calculate Susceptible Population
var susceptible = totalExposed – alreadyImmune;
// Logic check: New Cases cannot exceed Susceptible Population
if (newCases > susceptible) {
errorDisplay.innerText = "New Cases cannot exceed the Susceptible Population (" + susceptible + "). Check your inputs.";
errorDisplay.style.display = "block";
return;
}
// Calculate SAR
var infectivityRate = (newCases / susceptible) * 100;
// Display Results
sarResult.innerText = infectivityRate.toFixed(2) + "%";
susceptibleResult.innerHTML = "Based on " + newCases + " infections among a susceptible population of " + susceptible + " people.";
// Interpretation Logic
var interpText = "";
if (infectivityRate < 10) {
interpText = "This indicates a Low infectivity rate in this setting.";
} else if (infectivityRate >= 10 && infectivityRate < 40) {
interpText = "This indicates a Moderate infectivity rate, common for seasonal flu in households.";
} else {
interpText = "This indicates a High infectivity rate. Immediate isolation and protective measures are recommended.";
}
interpretation.innerHTML = interpText;
resultBox.style.display = "block";
}