Descriptive Statistics Frequency Distributions Ogive & Graphing 38 min read November 3, 2026
BY: Statistics Fundamentals Team
Reviewed By: Minsa A (Senior Statistics Editor)

Cumulative Frequency: Definition, Table, Graph and Examples

Cumulative frequency is the running total of frequencies in a frequency distribution. Each value in a cumulative frequency table shows how many data points fall at or below that class interval. The final cumulative frequency always equals N (the total observations). It forms the foundation of the ogive — the S-shaped curve from which you can read off the median, quartiles, percentiles, and IQR without computation.

Cumulative Frequency Formula
CFk = f1 + f2 + f3 + ··· + fk
CFk = cumulative frequency up to the kth class
fi = frequency of the ith class
CFlast = N (always, use as your check)
What Is It? Types How to Calculate Ogive Graph Median & Quartiles Relative CF Python / R / Excel Common Mistakes Practice Problems FAQ

Cumulative Frequency Calculator

Enter class frequencies (comma-separated) and the starting lower boundary to generate the full cumulative frequency table instantly.

For an interactive graph, try the ogive graph maker or the frequency distribution table maker.

What Is Cumulative Frequency?

Quick Definition — Featured Snippet Target

Cumulative frequency is the running total of frequencies as you move through a frequency distribution. Each entry sums all frequencies up to and including that class interval. The final cumulative frequency always equals N, the total number of observations in the dataset.

It answers the question: "How many data points fall at or below this value?" — which a standard frequency table cannot answer directly.

The word "cumulative" means increasing by accumulation: each new entry in the table adds to whatever came before it. Think of filling a jar with marbles one layer at a time. After each layer goes in, the cumulative frequency tells you the total number of marbles in the jar so far — not just how many were in that one layer.

Three properties hold without exception. Cumulative frequency never decreases — it either rises or stays flat when a class has zero observations, never falls. The final cumulative frequency always equals N, giving you a built-in check on your arithmetic. And cumulative frequency only makes sense for ordered data (ordinal, interval, or ratio scale). Applying it to nominal categories like eye colour or political party produces a number with no interpretable meaning, because the "order" you impose is arbitrary.

For the broader context, this topic sits within descriptive statistics — the set of techniques for summarizing and describing datasets before making inferences. Cumulative frequency is closely related to relative frequency and to frequency distributions more generally.

Frequency vs. Cumulative Frequency: The Key Difference

Frequency Cumulative Frequency
What it countsHow many observations fall in this classHow many fall at or below this class
DirectionEach class independentlyRunning total — always increasing
Last valueFrequency of the final class onlyAlways equals N
Question answered"How many scored 60–70?""How many scored 70 or below?"
Graph typeHistogram, frequency polygonOgive (cumulative frequency curve)

Cumulative frequency tables also feed directly into finding the median, quartiles, and percentiles from grouped data. The interpolation formula for the median from a frequency table requires the cumulative frequency up to the median class — you cannot find it without the CF column.

Less Than and Greater Than Cumulative Frequency

There are two forms of cumulative frequency, and they answer opposite questions. Both are built from the same base frequency table; what changes is the direction of accumulation.

Less Than CF (More Common)

Add frequencies from the lowest class upward. Each entry tells you how many observations are less than or equal to the upper boundary of that class. The ogive rises from left to right in an S-shape.

Greater Than CF

Start from N and subtract each frequency as you move upward — or equivalently, add from the highest class downward. Each entry tells you how many observations are greater than or equal to the lower boundary of that class.

Worked Example: Less Than Cumulative Frequency

Marks scored out of 100 by 40 students:

Class IntervalFrequency (f)Less Than CFReading
0–20333 students scored ≤ 20
20–4071010 students scored ≤ 40
40–60122222 students scored ≤ 60
60–80113333 students scored ≤ 80
80–10074040 = N ✓

Worked Example: Greater Than Cumulative Frequency

Using the same 40-student dataset:

Class IntervalFrequency (f)Greater Than CFReading
0–2034040 students scored ≥ 0
20–4073737 students scored ≥ 20
40–60123030 students scored ≥ 40
60–80111818 students scored ≥ 60
80–100777 students scored ≥ 80
Exclusive to this page — not covered in any top-5 result

The Intersection Property: Both Ogives Always Meet at the Median

When you plot both the less-than and greater-than ogives on the same graph, they cross at exactly one point. The x-coordinate of that intersection is the median. This is not coincidence — it is a consequence of what the median means.

At the median, exactly half the data falls below it (so the less-than CF equals N/2) and exactly half falls above it (so the greater-than CF also equals N/2). Two curves that both pass through a cumulative value of N/2 at the same x-value must cross there — and they do so at only one point. This gives you a graphical method to find the median that requires no arithmetic at all.

How to Calculate Cumulative Frequency — Step by Step

Method 1: Ungrouped (Discrete) Data

With ungrouped data, each row in your table represents a single distinct value rather than a class interval.

Worked Example

Books read per week by 20 students

1

Sort values in ascending order and count how often each appears to build the frequency table.

2

For the first row: CF = f₁. So if 3 students read 0 books, CF₁ = 3.

3

For each subsequent row: CFn = CFn-1 + fn. Add the current frequency to the previous running total.

4

Check: the final cumulative frequency must equal N = 20. If it does not, you made an arithmetic error somewhere.

Books (x)Frequency (f)Cumulative FrequencyWorking
0333
1693 + 6
25149 + 5
341814 + 4
422018 + 2 = N ✓

Reading: "14 students read 2 books or fewer per week."

Method 2: Grouped (Continuous) Data

The process is identical, but you must identify the upper class boundary of each interval — not the class midpoint — before plotting any graph.

Full Worked Example

Test scores of 50 students (used throughout this guide)

ClassFrequency (f)Upper BoundaryCumulative FrequencyWorking
10–2042044
20–30830124 + 8
30–4014402612 + 14
40–5013503926 + 13
50–6011605039 + 11 = N ✓
✅
The Final-Value Check

After completing any cumulative frequency table, verify that the last entry equals N. This single check catches every possible addition error. If the numbers do not match, work back through the table row by row until you find where the total diverges.

How to Draw a Cumulative Frequency Graph (Ogive)

The cumulative frequency graph goes by several names: ogive, cumulative frequency curve, cumulative frequency polygon. The ogive (pronounced "OH-jive") is the standard term in statistics. It is an S-shaped curve — a sigmoid — that rises from the lower-left of the graph to the upper-right.

Why Upper Class Boundaries, Not Midpoints — The Critical Rule

🚨
The #1 Exam Mistake (Lose Marks Here)

You must plot cumulative frequency against the upper class boundary, not the class midpoint. The cumulative frequency for a class represents all observations up to the end of that class — and the end is the upper boundary, not the middle. Plotting against the midpoint implies the cumulative total is reached halfway through the class, which is incorrect.

On the x-axis, plotCorrectIncorrect
x-axis valueUpper class boundary (20, 30, 40…)Class midpoint (15, 25, 35…)
y-axis valueCumulative frequencyIndividual class frequency
Starting point(lower boundary of first class, 0)The first data point

Step-by-Step Ogive Construction

Using the 50-student example from above:

Ogive Construction — 6 Steps

Less-Than Ogive for Test Scores (N = 50)

1

Build the CF table with upper boundaries. Already done above: boundaries are 20, 30, 40, 50, 60 with CFs of 4, 12, 26, 39, 50.

2

Add the starting point. The ogive must begin at (10, 0) — the lower boundary of the first class paired with a cumulative frequency of zero. Without this, the curve is wrong from the start.

3

Plot all points: (10, 0), (20, 4), (30, 12), (40, 26), (50, 39), (60, 50).

4

Connect with a smooth S-shaped curve. Do not use straight-line segments — the curve should flow smoothly through each point. The lower portion curves upward; the upper portion curves outward and flattens. (Note: some curricula accept straight-line segments and call the result a cumulative frequency polygon. Check your syllabus.)

5

Label axes: x-axis = "Test Score," y-axis = "Cumulative Frequency."

6

Verify visually: the curve should start at lower-left, rise steeply through the middle classes (where most data clusters), and flatten toward the upper-right where it reaches (60, 50).

Cumulative Frequency Ogive — 50 Students, Test Scores

10 20 30 40 50 60 0 10 20 25 30 40 50 N/2 = 25 → Median ≈ 37 N/4 = 12.5 → Q₁ 3N/4 = 37.5 → Q₃ Test Score Cumulative Frequency

Red dashed lines show the median; purple dashed lines show Q₁ and Q₃ — all read by locating positions on the y-axis first, then dropping to the x-axis.

What the Ogive Shape Tells You

A steep section in the ogive means many data points fall within that x-range — the frequencies are high there. A flat section means few observations. The classic S-shape you see with normally distributed data reflects the fact that most observations cluster around the centre, with fewer in each tail. A curve that rises sharply at the left then flattens early indicates a right-skewed distribution.

Using the Ogive to Find Median, Quartiles, and Percentiles

The ogive's practical value is that it lets you read positional statistics — median, quartiles, deciles, percentiles — directly off the graph without sorting raw data or applying formulas. The procedure is always the same: find the relevant value on the y-axis first, then project horizontally to the curve, then drop vertically to the x-axis.

Finding the Median

1

Calculate N/2. For 50 students: N/2 = 25.

2

Locate 25 on the y-axis (cumulative frequency axis).

3

Draw a horizontal line from 25 to where it meets the ogive curve.

4

Drop a vertical line from that intersection to the x-axis.

5

Read the x-value. For this dataset: median ≈ 37.

⚠️
Common Error: Wrong Axis for Quartiles

Students frequently locate N/4 on the x-axis (the data axis) instead of the y-axis (the cumulative frequency axis). Always start on the y-axis. Find the value there first, then move horizontally to the curve, then drop to x. Never start on the x-axis when reading the ogive.

Finding Quartiles and IQR

The same procedure works for both quartiles. Locate the relevant cumulative frequency on the y-axis, project to the curve, and read off the x-value.

Quartiley-axis position (N = 50)Interpretation
Q₁ (Lower Quartile)N/4 = 12.525% of data falls below Q₁
Q₂ (Median)N/2 = 2550% of data falls below Q₂
Q₃ (Upper Quartile)3N/4 = 37.575% of data falls below Q₃

Once you have Q₁ and Q₃ from the ogive, the interquartile range is simply IQR = Q₃ − Q₁. You can also use these three values directly to build a box plot — the five-number summary adds the minimum and maximum.

Finding Percentiles

The P-th percentile is the value below which P% of the data falls. To locate it on the ogive, calculate the y-axis position as (P/100) × N, then follow the same projection procedure.

Percentiley-axis position (N = 50)
10th percentile(10/100) × 50 = 5
40th percentile(40/100) × 50 = 20
90th percentile(90/100) × 50 = 45

For more on positional statistics, see the dedicated pages on percentiles and measures of central tendency.

Finding Deciles

Deciles divide data into 10 equal parts. No top-5 result for this keyword covers deciles from cumulative frequency. The D-th decile sits at position (D/10) × N on the y-axis.

Deciley-axis position (N = 50)Equivalent percentile
D₁ (1st decile)510th percentile
D₅ (5th decile)25Median (50th percentile)
D₉ (9th decile)4590th percentile

Relative Cumulative Frequency and Cumulative Percentage

Relative cumulative frequency scales the running total to a proportion of N, making comparisons between datasets with different sample sizes possible.

Relative Cumulative Frequency Formula
Relative CF = CFk ÷ N
Ranges from 0 to 1.0
Multiply by 100 for Cumulative %
Final value always = 1.0 (or 100%)

Four-Column Frequency Table

ClassfRelative f (f/N)CFRelative CF (CF/N)Cumulative %
10–2040.0840.088%
20–3080.16120.2424%
30–40140.28260.5252%
40–50130.26390.7878%
50–60110.22501.00100%

The CDF Connection

Relative cumulative frequency is the empirical cumulative distribution function (ECDF) of the dataset. When you plot relative CF on the y-axis (0 to 1) instead of raw CF, you get the empirical CDF — the same concept underlying probability distributions. The value at any x tells you the estimated probability that a randomly chosen observation falls below x. On a relative CF ogive, the median is always at y = 0.50, regardless of sample size. This connection leads naturally into continuous cumulative distribution functions.

