Completeness, reconciled
The source reports how many cases it holds. We collected 2,562 and the source says 2,562, so the dataset is provably complete on the day it was captured. That check is recorded in the provenance file, not just asserted here.
Worked example · open dataset
We extracted all 2,562 cases the Competition and Markets Authority has published since 1999, structured them into a single file, and checked the count against the source so you can see nothing is missing. It is free to download. We built it to show how we work, on a public source anyone can verify.
What is in it
Each record carries the case title, type, state, outcome, market sector, the dates it opened and closed, when it was last updated, and a link back to the case on GOV.UK. The types span the CMA's full remit: 1,988 mergers, 169 Competition Act and civil cartel cases, 131 subsidy control referrals, 108 consumer enforcement cases, 70 market studies and investigations, and the rest across regulatory appeals, criminal cartels, and director disqualifications. The data comes as CSV and JSON.
How it was built
Anyone can scrape a list of cases. The work is in proving it is the whole list and that every value traces back to the source. Built and reconciled by Peter Foster, Managing Director.
The source reports how many cases it holds. We collected 2,562 and the source says 2,562, so the dataset is provably complete on the day it was captured. That check is recorded in the provenance file, not just asserted here.
The extractor is a single script that reads the public GOV.UK Search API. Run it yourself and you get the same dataset. We publish the script alongside the data, so the method is open to inspection.
Cases are only the top layer. We also enumerate the PDF attachments behind each case and extract their text. A 125-page final report came out as 388,000 characters of searchable text, parsed straight from the source PDF.
When a decision exists only as a scan, OCR reads it. On a controlled test, rasterising a real CMA decision to image-only pages and running OCR recovered 99.5% of the words from the original.
What we did not hide
An honest dataset reports its own holes. Of the 2,562 cases, 1,240 have no opened date and 314 closed cases have no recorded outcome. Almost all of these are pre-2014 records inherited from the Office of Fair Trading and the Competition Commission, which never carried those fields. The gaps are in the source, not the extraction, and the provenance file counts every one. That is the difference between a dataset you can rely on and a number someone rounded up and hoped you would not check.
Download
Free to use under the Open Government Licence, the same licence as the source. The scripts are included so you can verify the method or re-run it for the latest cases.
Data, provenance file, and the extractor script in one download.
All 2,562 cases, one row each, ready for a spreadsheet.
The same 2,562 cases, structured for a pipeline or database load.
The reconciliation against the source total, and every recorded gap.
Reads the public GOV.UK Search API. Run it yourself for the latest cases.
Questions
Mergers make up most of its caseload: 1,988 of the 2,562 cases in this dataset. The rest are Competition Act and civil cartel cases (169), subsidy control referrals (131), consumer enforcement (108), market studies and investigations (70), and smaller numbers of regulatory appeals, reviews of orders and undertakings, criminal cartels and director disqualifications. Each record carries its case type, so you can filter on any of these.
It depends on the case type, and the dataset lets you measure it. For the closed cases that record both an opened and a closed date, the median merger case runs 112 days, a subsidy control referral 42 days, a market study or investigation 411 days, a consumer enforcement case 472 days, and a Competition Act or civil cartel case 708 days. Pre-2014 cases inherited from the OFT and Competition Commission mostly lack an opened date, so those medians are drawn from the modern CMA era.
GOV.UK's case search filters by type, state and sector, one page at a time. The CSV here holds the same 2,562 cases with those fields plus outcome, opened and closed dates and the source URL, so you can filter, sort and pivot the whole register in a spreadsheet or load the JSON into a database. The extractor script re-runs against the public GOV.UK Search API for cases published since the June 2026 capture.
2,562 as of 20 June 2026, going back to 1999 and including cases inherited from the Office of Fair Trading and the Competition Commission. That figure is reconciled: the source reports the same total, and the provenance file records the check rather than asserting it.
GOV.UK is open. Most regulators are not: bot walls, JavaScript, PDFs, no API. That is the work we do. Tell us the source and what you need from it.