What the monthly change log is for

The pipeline behind this site runs on the first of each month. It fetches from Wikidata, OpenStreetMap and Wikipedia, resolves organizations across those sources, upserts into the master database, and exports JSON into the site repository. Every upsert that alters an existing value writes a row to a change table first.

Those rows become the pages under /changes/, one permanent page per month.

Why keep them

A dataset that silently corrects itself is impossible to audit. If a venue's capacity was 45,500 last month and is 42,500 today, three very different things could have happened: the venue was reconfigured, a source corrected an error, or the pipeline started parsing a different field. Only the first is a fact about the world.

Keeping the change rows makes that distinguishable. Each one records the table, the field, the old value, the new value and the timestamp. Read in sequence, they show whether a field is stable, or whether it flips back and forth every time an upstream editor changes their mind.

What it does not do

The change log records the fact of the change, not the reasoning. A row telling you that a status went from active to closed does not tell you why, and neither does the pipeline know. For that you follow the source URL on the venue page.

It also only covers changes since the pipeline started tracking. A venue that was renamed in 2011 has that in its name history, not in the change log; the change log is about what the dataset believed, not about what happened in the world.

Corrections are made upstream

When something here is wrong, the correction goes into the master database through a small command line tool that writes both the corrected value and a change row with a manual confidence level. Then the export and publish stages re-run.

Nothing is ever edited in the published JSON or in the search mirror, for a boring reason: the next monthly export would overwrite it, and the correction would vanish without a trace. The only durable place to fix a fact is the place the export is generated from.

Empty months

If a month changes nothing, no page is published for it. A page saying "nothing changed" is not useful, and a permanent URL with no content is worse than no URL. The months that exist are the months where something moved.