{"product_id":"nps","title":"NPS Calculator","description":"\u003cstyle\u003e\n.nps-calculator{--ink:#0f172a;--muted:#475569;--border:#e2e8f0;--surface:#ffffff;--tint:#f8fafc;--primary:#1d4ed8;--accent:#c2410c;--accent-hover:#9a3412;--chart-1:#1e40af;--chart-2:#0d9488;--chart-3:#7c3aed;--chart-4:#be185d;--chart-5:#334155;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px;line-height:1.55;max-width:1200px;margin:0 auto;box-shadow:0 1px 2px rgba(15,23,42,.06);container-type:inline-size}\n.nps-calculator,.nps-calculator *,.nps-calculator *::before,.nps-calculator *::after{box-sizing:border-box}\n.nps-calculator *{min-width:0}\n.nps-header{display:grid;gap:12px;margin-bottom:16px}\n.nps-header h2{font-size:24px;line-height:1.25;font-weight:700;margin:0;color:var(--ink)}\n.nps-header p{font-size:15px;margin:0;color:var(--muted);max-width:780px}\n.nps-pills{display:flex;flex-wrap:wrap;gap:8px}\n.nps-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--tint);border-radius:999px;padding:6px 10px;font-size:13px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}\n.nps-pill strong{color:var(--ink)}\n.nps-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 24px}\n.nps-button{appearance:none;border:1px solid var(--border);border-radius:6px;padding:12px 18px;font:600 15px\/1.2 Arial,Helvetica,sans-serif;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(15,23,42,.06);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}\n.nps-button:hover{border-color:#cbd5e1;box-shadow:0 2px 5px rgba(15,23,42,.1)}\n.nps-button:active{transform:translateY(1px)}\n.nps-button:focus-visible,.nps-input:focus-visible,.nps-link:focus-visible{outline:3px solid rgba(29,78,216,.35);outline-offset:2px}\n.nps-download{background:var(--accent);border-color:var(--accent);color:#fff;white-space:nowrap}\n.nps-download:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}\n.nps-download svg{width:18px;height:18px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n.nps-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.78fr);gap:24px;align-items:start;margin-bottom:24px}\n.nps-panel,.nps-card,.nps-chart-card,.nps-table-card,.nps-education{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:20px;box-shadow:0 1px 2px rgba(15,23,42,.04)}\n.nps-panel h3,.nps-chart-card h3,.nps-table-card h3{font-size:18px;line-height:1.35;font-weight:650;margin:0 0 6px;color:var(--ink)}\n.nps-section-copy{font-size:13px;font-weight:500;color:var(--muted);margin:0 0 16px}\n.nps-score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:12px}\n.nps-field{display:grid;gap:6px;align-content:start}\n.nps-label{font-size:14px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:6px}\n.nps-category-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto}\n.nps-category-dot.nps-promoter{background:var(--chart-2)}\n.nps-category-dot.nps-passive{background:var(--chart-3)}\n.nps-category-dot.nps-detractor{background:var(--chart-4)}\n.nps-input{width:100%;height:44px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:var(--ink);padding:9px 11px;font:400 15px\/1.2 Arial,Helvetica,sans-serif;font-variant-numeric:tabular-nums}\n.nps-input:hover{border-color:#94a3b8}\n.nps-input[aria-invalid=\"true\"]{border-color:#b91c1c;background:#fff7f7}\n.nps-error{font-size:13px;font-weight:500;color:#991b1b;min-height:20px;margin:0}\n.nps-results{display:grid;gap:16px}\n.nps-primary-card{border:1px solid #bfdbfe;background:#eff6ff;border-radius:8px;padding:20px}\n.nps-kicker{font-size:13px;font-weight:600;color:#1e3a8a;margin:0 0 4px;text-transform:uppercase;letter-spacing:.04em}\n.nps-primary-value{font-size:30px;line-height:1.15;font-weight:700;color:#172554;font-variant-numeric:tabular-nums;margin:0}\n.nps-primary-note{font-size:13px;font-weight:500;color:#334155;margin:8px 0 0}\n.nps-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}\n.nps-metric{border:1px solid var(--border);border-radius:8px;background:var(--tint);padding:14px;display:grid;gap:4px}\n.nps-metric span{font-size:13px;font-weight:600;color:var(--muted)}\n.nps-metric strong{font-size:20px;line-height:1.25;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}\n.nps-formula{border-left:4px solid var(--primary);background:var(--tint);padding:12px 14px;border-radius:0 6px 6px 0;font-size:13px;color:var(--muted)}\n.nps-formula strong{color:var(--ink)}\n.nps-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px}\n.nps-chart-card{display:grid;gap:16px;align-content:start}\n.nps-chart-intro{display:grid;gap:4px}\n.nps-chart-intro p{font-size:13px;font-weight:500;color:var(--muted);margin:0}\n.nps-chart-cluster{display:grid;grid-template-columns:minmax(220px,320px) max-content;justify-content:center;align-items:center;gap:24px}\n.nps-chart-plot{width:100%;display:grid;place-items:center;min-height:240px}\n.nps-chart-plot svg{width:100%;height:auto;display:block;overflow:visible}\n.nps-donut-wrap{position:relative;width:min(100%,320px);aspect-ratio:1;display:grid;place-items:center}\n.nps-donut-wrap svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}\n.nps-donut-center{position:relative;z-index:1;text-align:center;max-width:52%;display:grid;gap:2px;place-items:center}\n.nps-donut-center strong{font-size:24px;line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums}\n.nps-donut-center span{font-size:13px;font-weight:600;color:var(--muted)}\n.nps-legend{display:grid;gap:10px;align-content:center}\n.nps-legend-row{display:grid;grid-template-columns:12px max-content max-content max-content;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--ink)}\n.nps-swatch{width:12px;height:12px;border-radius:3px}\n.nps-legend-value,.nps-legend-percent{font-variant-numeric:tabular-nums;color:var(--muted)}\n.nps-chart-callout{font-size:13px;font-weight:500;color:var(--muted);background:var(--tint);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-top:16px}\n.nps-chart-empty{border:1px dashed #94a3b8;background:var(--tint);border-radius:6px;padding:16px;text-align:center;font-size:13px;font-weight:600;color:var(--muted);width:100%}\n.nps-chart-summary{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n.nps-bar-plot{width:100%;height:auto;display:block;aspect-ratio:640\/300}\n.nps-safe-stack .nps-chart-cluster{grid-template-columns:1fr;justify-items:center;gap:16px}\n.nps-safe-stack .nps-legend{margin-top:0}\n.nps-safe-stack .nps-chart-callout{margin-top:16px}\n.nps-table-card{margin-bottom:24px}\n.nps-table-wrap{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--border);border-radius:6px}\n.nps-table{width:100%;border-collapse:collapse;min-width:650px;font-size:14px}\n.nps-table th{background:#172554;color:#fff;text-align:left;padding:10px 12px;font-size:13px;font-weight:700;white-space:nowrap}\n.nps-table td{padding:10px 12px;border-top:1px solid var(--border);vertical-align:middle}\n.nps-table tbody tr:hover{background:#fafafa}\n.nps-table .nps-num{text-align:right;font-variant-numeric:tabular-nums}\n.nps-table-note{font-size:13px;font-weight:500;color:var(--muted);background:var(--tint);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-top:16px}\n.nps-safe-table-stack .nps-table-note{margin-top:20px}\n.nps-education{display:grid;gap:20px;background:var(--tint)}\n.nps-education section{display:grid;gap:8px}\n.nps-education h2{font-size:20px;line-height:1.3;font-weight:700;margin:0;color:var(--ink)}\n.nps-education h3{font-size:17px;line-height:1.35;font-weight:650;margin:4px 0 0;color:var(--ink)}\n.nps-education p,.nps-education li{font-size:15px;color:#334155;margin:0}\n.nps-education ul{margin:0;padding-left:20px;display:grid;gap:6px}\n.nps-link{color:var(--primary);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}\n.nps-link:hover{color:#1e40af}\n.nps-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n@container (max-width:1050px){.nps-visual-grid{grid-template-columns:1fr}}\n@container (max-width:899px){.nps-workspace{grid-template-columns:1fr}}\n@container (max-width:639px){.nps-calculator{padding:16px}.nps-panel,.nps-card,.nps-chart-card,.nps-table-card,.nps-education{padding:16px}.nps-chart-cluster{grid-template-columns:1fr;justify-items:center;gap:16px}.nps-chart-plot{min-height:0}.nps-legend{width:100%;justify-content:center}.nps-result-grid{grid-template-columns:1fr 1fr}.nps-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nps-legend-row{grid-template-columns:12px max-content max-content max-content;justify-content:center}.nps-chart-callout{margin-top:12px}}\n@container (max-width:380px){.nps-calculator{padding:12px}.nps-toolbar{display:grid;grid-template-columns:1fr}.nps-button{width:100%}.nps-result-grid{grid-template-columns:1fr}.nps-score-grid{grid-template-columns:1fr 1fr}.nps-header h2{font-size:22px}.nps-primary-value{font-size:28px}.nps-legend-row{grid-template-columns:12px max-content max-content;gap:8px}.nps-legend-percent{grid-column:2 \/ 4;padding-left:0}}\n\u003c\/style\u003e\n\u003cdiv class=\"nps-calculator\" data-calculator-root\u003e\n  \u003cheader class=\"nps-header\"\u003e\n    \u003ch2\u003eNet Promoter Score Calculator\u003c\/h2\u003e\n    \u003cp\u003eEnter the number of survey responses received for each score from 0 to 10. The calculator classifies respondents, computes NPS, visualizes the response mix, and exports the current analysis to Excel.\u003c\/p\u003e\n    \u003cdiv class=\"nps-pills\"\u003e\n      \u003cspan class=\"nps-pill\"\u003eResponses \u003cstrong data-nps-pill-total\u003e73\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"nps-pill\"\u003ePromoters \u003cstrong data-nps-pill-promoters\u003e27\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"nps-pill\"\u003eDetractors \u003cstrong data-nps-pill-detractors\u003e16\u003c\/strong\u003e\u003c\/span\u003e\n      \u003cspan class=\"nps-pill\"\u003eNPS \u003cstrong data-nps-pill-score\u003e15.07\u003c\/strong\u003e\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/header\u003e\n  \u003cdiv class=\"nps-toolbar\"\u003e\n    \u003cbutton class=\"nps-button nps-download\" type=\"button\" data-nps-download\u003e\n      \u003csvg viewbox=\"0 0 24 24\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 3v12\"\u003e\u003c\/path\u003e\u003cpath d=\"m7 10 5 5 5-5\"\u003e\u003c\/path\u003e\u003cpath d=\"M5 21h14\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cspan\u003eDownload Excel\u003c\/span\u003e\n    \u003c\/button\u003e\n    \u003cbutton class=\"nps-button\" type=\"button\" data-nps-reset\u003eReset\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"nps-workspace\"\u003e\n    \u003csection class=\"nps-panel\" aria-labelledby=\"nps-input-heading\"\u003e\n      \u003ch3 id=\"nps-input-heading\"\u003eResponses by survey score\u003c\/h3\u003e\n      \u003cp class=\"nps-section-copy\"\u003eUse whole, non-negative response counts. Scores 9–10 are promoters, 7–8 are passives, and 0–6 are detractors.\u003c\/p\u003e\n      \u003cdiv class=\"nps-score-grid\"\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-10\"\u003e\u003cspan class=\"nps-category-dot nps-promoter\"\u003e\u003c\/span\u003eScore 10\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-10\" data-nps-score=\"10\" inputmode=\"numeric\" value=\"12\" aria-describedby=\"nps-error-10\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-10\" data-nps-error=\"10\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-9\"\u003e\u003cspan class=\"nps-category-dot nps-promoter\"\u003e\u003c\/span\u003eScore 9\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-9\" data-nps-score=\"9\" inputmode=\"numeric\" value=\"15\" aria-describedby=\"nps-error-9\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-9\" data-nps-error=\"9\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-8\"\u003e\u003cspan class=\"nps-category-dot nps-passive\"\u003e\u003c\/span\u003eScore 8\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-8\" data-nps-score=\"8\" inputmode=\"numeric\" value=\"10\" aria-describedby=\"nps-error-8\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-8\" data-nps-error=\"8\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-7\"\u003e\u003cspan class=\"nps-category-dot nps-passive\"\u003e\u003c\/span\u003eScore 7\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-7\" data-nps-score=\"7\" inputmode=\"numeric\" value=\"20\" aria-describedby=\"nps-error-7\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-7\" data-nps-error=\"7\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-6\"\u003e\u003cspan class=\"nps-category-dot nps-detractor\"\u003e\u003c\/span\u003eScore 6\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-6\" data-nps-score=\"6\" inputmode=\"numeric\" value=\"6\" aria-describedby=\"nps-error-6\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-6\" data-nps-error=\"6\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-5\"\u003e\u003cspan class=\"nps-category-dot nps-detractor\"\u003e\u003c\/span\u003eScore 5\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-5\" data-nps-score=\"5\" inputmode=\"numeric\" value=\"3\" aria-describedby=\"nps-error-5\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-5\" data-nps-error=\"5\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-4\"\u003e\u003cspan class=\"nps-category-dot nps-detractor\"\u003e\u003c\/span\u003eScore 4\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-4\" data-nps-score=\"4\" inputmode=\"numeric\" value=\"3\" aria-describedby=\"nps-error-4\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-4\" data-nps-error=\"4\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-3\"\u003e\u003cspan class=\"nps-category-dot nps-detractor\"\u003e\u003c\/span\u003eScore 3\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-3\" data-nps-score=\"3\" inputmode=\"numeric\" value=\"3\" aria-describedby=\"nps-error-3\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-3\" data-nps-error=\"3\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-2\"\u003e\u003cspan class=\"nps-category-dot nps-detractor\"\u003e\u003c\/span\u003eScore 2\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-2\" data-nps-score=\"2\" inputmode=\"numeric\" value=\"1\" aria-describedby=\"nps-error-2\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-2\" data-nps-error=\"2\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-1\"\u003e\u003cspan class=\"nps-category-dot nps-detractor\"\u003e\u003c\/span\u003eScore 1\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-1\" data-nps-score=\"1\" inputmode=\"numeric\" value=\"0\" aria-describedby=\"nps-error-1\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-1\" data-nps-error=\"1\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-field\"\u003e\n\u003clabel class=\"nps-label\" for=\"nps-score-0\"\u003e\u003cspan class=\"nps-category-dot nps-detractor\"\u003e\u003c\/span\u003eScore 0\u003c\/label\u003e\u003cinput class=\"nps-input\" id=\"nps-score-0\" data-nps-score=\"0\" inputmode=\"numeric\" value=\"0\" aria-describedby=\"nps-error-0\"\u003e\u003cp class=\"nps-error\" id=\"nps-error-0\" data-nps-error=\"0\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/section\u003e\n    \u003caside class=\"nps-results\" aria-labelledby=\"nps-results-heading\"\u003e\n      \u003cdiv class=\"nps-primary-card\"\u003e\n        \u003cp class=\"nps-kicker\" id=\"nps-results-heading\"\u003eNet Promoter Score\u003c\/p\u003e\n        \u003cp class=\"nps-primary-value\" data-nps-primary\u003e15.07\u003c\/p\u003e\n        \u003cp class=\"nps-primary-note\" data-nps-interpretation\u003ePositive: promoters outnumber detractors.\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"nps-result-grid\"\u003e\n        \u003cdiv class=\"nps-metric\"\u003e\n\u003cspan\u003ePromoters\u003c\/span\u003e\u003cstrong data-nps-promoters\u003e27\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-metric\"\u003e\n\u003cspan\u003ePassives\u003c\/span\u003e\u003cstrong data-nps-passives\u003e30\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-metric\"\u003e\n\u003cspan\u003eDetractors\u003c\/span\u003e\u003cstrong data-nps-detractors\u003e16\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-metric\"\u003e\n\u003cspan\u003eTotal responses\u003c\/span\u003e\u003cstrong data-nps-total\u003e73\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-metric\"\u003e\n\u003cspan\u003ePromoter share\u003c\/span\u003e\u003cstrong data-nps-promoter-share\u003e36.99%\u003c\/strong\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"nps-metric\"\u003e\n\u003cspan\u003eDetractor share\u003c\/span\u003e\u003cstrong data-nps-detractor-share\u003e21.92%\u003c\/strong\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"nps-formula\"\u003e\n\u003cstrong\u003eFormula:\u003c\/strong\u003e NPS = promoter share − detractor share. Passives remain part of the denominator but do not add to or subtract from the score.\u003c\/div\u003e\n      \u003cdiv class=\"nps-live\" aria-live=\"polite\" data-nps-live\u003eNPS 15.07 from 73 responses.\u003c\/div\u003e\n    \u003c\/aside\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"nps-visual-grid\"\u003e\n    \u003csection class=\"nps-chart-card\" data-nps-chart-card=\"composition\"\u003e\n      \u003cdiv class=\"nps-chart-intro\"\u003e\n\u003ch3\u003eResponse composition\u003c\/h3\u003e\n\u003cp data-nps-composition-intro\u003ePromoters are the largest group at 36.99% of responses.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nps-chart-cluster\"\u003e\n        \u003cdiv class=\"nps-chart-plot\" data-nps-donut-host\u003e\u003c\/div\u003e\n        \u003cdiv class=\"nps-legend\" data-nps-donut-legend\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"nps-chart-summary\" data-nps-donut-summary\u003e\u003c\/div\u003e\n      \u003cdiv class=\"nps-chart-callout\" data-nps-donut-caption\u003eThe score is positive because the promoter share exceeds the detractor share by 15.07 percentage points.\u003c\/div\u003e\n    \u003c\/section\u003e\n    \u003csection class=\"nps-chart-card\" data-nps-chart-card=\"distribution\"\u003e\n      \u003cdiv class=\"nps-chart-intro\"\u003e\n\u003ch3\u003eScore distribution\u003c\/h3\u003e\n\u003cp data-nps-distribution-intro\u003eScore 7 has the most responses.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"nps-chart-plot\"\u003e\u003csvg class=\"nps-bar-plot\" data-nps-bar-chart role=\"img\" aria-label=\"Survey response distribution by score\"\u003e\u003c\/svg\u003e\u003c\/div\u003e\n      \u003cdiv class=\"nps-legend\" data-nps-bar-legend\u003e\u003c\/div\u003e\n      \u003cdiv class=\"nps-chart-summary\" data-nps-bar-summary\u003e\u003c\/div\u003e\n      \u003cdiv class=\"nps-chart-callout\" data-nps-bar-caption\u003eResponses concentrated at 7 or 8 increase the total sample but do not directly change NPS.\u003c\/div\u003e\n    \u003c\/section\u003e\n  \u003c\/div\u003e\n  \u003csection class=\"nps-table-card\" data-nps-table-card\u003e\n    \u003ch3\u003eResponse detail\u003c\/h3\u003e\n    \u003cp class=\"nps-section-copy\"\u003eThe table uses the same current-state values as the results, charts, accessible summaries, and Excel workbook.\u003c\/p\u003e\n    \u003cdiv class=\"nps-table-wrap\" data-nps-table-wrap\u003e\n      \u003ctable class=\"nps-table\"\u003e\n        \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eScore\u003c\/th\u003e\n\u003cth\u003eClassification\u003c\/th\u003e\n\u003cth class=\"nps-num\"\u003eResponses\u003c\/th\u003e\n\u003cth class=\"nps-num\"\u003eShare\u003c\/th\u003e\n\u003cth class=\"nps-num\"\u003eNPS contribution\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n        \u003ctbody data-nps-table-body\u003e\u003c\/tbody\u003e\n        \u003ctfoot data-nps-table-foot\u003e\u003c\/tfoot\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"nps-table-note\" data-nps-table-note\u003eNPS contribution shows the percentage-point effect of each score. Promoter rows are positive, passive rows are zero, and detractor rows are negative.\u003c\/div\u003e\n  \u003c\/section\u003e\n  \u003carticle class=\"nps-education\"\u003e\n    \u003csection\u003e\n      \u003ch2\u003eWhat does this NPS calculator estimate?\u003c\/h2\u003e\n      \u003cp\u003eNet Promoter Score summarizes how likely respondents are to recommend a product, service, or organization. A standard survey asks for a rating from 0 to 10. Responses of 9 or 10 are classified as promoters, 7 or 8 as passives, and 0 through 6 as detractors. The calculator converts the counts into group shares and subtracts the detractor percentage from the promoter percentage. The result ranges from −100, when every respondent is a detractor, to +100, when every respondent is a promoter.\u003c\/p\u003e\n      \u003cp\u003eNPS is a compact directional metric, not a complete diagnosis. It is most useful when the same survey method, audience, channel, and timing are repeated consistently. Method changes can move the result even when customer sentiment has not changed. The original NPS framework is associated with Bain \u0026amp; Company; its \u003ca class=\"nps-link\" href=\"https:\/\/www.netpromotersystem.com\/about\/measuring-your-net-promoter-score\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003emeasurement overview\u003c\/a\u003e explains the basic promoter, passive, and detractor categories.\u003c\/p\u003e\n    \u003c\/section\u003e\n    \u003csection\u003e\n      \u003ch2\u003eHow should each score input be used?\u003c\/h2\u003e\n      \u003ch3\u003eScores 9 and 10: promoters\u003c\/h3\u003e\n      \u003cp\u003eEnter the number of respondents who selected 9 or 10. These fields are required for a meaningful promoter count, although zero is valid. Higher promoter counts increase NPS as long as the total sample is otherwise unchanged. A common mistake is to enter percentages instead of response counts. Use raw counts here; the calculator derives percentages automatically.\u003c\/p\u003e\n      \u003ch3\u003eScores 7 and 8: passives\u003c\/h3\u003e\n      \u003cp\u003eEnter the number of respondents who selected 7 or 8. Passives are included in total responses, so they affect every group’s percentage, but their direct NPS contribution is zero. Adding passives while promoter and detractor counts remain fixed moves both shares closer to zero and generally reduces the absolute size of NPS. Do not omit passive responses from the denominator.\u003c\/p\u003e\n      \u003ch3\u003eScores 0 through 6: detractors\u003c\/h3\u003e\n      \u003cp\u003eEnter the count for each detractor score. Higher detractor counts reduce NPS. Keeping separate score fields is useful because a shift from 0 to 6 does not change NPS classification, but it may still indicate meaningful movement in customer sentiment. Every field accepts whole, non-negative counts. Negative or nonnumeric entries are treated as invalid and excluded until corrected; decimal counts are rounded down because a response cannot be fractional.\u003c\/p\u003e\n    \u003c\/section\u003e\n    \u003csection\u003e\n      \u003ch2\u003eHow is Net Promoter Score calculated?\u003c\/h2\u003e\n      \u003cp\u003eThe model first adds all 11 response counts. Promoters equal the sum of scores 9 and 10. Passives equal the sum of scores 7 and 8. Detractors equal the sum of scores 0 through 6. Promoter share is promoters divided by total responses, and detractor share is detractors divided by total responses. NPS is then calculated as 100 × (promoters − detractors) ÷ total responses. Full precision is retained internally and the displayed score is rounded to two decimals.\u003c\/p\u003e\n      \u003cp\u003eWhen total responses are zero, the score is not mathematically defined. The calculator therefore shows an em dash, clears percentage outputs, and replaces charts with compact guidance rather than drawing empty or misleading visuals. Qualtrics provides a useful \u003ca class=\"nps-link\" href=\"https:\/\/www.qualtrics.com\/experience-management\/customer\/net-promoter-score\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003epractical explanation of NPS surveys\u003c\/a\u003e, including how the core question is typically phrased.\u003c\/p\u003e\n    \u003c\/section\u003e\n    \u003csection\u003e\n      \u003ch2\u003eHow should the outputs, charts, and table be interpreted?\u003c\/h2\u003e\n      \u003cp\u003eThe primary NPS result is expressed in points rather than as a conventional percentage. A positive score means promoters outnumber detractors; zero means their shares are equal; a negative score means detractors outnumber promoters. A higher score is usually directionally favorable, but “good” depends on industry, customer type, geography, survey channel, and historical baseline. Comparisons are strongest when the underlying methodology is stable.\u003c\/p\u003e\n      \u003cp\u003eThe promoter, passive, and detractor cards show group counts. Their share cards show the corresponding percentages of the full sample. The composition donut uses the same three category totals and percentages, while the score-distribution chart preserves the detail of all 11 response choices. The table goes one step further by showing each score’s exact share and NPS contribution. A promoter response contributes positively, a passive contributes zero, and a detractor contributes negatively.\u003c\/p\u003e\n      \u003cp\u003eThe Excel workbook captures the current state at the moment of download. It includes summary results, all inputs, the category breakdown, score-level detail, and methodology notes. This is useful for audit trails, monthly reporting, or combining multiple survey waves outside the browser.\u003c\/p\u003e\n    \u003c\/section\u003e\n    \u003csection\u003e\n      \u003ch2\u003eWhat are the main tradeoffs and common mistakes?\u003c\/h2\u003e\n      \u003cul\u003e\n        \u003cli\u003e\n\u003cstrong\u003eSample size:\u003c\/strong\u003e a small response count can produce a volatile score. Track the number of responses alongside NPS rather than reporting the score alone.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eSelection bias:\u003c\/strong\u003e people who choose to respond may differ from those who do not. Survey distribution and response rates matter.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eTiming effects:\u003c\/strong\u003e asking immediately after support, renewal, cancellation, or purchase can produce different results.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eBenchmark misuse:\u003c\/strong\u003e external benchmarks may use different audiences and methods. Internal trends are often more actionable.\u003c\/li\u003e\n        \u003cli\u003e\n\u003cstrong\u003eIgnoring comments:\u003c\/strong\u003e NPS indicates direction but not cause. Pair the rating with an open-text follow-up and analyze recurring themes.\u003c\/li\u003e\n      \u003c\/ul\u003e\n      \u003cp\u003eFor survey design and interpretation, the \u003ca class=\"nps-link\" href=\"https:\/\/www.pewresearch.org\/methods\/u-s-survey-research\/questionnaire-design\/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ePew Research Center’s questionnaire design guidance\u003c\/a\u003e highlights wording, order, and response-option effects that can influence answers. Use NPS with retention, complaints, repeat purchase, and qualitative feedback rather than treating it as a standalone forecast or a substitute for customer research.\u003c\/p\u003e\n    \u003c\/section\u003e\n  \u003c\/article\u003e\n\u003c\/div\u003e","brand":"FinancialModelsLab","offers":[{"title":"Default Title","offer_id":49909483405555,"sku":"nps","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0522\/6191\/2762\/files\/nps.webp?v=1783935424","url":"https:\/\/financialmodelslab.com\/products\/nps","provider":"Financial Models Lab","version":"1.0","type":"link"}