All Four Frequency Types: A Summary

TypeFormulaQuestion answeredFinal value
FrequencyfHow many in this class?Varies
Relative Frequencyf / NWhat proportion in this class?Sums to 1.0
Cumulative FrequencyΣfᵢ up to kHow many at or below this class?N
Relative Cumulative FrequencyCF / NWhat proportion at or below?1.0

Cumulative Frequency in Python, R, and Excel

No top-5 result for this keyword provides working code. This section covers all three common tools.

Python (pandas + numpy + matplotlib)

Python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Raw test score data
scores = [15, 23, 18, 42, 55, 38, 29, 47, 61, 35,
          28, 44, 52, 37, 19, 48, 63, 31, 26, 41]

# Step 1: Define class boundaries
bins = [10, 20, 30, 40, 50, 60, 70]

# Step 2: Build frequency counts
freq, edges = np.histogram(scores, bins=bins)

# Step 3: Assemble the frequency table
df = pd.DataFrame({
    'Class': [f"{int(edges[i])}–{int(edges[i+1])}" for i in range(len(freq))],
    'Upper_Boundary': edges[1:],
    'Frequency': freq
})

# Step 4: Cumulative frequency
df['Cumulative_Freq'] = df['Frequency'].cumsum()

# Step 5: Relative cumulative frequency
n = df['Frequency'].sum()
df['Relative_CF'] = df['Cumulative_Freq'] / n
df['Cumulative_Pct'] = df['Relative_CF'] * 100

print(df.to_string(index=False))

# Step 6: Plot the ogive (starting point at lower boundary = 10)
x = [bins[0]] + list(df['Upper_Boundary'])
y = [0] + list(df['Cumulative_Freq'])

plt.figure(figsize=(8, 5))
plt.plot(x, y, marker='o', color='steelblue', linewidth=2, label='Less-than ogive')
plt.axhline(y=n/2, color='red', linestyle='--', label=f'Median line (N/2 = {n//2})')
plt.xlabel('Test Score')
plt.ylabel('Cumulative Frequency')
plt.title('Cumulative Frequency Ogive')
plt.legend()
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

R

R
# Raw data
scores <- c(15, 23, 18, 42, 55, 38, 29, 47, 61, 35,
            28, 44, 52, 37, 19, 48, 63, 31, 26, 41)

# Define class boundaries
breaks <- c(10, 20, 30, 40, 50, 60, 70)

# Frequency table
cut_scores <- cut(scores, breaks=breaks, right=TRUE, include.lowest=TRUE)
freq_table  <- table(cut_scores)

# Cumulative frequency (use cumsum)
cum_freq <- cumsum(freq_table)

# Relative cumulative frequency
n <- sum(freq_table)
rel_cum <- cum_freq / n

# Assemble display data frame
df <- data.frame(
  Class         = names(freq_table),
  Frequency     = as.vector(freq_table),
  CumFreq       = as.vector(cum_freq),
  RelativeCF    = round(as.vector(rel_cum), 3),
  CumPct        = round(as.vector(rel_cum) * 100, 1)
)
print(df)

# Plot ogive
x <- c(breaks[1], breaks[-1])
y <- c(0, as.vector(cum_freq))

plot(x, y, type="l", lwd=2, col="steelblue",
     xlab="Test Score", ylab="Cumulative Frequency",
     main="Cumulative Frequency Ogive")
points(x, y, pch=16, col="steelblue")
abline(h=n/2, lty=2, col="red")
grid()

Excel

TaskFormula / Method
Cumulative frequency from raw data=SUM($B$2:B2) in column C, drag down
Cumulative frequency with FREQUENCY=FREQUENCY(data_range, bins_range) then cumulative SUM
Relative cumulative frequency=C2/SUM($B$2:$B$6)
Cumulative percentage=C2/SUM($B$2:$B$6)*100
Ogive (line chart)Insert → Charts → Line → plot CF column vs. upper boundaries

Key step for the running SUM formula: in cell C2 type =B2. In C3 type =C2+B3. Drag C3 down through the rest of the frequency column. Each cell adds the class frequency to the previous total, giving you the cumulative frequency column automatically.

