Cumulative Frequency

Imagine 200 students sit an exam, and you want to know: how many scored less than 55 marks? Nobody handed you that number — but if you know how many scored 0–10, how many scored 10–20, and so on, you can find it by adding the frequencies up as you go. That running total is called the cumulative frequency, and it answers one question over and over: how many values are less than (or equal to) this point?

And here is the lovely part. Plot those running totals and join the dots, and you get a smooth, rising, S-shaped curve. Off that one curve you can read the median, the quartiles, the spread, and even "how many scored below 55" — all by drawing a couple of straight lines. One picture, all the answers.

Building the running total

Cumulative frequency is a running total of the frequencies. For each class boundary it answers one question: how many values are less than or equal to this value? You build it by adding each class frequency on to the total so far.

Take three classes with frequencies 4, 10 and 6. Keep a running total down the table:

Class (upper boundary) Frequency Cumulative frequency
≤ 1044
≤ 20104 + 10 = 14
≤ 30614 + 6 = 20

The final cumulative frequency, 20, is the total number of values n. Every cumulative frequency answers "how many are up to and including this upper boundary" — so 14 means "14 values are ≤ 20".

Worked example — build the column, class by class

A shop records how long (in minutes) each of 40 customers waited in the queue. Turn the grouped frequencies into a cumulative column, always plotting against the upper boundary:

Wait time (min) Frequency Upper boundary Cumulative frequency
0 < t ≤ 26≤ 26
2 < t ≤ 412≤ 46 + 12 = 18
4 < t ≤ 614≤ 618 + 14 = 32
6 < t ≤ 88≤ 832 + 8 = 40

The running total climbs 6 \to 18 \to 32 \to 40 and the last value equals n = 40, the number of customers — a good quick check that you added correctly. You would plot the points (2, 6), (4, 18), (6, 32), (8, 40) and join them into the ogive.

The cumulative frequency curve

Plot each cumulative frequency against the upper class boundary of its class and join the points. The result is a smooth, rising, S-shaped curve called an ogive. From it you can read off the key summary values: go up to the curve from the right cumulative-frequency height, then across.

Worked example — reading the median and IQR off the curve

Back to the queue data, with n = 40 customers. To find the median, go up the cumulative-frequency axis to \tfrac{n}{2} = 20, slide across to the curve, then drop down to the time axis:

So the interquartile range — the spread of the middle half of customers — is \text{IQR} = Q_3 - Q_1 = 5.7 - 2.7 = 3.0\ \text{minutes.} Half of all customers waited between about 2.7 and 5.7 minutes.

Worked example — how many fall below a value?

The curve also runs the other way: pick a value on the horizontal axis, go up to the curve, then across to read the cumulative frequency. For the queue data, "how many customers waited 5 minutes or less?" — go up from 5 to the curve and read across to about 25.

And you can flip that into "how many waited more than 5 minutes?" by subtracting from the total: 40 - 25 = 15\ \text{customers waited longer than 5 minutes.} That subtraction — n minus the reading — is how the ogive answers "greater than" questions too.

Two mistakes shift the whole curve — or the answer — and both are easy to slip into:

It is the cumulative frequency curve in disguise. A percentile is just a reading at a chosen fraction of the total: the 90th percentile is the value with 90\% of everyone below it. So "you scored in the 90th percentile" means 90% of people scored lower than you — read straight off the ogive at the 0.9 \times n height. (The median is just the 50th percentile; Q_1 and Q_3 are the 25th and 75th.)

This exact idea runs the world of ranking. When a baby is "on the 50th centile" for weight, a health chart is saying half of babies that age weigh less. Standardised tests, exam boards setting grade boundaries, and growth charts all lean on the same cumulative curve to say where a single value sits inside a whole population.

Borrow the word from architecture: an ogive is the pointed, S-curved arch you see in Gothic cathedral windows. Turn the cumulative frequency curve on its side and its gentle-steep-gentle sweep really does echo that arch — the name stuck. The steep middle of the curve is where the data is densest (lots of values crammed into a small range), and the flat tails are where values are rare. So the curve's shape is itself information: a steep, narrow rise means consistent data; a long, gradual slope means the values are spread far and wide.

See it explained