Total number of people observed passing a specific point.
Meters (Output: P / min / m)
Feet (Output: P / min / ft)
Select the unit used for the walkway width.
Flow Rate
0
pedestrians/min/m
Level of Service (LOS)
–
Wait for calculation
How to Calculate Pedestrian Flow Rate
Pedestrian flow rate is a fundamental metric in urban planning and traffic engineering. It measures the volume of pedestrian traffic relative to the available space and time. Accurate calculation is essential for designing safe and efficient sidewalks, transit corridors, and emergency exits.
The Pedestrian Flow Formula
The standard formula used to calculate the unit flow rate is derived from the relationships between flow, speed, and density. The specific flow rate ($P$) is calculated as:
P = N / (T × W)
N (Count): The total number of pedestrians passing a point during the observation period.
T (Time): The duration of the observation, typically measured in minutes.
W (Width): The effective width of the walkway (meters or feet).
Effective Width vs. Total Width
A critical mistake in calculating flow rate is using the total physical width of the sidewalk. You must use the Effective Walkway Width. This is the portion of the path actually available for walking.
To find effective width, subtract "shy distances" caused by obstacles:
Curb edge: Subtract ~0.5m (1.5 ft)
Building facades: Subtract ~0.5m (1.5 ft)
Street furniture (benches, poles): Subtract the width of the object plus a buffer zone.
Understanding Level of Service (LOS)
Based on the work of John Fruin, pedestrian flow is categorized into six Levels of Service, ranging from A (free flow) to F (severe congestion). This calculator automatically determines the LOS based on the calculated flow rate.
LOS
Flow (P/min/m)
Description
A
≤ 16
Free flow, pedestrians choose speed freely.
B
16 – 23
Minor conflicts, generally free movement.
C
23 – 33
Speed restricted by density, passing is difficult.
D
33 – 49
Restricted speed, high probability of conflict.
E
49 – 82
Shuffling gait, flows are unstable.
F
> 82
Breakdown in flow, shuffling, frequent stops.
Note: The imperial equivalents (P/min/ft) are approximately: A (25).
function calculatePedestrianFlow() {
// Get inputs
var countInput = document.getElementById("pedCount").value;
var durationInput = document.getElementById("duration").value;
var widthInput = document.getElementById("width").value;
var unit = document.getElementById("unit").value;
// DOM Elements for results
var resultContainer = document.getElementById("flowResult");
var flowValueDisplay = document.getElementById("flowValue");
var flowUnitDisplay = document.getElementById("flowUnitDisplay");
var losValueDisplay = document.getElementById("losValue");
var losDescDisplay = document.getElementById("losDescription");
var losDetailsDisplay = document.getElementById("losDetails");
// Validation
if (countInput === "" || durationInput === "" || widthInput === "") {
alert("Please fill in all fields (Count, Duration, and Width).");
return;
}
var count = parseFloat(countInput);
var duration = parseFloat(durationInput);
var width = parseFloat(widthInput);
if (isNaN(count) || isNaN(duration) || isNaN(width) || duration <= 0 || width <= 0) {
alert("Please enter valid positive numbers.");
return;
}
// Calculation: Flow = Count / (Time * Width)
var flowRate = count / (duration * width);
// Format Flow Rate
var formattedFlow = flowRate.toFixed(2);
flowValueDisplay.innerHTML = formattedFlow;
// Determine Units and LOS Thresholds
var unitText = (unit === "meters") ? "pedestrians/min/m" : "pedestrians/min/ft";
flowUnitDisplay.innerHTML = unitText;
// Determine LOS based on Fruin's Standards
// Thresholds for Metric: 16, 23, 33, 49, 82
// Thresholds for Imperial: 5, 7, 10, 15, 25
var los = "";
var desc = "";
var color = "";
var details = "";
if (unit === "meters") {
if (flowRate <= 16) {
los = "A";
desc = "Open Flow";
color = "#28a745";
details = "Pedestrians move in desired paths without altering their movements for others. Walking speeds are freely selected.";
} else if (flowRate <= 23) {
los = "B";
desc = "Reasonable Flow";
color = "#5cb85c";
details = "Sufficient space to select walking speeds freely, but pedestrians become aware of others. Minor conflicts occur.";
} else if (flowRate <= 33) {
los = "C";
desc = "Stable Flow";
color = "#ffc107";
details = "Freedom to select individual walking speed and freely pass other pedestrians is restricted.";
} else if (flowRate <= 49) {
los = "D";
desc = "Restricted Flow";
color = "#fd7e14";
details = "The majority of pedestrians have restricted walking speeds and reduced ability to bypass others.";
} else if (flowRate <= 82) {
los = "E";
desc = "Unstable Flow";
color = "#dc3545";
details = "Walking speeds are restricted. Forward movement is possible only by shuffling. Space is insufficient for passing.";
} else {
los = "F";
desc = "Jammed Flow";
color = "#721c24";
details = "Walking speeds are severely restricted. Frequent stoppages and contact with others are likely.";
}
} else {
// Imperial Thresholds
if (flowRate <= 5) {
los = "A"; desc = "Open Flow"; color = "#28a745";
details = "Pedestrians move in desired paths without altering their movements for others. Walking speeds are freely selected.";
} else if (flowRate <= 7) {
los = "B"; desc = "Reasonable Flow"; color = "#5cb85c";
details = "Sufficient space to select walking speeds freely, but pedestrians become aware of others. Minor conflicts occur.";
} else if (flowRate <= 10) {
los = "C"; desc = "Stable Flow"; color = "#ffc107";
details = "Freedom to select individual walking speed and freely pass other pedestrians is restricted.";
} else if (flowRate <= 15) {
los = "D"; desc = "Restricted Flow"; color = "#fd7e14";
details = "The majority of pedestrians have restricted walking speeds and reduced ability to bypass others.";
} else if (flowRate <= 25) {
los = "E"; desc = "Unstable Flow"; color = "#dc3545";
details = "Walking speeds are restricted. Forward movement is possible only by shuffling. Space is insufficient for passing.";
} else {
los = "F"; desc = "Jammed Flow"; color = "#721c24";
details = "Walking speeds are severely restricted. Frequent stoppages and contact with others are likely.";
}
}
// Update LOS Display
losValueDisplay.innerHTML = los;
losValueDisplay.style.color = color;
losDescDisplay.innerHTML = desc;
losDetailsDisplay.innerHTML = "Status: " + details;
// Show result container
resultContainer.style.display = "block";
}