A frequency distribution table organizes raw data into groups (called classes or intervals) and shows how many data points fall into each group. Building one takes about five steps: find the range of your data, decide how many classes to use, calculate the class width, tally each data point into its class, and record the final counts. The rest is optional columns like relative frequency and cumulative frequency that make interpretation easier.
What a Frequency Distribution Table Looks Like
At its simplest, a frequency distribution table has two columns: the class intervals on the left and the frequency (count) on the right. For example, if you collected resting pulse rates from 63 people, your intervals might be 60–64, 65–69, 70–74, and so on, with the number of people whose pulse fell in each range listed beside it.
Most useful tables add a few more columns. A relative frequency column shows each class’s count as a proportion of the total (frequency divided by the total number of data points). A cumulative frequency column shows a running total, so you can quickly see how many values fall at or below a given interval. A relative cumulative frequency column expresses that running total as a percentage. These extras aren’t required, but they make it much easier to spot patterns and compare groups.
Step 1: Find the Range
Subtract the smallest value in your data set from the largest. If your lowest test score is 42 and your highest is 98, the range is 56. This number drives every decision that follows, so double-check your minimum and maximum before moving on.
Step 2: Choose the Number of Classes
A good frequency distribution table typically has between 6 and 14 classes. Too few and you lose detail; too many and the table becomes as hard to read as the raw data. Two formulas can help you pick a starting point:
- Sturges’ Rule: Number of classes = 1 + 3.3 × log₁₀(n), where n is the total number of data points. For 20 data points, this gives about 5 classes. For 1,000 data points, about 11.
- Rice Rule: Number of classes = 2 × n^(1/3). For 20 data points this also gives about 5, but for 1,000 data points it suggests 20 classes, nearly double the Sturges result.
For small data sets the two formulas agree. For large ones, Sturges tends to undercount and Rice tends to overcount, so splitting the difference is a reasonable approach. With 1,000 data points, for instance, 14 or 15 classes is a sensible middle ground. These formulas are starting points, not laws. Round to a whole number and adjust if the resulting table looks too cramped or too sparse.
Step 3: Calculate the Class Width
Divide the range by the number of classes you chose, then round up to a convenient number. If your range is 56 and you want 7 classes, that’s 56 ÷ 7 = 8, so each class spans 8 units. Always round up rather than down. You need the total span of all your classes (number of classes × class width) to be equal to or greater than the range, so that every data point has a home.
Keep all class widths equal. Unequal widths distort visual comparisons and should only be used when there are large gaps in the data with no observations. Also avoid open-ended classes like “less than 10” or “greater than 100” since they make calculations like the mean or midpoint impossible.
Step 4: Set the Class Limits and Boundaries
Start your first class at or just below the minimum value in your data. Each class has a lower limit and an upper limit. If your first class is 40–47, the next is 48–55, and so on. The key rule: classes must not overlap. Every data point should fall into exactly one class.
There are two common conventions for handling the edges. In the inclusive method, both the lower and upper limits belong to that class (40–47 includes 40 and 47). In the exclusive method, the upper limit is excluded and belongs to the next class (40–48 means 40 is included but 48 goes in the next class). Either works as long as you’re consistent.
For continuous data like height or temperature, you may also need class boundaries to eliminate gaps between intervals. To find them, subtract 0.5 from the lower class limit and add 0.5 to the upper class limit. So a class of 40–47 has boundaries of 39.5–47.5. This ensures there are no cracks where a measurement could fall between two classes.
Finding the Class Midpoint
If you need to calculate an estimated mean or plot a frequency polygon, you’ll need the midpoint of each class. The formula is straightforward: add the lower limit and the upper limit, then divide by 2. For the class 40–47, the midpoint is (40 + 47) ÷ 2 = 43.5.
Step 5: Tally and Count
Go through your raw data one value at a time. For each value, make a tally mark next to the class it belongs to. Tallying in groups of five (four vertical marks crossed by a diagonal fifth) makes counting faster and reduces errors. Once you’ve placed every data point, count the tally marks in each class and write the total in the frequency column.
A quick check: the sum of all your frequencies should equal the total number of data points. If it doesn’t, a value was skipped or double-counted.
Adding Relative and Cumulative Frequencies
Once you have the basic frequency column, two additional columns take seconds to calculate and add real analytical value.
Relative frequency tells you the proportion of data in each class. Divide each class’s frequency by the total number of data points. If 12 out of 63 people had a pulse rate in the 70–74 range, the relative frequency is 12 ÷ 63 = 0.19, or 19%. This lets you compare distributions across data sets of different sizes.
Cumulative frequency is a running total. The first class’s cumulative frequency equals its own frequency. For each class after that, add the current class’s frequency to the cumulative total of the class above it. If your first three classes have frequencies of 5, 8, and 12, the cumulative frequencies are 5, 13, and 25. The last cumulative frequency should equal the total number of data points. You can also express cumulative frequency as a percentage of the total, which is useful for quickly answering questions like “what percentage of values fall below X?”
Discrete vs. Continuous Data
The process above works for continuous data (measurements that can take any value, like weight, time, or temperature). For discrete data, where values are countable and separate, the approach is simpler. If you’re tallying how many students scored 7, 8, 9, or 10 on a quiz, you don’t need class intervals at all. Each distinct value gets its own row, and you count how often it appears.
Grouping discrete data into intervals only makes sense when the range of possible values is large. If your discrete data spans from 1 to 500, treating each value as its own row would create an unreadable table. In that case, group the values into intervals just as you would with continuous data.
A Worked Example
Suppose you have 30 exam scores: 52, 55, 58, 60, 61, 63, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 84, 85, 87, 88, 90, 92, 95, 98.
The minimum is 52 and the maximum is 98, so the range is 46. Sturges’ Rule for 30 data points gives about 6 classes (1 + 3.3 × log₁₀(30) ≈ 5.9). Using 6 classes, the class width is 46 ÷ 6 = 7.67, which you round up to 8. Starting the first class at 52 gives you intervals of 52–59, 60–67, 68–75, 76–83, 84–91, and 92–99.
Tallying each score into its interval produces frequencies of 3, 5, 7, 6, 5, and 4. Those add up to 30, confirming every score is accounted for. From here, you can divide each frequency by 30 for relative frequency, or build a running total for cumulative frequency.
Using Your Table for Visualization
A well-built frequency distribution table is the foundation for several common charts. A histogram uses the class intervals as bars along the horizontal axis and the frequencies as bar heights. Because the intervals are equal width and nonoverlapping, the bars sit side by side with no gaps. A frequency polygon connects the midpoints of each class at their frequency values with straight lines. Both visualizations require equal class widths to accurately represent the data, which is why getting the table right matters before you ever open a graphing tool.

