Net Run Rate in Cricket Calculator

Net Run Rate (NRR) Calculator

Professional Cricket Tournament Tie-Breaker Tool

Team Performance

Format: Overs.Balls (e.g. 10.3 for 10 overs 3 balls)
Standard: 20 (T20) or 50 (ODI)
* If team was bowled out, input the full quota of overs they were supposed to play.

Opponent Performance

Format: Overs.Balls
Usually same as above
Your Team's Net Run Rate:

What is Net Run Rate (NRR) in Cricket?

Net Run Rate (NRR) is a statistical method used in cricket to rank teams with equal points in tournament league tables. It serves as the primary tie-breaker in major ICC events like the Cricket World Cup, T20 World Cup, and various domestic leagues like the IPL.

How NRR is Calculated

The formula for Net Run Rate is:

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

The "All Out" Rule

This is the most critical rule in NRR calculations: If a team is bowled out before their allotted overs are completed (e.g., all out in 18.2 overs of a T20), the full quota of overs (20 overs) is used for the calculation. This penalizes the team for losing all wickets by lowering their run rate per over.

Practical Example

Imagine Team A plays one match in a T20 tournament:

  • Match 1: Team A scores 160 runs in 20 overs. They bowl the opposition out for 120 in 15 overs.
  • Calculation for Team A:
    • Runs Scored: 160. Overs Faced: 20. (Run Rate For: 8.00)
    • Runs Conceded: 120. Overs Bowled: 20 (The "All Out" rule applies because they bowled the opponent out). (Run Rate Against: 6.00)
    • NRR: 8.00 – 6.00 = +2.000

Important Conversion Note

In cricket notation, overs are written as 10.1, 10.2, etc. However, for mathematical division, these must be converted to decimals:

  • 0.1 ball = 0.166
  • 0.2 balls = 0.333
  • 0.3 balls = 0.500
  • 0.4 balls = 0.666
  • 0.5 balls = 0.833

function convertOversToDecimal(oversVal) { var valStr = oversVal.toString(); if (valStr.indexOf('.') === -1) return parseFloat(oversVal); var parts = valStr.split('.'); var wholeOvers = parseInt(parts[0]); var balls = parseInt(parts[1]); if (balls >= 6) { wholeOvers += Math.floor(balls / 6); balls = balls % 6; } return wholeOvers + (balls / 6); } function calculateNRR() { var runsScored = parseFloat(document.getElementById('runsScored').value); var oversFacedRaw = parseFloat(document.getElementById('oversFaced').value); var maxOvers = parseFloat(document.getElementById('maxOvers').value); var runsConceded = parseFloat(document.getElementById('runsConceded').value); var oversBowledRaw = parseFloat(document.getElementById('oversBowled').value); var maxOversOpp = parseFloat(document.getElementById('maxOversOpp').value); if (isNaN(runsScored) || isNaN(oversFacedRaw) || isNaN(runsConceded) || isNaN(oversBowledRaw)) { alert("Please fill in all match data fields."); return; } // Convert cricket overs to decimal math var oversFacedDec = convertOversToDecimal(oversFacedRaw); var oversBowledDec = convertOversToDecimal(oversBowledRaw); // NRR Formula var rrFor = runsScored / oversFacedDec; var rrAgainst = runsConceded / oversBowledDec; var nrr = rrFor – rrAgainst; // Display Results var resultContainer = document.getElementById('nrr-result-container'); var resultValue = document.getElementById('nrr-value'); var resultMsg = document.getElementById('nrr-message'); resultContainer.style.display = 'block'; resultValue.innerText = (nrr > 0 ? "+" : "") + nrr.toFixed(3); if (nrr > 0) { resultContainer.style.backgroundColor = "#e8f5e9"; resultValue.style.color = "#2e7d32"; resultMsg.innerText = "Positive Run Rate – Strong Standing"; resultMsg.style.color = "#2e7d32"; } else if (nrr < 0) { resultContainer.style.backgroundColor = "#ffebee"; resultValue.style.color = "#c62828"; resultMsg.innerText = "Negative Run Rate – Needs Improvement"; resultMsg.style.color = "#c62828"; } else { resultContainer.style.backgroundColor = "#f5f5f5"; resultValue.style.color = "#333"; resultMsg.innerText = "Neutral Run Rate"; resultMsg.style.color = "#333"; } // Scroll to result resultContainer.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment