Strokes Gained Putting (SGP) is the definitive metric used by professional golfers to measure performance on the greens. Unlike traditional statistics like "Total Putts per Round," which can be misleading depending on how close a player hits their approach shots, Strokes Gained measures the quality of a putt relative to a statistical baseline.
The concept relies on historical shot data (typically from the PGA Tour via ShotLink) to determine the average number of putts a professional takes from various distances. For example, from 8 feet, the tour average might be 1.5 putts. If you hole out in 1 putt, you have "gained" 0.5 strokes on the field. If you take 2 putts, you have "lost" 0.5 strokes.
How the Formula Works
The basic formula for a single hole is straightforward:
SGP = (Expected Putts) – (Actual Putts Taken)
If you have a 30-foot putt, the statistical average is roughly 2.0 putts. If you two-putt, your SGP is 0.0 (average). If you one-putt, your SGP is +1.0. If you three-putt, your SGP is -1.0.
Why Distance Matters
The "Expected Putts" baseline changes drastically with distance. A 3-foot putt has an expected value near 1.0, while a 40-foot putt has an expected value usually exceeding 2.0. This calculator uses a baseline interpolation based on standard tour statistics to estimate the expected number of strokes for your entered distance.
Interpreting Your Results
Positive Number (+): You performed better than the tour average for that putt.
Negative Number (-): You performed worse than the tour average (lost strokes).
Zero (0): You performed exactly at the tour average.
Over the course of a round, you sum up the Strokes Gained values for every hole to get your Total Strokes Gained Putting. A score of +2.0 means you saved two shots on the greens compared to an average professional field.
function calculateStrokesGained() {
var distanceInput = document.getElementById('puttDistance').value;
var puttsInput = document.getElementById('puttsTaken').value;
var resultBox = document.getElementById('result');
var expectedDisplay = document.getElementById('expectedPuttsDisplay');
var actualDisplay = document.getElementById('actualPuttsDisplay');
var sgResult = document.getElementById('sgResult');
// Validation
if (distanceInput === "" || puttsInput === "" || isNaN(distanceInput) || isNaN(puttsInput)) {
alert("Please enter valid numbers for distance and putts taken.");
return;
}
var distance = parseFloat(distanceInput);
var actualPutts = parseInt(puttsInput);
if (distance <= 0 || actualPutts = 90) {
expectedPutts = 2.4 + ((distance – 90) * 0.002); // Slight increase for very long putts
} else {
for (var i = 0; i = p1.dist && distance 0 ? "+" : "";
sgResult.innerHTML = sign + strokesGained.toFixed(3);
// Styling based on result
if (strokesGained < 0) {
sgResult.classList.add('negative');
sgResult.style.color = "#dc3545"; // Red for negative
} else {
sgResult.classList.remove('negative');
sgResult.style.color = "#28a745"; // Green for positive
}
}