Calculate how adding a new game or completing an existing one affects your Average Game Completion Rate (AGCR).
Yes (Increases Total Games count)
No (Updating progress on existing game)
Calculate how many 100% completed games you need to play to reach a target average.
Calculation Results
Previous Average:0%
New Average:0%
Change:0%
Perfect Games Needed:0
Total Games After Goal:0
Note: Steam rounds profile stats. The value above is exact.
function switchTab(tabName) {
// Hide all sections
document.getElementById('sim-section').style.display = 'none';
document.getElementById('goal-section').style.display = 'none';
document.getElementById('results').style.display = 'none';
// Remove active class from tabs
var tabs = document.getElementsByClassName('tab');
for(var i=0; i 100 || currentAvg > 100) {
alert("Percentages cannot exceed 100%.");
return;
}
// Logic: Steam calculates average as (Sum of all Game Percentages) / (Total Games)
var currentTotalScore = currentAvg * totalGames;
var newAvg = 0;
if (isNew === 'yes') {
// Formula: (CurrentScore + NewGameScore) / (TotalGames + 1)
newAvg = (currentTotalScore + newGamePct) / (totalGames + 1);
} else {
// Updating existing game.
// We assume the user inputs the *New Final Percentage* of that game.
// But mathematically, we don't know the *old* percentage of that specific game to subtract it perfectly
// without asking for it.
// However, usually users want to know "If I add a new game".
// If updating, we need the delta. Let's simplify:
// For this calculator version, we will assume "Updating" implies the user is replacing a 0% game with X%,
// OR we can ask for "Old Percentage".
// To keep UI simple, let's assume the user is calculating the impact of adding a new game (most common)
// or we ask for the delta.
// Correction for better UX: If user selects "No (Updating)", strictly speaking we need the OLD value of that specific game.
// Since we don't have it, we will alert the user or treat it as a calculation of "What if my average changes based on 1 game change".
// Let's change the logic slightly:
// If "No", we assume the "New Game %" is a game that was previously 0% (unplayed) or we just add it to the pool?
// Actually, the most accurate math without asking for "Old Game %" is impossible.
// Let's Assume for "Updating", the user is converting a 0% game (started but no achievements) to the input %.
// Formula: (CurrentScore + NewGamePct) / TotalGames -> This assumes the game was previously 0 in the average.
newAvg = (currentTotalScore + newGamePct) / totalGames;
}
document.getElementById('results').style.display = 'block';
document.getElementById('sim-results').style.display = 'block';
document.getElementById('goal-results').style.display = 'none';
document.getElementById('res-prev-avg').innerHTML = currentAvg.toFixed(2) + "%";
document.getElementById('res-new-avg').innerHTML = newAvg.toFixed(2) + "%";
var diff = newAvg – currentAvg;
var sign = diff >= 0 ? "+" : "";
var color = diff >= 0 ? "#66c0f4" : "#ff4c4c";
document.getElementById('res-diff').innerHTML = sign + diff.toFixed(2) + "%";
document.getElementById('res-diff').style.color = color;
}
function calculateGoal() {
var currentAvg = parseFloat(document.getElementById('goalCurrentAvg').value);
var totalGames = parseInt(document.getElementById('goalTotalGames').value);
var targetAvg = parseFloat(document.getElementById('targetAvg').value);
if (isNaN(currentAvg) || isNaN(totalGames) || isNaN(targetAvg)) {
alert("Please enter valid numbers.");
return;
}
if (targetAvg = 100) {
alert("Target cannot be 100% unless you already have 100%. It is mathematically impossible to reach 100% average if you have any incomplete games in your history.");
return;
}
// Logic:
// Target = (CurrentScore + 100 * X) / (TotalGames + X)
// Target * (TotalGames + X) = CurrentScore + 100X
// Target*TotalGames + Target*X = CurrentScore + 100X
// Target*TotalGames – CurrentScore = 100X – Target*X
// Target*TotalGames – CurrentScore = X(100 – Target)
// X = (Target*TotalGames – CurrentScore) / (100 – Target)
var currentScore = currentAvg * totalGames;
var numerator = (targetAvg * totalGames) – currentScore;
var denominator = 100 – targetAvg;
var needed = numerator / denominator;
var roundedNeeded = Math.ceil(needed);
// Safety check for unrealistic numbers
if (roundedNeeded < 0) roundedNeeded = 0;
document.getElementById('results').style.display = 'block';
document.getElementById('sim-results').style.display = 'none';
document.getElementById('goal-results').style.display = 'block';
document.getElementById('res-games-needed').innerHTML = roundedNeeded;
document.getElementById('res-total-after').innerHTML = totalGames + roundedNeeded;
}
How Does Steam Calculate Average Game Completion Rate?
For achievement hunters and profile decorators, the "Average Game Completion Rate" (AGCR) displayed on the Steam Achievement Showcase is a vital statistic. However, the math behind it often confuses users because it doesn't function like a simple "Total Achievements Unlocked / Total Achievements Possible" formula.
The Formula
Steam calculates your profile's average completion rate as the mathematical mean of the individual completion percentages of every game you have played.
The formula is effectively:
Average = (Game A% + Game B% + Game C% … + Game Z%) / Total Number of Games
Example Scenario
Imagine you have played two games:
Game A: You unlocked 1 out of 1 achievement (100% completion).
Game B: You unlocked 1 out of 100 achievements (1% completion).
Common Misconception: You might think your average is 2 achievements unlocked out of 101 total, which would be approx 1.98%.
Actual Steam Calculation: Steam takes the average of the two percentages: (100% + 1%) / 2 = 50.5%.
This method prevents massive games with thousands of achievements (like Team Fortress 2 or MMOs) from completely dominating your statistics compared to smaller indie games.
Key Rules & Exclusions
Qualifying Games: Only games that you have launched and unlocked at least one achievement in usually count towards the denominator. However, if you have played a game that has achievements but unlocked none (0%), it generally counts against your average once it is registered in your history.
Profile Limited Features: Games marked as "Profile Features Limited" or "Steam is learning about this game" on their store page do not count toward your global achievement stats or average completion rate.
Restricted Games: Banned games or games removed from the store often stop counting toward the average, though this behavior can be inconsistent.
How to Improve Your Rate
Using the Steam Average Game Completion Rate Calculator above, you can see that the most effective way to raise your average is to play short games that are easy to complete to 100%. Because every game is weighted equally regardless of how many achievements it has, a game with 5 achievements carries the same weight as a game with 500 achievements.