@tour-kit/surveysUtilities
calculateCSAT
Calculate Customer Satisfaction Score as the percentage of responses at or above a configurable threshold value
Customer Satisfaction Score (CSAT) is the percentage of responses that meet or exceed a positive threshold. On a 1–5 scale, ratings ≥ 4 are typically considered positive.
Import
import { calculateCSAT } from '@tour-kit/surveys';Usage
import { calculateCSAT } from '@tour-kit/surveys';
// Default threshold: 4 (suitable for a 1–5 scale)
const result = calculateCSAT([5, 4, 3, 5, 4, 2, 5, 4]);
console.log(result.score); // 75 (6 of 8 responses ≥ 4)
console.log(result.positive); // 6
console.log(result.negative); // 2
console.log(result.total); // 8
console.log(result.threshold); // 4Custom threshold
// On a 1–10 scale, treat ≥ 7 as positive
const result = calculateCSAT([8, 9, 5, 7, 6, 10], 7);
console.log(result.score); // 67 (4 of 6 responses ≥ 7, rounded)
console.log(result.positive); // 4
console.log(result.negative); // 2Typical survey config
const csatSurvey: SurveyConfig = {
id: 'support-csat',
type: 'csat',
displayMode: 'modal',
title: 'How satisfied were you with our support?',
questions: [
{
id: 'satisfaction',
type: 'rating',
text: 'Rate your experience',
ratingScale: { min: 1, max: 5, style: 'stars', labels: { min: 'Poor', max: 'Excellent' } },
},
],
onComplete: (responses) => {
const ratings = Array.from(responses.values()).filter((v): v is number => typeof v === 'number');
const csat = calculateCSAT(ratings, 4);
sendToAnalytics({ csat: csat.score });
},
};Parameters
Prop
Type
Returns — CSATResult
Prop
Type