顧客満足度(CSAT)スコア計算ツール
顧客満足度計算ツールは、アンケートで集めた評価一覧を明確なCSATパーセンテージに変換します。評価尺度の下限と上限を指定し、満足と判定する最低点を選んで、回答を入力してください。各評価が尺度内の有効な数値かを検証し、しきい値以上の回答を満足として数え、全回答数で割ります。満足と不満足の件数も返すため、算出された割合を確認し、母数を含む適切な文脈とともに報告できます。
無料で実行
計算前に尺度と満足判定ルールを定めます
有用なCSATを算出するには、採点ルールを明確にすることが重要です。まずアンケートで選択できる最小値と最大値を入力し、その範囲内に満足判定のしきい値を設定します。一般的な1から5までの尺度でしきい値を4にすると、4と5は満足、1、2、3は不満足として扱われます。判定には境界値も含まれるため、しきい値と同じ回答も満足グループに入ります。この条件を明示すれば、同じ回答データを使う複数のチームが、異なる満足の定義を無意識に適用する問題を防げます。計算ツールは、最小値が最大値より小さいこと、しきい値が尺度内にあること、すべての回答が指定範囲内の有限数であることを検証します。尺度を推測したり、異常な値を黙って除外したりはしません。一度決めたルールを結果と一緒に保存し、チーム、チャネル、製品、期間を比較する際にも同じ条件を継続してお使いください。
CSATパーセンテージの算出方法を確認します
各回答は単純な比較で分類されます。しきい値以上の点数は満足、しきい値未満は不満足です。満足回答数を全回答数で割り、100を掛けることでCSATを算出します。たとえば5人中4人がしきい値以上なら、CSATは80パーセントです。出力する割合は小数第2位までに丸め、全回答数、満足回答数、不満足回答数はそれぞれ別に返します。割合だけでは誤解を招く場合があるため、これらの件数は重要です。2件の回答による満点と、2000件の回答による満点では、裏付けの強さが同じではありません。空の回答一覧には有効な分母がないため、計算ツールはエラーを返します。数値以外、無限値、尺度外の値も黙って省かずに拒否します。同じ入力から常に同じ結果を返す決定的な処理なので、ダッシュボード、定期報告、品質確認、再現可能な分析に適しています。
結果を適切に報告して比較します
算出した割合は、回答数、しきい値、尺度と一緒にご提示ください。この4つの情報があれば、読み手は数値の意味を理解し、公平に比較できます。CSATの推移を追う場合は、質問文、回答尺度、収集方法、しきい値を一定に保つことが大切です。条件を変更すると、点数の変化が顧客体験ではなく測定方法の違いによって生じる可能性があります。製品、サポート窓口、地域、顧客段階ごとに分けると全体平均に隠れた傾向が見つかりますが、件数が非常に少ない区分は明記してください。このツールが測るのは、受信した評価のうち指定ルールを満たす割合です。未回答者の意見推定、統計的有意性の検定、重複投稿の除去、適切な目標値の決定は行いません。計算前に元データを整備し、確認用に件数を保存してください。単発の確認にはブラウザーが便利で、1回$0.002のAPIは、検証済みの同じルールを使う反復処理に適しています。
活用例
サポート満足度を追跡します
問い合わせ対応後の評価のうち、サポートチームが定めた満足基準に達した割合を算出します。
報告期間を比較します
週次または月次の回答群に同じ尺度としきい値を適用し、各割合の根拠となる件数を保存します。
ダッシュボード指標を検証します
元の評価からCSATを再計算し、分類方法と分母が正しいことを確認します。
よくある質問
CSATの計算式を教えてください?
満足回答数を全回答数で割り、100を掛けた値がCSATです。境界を含むしきい値以上の回答を満足として数えます。
1から5以外の尺度も使えますか?
はい。有限数の最小値と最大値を指定し、最小値を最大値より小さくしてください。その範囲内でしきい値を選べます。
回答一覧が空の場合はどうなりますか?
空の一覧には分母がなくCSATを算出できないため、無効な入力としてエラーを返します。
割合はどのように丸められますか?
CSATは小数第2位までに丸めます。全回答数と分類後の各件数は整数のままです。
料金はいくらですか?
APIは1回$0.002です。このページではブラウザー版の計算ツールを直接ご利用いただけます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/biz/csat-score-calculate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"responses":[5,4,3,5,2],"satisfied_threshold":4,"scale_min":1,"scale_max":5}'const res = await fetch("https://api.kit.forhosting.com/biz/csat-score-calculate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"responses": [
5,
4,
3,
5,
2
],
"satisfied_threshold": 4,
"scale_min": 1,
"scale_max": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/csat-score-calculate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"responses": [
5,
4,
3,
5,
2
],
"satisfied_threshold": 4,
"scale_min": 1,
"scale_max": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/csat-score-calculate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"responses":[5,4,3,5,2],"satisfied_threshold":4,"scale_min":1,"scale_max":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"responses":[5,4,3,5,2],"satisfied_threshold":4,"scale_min":1,"scale_max":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/csat-score-calculate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"responses": [
5,
4,
3,
5,
2
],
"satisfied_threshold": 4,
"scale_min": 1,
"scale_max": 5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.csat_score_calculate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |