Gnome Stronghold (1+) – 86.5 XP
Draynor Village Rooftop (10+) – 120 XP
Al Kharid Rooftop (20+) – 180 XP
Varrock Rooftop (30+) – 238 XP
Canifis Rooftop (40+) – 240 XP
Falador Rooftop (50+) – 440 XP
Wilderness Course (52+) – 571 XP
Seers' Village Rooftop (60+) – 570 XP
Pollnivneach Rooftop (70+) – 890 XP
Rellekka Rooftop (80+) – 780 XP
Ardougne Rooftop (90+) – 793 XP
Prifddinas Course (75+) – 1,335 XP
Remaining XP: 0
Laps Required: 0
Estimated Marks of Grace: 0
Mastering Agility in OSRS: A Strategic Guide
Agility is one of the most rewarding non-combat skills in Old School RuneScape (OSRS). Not only does it increase the rate at which your run energy restores, but it also provides access to crucial shortcuts across Gielinor. This Agility calculator helps you plan your grind from level 1 to 99 by determining exactly how many laps you need at your chosen course.
How to Use the Agility Calculator
To use the tool, simply enter your current Agility level or total XP. Then, set your goal level. Select the course you are currently running or plan to run. The calculator will immediately output the total remaining experience required and the total number of full laps needed to hit your target.
Top Agility Training Methods
Rooftop Courses: These are the most popular methods because they yield Marks of Grace, which can be traded for the Graceful Outfit or Amylase crystals for profit.
Seers' Village Rooftop: Widely considered the best XP per hour from level 60 to 80, especially when using the Kandarin Headgear for the Camelot teleport shortcut.
Ardougne Rooftop: The gold standard for high-level Agility training (level 90+), offering excellent XP and the highest rate of Marks of Grace.
The Wilderness Course: Excellent XP for mid-levels, but carries the risk of player killers (PKers).
Marks of Grace and Efficiency
While training on Rooftop courses, you will periodically find Marks of Grace. On average, you can expect one mark every 5 to 10 minutes, depending on the course and your level. If your level is 20 levels higher than the course requirement, the drop rate of Marks of Grace is reduced to 20% of the normal rate. Our calculator provides a rough estimate of Marks you might receive during your grind.
XP Table Reference
In OSRS, experience requirements grow exponentially. While level 92 is technically the "halfway point" (6,517,253 XP), reaching level 99 requires a staggering 13,034,431 XP. This is why planning your laps is essential to staying motivated during the long grind to the Agility skillcape.
var xpTable = [
0, 0, 83, 174, 276, 388, 512, 650, 801, 969, 1154, 1358, 1584, 1833, 2107, 2411, 2746, 3115, 3523, 3973, 4470, 5018, 5624, 6291, 7028, 7842, 8740, 9730, 10824, 12031, 13363, 14833, 16456, 18247, 20224, 22406, 24815, 27473, 30408, 33648, 37224, 41171, 45529, 50339, 55649, 61512, 67983, 75127, 83014, 91717, 101314, 111885, 123519, 136309, 150351, 165750, 182619, 201081, 221266, 243321, 267406, 293690, 322358, 353615, 387685, 424812, 465257, 509294, 557211, 609312, 665913, 727361, 794027, 866300, 944607, 1030030, 1121544, 1220473, 1327170, 1442115, 1565809, 1698822, 1841785, 1995400, 2160455, 2337746, 2528148, 2732602, 2952137, 3187843, 3440909, 3712555, 4004071, 4316815, 4652232, 5011855, 5397268, 5810134, 6252327, 6725732, 7232338, 7774136, 8353173, 8971638, 9631911, 10336531, 11088243, 11889814, 12744315, 13034431
];
function updateXpFromLevel(type) {
var levelInput = document.getElementById(type + 'Level');
var xpInput = document.getElementById(type + 'XP');
var level = parseInt(levelInput.value);
if (level 99) level = 99;
levelInput.value = level;
xpInput.value = xpTable[level];
}
function updateLevelFromXp(type) {
var levelInput = document.getElementById(type + 'Level');
var xpInput = document.getElementById(type + 'XP');
var xp = parseInt(xpInput.value);
if (isNaN(xp)) xp = 0;
var level = 1;
for (var i = 1; i = xpTable[i]) {
level = i;
} else {
break;
}
}
levelInput.value = level;
}
function calculateAgility() {
var currentXP = parseInt(document.getElementById('currentXP').value);
var targetXP = parseInt(document.getElementById('targetXP').value);
var lapXP = parseFloat(document.getElementById('courseSelect').value);
if (isNaN(currentXP) || isNaN(targetXP)) {
alert("Please enter valid XP numbers.");
return;
}
if (targetXP <= currentXP) {
alert("Target XP must be greater than Current XP.");
document.getElementById('osrs-result').style.display = 'none';
return;
}
var diff = targetXP – currentXP;
var laps = Math.ceil(diff / lapXP);
// Estimation for marks (approx 1 mark per 15-20 laps on average for rooftop)
var estimatedMarks = Math.floor(laps / 18);
document.getElementById('resRemainingXP').innerText = diff.toLocaleString();
document.getElementById('resLaps').innerText = laps.toLocaleString();
document.getElementById('resMarks').innerText = estimatedMarks.toLocaleString();
document.getElementById('osrs-result').style.display = 'block';
}