Reports
—
Restoring your session…
Repin city analytics
—
Reports
—
Contributors
—
Location coverage
—
With media
—
With address
—
Likes
—
A rise in reports can mean more citizens reporting, not more incidents. Deltas are shown without a good/bad colour on purpose — read them with the trend and the alerts.
—
—
—
—
The ranked union of anomalies, changepoints, emerging clusters and forecast breaches. Every explanation is generated from the evidence underneath it — no number appears in the sentence that is not in the evidence.
—
—
—
Terms are TF-IDF weighted against the whole filtered corpus, so a term that is common everywhere ranks below one that is distinctive here. Terms shorter than three characters and stopwords are excluded. Click a sample to read the full report text.
—
Rule-based extraction of UK postcodes, street names, organisations, dates and quantities from report text. Nothing leaves the API — no external NLP service.
—
—
Expected report volume for planning — a council can staff a crew, order a skip or schedule work from it. The shaded band is the 80% interval from residual variance; MAPE is the holdout error over the last horizon days. This is not a prediction about people or places.
—
—
Reports now
—
Reports in the previous window
—
Change
—
Contributors now
—
—
—
—
—
| City | Top category | Coverage |
|---|
Reports without a city name are grouped as “Unknown” and always sorted last. Click a row to filter the dashboard to that city.
—
—
Alerts compare the last 7 days with the per-7-day average of the baseline window, so the two sides are like for like. Only groups with at least the minimum number of recent reports and a ratio of 1.5× or more appear. The date range does not apply here — city and category filters do.
—
—
| Area | Category | Recent | Expected | Ratio | Method | Severity |
|---|
Recent counts are compared with the same area × category's own trailing baseline. The method column is the honest part: Poisson is the tail test for rare counts (baseline rate < 5 per window), robust z is median/absolute-deviation for normal counts, so a single blip cannot look like a surge at low volume.
—
| Area | Category | Date | Before → after | Magnitude | Direction |
|---|
The best single split (SSE minimisation) on each daily series — “when did this structurally change?”, not “is this a spike?”. Values are daily means either side of the split date.
—
| Pair | Lift | Co-occurrences | Areas |
|---|
| Dataset | Variable | r | p | n | Direction |
|---|
Lift is how much more often a pair appears together than chance. External correlations are Pearson against the cached open-data series; a direction is only shown when it is positive or negative — a coefficient that rounds to zero is omitted by the API rather than called “none”.
—
| Format | Items | Bytes |
|---|
EXIF note —
Query the read-only sandbox, or run Python in your browser. Nothing here runs on the server.
Read-only. The sandbox can see aggregates over reports, media and cached open data — never contributor identities.
The statement is mirrored in the URL, so a query can be shared. Results are capped by the API and a truncation notice appears when the cap is hit.
Runs entirely in this browser tab. The server never sees your script or its output.
Python loads only when you first open this tab. The fetched rows arrive in your
script as rows (a list of dicts) and columns.
Pyodide and matplotlib are fetched on demand from the URL configured in
config.js. If that fails — offline or blocked by CSP — the panel says
so and the rest of the dashboard is unaffected. This is the correct sandbox for a
hosted product: there is no server-side interpreter to escape from.
—
—
Generates synthetic UK reports containing discoverable patterns — a persistent
hotspot, an emerging one, seasonality, weather linkage and a one-off burst. Demo
rows are flagged is_demo in the database and never appear in the
consumer app. Seeding is an administrator action; the generated patterns are
listed when it finishes.
Comma-separated city names, or leave blank for the built-in UK set.
Seeding…
Planted patterns
—
| Dataset | Source | Licence | Status | Last fetched | Observations | Variables | Actions |
|---|
Observations are fetched on demand and cached locally, so queries never depend on a third party being up. Refresh fetches the cities in scope; concurrent refreshes are refused by an advisory lock.
—
| Type | Count | Properties |
|---|
| From | Type | To | Count |
|---|
Counts are live for the current filter. The graph is what makes “what is connected to what” answerable — reports to areas, categories, themes, mentions, media and external observations.
—
Small-cell suppression: any area × category × week cell with fewer than minCell reports is withheld and counted as suppressed, so an individual report cannot be identified from the published totals. A higher minCell publishes less but protects more.
| Area | Category | Week | Count |
|---|