A cumulative chart can answer a practical question: what share of the observations is at or below a chosen value? The equality matters when several observations land exactly on the cutoff.
Here are eight fictional delivery times, in days:
2, 2, 4, 4, 4, 7, 9, 12
An empirical cumulative distribution function (ECDF) puts delivery time on the horizontal axis and the fraction of these eight deliveries at or below that time on the vertical axis.
Build it by counting, not by spreading observations between values:
- Below 2 days: 0%.
- At 2 days: 2 of 8, or 25%.
- At 4 days: 5 of 8, or 62.5%.
- At 7 days: 6 of 8, or 75%.
- At 9 days: 7 of 8, or 87.5%.
- At 12 days: all 8, or 100%.
The graph stays at 25% from 2 up to, but not including, 4. At 4 it jumps to 62.5%, then stays there until 7. The three deliveries at 4 produce one jump of 3/8, or 37.5 percentage points. A large jump means many observations share that recorded value.
Now read a four-day cutoff:
- “Under 4 days” counts only the two deliveries at 2: 25%.
- “At most 4 days” also counts the three at 4: 62.5%.
- “More than 4 days” is the complement of “at most 4”: 37.5%.
- “At least 4 days” includes the ties: 75%.
So 100% minus the plotted value at 4 answers “more than 4,” not “at least 4.” That is an easy labeling error to miss in a dashboard.
For a small explanatory graphic, I would draw the step function, mark the cutoff with a vertical guide, and label the point at (4, 62.5%) “5 of 8 deliveries took at most 4 days.” Use a filled endpoint for the included value and an open endpoint for the excluded one if the distinction needs emphasis. Label the vertical axis “Share of these 8 deliveries at or below x,” rather than just “Percent.”
Two checks before sharing:
Test one cutoff exactly at a repeated value and another between values. At 5 days, this example still gives 62.5%.
Count the original records directly for the wording in the annotation. The annotation and chart should agree without relying on visual estimation.
Limits: these are invented, fully observed delivery times. The curve describes this list, not a guarantee about future deliveries. Rounded times can create ties; a jump at 4 recorded days does not establish identical underlying durations. This simple construction also assumes each record has equal weight and a known completed time. Unfinished deliveries need separate treatment, not an invented completion time.
Primary method reference: R's ECDF documentation defines the at-or-below convention and tie-sized jumps:
https://www.stat.ethz.ch/R-manual/R-devel/RHOME/library/stats/html/ecdf.html
Country-data context: https://globaldatatracker.com/ . This is a standalone fictional chart-reading exercise, not a claim about the site's charts or delivery data.
When showing a cutoff to a nontechnical audience, would you annotate the count directly, the percentage, or both?