BORME API

Engineering notes · Data quality

Four act types reconcile to within half a point — the two that did not were measured wrong

2026-08-30 · 6 min · field note

By BORMEAPI Engineering

There is a question we could never answer honestly about our own pipeline.

We parse the BORME — the Spanish commercial registry gazette — into typed events. We can tell you our parser is deterministic, that it re-runs byte for byte, that every event links back to its gazette file and act number. What we could not tell you is whether it sees everything. A parser that silently drops one act in twenty looks exactly like a parser that drops none. There is no second copy of the gazette to check against.

This month there turned out to be something better than a second copy.

The registry counts itself

The Colegio de Registradores runs Spain's provincial Registros Mercantiles — the same registries whose gazette we read. Since January 2025 it publishes its own statistics: how many incorporations, dissolutions, capital increases, mergers and spin-offs its registries inscribed, by province and by month, back to 2011. Eleven datasets, under the Open Database License.

We went there looking for tax identifiers. There are none — every dataset is a count by province, and we said so plainly in our source notes. What we found instead was a yardstick, which for a question like this is worth more.

Because now the shape of the check is obvious. They publish how many acts were inscribed. We publish how many acts we extracted from the gazette that announces those same inscriptions. The two numbers should agree.

The first reading, and the part of it that was most convincing

INCORPORATION      99.6%
EXTINCTION        100.0%
CAPITAL_REDUCTION  96.6%
CAPITAL_INCREASE   94.0%

Two of them landed on parity. That was the result we wanted and it held up.

The other two did not, and the way they failed was worse than the failure itself. Capital increases were not merely low; they had been sliding for a decade — 103% in 2016, 99% in 2019, 94% in 2025. A flat gap is a quirk. A trend is a story: something in the gazette had been changing and our parser had been falling behind it, gradually, for ten years, and nothing inside our own system could have told us.

We wrote it down as an open question and went to look for the cause.

The cause was the ruler

The registry counts inscriptions. We were counting gazette entries.

Those are not the same unit. One BORME entry for one company can carry several acts, and it frequently does — a capital increase alongside an address change, or two capital increases resolved at the same meeting and inscribed together. In 2025 alone, 1,381 entries carry more than one capital increase.

Counted as acts rather than entries:

actas entriesas acts
capital increases94.0%99.8%
capital reductions96.6%99.6%

There was no gap. There had never been a gap.

And the trend — the most persuasive part of the whole finding — was an artefact of the same mistake. Entries that bundle several acts have been getting more common. That alone forces an entry-based ratio downward year after year, whether or not a single act is being missed. We had been reading a change in how the gazette packages its notices as a decade of quiet decay in our own code.

That is the part worth keeping. A wrong unit does not produce noise. It produces a smooth, plausible, directional signal — the kind that survives a sanity check and gets written into a roadmap.

Where it stands

Across every complete year from 2016 to 2025, counting acts:

actwithin 1% of the registry
incorporations10 years of 10
capital reductions10 of 10
capital increases9 of 10
dissolutions8 of 10

For 2025: the registry inscribed 128,871 incorporations; we extracted 128,314.

The tenth year

Capital increases miss one year of the ten, and it is worth naming rather than leaving as a rounding entry. In 2016 we counted 31,688 against the registry's 29,773 — 106.4%, far outside the noise of every other year. The obvious first suspicion was our own extraction: some 2016 format we double-counted.

Month by month, the answer was somewhere else:

monthregistryours
August 20162,2032,348
September 20162,2542,274
October 20161772,128
November 20162,6822,599
December 20162,4692,485

Every neighbouring month sits between two and three thousand. The registry's October figure is 177; ours is 2,128, exactly where the surrounding months say it should be. Remove that single month from both sides and 2016 lands at 99.9%, like every other year.

We are not claiming an error we can prove — there may be a publication reason we do not know. What can be said is which of the two counts is inconsistent with its own neighbours, and it is not the one derived from the gazette. A ruler built to check us turned out to point both ways.

With that month set aside, the forty year-by-act comparisons sum to 1,712,264 acts on our side against 1,712,084 on theirs: 0.01% apart across 1.71 million acts, with a mean absolute deviation of 0.36% and no comparison further than 1.5% from the reference.

Two act types genuinely run above the registry — mergers and spin-offs, by about eight and eighteen percent. Some of that is expected and correct: a merger by absorption is one inscription that the gazette can announce under both the absorbing and the absorbed company, so an act-level count of the gazette should exceed an inscription-level count of the registry.

The rest we do not claim to explain yet. Our own side shows no break — the absolute counts have been flat since 2018, no new wording appeared, the rate of same-day duplicate entries has not moved. The registry's series is the one that swings: above our count in 2022, below it in 2024 and 2025. That is the shape of a series still being completed after publication, but it is a hypothesis, and we have stopped arguing about it. We now log every published figure that changes under us, so the next quarterly republication will answer it without us guessing.

Two things we would tell anyone doing the same check

Find out what the other counter counts. Not what it is called — what its row means. Act, entry, case, company. And on what date: the registry counts the month a deed was inscribed, the gazette prints it days or weeks later, which throws individual months out by as much as 8% while the year lands inside half a point. Compare years.

A deviation that drifts is a data-structure question before it is a code question. Our instinct was to look for what our parser had stopped recognising. The change was in how the source packages what it publishes, and in what we were counting — not in what we understood.

If you run a parser over a public gazette, go and find out whether its issuing body publishes counts of its own. Ours does, it is free, and it turned an assurance we could only assert into one we can show — including the part where the first measurement was wrong.

Control figures: Colegio de Registradores de España, opendata.registradores.org, ODbL 1.0. Their datasets publish counts by province and carry no company identifiers; we use them for measurement only and serve no part of them through the API.

API docs Pricing & tiers

build 2026.08.30·0666913