# Grade curve calculator

> Grade curve calculator: rescale a class's scores to a target mean and standard deviation, or add flat points, with z-scores and percentile ranks.

Versão interativa: https://www.calcopenly.com/pt/statistics/grade-curve-calculator
Tema: Calculadoras de estatística e probabilidade

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. Both keep the order of students, so percentile ranks do not change; only scores pushed above the highest possible score are cut back to it.

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.

## Dados

- **Class scores**
- **Curve by** (opções: Target mean and SD, Add points)
- **Target mean**
- **Target standard deviation**
- **Standard deviation of the class** (opções: Population (divide by n), Sample (divide by n − 1))
- **Highest possible score**: Curved scores above this are capped. Leave blank for no cap.
- **Your score**: Leave blank to see the median student.

## Resultados

- Curved score — resultado principal
- z-score
- Percentile rank in the class
- Class mean
- Class standard deviation
- Curved mean
- Curved standard deviation
- Scores capped
- Students

## Fórmula

$$
z = \frac{x - \bar x}{s},\qquad x_{\text{curved}} = \mu_{\text{target}} + \sigma_{\text{target}}\,z,\qquad PR = \frac{B + \tfrac12 E}{n}\times 100
$$

## Exemplos resolvidos

### Default class, score 68

- Class scores: 52, 58, 61, 63, 64, 66, 67, 68, 70, 71, 72, 72, 74, 75, 77, 79, 81, 84, 88, 93
- Curve by: Target mean and SD
- Target mean: 75
- Target standard deviation: 10
- Highest possible score: 100
- Your score: 68
- **Class mean: 71.75**
- **Class standard deviation: 9.878639**
- **z-score: -0.3796**
- **Curved score: 71.20**
- **Percentile rank in the class: 37.5**
- **Curved mean: 75**
- **Curved standard deviation: 10**
- **Scores capped: 0**
- Fonte de verificação: Python statistics.mean and pstdev (9.87863857); curved = 75 + 10·(68 − 71.75)/σ in decimal; PR = (7 + ½·1)/20 × 100

### Add points to reach 70

- Class scores: 55, 60, 65, 70, 75
- Curve by: Add points
- Target mean: 70
- Highest possible score: 100
- Your score: 60
- **Curved score: 65.00**
- **Percentile rank in the class: 30**
- **Curved mean: 70**
- **Curved standard deviation: 7.071068**
- Fonte de verificação: 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**
- Fonte de verificação: Python decimal: σ = 18.2757 (statistics.pstdev); 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**
- Fonte de verificação: Python statistics.stdev = 12.6491106 (√160); median 74 → 75 + 10·(74 − 75)/√160

## Perguntas

### 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. Every student keeps the same rank.

### 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 linear curve never changes percentile ranks, because it keeps the order of the 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.

### Qual é a precisão de “Grade curve calculator”?

A precisão depende dos dados inseridos e das hipóteses do método. O cálculo decimal usa 50 algarismos significativos, mas estimativas, métodos numéricos e dados de origem podem ter menor precisão; o arredondamento exibido não elimina essas limitações. Exemplos resolvidos verificados com fontes independentes: 4. Por exemplo, “Default class, score 68” é verificado com Python statistics.mean and pstdev (9.87863857); curved = 75 + 10·(68 − 71.75)/σ in decimal; PR = (7 + ½·1)/20 × 100.

### De onde vem o método?

NIST/SEMATECH e-Handbook of Statistical Methods, §1.3.5.1 (mean) and §1.3.5.6 (standard deviation); Crocker & Algina, Introduction to Classical and Modern Test Theory (1986), ch. 19: percentile ranks and linear standard scores.

## Fontes

- [NIST/SEMATECH e-Handbook of Statistical Methods, §1.3.5.1 (mean) and §1.3.5.6 (standard deviation)](https://www.itl.nist.gov/div898/handbook/eda/section3/eda356.htm)
- Crocker & Algina, Introduction to Classical and Modern Test Theory (1986), ch. 19: percentile ranks and linear standard scores
