Skip to main content

Financial Accounts ready for ingestion

Tabular financial data

Bypass the complexity of raw XBRL parsing. Accounts filed electronically with Companies House are delivered with one row per filing, in Parquet, JSON and CSV.

View downloads

The format challenge

UK company accounts indicate the financial position of every business and are highly valuable. The vast majority are filed in machine-readable XBRL format.

However, processing XBRL at scale is technically challenging. A specification-compliant parser must resolve extensive taxonomy references, and the varying outputs from different accounting software add further complexity. Open-source parsers can take several seconds per document, making bulk ingestion of millions of accounts a slow and costly undertaking.

<xbrli:context id="company">
  <xbrli:entity>
    <xbrli:identifier scheme="http://www.companieshouse.gov.uk/">11932084</xbrli:identifier>
  </xbrli:entity>
  <xbrli:period>
    <xbrli:startDate>2025-05-01</xbrli:startDate>
    <xbrli:endDate>2026-04-30</xbrli:endDate>
  </xbrli:period>
</xbrli:context>
<ix:nonFraction contextRef="company-period-end" decimals="0" format="ixt:numdotdecimal" name="core:FixedAssets" scale="0" unitRef="GBP">854</ix:nonFraction>
<ix:nonFraction contextRef="company-period-end" decimals="0" format="ixt:numdotdecimal" name="core:CurrentAssets" scale="0" unitRef="GBP">150,031</ix:nonFraction>
<ix:nonFraction contextRef="company-period-end" decimals="0" format="ixt:numdotdecimal" name="core:TotalAssetsLessCurrentLiabilities" scale="0" unitRef="GBP">150,164</ix:nonFraction>

The Solution

A trivial data pipeline.

Companies Catalogue transforms this complex parsing problem into a straightforward operation. You can run a monthly batch process to fetch the latest accounts and maintain a queryable local database.

Delivery
Parquet, JSON & CSV

Parquet is recommended. JSON and CSV are also available with gzip or Zstd compression for direct database loading.

Data Points
42 Fields

The most commonly used accounts fields, with one row per filing and values from the current period.

Cadence
Monthly Updates

The dataset is updated each month with the accounts published in the previous month.

Infrastructure
Public Storage

Hosted on reliable object storage in the Western Europe region to ensure high-performance downloads for your ingestion pipelines.

Open source parser

ch-xbrl -o facts.csv \
  https://download.companieshouse.gov.uk/Accounts_Bulk_Data-2026-05-09.zip

Custom parser

Accounts are extracted with ch-xbrl, an open-source parser written in Go. Every tagged fact is extracted from each filing in the Companies House bulk accounts files.

A curated concept map is then applied to the raw facts. It picks one value per field for the current reporting period, giving one row per filing with the company number and balance sheet date. Comparative year values are not included.

We first tried stream-read-xbrl, which showed that high-performance extraction is possible. Its output can contain more than one row per filing, and dimensioned concepts are not always handled when choosing a value, so we built a separate parser.

Data included

Only accounts filed electronically in XBRL are included. Historically, many accounts were filed on paper and are not in the data. From 2028, all accounts are due to be filed electronically.

Each row is one filing. zip_start and zip_end give the dates of the Companies House bulk file it came from. Companies do not tag every concept, so which fields are filled depends on the filing type and company size.

The XBRL is parsed accurately, but accounts software does not always tag values correctly. Extracted values can therefore differ from what appears in the accounts PDF. We correct obvious errors where we can, but some are hard to detect.

{
  "zip_start": "2020-02-01",
  "zip_end": "2020-02-29",
  "source_file": "Prod224_0075_04002820_20190531.html",
  "company_number": "04002820",
  "company_name": "KVS SYSTEMS LIMITED",
  "period_start": "2018-06-01",
  "period_end": "2019-05-31",
  "currency": "GBP",
  "current_assets": 6035.0,
  "creditors_within_one_year": 6959.0,
  "net_current_assets": -924.0,
  "net_assets": -924.0,
  "turnover": 26448.0,
  "profit_loss": 405.0,
  "software": "Company Accounts and Tax Online",
  "accounting_standard": "Micro-entities",
  "dormant": false,
  ...
}

Company

  • company_number
  • company_name
  • legal_form
  • trading_status
  • dormant
  • employees

Balance sheet

  • intangible_assets
  • tangible_assets
  • fixed_asset_investments
  • fixed_assets
  • stocks
  • debtors
  • cash
  • current_assets
  • creditors_within_one_year
  • net_current_assets
  • total_assets_less_current_liabilities
  • creditors_after_one_year
  • provisions
  • net_assets
  • share_capital
  • retained_earnings
  • equity

Accounts

  • period_start
  • period_end
  • currency
  • accounts_type
  • accounting_standard
  • accounts_status
  • auditor_name
  • accountant_name
  • software

Profit and loss

  • turnover
  • gross_profit
  • operating_profit
  • profit_before_tax
  • tax_on_profit
  • profit_loss
  • staff_costs

Source

  • zip_start
  • zip_end
  • source_file

Access and pricing

Recent accounts are free with an account. The full history and raw facts are paid products, priced by the number of filings.

Free sample

100 randomly selected filings in CSV, available to download above without an account.

Last 12 months

The most recent 12 full months of XBRL accounts are free with a Companies Catalogue account. Sign-up is free and card details are not required.

Full history

All XBRL accounts since 2010, at £40 per million filings. One filing is one row in the table.

Raw facts

Every tagged concept from each filing since 2010, including the text of accounting policies and notes. £120 per million filings. Contact us to order.