Data Journalism Log Pack
Four copy-and-paste templates for UK data journalists to track sources, document cleaning steps, write a publishable methodology note, and verify reproducibility — with ONS Code of Practice and IPSO/IMPRESS guidance.
Last reviewed: Next review due:
Who this pack is for
This pack is for journalists who work with datasets — from a simple spreadsheet to a multi-source investigation. Whether you are writing a local story from council spending data or a national investigation using linked NHS and census datasets, these templates help you track provenance, document every decision, and produce the kind of publishable methodology note that satisfies editors, regulators, and readers.
The templates are aligned with the ONS Code of Practice for Statistics (code.statisticsauthority.gov.uk), IPSO Clause 1 (Accuracy), and IMPRESS Standard 1. They do not prescribe analysis tools — use whatever is right for your project: Excel, Google Sheets, Python, R, or SQL.
What’s in this pack
Four templates — fill in and file with your investigation.
Data Source Log
Records URL, licence, retrieval date, file hash, and known limitations for each dataset.
Cleaning & Transformation Log
Documents every step taken to clean or transform data, with justification and reversibility note.
Methodology Note
Plain-language note for publication alongside your story, covering sources, method, and caveats.
Reproducibility Checklist
Pre-publication check that your analysis can be independently verified by an editor or regulator.
Template 1: Data Source Log
Complete one block per dataset. Record the file hash immediately after download — it proves you are working from the original file, not a later version.
DATA SOURCE LOG Investigation title: [TITLE] Journalist: [NAME] Story URL (if published): [URL] ===== DATASET 1 ===== Dataset name: [NAME] Publisher / provider: [ORG] URL: [URL] Retrieval date: [DATE] File name / format: [FILENAME.csv / .xlsx / .json] File hash (SHA-256): [HASH — run sha256sum on the file] Licence: [e.g. Open Government Licence v3.0 / CC BY 4.0 / commercial] Licence URL: [URL] Coverage / time period: [e.g. England, January–December 2024] Data dictionary / codebook available: [Yes — URL / No] Known limitations: [e.g. Excludes [X]; uses [Y] definition of [Z]; suppressed values below 5] Notes: [Any other relevant context] ===== DATASET 2 ===== Dataset name: Publisher / provider: URL: Retrieval date: File name / format: File hash (SHA-256): Licence: Licence URL: Coverage / time period: Data dictionary available: Known limitations: Notes: [Copy block above for each additional dataset] Log completed by: [NAME] Date: [DATE] Reviewed by (editor / data editor): [NAME] Review date: [DATE]
Template 2: Cleaning & Transformation Log
Record every step that changes your data — even small ones. Include the formula or script so the step can be reproduced exactly.
DATA CLEANING AND TRANSFORMATION LOG Investigation title: [TITLE] Journalist: [NAME] Dataset(s) covered: [LIST DATASET NAMES FROM SOURCE LOG] Analysis tool used: [e.g. Excel / Google Sheets / Python (pandas) / R / SQL] Original file(s) archived at: [FOLDER PATH OR CLOUD LOCATION] ===== STEP 1 ===== Date: [DATE] Description of step: [e.g. Removed 47 rows where [COLUMN] was blank / null] Justification: [e.g. Blank values indicate incomplete records that would skew the average] Is this step reversible? [Yes — original file retained at [LOCATION] / No — explain why] Script / formula used (if applicable): [PASTE FORMULA, QUERY, OR SCRIPT SNIPPET] ===== STEP 2 ===== Date: [DATE] Description of step: [e.g. Standardised [COLUMN] values from [VARIANTS] to [STANDARD FORM]] Justification: [e.g. ONS uses [STANDARD] — all variants refer to the same category] Is this step reversible? [Yes / No — explain] Script / formula used: ===== STEP 3 ===== Date: [DATE] Description of step: Justification: Is this step reversible? Script / formula used: [Copy block above for each step] Final dataset row count before cleaning: [NUMBER] Final dataset row count after cleaning: [NUMBER] Rows removed: [NUMBER] ([PERCENTAGE]%) Reason rows were removed: [SUMMARY] Log completed by: [NAME] Date: [DATE] Reviewed by: [NAME] Review date: [DATE]
Template 3: Methodology Note (for publication)
Adapt this note for publication alongside your story. It should be honest about what the data can and cannot show — readers and regulators will respect you more for it.
METHODOLOGY NOTE — FOR PUBLICATION [This note is intended to be published alongside or linked from your data story.] About this analysis This story is based on data from [NAME(S) OF DATASET(S)], published by [PUBLISHER(S)]. The data was retrieved on [DATE(S)] and covers [PERIOD AND GEOGRAPHY — e.g. England and Wales, January 2023 to December 2024]. What we did with the data We [DESCRIBE ANALYSIS IN PLAIN LANGUAGE — e.g. calculated the rate per 100,000 population using mid-year population estimates from the ONS; identified local authorities where the rate exceeded the national average by more than 20%; ranked areas by the change between the first and last year in the dataset]. Caveats and limitations — [CAVEAT 1 — e.g. Figures for [AREA] are suppressed in the original data where counts fall below 5, to protect individual privacy. These areas are excluded from our ranking.] — [CAVEAT 2 — e.g. The definition of [TERM] changed in [YEAR]. Figures before and after that date are not directly comparable.] — [CAVEAT 3 — e.g. The data covers [PERIOD] only and does not reflect changes since [DATE].] We have retained copies of all original data files and our analysis is available to editors and regulators on request. Questions or corrections If you believe our analysis contains an error, please contact [EMAIL]. We will investigate and issue a correction in accordance with our corrections policy. Sources — [Dataset 1]: [URL] — [Dataset 2]: [URL] — ONS Code of Practice for Statistics: code.statisticsauthority.gov.uk
Template 4: Reproducibility Checklist
Run through this before publishing. Have your data editor or a colleague check the key figure independently before sign-off.
REPRODUCIBILITY CHECKLIST Investigation title: [TITLE] Journalist: [NAME] Date: [DATE] ORIGINAL DATA [ ] A copy of every original downloaded data file is archived at [LOCATION]. [ ] File hashes (SHA-256) are recorded in the Data Source Log. [ ] The retrieval date and source URL for each dataset is recorded. CLEANING AND TRANSFORMATION [ ] Every cleaning and transformation step is recorded in the Cleaning Log. [ ] The reasoning for every step is documented. [ ] Where a step is irreversible, this is noted and the original pre-step file is retained. ANALYSIS [ ] All formulas, queries, or scripts used to produce the published figures are saved. [ ] A step-by-step recreation of the key figure(s) in the story has been checked by at least one other person. [ ] The published figures have been verified against the source data before publication. PUBLISHED OUTPUT [ ] A methodology note is published alongside or linked from the story. [ ] All caveats and limitations are disclosed in the story or the methodology note. [ ] The story does not claim more than the data supports. REGULATORY READINESS [ ] The Data Source Log, Cleaning Log, and analysis files are stored and retrievable for at least two years. [ ] The journalist / data editor can explain every step in the analysis if challenged by IPSO, IMPRESS, or Ofcom. Checked by: [NAME] | Date: [DATE] Signed off by (editor): [NAME] | Date: [DATE] References: — ONS Code of Practice for Statistics: code.statisticsauthority.gov.uk — IPSO Editors' Code, Clause 1 (Accuracy): ipso.co.uk/editors-code-of-practice — IMPRESS Standards Code, Standard 1 (Accuracy): impress.press/standards
Primary sources and references
- ONS Code of Practice for Statistics — standards for trustworthy, high-quality statistics
- IPSO Editors' Code of Practice, Clause 1 — accuracy requirements for IPSO-regulated publications
- IMPRESS Standards Code, Standard 1 — accuracy including statistical accuracy
- ONS Guide to Statistics in National Media and Public Life — practical guidance on using official statistics in journalism