Calculate Current Run Rate, Projected Scores, and Required Rates for T20 Matches
Batting First (Setting Target)
Second Innings (Chasing Target)
How to Calculate Run Rate in T20 Cricket
In the fast-paced world of T20 cricket, understanding the run rate is crucial for players, coaches, and fans alike. Whether a team is setting a total or chasing one down, the run rate dictates the tempo of the game. This guide explains the mathematics behind the numbers you see on the scoreboard.
What is Current Run Rate (CRR)?
The Current Run Rate (CRR) represents the average number of runs a team scores per over. In T20 cricket, where there are only 20 overs per innings, a high CRR is essential for posting a competitive total.
CRR = Total Runs Scored ÷ Total Overs Bowled
Note on Calculation: Cricket overs consist of 6 balls. When calculating manually, an input like "5.3 overs" does not mean 5.3 in decimals. It means 5 full overs and 3 balls. To calculate mathematically, you must convert the partial over into a fraction of 6.
The projected score helps predict where a team will finish if they maintain their current scoring pace throughout the full 20 overs.
Projected Score = Current Run Rate × 20
Required Run Rate (RRR)
In the second innings, the focus shifts to the Required Run Rate. This tells the batting team how many runs they need to score per over for the remainder of the innings to win the match.
RRR = Runs Needed to Win ÷ Overs Remaining
If the RRR climbs significantly higher than the CRR, the batting team is under pressure to hit boundaries. If the RRR is lower than 6.00 (a run a ball), the batting team can rotate strike comfortably.
Example Calculation
Let's say Team A is chasing a target of 160. After 12.4 overs, they have scored 95 runs.
In this scenario, Team A is scoring at 7.50 but needs to score at 8.86 to win. The pressure is on!
function toggleInputs() {
var scenario = document.getElementById('matchScenario').value;
var chaseDiv = document.getElementById('chaseSection');
if (scenario === 'chasing') {
chaseDiv.style.display = 'block';
} else {
chaseDiv.style.display = 'none';
}
// Hide results when mode switches to avoid confusion
document.getElementById('results').style.display = 'none';
}
function calculateCricketMetrics() {
// 1. Get Inputs
var runs = parseFloat(document.getElementById('currentRuns').value);
var oversInput = parseFloat(document.getElementById('oversBowled').value);
var scenario = document.getElementById('matchScenario').value;
var target = parseFloat(document.getElementById('targetScore').value);
// 2. Validation
if (isNaN(runs) || runs < 0) {
alert("Please enter a valid number for Runs Scored.");
return;
}
if (isNaN(oversInput) || oversInput 6
if (balls >= 6) {
alert("Invalid Over input. Balls cannot be 6 or more (e.g. use 6.0 instead of 5.6).");
return;
}
var realOvers = oversInt + (balls / 6);
if (realOvers === 0) {
alert("Overs cannot be 0.");
return;
}
if (realOvers > 20) {
alert("T20 matches are limited to 20 overs.");
return;
}
// 3. Calculate Current Run Rate (CRR)
var crr = runs / realOvers;
var projected = crr * 20;
// 4. Prepare Output HTML
var outputHTML = ";
// Display CRR
outputHTML += '