@tour-kit/surveysUtilities
calculateCES
Calculate Customer Effort Score as the average of 1–7 ratings, with easy, difficult, and neutral counts based on fixed thresholds
domidex01Published
Customer Effort Score (CES) measures how easy it was for customers to accomplish a task. Lower effort (higher score on a 1–7 scale) correlates with loyalty. The score is the average response value, rounded to two decimal places.
Import
import { calculateCES } from '@tour-kit/surveys';Usage
import { calculateCES } from '@tour-kit/surveys';
const result = calculateCES([6, 7, 5, 4, 6, 3, 7]);
console.log(result.score); // 5.43 (average)
console.log(result.easy); // 4 (responses ≥ 5)
console.log(result.neutral); // 1 (response = 4)
console.log(result.difficult);// 1 (responses ≤ 3)
console.log(result.total); // 7Typical survey config
const cesSurvey: SurveyConfig = {
id: 'checkout-ces',
type: 'ces',
displayMode: 'modal',
title: 'How easy was it to complete your purchase?',
questions: [
{
id: 'effort',
type: 'rating',
text: 'Rate the effort required (1 = Very difficult, 7 = Very easy)',
ratingScale: {
min: 1,
max: 7,
style: 'numeric',
labels: { min: 'Very difficult', max: 'Very easy' },
},
},
],
onComplete: (responses) => {
const ratings = Array.from(responses.values()).filter((v): v is number => typeof v === 'number');
const ces = calculateCES(ratings);
sendToAnalytics({ ces: ces.score, easyPct: (ces.easy / ces.total) * 100 });
},
};Parameters
Prop
Type
Returns — CESResult
Prop
Type
Classification thresholds (1–7 scale)
| Rating | Classification |
|---|---|
| 1–3 | Difficult |
| 4 | Neutral |
| 5–7 | Easy |
Related
Ship onboarding, not config.
npm i @tour-kit/core is free while you build. Every package works unlicensed in development, a one-time licence from $9.99 removes the production watermark when you ship.
Free in development, no signup, no credit card. Pay once, only when you ship.