Grading Curve Calculator
Stretch or compress raw scores linearly onto a target range (e.g. class raw 20–70 → curved 40–95).
Curved scores
Raw range [40, 70] → [50, 95]
- 40 → 50
- 55 → 72.5
- 62 → 83
- 70 → 95
- 48 → 62
- 1.curved = 50 + (raw − 40) / (70 − 40) × (95 − 50)
- 2.Example: 40 → 50
How the linear curve works
Set anchors
By default rawMin/rawMax are taken from the class data. Override them to pin specific anchors. Choose the target range you want after curving.
Source
Linear mapping: curved = targetMin + (raw − rawMin) / (rawMax − rawMin) × (targetMax − targetMin). One of several curve methods; not z-score or bell-curve forcing.
Frequently asked questions
Is this a bell curve?
No — it is a linear rescale. Bell-curve / forced-distribution grading is different and not implemented here.
Will the topper still be on top?
Yes, for a strictly increasing linear map (targetMax > targetMin and rawMax > rawMin).
Can scores exceed 100?
Only if your targetMax is above 100. Set targetMax to the paper maximum to avoid that.
What if everyone scored the same?
When rawMax = rawMin, every curved score equals targetMin and a warning is returned.
For developers & AI agents
The Grading Curve Calculator is also available as a free, unauthenticated JSON API — no API key, no sign-up, CORS enabled for all origins. Send a GET request with the parameters below and receive the computed result as JSON, including the source of the format or formula used. Invalid input returns HTTP 400 with a JSON { "error": "..." } body.
GET https://knwdle.com/api/tools/grading-curve-calculator| Parameter | Required | Description |
|---|---|---|
scores | Yes | Comma-separated raw scores |
targetMin | Yes | Lower end of curved scale |
targetMax | Yes | Upper end of curved scale |
rawMin | No | Override raw minimum (default: class min) |
rawMax | No | Override raw maximum (default: class max) |
Request:
GET https://knwdle.com/api/tools/grading-curve-calculator?scores=40,55,62,70,48&targetMin=50&targetMax=95
Response:
{
"tool": "grading-curve-calculator",
"name": "Grading Curve Calculator",
"source": "Linear mapping: curved = targetMin + (raw − rawMin) / (rawMax − rawMin) × (targetMax − targetMin). One of several curve methods; not z-score or bell-curve forcing.",
"rawMin": 40,
"rawMax": 70,
"targetMin": 50,
"targetMax": 95,
"original": [
40,
55,
62,
70,
48
],
"curved": [
50,
72.5,
83,
95,
62
],
"flatInput": false,
"formula": "curved = 50 + (raw − 40) / (70 − 40) × (95 − 50)",
"steps": [
"Raw range = [40, 70]",
"Target range = [50, 95]",
"Example: raw 40 → 50"
]
}