Investigations

Research log

Every data-quality question opened against this site, with findings and resolutions. Open entries are tracked to closure — no silent fixes.

Court daily list contaminated with wrong-venue data

resolved

Question: A Robinvale court-list page was showing Kerang court data from a different date. How did cross-venue data get published?

Findings
  • All Magistrates' Court venues share one CMS portal URL; the refresh path forced unconditional re-fetch of whatever page the portal returned.
  • refresh_article_raw overwrote title/location while preserving external_id/slug, so the row identity stayed 'Robinvale' while the content became 'Kerang'.
  • A poison row (external_id court-robinvale-cri-2026-09-22, title 'Kerang Magistrates' Court Criminal List - Friday 05 November 2027') was live.
Resolution

Venue- and date-specific source URLs; discovery-time published_at; event_start_at/event_end_at columns; refresh identity guard verifying venue+date before overwrite; 12-month future-date cap; poison row deleted; regression tests added.

Sources · scrapers/courts/magistrates.py · scrapers/runner.py · database/db.py Opened 2026-09-19

Melton arson story published with location 'Hopetoun'

resolved

Question: A Melton (Melbourne) arson story appeared in the Mallee archive tagged to the town of Hopetoun. Why?

Findings
  • The vicpol scraper's keyword matcher used word boundaries only: 'Hopetoun' matched inside 'Hopetoun Park', a Melton suburb.
  • The story's only Mallee connection was the string 'Hopetoun Park' in the police text.
Resolution

vicpol relevance + location detection rewired onto the canonical locality matcher, which carries explicit exclusions (Hopetoun Park != Hopetoun). Article quarantined, DB row retracted, regression tests added.

Sources · scrapers/police/vicpol.py · pipeline/localities.py Opened 2026-09-19

Statewide weather warnings flooding local feeds

resolved

Question: Bureau of Meteorology warnings for the whole state were entering the Mallee feed as local content. Why?

Findings
  • The BOM warning filter accepted the keywords 'state' and 'victoria', which appear in every statewide warning.
  • The scraper hardcoded location='Mallee' on all warnings, pre-stamping statewide content as local.
Resolution

Warning filter now requires a Mallee/Wimmera/North West district or a named Mallee town; fabricated locations removed. Deliberate exception retained: SES statewide emergency warnings still pass (safety-first).

Sources · scrapers/weather/bom.py Opened 2026-09-19

SES incident titles carry raw feed formatting

open

Question: SES incident titles render as 'Grass - STAWELL, Northern Grampians' — all-caps and sometimes duplicated locations. Should incident titles be normalised?

Findings
  • OSOM feed headlines arrive in all-caps with location suffixes.
  • The SES ArcGIS path builds titles from raw incident types.
Sources · scrapers/emergency/ses.py Opened 2026-09-19
This log is the human-reviewed layer of the publication workflow. Investigations are opened when a data-quality signal fires or a reader reports a problem, and closed with a written resolution.
Send feedback