ForHosting KIT · Developer Utilities

Cumulative Frequency Calculator for Class Counts

The cumulative frequency calculator converts an ordered list of class frequencies into a running total for every class.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

Enter the count observed in each class, keeping the classes in the order in which they should be accumulated. The result shows the original frequencies, the cumulative frequency at each position, and the final total frequency. It is useful for checking frequency tables, preparing cumulative charts, locating percentile positions, and verifying statistical work without repeatedly adding earlier rows by hand.

Enter class counts in the intended order

Start with the frequency column from an already ordered distribution. Each value should be the number of observations in one class, and its position must match the class order in your table. For example, counts for intervals 0–9, 10–19, and 20–29 must appear in that same sequence. The calculator does not sort classes because it receives counts rather than class boundaries; changing the order changes the meaning of every running total. Zero is accepted when a class contains no observations, while negative values are rejected because a frequency cannot represent fewer than zero observations. Counts must be finite integers, so decimals, numeric text, missing entries, and special numeric values are not silently rounded or converted. An empty list is also rejected because there is no class for which a cumulative frequency could be reported. These checks make the output suitable for validating a frequency-table workflow instead of concealing malformed source data behind plausible totals. The list may contain up to 100,000 class counts, which supports large tables while keeping browser and API execution bounded.

Understand the running calculation

Cumulative frequency is calculated from left to right. The first cumulative value equals the first class count. Each later cumulative value equals the preceding cumulative value plus the current class count. If the frequencies are 4, 7, 3, and 6, the running results are 4, 11, 14, and 20. The final value therefore equals the total number of observations represented by all classes. The response preserves the submitted frequencies, returns the cumulative frequencies in a parallel array, and names the final sum separately as the total frequency. Matching indexes make the relationship explicit: the cumulative value at index two includes the frequencies at indexes zero, one, and two. This is the conventional less-than cumulative frequency construction when the source classes are ordered from low to high. If the classes are arranged in another meaningful order, the arithmetic still follows the supplied sequence. No percentages, interpolation, class boundaries, or inferred labels are introduced, so the response remains a transparent calculation from the exact counts supplied.

Use the result in tables, charts, and checks

Place each returned cumulative value beside its corresponding class to complete a cumulative frequency table. Those values can then provide the vertical coordinates for an ogive when paired with the appropriate upper class boundaries from your original data. They also help locate median, quartile, and percentile positions: determine the target observation rank, then find the first cumulative value that reaches or exceeds it. Because this capability receives only counts, it identifies the relevant class position but does not interpolate a value inside a class interval. The final total frequency is useful as a control check against the sample size recorded elsewhere. In an automated pipeline, compare that total with the expected row count and stop processing if the figures differ. The API costs $0.002 per request, while the browser version can perform the same deterministic calculation locally. Both paths use the same pure algorithm, make no network request to a third party, preserve input order, and return identical data for identical valid input. This consistency makes the result easy to reproduce in lessons, reports, spreadsheets, and quality-control scripts.

Complete a grouped frequency table

Turn the frequency column into running totals that align with the table's existing class order.

Prepare data for an ogive

Pair the cumulative totals with upper class boundaries to create cumulative frequency chart coordinates.

Check a statistical data pipeline

Compare the final cumulative frequency with an expected sample size before downstream analysis begins.

What is cumulative frequency?

It is the running total of frequencies through a given class in an ordered distribution.

Does the order of the counts matter?

Yes. Each result includes the current count and every count before it, so counts must follow the intended class order.

Can a class have a frequency of zero?

Yes. Zero is a valid count and leaves the cumulative total unchanged at that position.

Why are negative or decimal counts rejected?

Class frequencies represent numbers of observations, so this calculator requires non-negative whole numbers.

Does this calculator produce cumulative percentages?

No. It returns cumulative counts and the total frequency; percentages can be obtained by dividing each cumulative count by the total.

What does the API request cost?

The API price is $0.002 per request. The calculation is also available in the browser.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/stat/cumulative-frequency

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/stat/cumulative-frequency \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"counts":[4,7,3,6]}'
{
  "counts": [
    4,
    7,
    3,
    6
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "stat.cumulative_frequency",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_items100000
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →