Use standard notation (e.g., 4.3 is 4 overs, 3 balls). If team was All Out, enter full quota (e.g., 20 or 50).
Team Bowling Stats
Use standard notation. If opposition was All Out, calculate using their full quota.
Net Run Rate
—
function calculateNRR() {
// Get Input Values
var runsScored = document.getElementById('runsScored').value;
var oversFaced = document.getElementById('oversFaced').value;
var runsConceded = document.getElementById('runsConceded').value;
var oversBowled = document.getElementById('oversBowled').value;
// Validation
if (runsScored === " || oversFaced === " || runsConceded === " || oversBowled === ") {
alert("Please fill in all fields to calculate NRR.");
return;
}
// Helper function to convert cricket over notation (e.g., 4.3) to mathematical value
function convertOversToMath(overStr) {
var val = parseFloat(overStr);
var overs = Math.floor(val);
// Handle decimal part precisely using strings to avoid floating point errors
var decimalPart = overStr.toString().split('.')[1];
var balls = 0;
if (decimalPart) {
// If input is 10.1, decimalPart is "1". If 10.10 (invalid cricket usually, but logic safety), take first digit
balls = parseInt(decimalPart.substring(0, 1));
}
// Standardize balls (cannot be >= 6 in cricket notation)
if (balls >= 6) {
// If user types 19.6, treat as 20.0
overs += Math.floor(balls / 6);
balls = balls % 6;
}
// Return total overs in decimal format (base 6 converted to base 10)
return overs + (balls / 6);
}
// Convert inputs
var mathOversFaced = convertOversToMath(oversFaced);
var mathOversBowled = convertOversToMath(oversBowled);
// Prevent division by zero
if (mathOversFaced === 0 || mathOversBowled === 0) {
alert("Overs cannot be zero.");
return;
}
// Calculate Rates
var runsPerOverScored = parseFloat(runsScored) / mathOversFaced;
var runsPerOverConceded = parseFloat(runsConceded) / mathOversBowled;
// Calculate NRR
var nrr = runsPerOverScored – runsPerOverConceded;
// Display Result
var resultBox = document.getElementById('nrr-result-box');
var nrrValueDiv = document.getElementById('nrr-value');
var breakdownDiv = document.getElementById('breakdown-text');
resultBox.style.display = 'block';
// Format to 3 decimal places as per standard ICC rules
var formattedNRR = nrr.toFixed(3);
if (nrr > 0) {
formattedNRR = "+" + formattedNRR;
nrrValueDiv.className = "result-value positive-nrr";
} else if (nrr < 0) {
nrrValueDiv.className = "result-value negative-nrr";
} else {
nrrValueDiv.className = "result-value";
}
nrrValueDiv.innerHTML = formattedNRR;
breakdownDiv.innerHTML = "Batting Run Rate: " + runsPerOverScored.toFixed(3) + "" +
"Bowling Run Rate: " + runsPerOverConceded.toFixed(3) + "";
}
Understanding Net Run Rate (NRR) in Cricket
Net Run Rate (NRR) is the preferred method for ranking cricket teams with equal points in limited-overs tournaments like the ICC World Cup, T20 World Cup, and league tournaments like the IPL (Indian Premier League) or BBL. It serves as a tie-breaker by measuring a team's winning margin or losing deficit relative to the overs played.
The Net Run Rate Formula
NRR is calculated by subtracting the average runs conceded per over from the average runs scored per over throughout the tournament.
NRR = (Total Runs Scored ÷ Total Overs Faced) – (Total Runs Conceded ÷ Total Overs Bowled)
How to Use This Calculator
Using our tool is straightforward, but accuracy depends on understanding the inputs:
Total Runs Scored: The cumulative sum of runs your team has scored in all matches.
Total Overs Faced: The number of overs your team batted. Important: If a team is "All Out" before their overs are finished (e.g., bowled out in 45 overs in a 50-over match), the calculation counts the full quota (50 overs) rather than the actual overs faced.
Total Runs Conceded: The cumulative sum of runs scored by opponents against your team.
Total Overs Bowled: The number of overs your team bowled. Similar to batting, if you bowl the opposition out, use the full quota of overs for the calculation.
Calculation Example
Let's assume a team plays two matches in a T20 tournament:
Match 1: Scored 180/4 in 20 overs. Conceded 160/8 in 20 overs.
Match 2: Scored 150/10 (All Out) in 18.2 overs. Conceded 140/9 in 20 overs.
Step 1: Calculate Batting Metrics
Total Runs Scored = 180 + 150 = 330.
Total Overs Faced = 20 + 20 (because they were All Out in Match 2, we count full 20) = 40 overs.
Run Rate Scored = 330 / 40 = 8.25.
A negative Net Run Rate indicates that, on average, a team is conceding runs faster than they are scoring them. This usually happens when a team loses matches by large margins (runs) or chases targets very slowly compared to how fast their opponents scored.
Handling Incomplete Overs
In cricket scorecards, overs are often written as "10.4" (10 overs and 4 balls). Mathematically, an over consists of 6 balls. Therefore, 10.4 overs is not 10.4 in decimals. It is 10 + 4/6 = 10.666… overs. Our calculator automatically handles this conversion to ensure precise results compliant with ICC regulations.