Exam T-score calculator
Turn a standardized exam z-score into the T-score printed on score reports: a z of 1.5 becomes a T of 65, and a T of 50 is always the cohort average. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Z
- 1.5
- T score
- 65
- Mean
- 50
- Sd
- 10
- Deviation
- 15
An exam T-score is the psychometric reporting scale that recenters a standardized z-score onto a mean of fifty and a standard deviation of ten. School psychologists, testing offices, and researchers use that scale because a T of fifty is the cohort average, a T of sixty is one standard deviation above the mean, and a T of forty is one standard deviation below—numbers that read more naturally on score reports than a raw z of plus one or minus one. This exam T-score calculator accepts a finite z-score, applies the identity T equals fifty plus ten times z, and returns the T-score, the fixed scale constants, the signed deviation from fifty, and a qualitative band from very low through very high. Failed validation is not billed.
What an exam T-score is and the formula that produces it
A T-score is a linear transformation of a standardized z-score onto a reporting scale whose mean is fifty and whose standard deviation is ten. In educational measurement and psychometrics this McCall-style scale is preferred for printed reports because every number sits on a familiar neighborhood of the hundred-point line: fifty is the average examinee, sixty is one standard deviation above the mean, seventy is two standard deviations above, forty is one below, and thirty is two below.
The conversion itself is a single affine map, T equals fifty plus ten times z, so a z of one point five becomes a T of sixty-five and a z of negative two becomes a T of thirty. Nothing is estimated, sampled, or looked up; the identity is exact for any finite z inside the accepted range.
This capability implements that identity and nothing else: it does not compute a z-score from raw marks (if you still have only a raw score, a class mean, and a class standard deviation, standardize first), it does not apply grade curves, and it does not invent percentiles from a normal table.
Where an exam T-score calculator earns its keep
School psychologists and special-education teams convert standardized exam z-scores into T-scores when they write evaluation reports that must match the scale printed in test manuals and parent letters. Classroom assessment offices use the same map when a vendor file arrives as z and the student information system only stores T.
Content sites that rank for exam t score calculator benefit from a focused landing whose slug, title, and examples match the query people type—distinct from a general z-score calculator that standardizes raw marks, and distinct from a grade-curve tool that adds bonus points.
What you can do with it
Psychological and special-education reports
Turn a standardized exam z-score into the T-score (mean 50, SD 10) that test manuals and parent letters already quote.
Student-information and vendor imports
Map a vendor file of z-scores onto the T-scale your SIS stores, using the same identity in batch jobs and on the public page.
Classroom and counseling widgets
Let teachers and interns convert a z-score to a T-score in the browser, then call the same function from an LMS plugin.
FAQ
How do you convert an exam z-score to a T-score?
A z of 0 becomes 50, a z of 1.0 becomes 60, a z of −1.0 becomes 40, and a z of 1.5 becomes 65.
Why is the T-scale mean 50 and standard deviation 10?
That is the classic McCall psychometric T-score used on many educational and clinical reports: fifty is average, each ten points is one standard deviation.
What range of z-scores is accepted?
Any finite number from −20 through 20 inclusive.
How is this different from a z-score calculator?
A z-score calculator standardizes a raw mark with a mean and standard deviation. This tool assumes you already have z and reports it on the T-scale (mean 50, SD 10).
What do the T-score bands mean?
A T from 40 through 60 is average. Above 60 it is high, and very high beyond two standard deviations above the mean; below 40 it is low, and very low beyond two standard deviations below.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/edu/exam-t-score \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"z":1.5}'const res = await fetch("https://api.kit.forhosting.com/edu/exam-t-score", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"z": 1.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/exam-t-score",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"z": 1.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/exam-t-score", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"z":1.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"z":1.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/exam-t-score", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"z": 1.5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.exam_t_score",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs_z | 20 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Input contract, response shape, and validation errors
Bands follow the usual reporting cuts: below thirty is very low, thirty up to forty is low, forty through sixty is average, above sixty through seventy is high, and above seventy is very high. Rounding is stable to twelve decimal places. Failed validation is not billed. POST a JSON body with the required field z as a finite number between negative twenty and twenty inclusive. That window is generous for classroom and clinical exams, where almost every honest z-score lies between about negative four and positive four; values beyond twenty standard deviations are treated as data-entry mistakes rather than as genuine examinee positions. Numeric strings are accepted; empty strings, NaN, Infinity, and non-numeric types fail with invalid_input naming the field. Aliases z_score, zscore, and standard_score are accepted so spreadsheet columns and older form names map without renaming. On success the body includes z (echoed and cleaned), t_score (fifty plus ten times z), mean fixed at fifty, sd fixed at ten, deviation equal to t_score minus fifty, band as one of very_low, low, average, high, or very_high, formula set to the readable identity T equals fifty plus ten times z, and method psychometric_t_50_10 for machine clients that branch on scale policy. Example: z equals one point five yields t_score sixty-five and band high; z equals zero yields fifty and band average; z equals negative two yields thirty and band low.
Where an exam T-score calculator earns its keep
Keep the identity T equals fifty plus ten times z explicit in your UI copy, document that this is the psychometric T-scale rather than a classroom percent, and pin the rounded t_score in tests so LMS plugins, report generators, and edge workers stay reproducible across runtimes.
Technical questions
What does the exam T-score calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.