Per 1 person
Per 100 person-time units
Per 1,000 person-time units
Per 10,000 person-time units
Per 100,000 person-time units
Please enter valid positive numbers.
Calculated Incidence Rate
0.00
How to Calculate Person-Time Incidence Rate
In epidemiology, calculating the incidence rate (also known as incidence density) is crucial for understanding the speed at which a disease or event occurs within a population. Unlike cumulative incidence, which assumes a fixed population over a specific time, the person-time incidence rate accounts for varying observation periods for each individual.
This method is particularly useful in dynamic cohorts where individuals may enter or leave the study at different times, or when study participants are lost to follow-up.
The Incidence Rate Formula
The mathematical formula for calculating the person-time incidence rate is straightforward but requires precise data collection regarding the time each individual contributes to the study:
Incidence Rate (IR) = Number of New Cases / Total Person-Time at Risk
Where:
Number of New Cases: The total count of incident events (e.g., disease diagnosis) observed during the study period.
Total Person-Time: The sum of the time periods that each individual in the population was at risk of developing the outcome. This is usually measured in person-years, person-months, or person-days.
Step-by-Step Calculation Example
Let's look at a practical scenario to understand how to calculate the person-time incidence rate manually:
Imagine a study tracking the incidence of a specific infection in a nursing home.
Determine the Total Person-Time: Suppose you follow 5 patients.
Patient A is followed for 2 years (no infection).
Patient B is followed for 0.5 years (gets infected).
Patient C is followed for 2 years (no infection).
Patient D is followed for 1 year (lost to follow-up).
Patient E is followed for 2 years (no infection).
The sum is: 2 + 0.5 + 2 + 1 + 2 = 7.5 person-years.
Count the Cases: In this scenario, only Patient B got infected, so there is 1 case.
Apply the Formula: 1 case / 7.5 person-years = 0.1333…
Normalize the Rate: To make the number readable, epidemiologists often multiply by a standard factor (like 100 or 1,000).
0.1333 x 100 = 13.33 cases per 100 person-years.
Why Use Person-Time?
The primary advantage of using person-time is precision. In real-world studies, populations are rarely closed. People move away, die from competing causes, or the study ends before they develop the disease. By using the person-time denominator, you utilize all available data from every participant, regardless of how long they were observed, leading to a more accurate measure of risk magnitude.
Interpreting the Results
When you use the calculator above, the result tells you the "velocity" of the disease in the population. A rate of 5 per 1,000 person-years means that if you observed 1,000 people for one year, you would expect 5 new cases. Alternatively, if you followed 100 people for 10 years (also 1,000 person-years), you would also expect 5 cases, assuming the risk remains constant over time.
function calculateIncidenceRate() {
// 1. Get input values
var newCasesInput = document.getElementById('newCases');
var totalPersonTimeInput = document.getElementById('totalPersonTime');
var timeUnitSelect = document.getElementById('timeUnit');
var multiplierSelect = document.getElementById('multiplier');
var resultBox = document.getElementById('resultBox');
var errorMsg = document.getElementById('errorMsg');
// 2. Parse values
var cases = parseFloat(newCasesInput.value);
var time = parseFloat(totalPersonTimeInput.value);
var multiplier = parseFloat(multiplierSelect.value);
var unitName = timeUnitSelect.options[timeUnitSelect.selectedIndex].text.toLowerCase();
// 3. Validation
if (isNaN(cases) || isNaN(time) || time <= 0 || cases < 0) {
errorMsg.style.display = 'block';
resultBox.style.display = 'none';
return;
}
// 4. Reset error
errorMsg.style.display = 'none';
// 5. Calculation Logic
// Rate = (Cases / Person-Time) * Multiplier
var rawRate = cases / time;
var finalRate = rawRate * multiplier;
// 6. Formatting
// If the number is integers (like 500 per 1000), show less decimals.
// If it is complex, show 2-4 decimals.
var formattedRate = finalRate % 1 === 0 ? finalRate.toFixed(0) : finalRate.toFixed(2);
// Handle singular vs plural for unit display
var unitDisplay = "person-" + unitName;
// 7. Display Results
document.getElementById('finalRate').innerHTML = formattedRate + " cases";
document.getElementById('resultDescription').innerHTML =
"Per " + multiplier.toLocaleString() + " " + unitDisplay + "." +
"Based on " + cases + " events over " + time + " total " + unitDisplay + ".";
resultBox.style.display = 'block';
}