Publish Small Datasets With Counts, Context and Clear Limits
Turn a small dataset into a useful public table: define each row, check missing values, show denominators and document what readers can conclude.

Before publishing a small dataset, make sure a reader can answer three questions: What does each row represent? What do the numbers measure? What is missing? A short table can be easy to inspect yet still misleading if its percentages hide counts or its blanks look like zeros.
Use this workflow to turn a compact spreadsheet into a public table with enough context to interpret it. Here, “small” means a table you can inspect row by row—not a statistical sample-size threshold. If you need a dataset to download rather than a publication check, see these simple data sets for practice.
Start with a clearly defined row
This synthetic practice dataset tracks maintenance requests at three fictional sites over two months. Copy it into a plain-text file named maintenance_requests_sample.csv, then open it in a spreadsheet:
site_id,month,requests_received,completed_by_month_end
S01,2026-01,4,3
S02,2026-01,20,12
S03,2026-01,0,0
S01,2026-02,5,4
S02,2026-02,18,14
S03,2026-02,6,
The row definition is one site in one month. completed_by_month_end counts only requests received during that month and completed by its end; it excludes older backlog requests. The final blank means “not reported,” not zero.
This follows the tidy-data structure: each variable is a column, each observation is a row and each value occupies one cell. Keep titles, source notes and totals outside the data rows.
For your own file, write the row definition before cleaning. “One organisation” and “one organisation per year” require different duplicate checks.
Check every row before exporting
For this sample, the checks are concrete:
| Check | Expected result |
|---|---|
| Row count | Six data rows, excluding the header |
| Row identifier | Every site_id + month combination is unique |
| Counts | Non-negative whole numbers where reported |
| Completion constraint | Reported completions never exceed received requests |
| Missing values | One unreported completion count remains blank |
| Coverage | Three sites, each appearing in both months |
Do not remove a repeated site ID merely because it appears twice: the month is part of the identifier. For tables that will receive future releases, use a stable row key.
Keep an unchanged copy of the input and record any corrections separately. Reopen the exported file to check that headers, month values and blanks survived. These checks support fitness for purpose; they do not prove that the original measurements are accurate. The Government Data Quality Framework distinguishes completeness and validity from accuracy—whether data matches reality.
Show counts alongside percentages
If you add a completion percentage, calculate it only where requests received is greater than zero and completions are reported:
completed_by_month_end / requests_received × 100
In January, S01 completed 3 of 4 requests (75%), while S02 completed 12 of 20 (60%). Publishing only 75% and 60% hides the different denominators. One additional completion at S01 would change its percentage by 25 percentage points.
Handle the two edge cases explicitly:
- S03 in January: zero requests received, so the completion percentage is undefined—not 0%.
- S03 in February: six requests received but completions unreported, so the percentage is unavailable.
Start with the table rather than a ranking. These figures describe the recorded requests; they do not establish which site is better managed. Workload difficulty and other differences are not measured. Also, six summary rows do not mean six individual requests or six independent survey respondents.
Publish the file and its context together
As of October 2026, TablePage accepts CSV, TSV, XLSX and XLS files and generates a public dataset page with a shareable link and filterable table. Upload only information suitable for public release.
For real data about people or businesses, removing names is not enough to establish safety. Small counts can permit identification when combined with other knowledge, as the UK Government Analysis Function’s disclosure guidance explains. Do not upload sensitive records; complete the appropriate disclosure review first.
Place a short note alongside the public link or embed:
Monthly maintenance requests — synthetic example. Six site-month records covering January–February 2026. Completions refer only to requests received that month and finished by month-end. A blank completion count means not reported. Percentages are unavailable when requests received are zero or completions are missing. These fictional figures are for publication practice, not performance assessment.
For a real release, replace the synthetic label with the original source link, reuse terms, extraction date and transformations. Finally, inspect the published page: confirm all six rows, check numeric filtering and make sure the missing value has not become zero. Share the link with the explanatory note, not as an unexplained table.