How Cricket Run Rate is Calculated

Cricket Run Rate & NRR Calculator

Calculate Match Run Rate (RR) and Net Run Rate (NRR) instantly.

Runs Scored (Batting)

Runs Conceded (Bowling)

Current Run Rate (RR) 0.00
Net Run Rate (NRR) 0.00

How to Calculate Cricket Run Rate

In cricket, the Run Rate (RR) is the average number of runs a batting side scores per over. It is a fundamental statistic used to measure the scoring speed of a team during an innings.

The Basic Run Rate Formula

Run Rate = Total Runs Scored / Total Overs Faced

Because an over consists of 6 balls, you cannot simply divide by the decimal. For example, if a team has played 10.3 overs, you must convert the 3 balls into a fraction of an over (3/6 = 0.5). So, the calculation would be: Runs / 10.5.

What is Net Run Rate (NRR)?

Net Run Rate is used to rank teams with equal points in tournament league tables (like the IPL or ICC World Cup). It measures how much faster a team scores runs compared to the speed at which they concede runs.

NRR = (Runs Scored / Overs Faced) – (Runs Conceded / Overs Bowled)

Important Rule: The "All Out" Clause

If a team is bowled out (loses all 10 wickets) before their allotted overs are completed, the calculation for NRR uses the full quota of overs they were entitled to (e.g., 50 overs for an ODI or 20 overs for a T20), rather than the actual overs they survived. This penalizes teams for failing to bat through their innings.

Example Calculation

  • Team A: Scores 300 runs in 50 overs. (RR = 6.00)
  • Team B: Scores 250 runs in 50 overs. (RR = 5.00)
  • Team A's NRR: 6.00 – 5.00 = +1.000
  • Team B's NRR: 5.00 – 6.00 = -1.000
function calculateCricketMetrics() { // Inputs for Scored var runsS = parseFloat(document.getElementById('runsScored').value) || 0; var oversF = parseFloat(document.getElementById('oversFaced').value) || 0; var ballsF = parseFloat(document.getElementById('ballsFaced').value) || 0; // Inputs for Conceded var runsC = parseFloat(document.getElementById('runsConceded').value) || 0; var oversB = parseFloat(document.getElementById('oversBowled').value) || 0; var ballsB = parseFloat(document.getElementById('ballsBowled').value) || 0; // Validation for Scored if (oversF === 0 && ballsF === 0) { alert("Please enter overs faced to calculate Run Rate."); return; } // Convert Overs to Decimal (e.g. 10.3 -> 10.5) var totalOversFaced = oversF + (ballsF / 6); var totalOversBowled = oversB + (ballsB / 6); // Calculate Batting Run Rate var rr = runsS / totalOversFaced; // Calculate NRR components var nrr = 0; if (totalOversBowled > 0) { var battingAvg = runsS / totalOversFaced; var bowlingAvg = runsC / totalOversBowled; nrr = battingAvg – bowlingAvg; } // Display results document.getElementById('results-box').style.display = 'block'; document.getElementById('displayRR').innerText = rr.toFixed(2); document.getElementById('displayNRR').innerText = (nrr > 0 ? "+" : "") + nrr.toFixed(3); // Summary Text var summary = "Your team scored at " + rr.toFixed(2) + " runs per over."; if (totalOversBowled > 0) { summary += " The opponent scored at " + (runsC / totalOversBowled).toFixed(2) + " runs per over."; } document.getElementById('summary-text').innerText = summary; // Scroll to result document.getElementById('results-box').scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment