BY: Statistics Fundamentals Team
Reviewed By: Minsa A (Senior Statistics Editor)

Frequency Distribution Table Maker

Paste a list of numbers and this maker sorts them into class intervals, counts how many values land in each one, and adds relative, cumulative, and percentage frequency columns. Pick the classes automatically with Sturges' Rule or set your own width. A histogram preview is drawn from the table, and you can export the result to CSV.

Frequency Distribution Table Maker

Class width w = (max − min) / k  ·  k = 1 + 3.322·log₁₀(n)
Mode Count each distinct value (best for discrete data)

What a frequency distribution table does

A frequency distribution table groups raw data into classes and records how many values fall into each class. Instead of reading a long list of numbers one by one, you see the shape of the data at a glance: where values cluster, where they thin out, and which range holds the most observations. This tool was built by the team at statistics fundamentals to handle the arithmetic for you, but the page also walks through every step so you can reproduce the table by hand for a class or an exam.

A finished table usually carries four kinds of numbers per class. The frequency (f) is the plain count. The relative frequency (f/n) is that count as a proportion of the whole sample, which makes two datasets of different sizes comparable. The cumulative frequency is a running total that answers "how many values are at or below this point." The percentage frequency is simply the relative frequency times 100. The maker can show or hide any of these columns with the checkboxes above the table.

Grouped vs. ungrouped data

Ungrouped data lists every distinct value with its own count. That works well for a survey with answers from 1 to 5, or a die rolled fifty times, where only a handful of values are possible. Once a dataset spreads across dozens of distinct numbers, an ungrouped tally becomes as hard to read as the raw list. Grouping fixes that by collecting values into equal ranges called class intervals. A common rule of thumb is to switch to grouped intervals once the sample passes about 30 values, though the right choice depends on how many distinct numbers appear, not just the sample size.

How the maker chooses class intervals

By default the tool applies Sturges' Rule to pick the number of classes, then derives the width from the data range. You can override either step. Herbert Sturges proposed the rule in 1926, and it remains a sensible starting point for roughly bell-shaped data. For very large or heavily skewed samples, the Rice Rule (k = 2 · n^(1/3)) often suggests more classes, so treat any formula as a first draft you can adjust.

