In aviation, the Rate of Descent (ROD) is the vertical speed required to transition from a higher cruise altitude to a lower target altitude or fix. This calculation is critical for fuel efficiency, passenger comfort, and meeting Air Traffic Control (ATC) restrictions.
How to Calculate Rate of Descent
The mathematical formula used by this app is based on ground speed and the distance available to lose altitude. The primary steps are:
Determine Altitude to Lose: Subtract target altitude from current altitude.
Calculate Time to Destination: Divide distance (nm) by ground speed (kts) to get time in hours, then multiply by 60 for minutes.
Calculate FPM: Divide the altitude to lose by the time available.
The 3-Degree Glide Path Rule
A standard descent profile is usually 3 degrees. For a quick estimate, many pilots use the "3:1 rule": multiply your altitude to lose (in thousands of feet) by 3 to find your required descent distance. For vertical speed, a common rule of thumb is to multiply ground speed by 5 (e.g., 100 kts GS = 500 fpm descent).
Example Calculation
If you are at 30,000 feet and need to descend to 10,000 feet (20,000 ft to lose) over a distance of 60 Nautical Miles with a ground speed of 300 knots:
Time available = 60 nm / 300 kts = 0.2 hours (12 minutes).
Required ROD = 20,000 ft / 12 minutes = 1,667 feet per minute (fpm).
function calculateROD() {
var curAlt = parseFloat(document.getElementById('currentAlt').value);
var tarAlt = parseFloat(document.getElementById('targetAlt').value);
var gSpeed = parseFloat(document.getElementById('groundSpeed').value);
var dist = parseFloat(document.getElementById('distance').value);
var resultDiv = document.getElementById('rod-result-container');
var rodOut = document.getElementById('rod-output');
var angOut = document.getElementById('angle-output');
if (isNaN(curAlt) || isNaN(tarAlt) || isNaN(gSpeed) || isNaN(dist) || gSpeed <= 0 || dist <= 0) {
alert("Please enter valid positive numbers for all fields.");
return;
}
var altToLose = curAlt – tarAlt;
if (altToLose <= 0) {
alert("Current altitude must be higher than target altitude.");
return;
}
// Time in minutes = (Distance / Groundspeed) * 60
var timeInMinutes = (dist / gSpeed) * 60;
// Rate of Descent (fpm) = Altitude / Time
var rod = altToLose / timeInMinutes;
// Calculate Descent Angle (Approximation using 60-to-1 rule)
// Angle = (Alt to lose / (Dist * 6076)) * (180 / PI)
// More simply for aviation: Angle = (Alt to lose) / (Dist * 101.2)
var angle = altToLose / (dist * 101.27);
resultDiv.style.display = "block";
rodOut.innerHTML = Math.round(rod).toLocaleString() + " fpm";
angOut.innerHTML = "Approximate Descent Angle: " + angle.toFixed(1) + "°";
// Scroll to result on mobile
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}