Enter your distance and time to calculate your pace and predicted race finishes.
Kilometers (km)
Miles (mi)
Your Performance Summary
Predicted Race Times
Based on your calculated pace:
Race Distance
Predicted Time
How to Use the Running Calculator
Whether you are training for your first 5k or aiming for a Boston Marathon qualifying time, understanding your running pace is the foundation of effective training. This tool helps you calculate how fast you ran during a workout and estimates what your finish times would be for other popular race distances.
1. Calculate Your Pace
To find your pace, input the total distance you ran and the total time it took. The calculator will provide your pace in minutes per kilometer or minutes per mile. For example, if you run 5km in 25 minutes, your pace is 5:00 per kilometer.
2. Predict Race Times
Our algorithm uses your current pace to extrapolate performance across common distances:
5K: 3.1 miles
10K: 6.2 miles
Half Marathon: 21.0975 km (13.1 miles)
Marathon: 42.195 km (26.2 miles)
Why Running Pace Matters
Pace is the primary metric runners use to gauge intensity. Unlike speed (km/h or mph), pace tells you exactly how much time you need to cover a specific unit of distance. This is crucial for "pacing" yourself during a race to ensure you don't burn out too early.
Training Zones
Most running coaches recommend varying your pace throughout the week:
Easy Runs: Should be 60-90 seconds slower than your goal race pace.
Tempo Runs: Often described as "comfortably hard," usually around your 10k to Half Marathon pace.
Intervals: Short bursts at or faster than your 5k pace to improve cardiovascular efficiency.
Common Running Terms
Split: The time it takes to complete a specific distance within a longer run (e.g., your "mile splits" during a 5-mile run).
Negative Split: Running the second half of a race or workout faster than the first half—a sign of excellent pacing strategy.
Cadence: The number of steps you take per minute. Higher cadence often leads to better efficiency and reduced injury risk.
function calculateRunningStats() {
var distance = parseFloat(document.getElementById('runDistance').value);
var unit = document.getElementById('runUnit').value;
var hrs = parseInt(document.getElementById('runHrs').value) || 0;
var mins = parseInt(document.getElementById('runMins').value) || 0;
var secs = parseInt(document.getElementById('runSecs').value) || 0;
if (!distance || distance <= 0 || (hrs === 0 && mins === 0 && secs === 0)) {
alert("Please enter a valid distance and time.");
return;
}
// Total time in seconds
var totalSeconds = (hrs * 3600) + (mins * 60) + secs;
// Pace in seconds per unit
var pacePerUnit = totalSeconds / distance;
// Format pace
var paceMins = Math.floor(pacePerUnit / 60);
var paceSecs = Math.round(pacePerUnit % 60);
if (paceSecs === 60) { paceMins++; paceSecs = 0; }
var paceFormatted = paceMins + ":" + (paceSecs < 10 ? "0" + paceSecs : paceSecs);
// Calculate Speed (km/h or mph)
var totalHours = totalSeconds / 3600;
var speed = (distance / totalHours).toFixed(2);
// Display results
document.getElementById('running-result-box').style.display = 'block';
document.getElementById('paceDisplay').innerHTML = "Pace: " + paceFormatted + " / " + unit;
document.getElementById('speedDisplay').innerHTML = "Average Speed: " + speed + " " + (unit === 'km' ? 'km/h' : 'mph');
// Predictions
var races = [];
if (unit === 'km') {
races = [
{ name: "5 Kilometers", dist: 5 },
{ name: "10 Kilometers", dist: 10 },
{ name: "Half Marathon", dist: 21.0975 },
{ name: "Marathon", dist: 42.195 }
];
} else {
races = [
{ name: "5 Kilometers", dist: 3.10686 },
{ name: "10 Kilometers", dist: 6.21371 },
{ name: "Half Marathon", dist: 13.1094 },
{ name: "Marathon", dist: 26.2188 }
];
}
var tableBody = document.getElementById('predictionBody');
tableBody.innerHTML = "";
for (var i = 0; i 0) {
timeStr += rHrs + "h " + (rMins < 10 ? "0" + rMins : rMins) + "m " + (rSecs < 10 ? "0" + rSecs : rSecs) + "s";
} else {
timeStr += rMins + "m " + (rSecs < 10 ? "0" + rSecs : rSecs) + "s";
}
var row = "