The Net Promoter Score (NPS) is a widely used customer loyalty metric that measures the likelihood of customers recommending a company's products or services to others. It's a simple yet powerful indicator of customer satisfaction and a predictor of business growth.
NPS is calculated based on a single question: "On a scale of 0 to 10, how likely are you to recommend [Company/Product/Service] to a friend or colleague?"
How NPS is Calculated:
Respondents are categorized into three groups based on their score:
Promoters: Those who score 9 or 10. These are loyal enthusiasts who will keep buying and refer others, fueling growth.
Passives: Those who score 7 or 8. These are satisfied but unenthusiastic customers who are vulnerable to competitive offerings.
Detractors: Those who score 0 to 6. These are unhappy customers who can damage your brand and impede growth through negative word-of-mouth.
The NPS score is calculated using the following formula:
NPS = (% of Promoters) - (% of Detractors)
The result is a score that can range from -100 (if every customer is a detractor) to +100 (if every customer is a promoter).
Interpreting Your NPS Score:
+70 and above: World-class. Indicates exceptional customer loyalty.
+30 to +69: Excellent. Shows strong customer satisfaction and loyalty.
+10 to +29: Good. A decent score, but there's room for improvement.
0 to +9: Average. Indicates a need to focus on improving customer experience.
Below 0: Needs Improvement. A negative score suggests significant issues with customer satisfaction and loyalty.
Regularly tracking your NPS allows you to monitor customer sentiment, identify areas for improvement, and gauge the impact of changes you make to your products, services, or customer support.
function calculateNPS() {
var promotersInput = document.getElementById("promoters");
var passivesInput = document.getElementById("passives");
var detractorsInput = document.getElementById("detractors");
var npsScoreDisplay = document.getElementById("npsScore");
var promoters = parseInt(promotersInput.value);
var passives = parseInt(passivesInput.value);
var detractors = parseInt(detractorsInput.value);
// Validate inputs
if (isNaN(promoters) || promoters < 0 ||
isNaN(passives) || passives < 0 ||
isNaN(detractors) || detractors 70) {
npsScoreDisplay.style.color = "#28a745"; // Success Green for excellent
} else if (roundedNps >= 30) {
npsScoreDisplay.style.color = "#17a2b8"; // Info Blue for good
} else if (roundedNps >= 0) {
npsScoreDisplay.style.color = "#004a99"; // Primary Blue for average/neutral
} else {
npsScoreDisplay.style.color = "#dc3545"; // Danger Red for needs improvement
}
}