The entered score 68 becomes 71.2 after the curve. Its percentile rank in the original class is 37.5. Its original z-score is −0.38, relative to the class mean of 71.75. Before capping, the transformation preserves the order of students; a cap can create new ties.
Original score → curved score
StudentsNo change
Every student Rows: 20
#
Score
z
Curved
Percentile rank
1
52
−1.9993
55.0074
2.5
2
58
−1.3919
61.0811
7.5
3
61
−1.0882
64.1179
12.5
4
63
−0.8857
66.1425
17.5
5
64
−0.7845
67.1548
22.5
6
66
−0.5821
69.1794
27.5
7
67
−0.4808
70.1916
32.5
8
68
−0.3796
71.2039
37.5
9
70
−0.1771
73.2285
42.5
10
71
−0.0759
74.2408
47.5
11
72
0.0253
75.2531
55
12
72
0.0253
75.2531
55
How it's calculated S
Class mean
xˉ=n∑xi=71.75
Class standard deviation (population)
σ=n∑(xi−xˉ)2=9.878639
Curve rule
y=75+10×9.878639x−71.75
Before capping, a positive linear rescale preserves z-scores and ranks.
Your score
z=9.87863968−71.75=−0.379607,y=71.20393
Percentile rank
PR=nB+21E×100=207+21×1×100=37.5
B counts class scores below this score and E counts scores equal to it. Ranks come from the original scores.
About the grade curve calculator
A z-score curve rescales every score linearly. Each student's z-score, z = (x − class mean)/SD, is kept and mapped onto the target: curved = target mean + target SD × z. A flat curve instead adds the same number of points to everyone so that the class mean reaches the target. Before capping, both preserve the order and percentile ranks. Scores above the highest possible score are capped; capping can create new ties. Percentile ranks shown here always refer to the original class scores. In the formula y is the curved score, μₜ and σₜ are the target mean and SD, and B and E count original scores below and equal to x.
The default class of 20 has a mean of 71.75 and a population SD of 9.88. Curving it to a mean of 75 and an SD of 10 turns a 68 (z = −0.38) into 71.20, and its percentile rank stays 37.5.
A z-score curve does not make scores normally distributed: a skewed class stays skewed. When scores are capped, the curved mean falls below the target, and a warning shows the actual value.
How to curve grades
To curve grades, convert each score to a z-score, z = (x − mean) ÷ SD, then compute curved = target mean + target SD × z. In a class with mean 71.75 and SD 9.88, a 68 has z = −0.38; curving to mean 75 and SD 10 gives 75 + 10 × (−0.38) = 71.20.
A flat curve is simpler: add the gap between the target mean and the class mean to every score. A class averaging 65 reaches 70 when everyone gets 5 points, so a 60 becomes 65.
Worked example: curving a class of 20
Take these 20 scores: 52, 58, 61, 63, 64, 66, 67, 68, 70, 71, 72, 72, 74, 75, 77, 79, 81, 84, 88, 93. The goal is a mean of 75 and a standard deviation of 10.
Mean: the scores sum to 1,435, so the mean is 1,435 ÷ 20 = 71.75.
Standard deviation: the squared deviations from 71.75 average 97.5875, so the SD is √97.5875 = 9.8786.
z-score for 68: (68 − 71.75) ÷ 9.8786 = −0.379607.
Curved score: 75 + 10 × (−0.379607) = 71.2039, which rounds to 71.20.
The same rule sends the lowest score, 52, to 55.01 and the top score, 93, to 96.51. The curved class has a mean of exactly 75 and an SD of exactly 10.
Flat curve vs bell curve
A flat curve moves every score by the same amount. The standard deviation stays as it was, so the gaps between students do not change.
A z-score curve, often called a bell curve, also resets the spread. If the target SD is larger than the class SD, the lowest scores can fall even when the mean rises.
Curving the class above to an SD of 15 instead of 10 drops 52 to 45.01 and 64 to 63.23, while 66 rises to 66.27.
Neither method makes scores normally distributed. A linear rescale keeps the shape of the class, so a long tail of low scores is still there after the curve.
Population or sample standard deviation
Population SD divides the squared deviations by n and treats the class as the whole group being graded, the usual choice for curving. Sample SD divides by n − 1 and estimates the spread of a larger group the class was drawn from.
For 20 students the two differ by a factor of √(20/19) ≈ 1.026. With the sample SD of 10.1353, the 68 curves to 71.30 instead of 71.20, and the 93 to 95.97 instead of 96.51. The NIST/SEMATECH e-Handbook defines both measures.
What happens when curved scores pass 100
A z-score curve can push the best scores past the maximum mark. Capping them at 100 removes points from the class total, so the curved mean ends up below the target.
For scores 40, 55, 60, 70 and 95 curved to a mean of 80 and an SD of 15, the 95 would become 105.44. Capped at 100, the class mean is 78.91 rather than 80, and any two students who pass the cap end up tied.
Percentile rank after a curve
A percentile rank is the share of the class scoring below a score, with ties counted as half: PR = 100 × (B + E/2) ÷ n. B counts scores below and E counts equal scores.
In the class of 20, seven scores are below 68 and one equals it, so PR = 100 × 7.5 ÷ 20 = 37.5. Both kinds of curve preserve the order of students, so ranks only change when a cap creates ties. Ranks are always computed from the original scores.
Grade curve examples
Scenario
Original selected score
Curved score
Default class and targets
68
71.20
Add five points
60
65.00
Top score capped at 100
95
100.00
Equal scores shifted to 75
60
75.00
The first row is the class of 20 curved to 75 and 10. The second adds 5 points to 55, 60, 65, 70 and 75, and the third is the capped class above.
The last row curves three scores of 60 to a mean of 75. Only a flat curve can do that: identical scores have an SD of 0, so their z-scores are undefined.
Settings that change the result
Class scores should be the whole group the curve describes. Adding or dropping one score changes the mean and SD used for everyone.
SD convention is population (divide by n) unless you choose sample (divide by n − 1).
Highest possible score (100 unless changed) caps curved scores; clear it to remove the cap. There is no floor, so a large target SD can push low scores below 0.
Your score can be any value, listed or not. Left blank, it is the class median.
Common grade curve mistakes
Rounding z early. z = −0.38 gives 71.2000 for the 68, against 71.2039 with the full z-score. Round only the final curved score.
Assuming a curve only raises marks. A target mean below the class mean subtracts points, and a large target SD lowers the bottom of the class.
Mixing scales. One score out of 50 among scores out of 100 reads as a low mark, pulls the mean down and changes every curved score. Convert to one scale first.
Reading curved scores as percentiles. A curved 71.20 is a mark on the new scale; its rank in the class is still 37.5.
Checked against: Hand computation: mean 65, so +5 points; PR of 60 = (1 + ½·1)/5 × 100; population SD √50 is unchanged by a shift
Cap at 100 pulls the mean below target
Class scores
40, 55, 60, 70, 95
Curve by
Target mean and SD
Target mean
80
Target standard deviation
15
Highest possible score
100
Your score
95
Curved score
100.00
Scores capped
1
Curved mean
78.911266
Percentile rank in the class
90
Checked against: σ = 18.2757; 95 → 80 + 15 × 1.69624 = 105.44, capped to 100; mean of the capped curved list
Sample SD, blank score uses the median
Class scores
58, 70, 74, 81, 92
Curve by
Target mean and SD
Target mean
75
Target standard deviation
10
Standard deviation of the class
Sample (divide by n − 1)
Highest possible score
100
Class standard deviation
12.649111
z-score
-0.0791
Curved score
74.21
Percentile rank in the class
50
Checked against: median 74 → 75 + 10·(74 − 75)/√160
Questions
How do you curve grades on a bell curve?
Find the class mean and standard deviation, turn each score into a z-score, then map it onto the target: curved = target mean + target SD × z. In the default class (mean 71.75, SD 9.88) with a target of 75 and 10, a score of 68 has z = −0.38 and becomes 75 + 10 × (−0.38) = 71.20. Without capping, every student keeps the same rank; a cap can create new ties.
What is the difference between a flat curve and a bell curve?
A flat curve adds the same points to every score, so the spread stays as it was: raising a class mean from 65 to 70 adds 5 points to everyone. A z-score curve also sets the spread. With the defaults the SD goes from 9.88 to 10, so 52 rises to 55.01 and 93 to 96.51. If the target SD is well above the class SD, low scores can even fall.
What is a percentile rank?
The percentage of the class scoring below a score, with ties counted as half: PR = (B + ½E)/n × 100, the definition used in classical test theory (Crocker & Algina, 1986). In the default class of 20, 7 scores are below 68 and 1 equals it, so PR = (7 + 0.5)/20 × 100 = 37.5. A positive linear transformation preserves percentile ranks before capping. Capping can create new ties; this calculator reports ranks from the original scores.
Should I use the population or sample standard deviation to curve grades?
Use the population SD (divide by n) when the class is the whole group being graded, which is the default. The sample SD (divide by n − 1) estimates the spread of a larger group the class was drawn from. For 20 students the two differ by a factor of √(20/19) = 1.026; switching to the sample SD moves the default 68 from 71.20 to 71.30 and the top score of 93 from 96.51 to 95.97.
Crocker & Algina, Introduction to Classical and Modern Test Theory (1986), ch. 19: percentile ranks and linear standard scores
Checked against references
This calculator includes 4 worked examples with independently sourced answers. They run in the test suite, and you can run them here too.
Put this calculator on your site
Paste this where you want the calculator to appear. It is free to use, it stays in step with corrections made here, and the credit line below it links back so your readers can find the full version.