The problem

There is no single place to obtain a European company's public financial data. It is scattered across 27+ national business registers, several EU-level databases, and a patchwork of Officially Appointed Mechanisms (OAMs) — each with its own format, access method, cost, and identifier scheme. A listed company's audited financials might be a clean machine-readable XBRL file in one country and a CAPTCHA-gated PDF in the next. Beneficial ownership sits behind national paywalls. Nothing shares a common key.

The result is that even a well-resourced analyst cannot reliably answer “what is publicly known about this company, and how trustworthy is each piece?” without stitching sources together by hand. Mosaic does that stitching for one company at a time, and — crucially — keeps the seams visible.

What ESAP is, and what it changes

The European Single Access Point (ESAP), established by Regulation (EU) 2023/2859, is the EU's answer to this fragmentation: a single, free, machine-readable access point for the financial and sustainability information that companies already have to disclose. It does not create new disclosure obligations — it aggregates existing ones, requiring standardised metadata and the Legal Entity Identifier (LEI) as the common key.

ESAP goes live in three phases:

  • Phase 1 · Jul 2027Transparency Directive annual and half-yearly financial reports, the Prospectus Regulation, the Short Selling Regulation, and related regimes.
  • Phase 2 · Jan 2028CSRD sustainability reporting, SFDR, the EU Taxonomy, and credit-institution disclosures (CRR/CRD).
  • Phase 3 · Jan 2030The remaining in-scope EU legislation and voluntary disclosures.

The mechanics live in Implementing Technical Standards drafted by the three European Supervisory Authorities (EBA, EIOPA, ESMA) in 2024: data must be submitted in a machine-readable open format, carry the LEI, and include structured metadata so it can be found and cross-referenced. The fragmentation grid in Mosaic maps each data category to the phase set to close it.

What Mosaic demonstrates

  • The concrete shape of EU financial-data fragmentation, sourced from real APIs rather than described in the abstract.
  • An understanding of ESAP: its phasing, its ITS requirements, and exactly which gaps it will and will not close.
  • Integration of heterogeneous sources — structured JSON/XBRL APIs, SDMX, and unstructured scraped filings — under one provenance model.
  • Data-governance discipline: every panel states its source, format, coverage, freshness, cost, machine-readability, and limitations.

How it works

Python scripts fetch each source and normalise it into a local SQLite cache, storing a provenance record alongside every dataset. A Rust web application (Leptos for the UI, Axum for the server) reads that cache and renders the profile — it never calls the external APIs at request time, so the site stays fast and the data stays reproducible. The metadata card above each panel is generated from the stored provenance, not hand-written.

When a source has nothing for a company, Mosaic does not hide it: the panel still renders its provenance card with an honest coverage note. An empty panel is a finding, not an error.

Honest limitations

  • Coverage is uneven. filings.xbrl.org indexes some jurisdictions well (Nordics, Poland, Ukraine, the Netherlands) and others barely — German ESEF filings, for instance, are largely absent, so a company like Siemens shows a documented gap.
  • Identity data is a point-in-time snapshot from GLEIF; national commercial-register detail (directors, full history) is HTML-only and not retrieved.
  • Financial-fact extraction is best-effort against filers' own XBRL tagging; a line item not tagged with the standard IFRS concept is shown as unavailable rather than inferred.
  • Several sources in the fragmentation grid (Bundesanzeiger, ECB/Bundesbank) are mapped as part of the landscape but not yet wired into the live profile.

See the source documentation for a per-source reference, or the fragmentation grid for the landscape at a glance.