Pareto Chart: Cumulative Frequency in Business

A Pareto chart puts cumulative frequency to work in quality management and business analysis. It overlays a bar chart of individual frequencies (sorted largest to smallest) with a line chart of the cumulative frequency, making the 80/20 rule visible at a glance.

The rule, named after economist Vilfredo Pareto, states that roughly 80% of effects come from 20% of causes. In a factory tracking defects, a small number of defect types typically account for most of the total defect count. The cumulative frequency line makes it immediate which categories to address first.

Business Example

Factory Defect Analysis (N = 100 defects)

Defect TypeCountCumulative CountCumulative %
Scratches454545%
Dents307575%
Misalignments159090%
Color errors89898%
Other2100100%

The Pareto chart tells management that fixing scratches and dents alone would eliminate 75% of all defects — before touching the remaining three categories. That is cumulative frequency making a resource allocation decision.

For an interactive version, the Pareto chart maker lets you enter your own data and see both the bar chart and the cumulative percentage line together.

Common Cumulative Frequency Mistakes

Exam mark schemes repeatedly cite these eight errors. Each one has a specific correct procedure that makes the mistake impossible once you know to watch for it.

1
Plotting class midpoints instead of upper class boundaries
❌ WrongPlot CF against midpoints: 15, 25, 35, 45, 55
✅ CorrectPlot CF against upper boundaries: 20, 30, 40, 50, 60
2
Forgetting the starting point of the ogive
❌ WrongBegin plotting from the first data point, e.g. (20, 4)
✅ CorrectAlways add (lower boundary of first class, 0) as your first point, e.g. (10, 0)
3
Reading quartile positions from the wrong axis
❌ WrongFind N/4 = 12.5 on the x-axis (data axis) and read CF from there
✅ CorrectLocate N/4 = 12.5 on the y-axis, draw a horizontal line to the curve, then drop to the x-axis
4
Drawing straight-line segments instead of a smooth curve
❌ PolygonConnecting points with straight lines (creates a cumulative frequency polygon, which some syllabuses accept)
✅ OgiveDrawing a smooth, continuous S-shaped curve through the plotted points — check your syllabus for which is required
5
Confusing a single class frequency with cumulative frequency
❌ Wrong"The cumulative frequency for 30–40 is 14." (This is just the class frequency.)
✅ Correct"The cumulative frequency up to 40 is 26." (4 + 8 + 14 = 26 observations at or below 40.)
6
Final cumulative frequency does not equal N
❌ SignalLast CF entry ≠ N means there is an arithmetic error somewhere in the running total
✅ FixWork back row by row and check each addition. The row where the total diverges from the correct value is where the error occurred.
7
Dividing relative frequency by the previous cumulative frequency
❌ WrongRelative CF = CF ÷ (previous CF)
✅ CorrectRelative CF = CF ÷ N. Always divide by the total number of observations — never by a running partial total.
8
Applying cumulative frequency to nominal data
❌ WrongMaking a cumulative frequency table for categories like eye colour, blood type, or political party
✅ CorrectCumulative frequency requires ordered data. Nominal categories have no natural order, so a "running total" has no interpretable meaning.

Real-World Applications of Cumulative Frequency

🎓

Education — Exam Analysis

Grade boundaries, pass rates, and median scores all come directly from cumulative frequency tables. "What percentage of students passed?" requires knowing the CF at the pass mark.

📊

Business — Pareto Analysis

The 80/20 rule lives in cumulative frequency. Pareto charts show which 20% of issues cause 80% of problems, guiding where to spend limited resources first.

💹

Finance — Risk Analysis

Value at Risk (VaR) calculations use cumulative frequency distributions of asset returns to answer: "What percentage of days produced a loss below this threshold?"

🌊

Engineering — Exceedance Frequency

In hydrology, greater-than cumulative frequency becomes "exceedance frequency" — how often a river level exceeds a critical value. This feeds flood risk design standards.

🏥

Healthcare — Growth Charts

Children's height and weight percentile charts are built from cumulative frequency distributions. The 95th percentile is the value below which 95% of the reference population falls.

⚙️

Quality Control — Six Sigma

Cumulative frequency ogives show what proportion of manufactured products fall within specification limits, feeding directly into process capability (Cpk) calculations.

