Guides

How to Grade on a Bell Curve

By Fawad Ullah · October 2026

“Bell-curve grading” usually means one of three different methods: z-score rescaling, letter boundaries from z cutoffs, or forced quota shares. The first two share the same z-score math; the third is a different method entirely. This guide covers the z-score methods step by step, with the caveats that make the difference between a correct reading and a misleading one.

Step 1 — Find the class mean and SD

Bell-curve methods need the class distribution, not just your score. A single score has no mean or SD. From the class scores, compute the mean, then the standard deviation. Two conventions exist:

Population SD: σ = √[ Σ(x − μ)² ÷ N ]   ·   Sample SD: s = √[ Σ(x − x̄)² ÷ (n − 1) ]

Divide by N when the scores are the entire class; divide by n − 1 when the scores are a sample estimating a larger population. Worked example. Class set [40, 55, 65, 75, 90]: mean = 65.0. Squared deviations: 625 + 100 + 0 + 100 + 625 = 1,450. Population variance = 1,450 ÷ 5 = 290 → σ = 17.03. Sample variance = 1,450 ÷ 4 = 362.5 → s = 19.04.

Step 2 — Convert a score to a z-score

z = (Score − Class mean) ÷ Class SD

Worked example (population SD). Raw 40: z = (40 − 65) ÷ 17.03 = −1.468. Raw 65: z = 0. Raw 90: z = +1.468. The z-score tells you how many standard deviations the score sits from the mean. The standard normal distribution is Z ~ N(0, 1) — mean 0, SD 1.

Step 3a — Rescale to a target mean and SD

Curved = Target mean + z × Target SD

Worked example (target 75/10, population SD). Raw 40: 75 + (−1.468 × 10) = 60.32. Raw 65: 75.00. Raw 90: 75 + (1.468 × 10) = 89.68. Target mean and SD are teacher choices — 75/10 is an editable example default, not a rule. Note the raw 90 dropped to 89.68: rescaling can lower a score. The SD choice matters: with sample SD instead, the raw 40 rescales to 61.87 rather than 60.32 — a 1.55-point difference from a definitional choice.

Step 3b — Set letter boundaries from z cutoffs

Pick cutoffs, then convert each to a raw boundary:

Boundary = Class mean + z-cutoff × Class SD

Worked example. Example cutoffs A ≥ +1.5, B ≥ +0.5, C ≥ −0.5, D ≥ −1.5 with mean 70 and SD 10 give boundaries A ≥ 85, B ≥ 75, C ≥ 65, D ≥ 55, F < 55. If scores were exactly normally distributed, the shares would be 6.68% A, 24.17% B, 38.29% C, 24.17% D, 6.68% F. The percentages are properties of the normal distribution; the cutoffs are the illustrator’s choice. There is no standard table: Ohio State Astronomy 161 used cutoffs of about +1.04, +0.03, −0.98, −1.70 on one real exam — a different table from the example above.

The Empirical Rule (68–95–99.7)

For a normally distributed variable, about 68% of values lie within ±1 SD of the mean, about 95% within ±2 SD, and about 99.7% within ±3 SD. With mean 65 and SD 17.03: about 68% within 47.97–82.03; about 95% within 30.94–99.06; about 99.7% within 13.91–116.09. The rule holds if the data are normally distributed — real class scores are often skewed, bimodal, or small.

Quota grading is a different method

Forced shares — for example, top 10% A, next 20% B, middle 40% C, bottom 30% D/F — assign letters by rank. They need no mean or SD, and they guarantee some students get low grades even if the whole class mastered the material. The University of Alberta forbids mandating grades by quota. No source establishes any particular quota split as standard. Do not present quota shares as bell-curve z-grading.

Common mistakes

  • Reading a percentile from a z-score without the normality caveat. The percentile only holds if scores are roughly bell-shaped.
  • Assuming a standard cutoff table. There is none — the real and example tables above disagree.
  • Assuming bell curves only raise scores. Rescaling to a lower target mean or SD lowers above-average scores.
  • Using one score alone. A single score has no class mean or SD.
  • Confusing quota grading with z-rescaling. Different methods, different math, different guarantees.
  • Accepting a silent SD convention. Population versus sample changes every result.

Calculate it: Bell Curve Grade Calculator. Other curve methods: Grade Curve Calculator. Test scores: Test Grade Calculator.

How to Grade on a Bell Curve — FAQ

What is bell-curve grading?

It usually means one of three distinct methods: z-score rescaling to a target mean and SD, letter boundaries set from z cutoffs, or forced quota shares by rank. This guide covers the first two. Quota grading is a different method — it needs no mean or SD and guarantees some students get low grades.

How do I compute a z-score by hand?

First find the class mean and SD. Then z = (score − mean) ÷ SD. Example: class set [40, 55, 65, 75, 90], mean 65.0, population SD 17.03. A raw 40 gives z = (40 − 65) ÷ 17.03 = −1.468. A raw 90 gives z = +1.468.

Population or sample SD — which do I use?

Use population SD (divide by N) when the scores are the entire class. Use sample SD (divide by n − 1) when the scores are a sample estimating a larger population. The choice changes results: the raw-40 example rescales to 60.32 with population SD and 61.87 with sample SD under a 75/10 target.

How do I rescale to a target mean and SD?

Curved = target mean + z × target SD. With z = −1.468 and a 75/10 target: 75 + (−1.468 × 10) = 60.32. Target mean and SD are teacher choices — 75/10 is an editable example default, not a rule. Rescaling can lower a score.

How do I turn z cutoffs into letter grades?

Pick cutoffs, then convert each to a raw boundary with score = mean + z × SD. Example cutoffs A ≥ +1.5, B ≥ +0.5, C ≥ −0.5, D ≥ −1.5 with mean 70 and SD 10 give boundaries 85, 75, 65, 55. There is no standard table — change the cutoffs to match your teacher's.

Can I get a percentile from a z-score?

Only with the normality caveat. A percentile reading assumes scores are approximately normally distributed. Real class scores are often skewed, bimodal, or small. With a small class, treat z-scores and shares as illustrative only.