*Disclaimer: This tool provides a simplified estimate based on standardized mathematical models. Actual fire behavior is unpredictable.
Understanding Rate of Fire Spread (ROS)
The Rate of Spread (ROS) is the speed at which a fire head moves forward, measured perpendicular to the fire front. Understanding ROS is critical for fire suppression planning, evacuation timing, and safety zone establishment.
Key Factors Influencing Fire Speed
Fuel Load and Type: Fine fuels like dry grass ignite and burn rapidly, resulting in a high ROS. Heavier fuels like logs burn slower but with higher total energy.
Wind Speed: Wind provides oxygen and "leans" the flames forward, pre-heating unburned fuel through radiation and convection. Every increase in wind speed generally results in an exponential increase in spread.
Slope: Fire travels faster uphill. On a 10-degree slope, a fire can move twice as fast as on flat ground because the flames are closer to the fuel further up the hill.
Fuel Moisture: Water in the fuel must evaporate before combustion can occur. Low moisture levels (under 10%) signify extreme fire danger.
Calculation Example
Scenario: A fire starts in dry grass with a 20 km/h wind on a 15% uphill slope, with fuel moisture at 5%.
Result: Under these conditions, the fire could spread at approximately 12-15 meters per minute, covering nearly a kilometer in an hour. This would likely be classified as a high-intensity fire requiring professional intervention.
How to Use This Calculator
To use the Rate of Fire Spread calculator, input the primary fuel type dominant in the area. Provide the wind speed at mid-flame height (usually lower than the open-area 10m wind speed). Enter the slope as a percentage (rise over run) and the estimated moisture of dead fuels. The result will display the forward speed in both meters per minute and kilometers per hour.
function calculateFireSpread() {
var fuelBase = parseFloat(document.getElementById("fuelType").value);
var wind = parseFloat(document.getElementById("windSpeed").value);
var slope = parseFloat(document.getElementById("slopePercent").value);
var moisture = parseFloat(document.getElementById("fuelMoisture").value);
var resultDiv = document.getElementById("fireResult");
if (isNaN(wind) || isNaN(slope) || isNaN(moisture)) {
alert("Please enter valid numerical values for all fields.");
return;
}
// Mathematical Logic based on simplified Rothermel and McArthur models
// Wind Factor: Exponential growth (commonly approx 0.069 coefficient)
var windFactor = Math.exp(0.069 * wind);
// Slope Factor: Fire speed doubles for every 10 degrees (approx 17-18% slope)
var slopeFactor = Math.exp(0.069 * (slope / 1.5));
// Moisture Factor: Speed decreases as moisture increases (Extinction usually around 25-30%)
var moistureFactor = (30 – moisture) / 30;
if (moistureFactor < 0.1) moistureFactor = 0.05; // Fire barely crawls if too wet
// Calculate final ROS in m/min
var ros = fuelBase * windFactor * slopeFactor * moistureFactor;
// Ensure ROS doesn't go below 0
if (ros < 0) ros = 0;
var rosKmH = (ros * 60) / 1000;
// Display Results
document.getElementById("rosMetric").innerText = ros.toFixed(2);
document.getElementById("rosHourly").innerText = rosKmH.toFixed(2);
// Determine Intensity
var intensity = "";
if (ros < 2) {
intensity = "Low (Controlled surface fire)";
} else if (ros < 10) {
intensity = "Moderate (Active spread)";
} else if (ros < 30) {
intensity = "High (Difficult to control)";
} else {
intensity = "Extreme (Possible crowning/spotting)";
}
document.getElementById("fireIntensity").innerText = intensity;
resultDiv.style.display = "block";
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}