Practice Problems with Worked Solutions

Problem 1 — Basic

Build the cumulative frequency table for goals scored per match in a football season.

GoalsFrequency
05
18
210
36
43
52
Solution

CF column: 5, 13, 23, 29, 32, 34. Since N = 34 and the final CF = 34, the table is correct. Reading: 23 matches had 2 goals or fewer. 29 matches had 3 goals or fewer.

Problem 2 — Intermediate

Ages of 60 library visitors are grouped as shown. Complete the CF column, then answer: (a) How many visitors were under 40? (b) What percentage were 50 or older?

Age GroupFrequencyCumulative Frequency
20–3088
30–401422
40–5020?
50–6012?
60–706?
Solution

CF column completes as: 8, 22, 42, 54, 60. (a) Visitors under 40: CF at upper boundary 40 = 22. (b) Visitors 50 or older: 60 − 54 = 6 in the 60–70 group, plus 12 in the 50–60 group = 18. That is 18/60 = 30%.

Problem 3 — Graph Reading

From the 50-student test score example used throughout this page, estimate from the ogive: (a) the median, (b) Q₁, (c) Q₃, (d) the IQR, (e) the 90th percentile.

Solution

(a) Median: locate N/2 = 25 on y-axis → ogive hits roughly at x ≈ 37. (b) Q₁: locate N/4 = 12.5 on y-axis → x ≈ 29. (c) Q₃: locate 3N/4 = 37.5 on y-axis → x ≈ 46. (d) IQR = Q₃ − Q₁ ≈ 46 − 29 = 17. (e) 90th percentile: locate (90/100) × 50 = 45 on y-axis → x ≈ 54.

Problem 4 — Both Ogive Types

Using the 40-student marks data from the Types section, construct both the less-than and greater-than CF tables. What is the x-coordinate where both ogives intersect?

Solution

Less-than CF: 3, 10, 22, 33, 40. Greater-than CF: 40, 37, 30, 18, 7. Plot both curves. They cross where both equal N/2 = 20. Reading from the less-than ogive, CF = 20 corresponds to approximately x = 58 marks — which is the estimated median. You can verify: the median class is 40–60 (CF crosses 20 in this interval). Using the interpolation formula: Median = 40 + ((20 − 10) / 12) × 20 ≈ 56.7.

Problem 5 — Relative CF

Extend the 50-student table with columns for relative frequency, cumulative frequency, and relative cumulative frequency. What percentage of students scored between 30 and 50?

Solution

Relative CF at 50 (upper boundary of 40–50 class) = 39/50 = 0.78. Relative CF at 30 (upper boundary of 20–30 class) = 12/50 = 0.24. Students in the 30–50 range = CF(50) − CF(30) = 39 − 12 = 27, which is 27/50 = 54% of students. (Note: this equals the sum of the 30–40 frequency 14 and 40–50 frequency 13 = 27, confirming the result.)

Frequently Asked Questions

What is cumulative frequency?

Cumulative frequency is the running total of frequencies in a frequency distribution. Each entry sums all frequencies from the first class up to and including the current class interval. It answers the question "how many observations fall at or below this value?" and its final entry always equals the total number of observations N.

What is the formula for cumulative frequency?

CFk = f₁ + f₂ + f₃ + ··· + fk, where CFk is the cumulative frequency up to the kth class and fi is the frequency of the ith class. In practice: the first row's CF equals its frequency; every subsequent row's CF equals the previous CF plus the current class frequency.

What is the difference between frequency and cumulative frequency?

Frequency counts observations within a single class interval. Cumulative frequency counts all observations up to and including that class — it is the running total. The last class frequency tells you how many fell in that one band; the last cumulative frequency always equals N, the full dataset size.

What are the two types of cumulative frequency?

Less-than cumulative frequency adds frequencies from the lowest class upward, so each entry counts observations at or below the upper boundary of that class. Greater-than cumulative frequency works from the highest class downward, so each entry counts observations at or above the lower boundary. Both start at the same data; the direction of accumulation differs.

What is a cumulative frequency graph called?