Number of classes (Sturges' Rule): k = 1 + 3.322 · log₁₀(n). For n = 30 this gives 5.9, which rounds up to 6 classes.
Class width: w = (maximum − minimum) / k, rounded up to a convenient number. Rounding up guarantees every value fits inside the classes.
Class limits: start the first class at the minimum (or a rounder number just below it), then add the width repeatedly to mark each interval. The maker treats each interval as left-closed and right-open — written [a, b) — so a value exactly on a boundary lands in the upper class. The final class is closed on both ends so the maximum is always counted.
Class boundaries: for whole-number data, the true boundaries sit half a unit below the lower limit and half a unit above the upper limit. An interval shown as 10–19 has boundaries of 9.5 to 19.5, which closes the gap between classes when you draw a histogram.

Build a frequency table by hand: eight steps

1. Sort the data from lowest to highest. Sorting is not strictly required for the counts, but it makes tallying far less error-prone.
2. Find the range. Subtract the smallest value from the largest: R = max − min.
3. Decide on a class count (k). Use Sturges' Rule, or pick a round number between 5 and 15 that suits your data.
4. Compute the class width (w). Divide the range by k and round up. A width of 4.2 usually becomes 5 for cleaner intervals.
5. Set the class limits. Begin at the minimum and add the width to build each interval until you cover the maximum.
6. Tally the frequencies (f). Pass through the data once and mark which interval each value belongs to. The counts must add up to n.
7. Add relative and percentage columns. Divide each count by n for the relative frequency, then multiply by 100 for the percentage.
8. Accumulate the cumulative column. Carry a running total down the rows; the last entry equals n.

Worked example: 30 exam scores

Take 30 test scores ranging from 68 to 92. The range is 24. Sturges' Rule gives k = 1 + 3.322 · log₁₀(30) ≈ 5.9, so we use 6 classes. The width is 24 / 6 = 4. Starting at 68 and adding 4 each time produces the table below. The 76–79 class holds the most students, so it is the modal class.

Class intervalFrequency (f)Relative (f/n)PercentageCumulative
68 – 7140.13313.3%4
72 – 7550.16716.7%9
76 – 7960.20020.0%15
80 – 8350.16716.7%20
84 – 8750.16716.7%25
88 – 9250.16716.7%30

Reading the cumulative column, 15 of 30 students scored below 80, which puts the median in the 76–79 class. The top class is written 88–92 rather than 88–91 so the maximum score of 92 is included. To see this dataset rendered live, press Load Example on the tool and the histogram preview will appear underneath the table.

From the table to a chart

A frequency table is the data behind three of the most common statistical charts, and the maker draws the first one for you.

Histogram: plot the class boundaries along the x-axis and the frequencies as bar heights. Because the classes touch, the bars touch too, which is what separates a histogram from a bar chart. Our Histogram Maker turns the same data into a downloadable graph.
Frequency polygon: mark a point at the top-centre of each class (the midpoint) and join the points with straight lines. It shows the shape of the distribution as a single curve.
Ogive: plot the upper boundary of each class against its cumulative frequency. The resulting S-shaped line is handy for reading percentiles and the median straight off the graph.

Mistakes that quietly break a table

Overlapping classes. Writing 10–20, 20–30 leaves the value 20 with two homes. Use 10–19, 20–29, or rely on the left-closed convention the maker follows.
Unequal widths. Mixing a width of 5 with a width of 10 distorts a histogram, because the eye reads bar area, not just height. Keep the width constant unless you have a strong reason not to.
Too many empty classes. Gaps full of zeros usually mean the width is too small. Reduce the class count and the picture sharpens.
Counts that miss n. Always check that the frequencies sum to the sample size. If they do not, a value slipped through a boundary.

Entity and formula reference

TermFormulaWhat it tells you
Frequency (f)count per classHow many values fall in an interval; the tallest count marks the modal class.
Relative frequencyf / nThe share of the sample in a class, on a 0-to-1 scale for fair comparison across datasets.
Percentage frequency(f / n) × 100The same proportion as a percentage, ready for a report or dashboard.
Cumulative frequencyrunning ΣfHow many values sit at or below a class boundary; the basis for percentiles and the ogive.
Class width (w)(max − min) / kThe span of each interval, kept equal across classes.
Class midpoint(lower + upper) / 2The representative value of a class, used for the grouped mean and the frequency polygon.

Related topics

Frequently asked questions

It is a summary that groups raw data into classes and records how many values fall in each class. Most tables also include relative frequency (the proportion of the total), cumulative frequency (a running total), and percentage frequency. The table makes patterns such as clustering and skew visible without reading every individual value.

Sort the values, find the range (max minus min), choose a class count, divide the range by that count to get the width, and build equal non-overlapping intervals. Then tally how many values land in each interval and, if needed, add relative, cumulative, and percentage columns. The maker on this page does all of that the moment you paste data and press Build Table.

Between 5 and 15 classes suits most datasets. Sturges' Rule, k = 1 + 3.322 · log₁₀(n), gives a starting point based on the sample size n. For 30 values it rounds to 6 classes. If the data is large or skewed, the Rice Rule (k = 2 · n^(1/3)) often points to a few more. Use the "Set number of classes" option to test alternatives.

Relative frequency divides a class count by the total, giving the share of the sample in that class (f/n). Cumulative frequency adds each class count to a running total as you move down the table, so it reports how many values sit at or below a given boundary. Relative frequency answers "how big is this class?"; cumulative frequency answers "how much of the data is below here?"

Plot the class intervals on the horizontal axis and the frequencies as bar heights, with the bars touching because the classes are continuous. This maker draws that histogram automatically beneath the table, and you can download it as an SVG. For more control over colors and labels, send the same data to the Histogram Maker.

Yes. For data with only a few distinct values, such as ratings from 1 to 5, switch to the Ungrouped Tally tab. It counts each distinct value separately and reports the mode, which is clearer than forcing small discrete data into class intervals.

Sources & further reading:

  • Sturges, H. A. (1926). "The Choice of a Class Interval." Journal of the American Statistical Association, 21(153), 65–66.
  • NIST/SEMATECH e-Handbook of Statistical Methods — Histogram & frequency methods
  • OpenStax, Rice University — Introductory Statistics 2e (frequency, frequency tables, and levels of measurement)