Cricket Run Rate Calculator
Calculate Current or Net Run Rate Instantly
Total Runs Scored
Overs Bowled (e.g. 15.2)
Note: Use decimal for balls (15.2 = 15 overs, 2 balls)
Calculate Run Rate
How is Run Rate Calculated in Cricket?
In cricket, the Run Rate (RR) is the average number of runs scored by a batting side per over. It is a fundamental statistic used to track scoring speed and determine targets in limited-overs matches (ODI and T20).
The Mathematical Formula
Run Rate = Total Runs Scored / Total Overs Bowled
The "Decimal Over" Challenge
Calculating run rate isn't as simple as dividing by the decimal you see on the scoreboard. Because an over consists of 6 balls , the decimal part must be converted to a fraction of 6 before dividing.
0.1 over = 1 ball = 1/6 = 0.166 overs
0.2 overs = 2 balls = 2/6 = 0.333 overs
0.3 overs = 3 balls = 3/6 = 0.5 overs
0.4 overs = 4 balls = 4/6 = 0.666 overs
0.5 overs = 5 balls = 5/6 = 0.833 overs
Calculation Example
If a team scores 158 runs in 18.4 overs :
Convert 18.4 overs into true mathematical overs: 18 + (4/6) = 18.666
Divide total runs by true overs: 158 / 18.666 = 8.46
The Run Rate is 8.46 runs per over .
What is Net Run Rate (NRR)?
Net Run Rate is used in tournaments to rank teams with equal points. It is calculated as:
NRR = (Average runs scored per over by the team) – (Average runs conceded per over against the team)
function calculateRunRate() {
var runs = document.getElementById('runsScored').value;
var oversInput = document.getElementById('oversBowled').value;
var resultContainer = document.getElementById('rrResultContainer');
var rrValueDisplay = document.getElementById('rrValue');
var rrBreakdown = document.getElementById('rrBreakdown');
if (runs === "" || oversInput === "" || runs < 0 || oversInput 1) {
balls = parseInt(overParts[1]);
// If someone types 15.8 (which is impossible in cricket),
// we treat it as 15 overs and 8 balls, or simply 16.2
if (balls >= 6) {
var extraOversFromBalls = Math.floor(balls / 6);
var remainingBalls = balls % 6;
wholeOvers += extraOversFromBalls;
balls = remainingBalls;
}
}
// Convert to actual decimal for math (e.g. 15.2 -> 15.333)
var trueOvers = wholeOvers + (balls / 6);
// Calculate RR
var runRate = runs / trueOvers;
// Update UI
rrValueDisplay.innerText = runRate.toFixed(2);
rrBreakdown.innerText = "Based on " + runs + " runs in " + wholeOvers + " overs and " + balls + " balls (" + trueOvers.toFixed(3) + " mathematical overs).";
resultContainer.style.display = "block";
// Smooth scroll to result if on mobile
resultContainer.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}