A cumulative frequency graph is called an ogive (pronounced OH-jive). When the plotted points are connected with a smooth curve, it forms an S-shape — a sigmoid. When straight-line segments connect the points instead, the result is a cumulative frequency polygon, which some curricula accept in place of a smooth curve.

Why do you plot at the upper class boundary and not the midpoint?

Because the cumulative frequency for a class represents all observations up to the end of that class — and the end is the upper boundary, not the midpoint. Plotting against the midpoint would imply the running total is reached halfway through the class, which overstates the cumulative count for the lower half of the class and understates it for the upper half.

How do you find the median from a cumulative frequency graph?

Calculate N/2. Locate that value on the y-axis (cumulative frequency axis). Draw a horizontal line from that point to where it meets the ogive curve. From that intersection, drop a vertical line to the x-axis. The x-value you read off is the estimated median.

Where do the less-than and greater-than ogives intersect?

They always intersect at the median. At that point, exactly half the data falls below the value — so the less-than CF equals N/2 — and exactly half falls above — so the greater-than CF also equals N/2. The two curves meet at one x-value where both pass through N/2, and that x-value is the median.

How do you find quartiles from a cumulative frequency graph?

For Q₁: locate N/4 on the y-axis, project horizontally to the curve, drop to the x-axis. For Q₃: locate 3N/4 on the y-axis and repeat. The IQR = Q₃ − Q₁. The critical rule is always to start from the y-axis, not the x-axis.

What is relative cumulative frequency?

Relative cumulative frequency = CFk / N. It expresses the running total as a proportion of the total number of observations, ranging from 0 to 1.0. Multiplied by 100 it gives the cumulative percentage. It is equivalent to the empirical cumulative distribution function (ECDF) of the dataset.

Can you use cumulative frequency for nominal data?

No. Cumulative frequency only makes sense for ordered data — ordinal, interval, or ratio scales. With nominal categories like eye colour or political party, the "order" you apply is arbitrary. Changing the order changes the cumulative frequencies, producing different tables from identical data. The running total has no interpretable meaning when the ordering is arbitrary.

How do you calculate cumulative frequency in Python?

Use numpy.histogram() to bin the raw data, then apply pandas' .cumsum() to the frequency array. The code section above provides a complete working example including the ogive plot.

How do you calculate cumulative frequency in Excel?

In the row alongside your first frequency, type =B2. In the next row type =C2+B3 and drag that formula down through all frequency rows. Each cell adds the current class frequency to the previous running total, giving you the CF column. To plot the ogive, select the upper boundaries and the CF column, then insert a line chart.

What is the most common mistake when drawing an ogive?

Plotting cumulative frequency against the class midpoint instead of the upper class boundary. This shifts every plotted point to the left, making the ogive look shallower than it should be and producing incorrect readings for the median and quartiles. Always use the upper boundary on the x-axis.

Why does the last cumulative frequency always equal N?

Because cumulative frequency counts all observations that fall at or below each class, and the final class by definition contains or is above all observations. Once you have included every class, you have counted every observation exactly once. Since total observations = N, the final cumulative total must equal N. If it does not, an arithmetic error exists in the table.

Key Takeaways

Cumulative frequency is the running total of frequencies. Each entry answers "how many fall at or below this class?"

The formula: CFk = f₁ + f₂ + ··· + fk. The final entry must always equal N — use this as your check.

Two types exist: less-than CF (adds upward from lowest class) and greater-than CF (adds downward from highest class).

The less-than and greater-than ogives intersect at exactly the median — a graphical median-finding method that needs no arithmetic.

Always plot CF against the upper class boundary on the x-axis. Plotting against the midpoint is the single most common exam error.

The ogive starts at (lower boundary of first class, 0) — never at the first data point.

Read median at y = N/2, quartiles at N/4 and 3N/4, percentiles at (P/100) × N — always starting from the y-axis, not the x-axis.

Relative CF = CF / N. It ranges from 0 to 1 and is equivalent to the empirical CDF of the dataset.

In Python, use numpy.histogram() + .cumsum(). In R, use cumsum(table()). In Excel, use a running SUM formula dragged down the CF column.

Cumulative frequency only works for ordered data (ordinal, interval, ratio). It has no valid meaning applied to nominal categories.