Empirical bachelor and master theses stand or fall on their data. If you collect your own survey data, it’s easy: the raw responses go in the appendix, the text says “own survey”. But the moment you pull data from a national statistics office, Eurostat, a Zenodo dataset, Kaggle, or the OECD data portal, things get tricky. “A number from the web” is not a source — it’s a claim. This guide walks through how to cite datasets in a way examiners can trace, verify, and if necessary reproduce.
Why datasets need their own citation format
A journal article is a static document: once published, nothing changes. A dataset, on the other hand, is a moving target. National statistics offices update quarterly. Eurostat pushes revisions. A Zenodo record has versions v1.0, v1.1, v2.0. A Kaggle dataset can be deleted at any time.
Your reference therefore has to answer three questions:
- Which dataset did you use (title, publisher)?
- Which version (date, version number, DOI)?
- Where can it be found again (persistent link — DOI where possible, otherwise URL plus access date)?
If any of those three is missing, your figure is not formally verifiable. And that alone is grounds to strike an empirical result.
What counts as a “dataset”
Anything containing structured numbers or observations that is not a running-text publication:
- Official statistics: Destatis (Germany), the Swiss Federal Statistical Office (BFS), Statistics Austria, Eurostat, OECD, World Bank, IMF, US Census Bureau, ONS (UK).
- Scientific repositories: Zenodo, Figshare, Dryad, OSF, GESIS, ICPSR, Harvard Dataverse.
- Community platforms: Kaggle, UCI Machine Learning Repository, Hugging Face Datasets, data.gov, govdata.de, opendata.swiss.
- Raw data attached to a study: supplementary material with its own DOI.
- Code repositories with data: GitHub releases containing CSV/ZIP files.
A PDF report that prints a table is not a dataset. That’s a publication and gets cited like a report. The dataset is the machine-readable file behind it — CSV, XLSX, JSON, SPSS, RData.
The required fields for a dataset reference
Regardless of style, these always belong in the entry.
| Field | Example |
|---|---|
| Author / publisher | Federal Statistical Office of Germany |
| Publication year | 2024 |
| Dataset title | Population by age group (extrapolation) |
| Version | as of 31 Dec 2023 / v2.1 |
| Type | [Data set] |
| Hosting repository | Zenodo / GESIS / GENESIS database |
| Persistent link | DOI or URL |
If you accessed a specific subset — for example “GENESIS table 12411-0005” — that identifier belongs in the reference too.
APA 7 — base pattern and examples
APA 7 has a dedicated “Data set” pattern. The base form:
Author or institution. (Year). Dataset title (Version) [Data set]. Publisher. https://doi.org/…
National statistics (Destatis)
Federal Statistical Office of Germany. (2024). Population: Germany, reference date, age in years (Table 12411-0005) [Data set]. GENESIS-Online. https://www-genesis.destatis.de/genesis/online?operation=table&code=12411-0005
A common trap with GENESIS-style databases: the link you see in the browser is often a session URL that expires after a few minutes. Use the permanent table URL (“Export result → Citation”) instead — Destatis and most peers offer it one click away.
Eurostat
Eurostat. (2024). Population on 1 January by age and sex (demo_pjan) [Data set]. European Commission. https://ec.europa.eu/eurostat/databrowser/product/view/demo_pjan
The dataset code in parentheses (here demo_pjan) is Eurostat’s stable identifier — include it alongside the title, because Eurostat occasionally renames datasets while keeping the code.
Zenodo
Mueller, J., & Schmidt, L. (2023). Survey on remote work adoption in German SMEs, 2022 (v1.2) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.7654321
Zenodo mints a separate DOI for each version. Always use the version DOI, not the “concept DOI” that points to the latest version — otherwise your analysis silently refers to different data a year from now.
Kaggle
Kim, A. (2022). Global YouTube statistics 2023 [Data set]. Kaggle. Retrieved 20 July 2026, from https://www.kaggle.com/datasets/nelgiriyewithana/global-youtube-statistics-2023
Kaggle does not mint DOIs. Use the URL, and because Kaggle datasets can be deleted, add an access date. Keep a local copy so you can still show the raw data at your defence.
World Bank / OECD
World Bank. (2024). World Development Indicators (Indicator: NY.GDP.PCAP.KD) [Data set]. World Bank Open Data. https://data.worldbank.org/indicator/NY.GDP.PCAP.KD
The indicator code replaces the table number and is the key examiners use to relocate the exact series you looked at.
Harvard style
Harvard varies across universities, but the pattern is stable:
Federal Statistical Office of Germany (2024) Population: Germany, reference date, age in years, Table 12411-0005 [data set]. Wiesbaden: Destatis. Available at: https://www-genesis.destatis.de/… (Accessed: 20 July 2026).
Two things stand out compared to APA: Harvard guides usually want a place of publication (the institution’s seat, for organisations) and an explicit access date even when a DOI exists.
Chicago (author–date)
Federal Statistical Office of Germany. 2024. “Population: Germany, Reference Date, Age in Years.” Table 12411-0005. Data set. GENESIS-Online. https://www-genesis.destatis.de/…
For Chicago notes-bibliography (the footnote variant) the footnote looks similar, ends with a comma instead of a period, and is numbered. History and law departments usually expect notes-bibliography — check your handbook before you commit.
DOI before URL — the order matters
If a DOI exists, always use it. It’s the only identifier that keeps working when a repository moves, gets renamed, or is folded into a larger platform. Fall back to a URL only when no DOI has been minted (Kaggle, GitHub releases, many national statistics portals), and then add an access date.
A common mistake: the “Cite” button on a repository page sometimes returns the URL instead of the DOI. On Zenodo, Dryad, and Figshare the DOI is printed right next to the dataset title as 10.xxxx/yyyy — copy that one.
Version, subset, extract — put it in the reference
As soon as you use less than the whole dataset, that has to be traceable. Three clean ways to do it:
- Version in the title or a parenthetical: “(v2.1, as of 31 Dec 2023)”.
- Subset in the citation: “(Federal Statistical Office of Germany, 2024, Table 12411-0005, age group 20–29)”.
- Methods section with filter criteria: “From dataset X we kept observations with
country == 'DE' & year >= 2015(n = 1,842).”
The third option is almost always necessary for larger datasets. The reference points to the dataset; the methods section describes your exact analytical path. Together they make the analysis reproducible.
In-text citations
Short and unassuming, like any other source:
The share of people aged 65 and over has grown by 3.2 percentage points since 2015 (Federal Statistical Office of Germany, 2024).
If several numbers come from the same table, one reference is enough as long as you make the scope clear:
All figures in this section come from Federal Statistical Office of Germany (2024, Table 12411-0005) unless stated otherwise.
Reproducibility: what examiners actually expect
Even a clean dataset reference is not enough if the analysis itself is opaque. The three things supervisors keep asking for:
- Access date + version: so the numbers in the text match the numbers in the portal. Live portals get updated — without a date, nobody knows which snapshot you saw.
- Reproduction material: the script (R, Python, Stata) or spreadsheet used for the calculations, in the appendix or a repository. For quantitative master’s theses this is now nearly universal.
- A local copy of the raw data: not in the bibliography, but on your disk. If Kaggle deletes a dataset or Destatis retires a table, you otherwise have no proof left.
Common mistakes and how to avoid them
- “Federal Statistical Office of Germany (2024)” with no table number. Examiners can’t guess which of thousands of tables you mean. Always include the table number or indicator.
- URL only, no date. Portal URLs often stay the same while the numbers behind them change. Without an access date the reference is worthless.
- Concept DOI instead of version DOI. Sounds esoteric, but it’s the most common Zenodo/Dryad mistake — you end up implicitly citing “whatever the latest version is”.
- Dataset via a secondary source. If you take a chart from a newspaper article, the newspaper is the source, not the original dataset. Cite the newspaper — or better, go to the original.
- Missing “own calculation based on …”. As soon as you derive your own figure from a dataset (mean, growth rate, index), say so: “own calculation based on Eurostat, demo_pjan”.
Where a citation checker takes over
The formal side of a dataset reference is straightforward once you know the pattern. The second layer is content: does the number in your text actually appear in the dataset? Did you pick the right column, the right time window, the right filter? These are the number swaps and sign errors that surface in the viva.
For text-based citations, Acurio handles that content check: you upload your thesis and your sources, and we compare every claim to the original. For structured datasets, the responsibility shifts to your methods section — your analysis script should reproduce every headline figure in the text. Combine both, and your work holds up under questioning at the defence.
Citing datasets is craft in the end: author, year, title, version, type, repository, DOI or URL with a date. Get those seven fields right for every dataset in your bibliography and you’re safe — formally and factually.