@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 MIT and free. The Pro packages work unlicensed too — a one-time $99 license removes the production watermark when you ship.
MIT-licensed — no signup, no credit card. Pay once, only when you ship.