Changelog

Sources connected, sections added and corrections made. Corrections are listed alongside new features, because a figure that changed needs an explanation more than a new section does.

Entries
10
Release days
1
Latest entry
2026-07-26
Methodology
how each source is checked

2026-07-26

10 entries

A weekend with no index no longer looks like a blocked source

The regulator answers a request for a daily index on a day with no publications with an access error rather than a not-found. The ingestion daemon asked for today's index and, every weekend, logged that the source had blocked us.

An alert that lies on a schedule stops being read, so ingestion now takes the most recent day from the listing of indexes that actually exist. The general policy on access errors during document retrieval was not relaxed: it still means blocked, and working around it stays prohibited.

Email delivery of subscribed events

An event from a real source now reaches a mailbox without manual steps: subscription, undelivered events, message, delivery log.

Repeat sends are suppressed by an anti-join against the delivery log rather than by a check in code, so restarting the worker mid-pass does not duplicate anything, and the log is written only after a successful send — otherwise a failed message would count as delivered.

Subject lines follow the same rule as page titles: they state what happened and not what it means. Both dates, the disclaimer and one-click unsubscribe appear in both parts of every message.

First public data sections, with three sources connected

The platform went up with a Rust core and server-rendered pages: insider transactions from U.S. regulatory filings, the U.S. Treasury sanctions list, and the euro foreign exchange reference rates published by the European Central Bank.

Two candidate sources were examined and left out. One returns an access error to automated retrieval, and no permitted route to the same data was found. For the other, no working endpoint could be confirmed. Neither was approximated from a third-party copy.

Indexing is closed by construction while the permanent domain is undecided. A single predicate governs response headers, page metadata, sitemaps and the page generator, so no amount of content can open indexing by accident.

Five more sources, and the sections for filings, calendar, funds and sanctions

Added: three further sanctions lists, two macroeconomic sources, quarterly institutional holdings and tagged financial statement data. Each adapter ships with reference records taken from real published files.

Several defects found on real data, each of which would have corrupted figures silently:

  • One sanctions list answers with a redirect, and without following it the response is zero
  • bytes with a success code — indistinguishable from an empty list.
  • Another has no record element at all: each line is one spelling of a name, and 19,761 lines
  • correspond to 5,135 designated parties. Counting lines would have inflated the list by
  • nearly four times.
  • Three of the four sanctions sources publish no total count, so reconciliation is recorded as
  • unavailable rather than being set equal to the number of records we parsed.
  • Institutional holdings values were published in thousands before 2023 and in whole units
  • afterwards, and the field that supposedly distinguishes them is unreliable. Values are
  • therefore stored as filed and never scaled by guess.
  • Two fields in tagged filing data describe the submission rather than the fact, and using
  • them as the fact's period would misdate figures by a quarter.
  • One macroeconomic source reports errors in the body of a successful response.

Fixed pages that went blank immediately after loading

The framework passes page data to the browser in inline scripts, and the security policy forbade them. External framework files still loaded, so the client started, found no data and cleared the page.

The policy is now issued per response with a one-time value rather than weakened by allowing inline scripts generally.

The same investigation exposed a second fault: some pages were pre-rendered while the image was being built, when no database or API exists, and "data unavailable" was baked into the HTML. The rates page showed an error on top of a full database of rates. Public pages are now rendered at request time.

Free tools, glossary, learning articles and this changelog

Added a glossary of the terms that actually appear on these pages, a set of articles on how to read the underlying documents, and this changelog.

Four tools were added. The currency converter multiplies an amount by the central bank reference rate published for a stated date, and refuses when no rate was published for that date rather than reusing an earlier one. The cost basis calculator does arithmetic on lots you enter and shows the working, without assuming a jurisdiction. The sanctions check wraps the existing search with an explanation of what a match score does and does not mean.

The dividend date tool was built and ships empty. None of the connected sources publishes a machine-readable dividend calendar, so it reports what the calendar holds — nothing — instead of demonstrating itself on invented data.

Legal texts published in draft

Terms, privacy notice and disclaimer were published as drafts, each marked as awaiting review by a qualified lawyer. Publishing them unmarked would have implied a review that has not happened.

Readable addresses for person pages, and removal of orphaned pages

Person pages were addressed by a bare registry number. They now carry the name as well: the name makes the address meaningful, the number keeps namesakes apart.

A change of identifier used to leave the old address behind in the publication registry — a page with no incoming links and nothing behind it. The generator now removes such pages itself instead of relying on a one-off cleanup.

Routes split by section to allow parallel work

The API was reorganised into one module per subject area so that changes in different sections stop colliding, and the platform migration added the tables behind accounts, tooling and the reference sections.

The site opens without a password; closure to search engines is unchanged

Basic authentication was removed at the operator's instruction. Requests identifying themselves as search or training crawlers are refused instead.

The other three layers are untouched: a no-index header on every response including the API and subdomains, a robots file refusing all crawling, and the absence of the domain from any webmaster console or external link.

Entries describe changes to this site and to how it reads published documents. They are not announcements about any company, and a correction here means our reading changed — the underlying filings did not.

Related