ルーブリック加重得点計算ツール
加重ルーブリックは、課題の各部分に設定された重要度を保ちながら、複数の評価結果を1つの得点にまとめます。この計算ツールは各基準の評価段階に重みを掛け、寄与値を合計し、合計に至る計算内容を表示します。結果を評価段階と同じ尺度に保つ場合は、40パーセントに0.40のような小数の重みをご入力ください。総重みと加重平均も返すため、成績を記録する前に、不完全なルーブリックや通常と異なる尺度を確認できます。
無料で実行
評価段階と重みを統一して設定します
課題ルーブリックの各基準について1行ずつ作成してください。明確な名称、獲得した評価段階または点数、その重要度を表す乗数を入力します。調査が40パーセントの場合、元の評価尺度を維持するには40ではなく0.40を使用します。一般的には、調査0.40、論理性0.35、文章0.25のように設定すると合計が1になり、加重合計を評価段階と直接比較できます。点数の乗数を使う場合や大きなルーブリックの一部だけを採点する場合は、合計が1でなくても計算できます。その際はtotal_weightとweighted_averageをご確認ください。評価段階と重みは有限の0以上の数値で、少なくとも1つの重みを0より大きくする必要があります。採点方針で指定されていない限り、4段階評価と百分率など異なる尺度を混在させないでください。
加重得点の計算方法を確認します
各行では、評価段階に重みを掛けて加重得点を求めます。その全積を加算した値がtotal_weighted_scoreです。たとえば、評価段階4、重み0.40の寄与値は1.60で、評価段階3、重み0.35の寄与値は1.05です。contributionsには中間値が残るため、学習者、教員、確認者が結果を再現できます。weighted_averageは、丸め前の積の合計を丸め前の重み合計で割ります。重みの合計が1なら加重平均と加重合計は同じです。合計が100なら、平均によって基準の尺度に戻せます。丸めは表示結果だけに適用され、精度は小数点以下ゼロから十桁まで選択できます。各寄与値を先に丸めず、元の数値を累積するため、早期の丸めによるずれを防げます。
成績を付ける前に結果を検証します
出力は監査可能な計算結果としてご利用いただき、採点規則そのものの代わりにはしないでください。criteria_countをルーブリックの行数と比較し、total_weightも確認します。通常、1は小数比率、100は整数の百分率を示します。contributionsを確認し、重要な基準に適切な乗数があり、各評価段階が意図した尺度になっているかを確かめます。このツールは、欠落基準、最高段階、評定境界、遅延減点、加点、合格条件を推測しません。明示的な基準行でない規則は別途適用してください。自動採点では、後の確認に備えて元の入力も応答と一緒に保存することをお勧めします。APIは1回$0.002で、同じ純粋な計算をブラウザー内でも実行でき、外部採点サービスへデータを送る必要はありません。
活用例
課題の成績を計算する
調査、論理性、発表、文章表現の評価段階を、公開された重みに従って統合します。
成績表を監査する
基準別の寄与値と表計算の合計を比較し、重みや数式の入力誤りを見つけます。
ルーブリック改訂を試算する
新しい評価基準を公開する前に、重みの変更が合計へ与える影響を確認します。
よくある質問
どの計算式を使用しますか?
各基準の評価段階に重みを掛けて全積を合計します。さらに総重みで割り、加重平均も算出します。
30パーセントの重みは30と0.30のどちらですか?
評価段階の尺度を保つ場合は0.30をご使用ください。30も使えますが、未正規化の合計は100倍になります。weighted_averageは正規化されます。
重みの合計は1でなければなりませんか?
いいえ。total_weightで部分的なルーブリックや別尺度を確認でき、weighted_averageは正の総重みを正規化します。
基準ごとに最高段階が異なってもよいですか?
0以上の段階は計算できますが、異なる最高値は自動で正規化しません。必要な場合は共通尺度に変換してください。
API計算の料金はいくらですか?
APIは1回$0.002です。ブラウザー版では同じ決定的な計算をローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/edu/rubric-weighted-score \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"criteria":[{"name":"Research","level":4,"weight":0.4},{"name":"Reasoning","level":3,"weight":0.35},{"name":"Writing","level":5,"weight":0.25}]}'const res = await fetch("https://api.kit.forhosting.com/edu/rubric-weighted-score", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"criteria": [
{
"name": "Research",
"level": 4,
"weight": 0.4
},
{
"name": "Reasoning",
"level": 3,
"weight": 0.35
},
{
"name": "Writing",
"level": 5,
"weight": 0.25
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/rubric-weighted-score",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"criteria": [
{
"name": "Research",
"level": 4,
"weight": 0.4
},
{
"name": "Reasoning",
"level": 3,
"weight": 0.35
},
{
"name": "Writing",
"level": 5,
"weight": 0.25
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/rubric-weighted-score", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"criteria":[{"name":"Research","level":4,"weight":0.4},{"name":"Reasoning","level":3,"weight":0.35},{"name":"Writing","level":5,"weight":0.25}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"criteria":[{"name":"Research","level":4,"weight":0.4},{"name":"Reasoning","level":3,"weight":0.35},{"name":"Writing","level":5,"weight":0.25}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/rubric-weighted-score", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"criteria": [
{
"name": "Research",
"level": 4,
"weight": 0.4
},
{
"name": "Reasoning",
"level": 3,
"weight": 0.35
},
{
"name": "Writing",
"level": 5,
"weight": 0.25
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.rubric_weighted_score",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 500 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |