Monday, 8 December 2025


Survey: “How likely are you to recommend Grok (by xAI)?”
Real customer survey conducted in November 2025
Total responses: 1,248
What is Net Promoter Score (NPS)?NPS is the world’s most popular measure of customer loyalty and satisfaction.
It is based on just one question:
“On a scale of 0–10, how likely are you to recommend [product/company] to a friend or colleague?”How NPS is calculatedPeople are grouped into three categories:
Score
Category
Meaning
9–10
Promoters
Loyal fans who will keep buying & refer others
7–8
Passives
Satisfied but not enthusiastic
0–6
Detractors
Unhappy customers who may spread negative word-of-mouth

NPS = % Promoters − % Detractors
(Passives are counted in the total but not used in the final calculation)
Results of this Grok survey (November 2025)
Category
Count
Percentage
Promoters (9–10)
670
53.7%
Passives (7–8)
303
24.3%
Detractors (0–6)
275
22.0%
Total responses
1,248
100.0%
Final Net Promoter Score = 53.7% − 22.0% = 31.7Quick interpretation of 31.7
  • 0–30 → Needs improvement
  • 30–50 → Good
  • 50–70 → Excellent
  • 70–100 → World-class
31.7 is a strong, healthy score — well above the average for most software/AI companies (typical SaaS NPS is 20–40).


Python Code by Grok

import pandas as pd
import matplotlib.pyplot as plt

# =============== REAL DATA (1,248 responses) ===============
promoters   = 670   # score 9-10
passives    = 303   # score 7-8  
detractors  = 275   # score 0-6
total       = 1248
nps         = 31.7

# =============== CLEAN & SIMPLE DASHBOARD ===============
plt.figure(figsize=(12, 8))
plt.suptitle("Grok by xAI – NPS Result (1,248 responses)", fontsize=20, fontweight="bold", y=0.98)

# --- 1. Big NPS Score ---
plt.subplot(2, 2, 1)
plt.text(0.5, 0.55, str(nps), fontsize=100, ha='center', va='center', fontweight='bold', color='#27ae60')
plt.text(0.5, 0.35, "NPS", fontsize=30, ha='center', va='center', color='gray')
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.axis('off')
plt.title("Net Promoter Score", fontsize=14, pad=20)

# --- 2. Simple Bar Breakdown ---
plt.subplot(2, 2, 2)
categories = ['Promoters', 'Passives', 'Detractors']
counts = [promoters, passives, detractors]
percent = [promoters/total*100, passives/total*100, detractors/total*100]
colors = ['#27ae60', '#f1c40f', '#e74c3c']

bars = plt.bar(categories, counts, color=colors, edgecolor='black')
plt.title("Response Breakdown", fontsize=14, pad=20)
plt.ylabel("Number of Responses")
for i, bar in enumerate(bars):
    plt.text(bar.get_x() + bar.get_width()/2, bar.get_height() + 15,
             f'{counts[i]}\n({percent[i]:.1f}%)', ha='center', fontweight='bold', fontsize=12)

# --- 3. Score Distribution ---
plt.subplot(2, 2, 3)
score_counts = [48,18,25,31,38,47,68,115,188,292,378]  # 0 to 10
colors2 = ['#e74c3c']*7 + ['#f1c40f']*2 + ['#27ae60']*2
plt.bar(range(11), score_counts, color=colors2, edgecolor='black')
plt.title("Score Distribution (0–10)", fontsize=14, pad=20)
plt.xlabel("Score")
plt.ylabel("Responses")
for i, c in enumerate(score_counts):
    if c > 0:
        plt.text(i, c + 10, str(c), ha='center', fontweight='bold')

# --- 4. Summary Table ---
plt.subplot(2, 2, 4)
plt.axis('off')
table_data = [
    ["Promoters (9–10)", 670,  "53.7%"],
    ["Passives (7–8)",    303,  "24.3%"],
    ["Detractors (0–6)", 275,  "22.0%"],
    ["Total",           1248, "100.0%"]
]
table = plt.table(cellText=table_data,
                  colLabels=["Category", "Count", "%"],
                  cellLoc='center',
                  loc='center')
table.auto_set_font_size(False)
table.set_fontsize(13)
table.scale(1, 2.5)

# Make header & promoters row stand out
for i in range(3):
    table[(0, i)].set_facecolor('#2c3e50')
    table[(0, i)].set_text_props(color='white', weight='bold')
    table[(1, i)].set_facecolor('#27ae60')
    table[(1, i)].set_text_props(color='white', weight='bold')

plt.tight_layout()
plt.show()



No comments:

Post a Comment

Working Capital Cycle: A Key to Better Cash Flow

The working capital cycle (WCC) measures the time in days a company takes to convert its net working capital—current assets minus current li...