Which crimes across NSW are trending up right now.
A live time-series forecast over three decades of public recorded-crime data. Each offence category is deseasonalised, trend-fitted and projected twelve months ahead to surface what is quietly accelerating, and what is cooling off.
Source: NSW BOCSAR open dataMethod: Holt-Winters + emerging-risk scoreData pulled live in browserBOCSAR dataset ↗
Loading crime data...
--
Categories modelled
--
Emerging risks (rising)
--
Cooling (falling)
--
Data through
Overview
Recorded incidents across all modelled categories
Total recorded incidents over time
monthly, all categories
Share of incidents
last 12 months
Volume by category
12-month average, coloured by signal
Seasonal pattern
avg by calendar month, all categories
Trend vs momentum
trend /yr against year-on-year, per category
Emerging-risk board
Ranked by risk score · click a row to expand the forecast
#
Offence category
Trend /yr
YoY
Signal
How it works
The same maths runs in Python and in your browser
Ingest. The BOCSAR workbook (offence rows, monthly columns, 1995 to today) is parsed into a tidy monthly series per category. Because BOCSAR serves no CORS headers, the page loads a committed data.json of raw series that a scheduled GitHub Action regenerates server-side.
Qualify. A category is modelled only with at least 48 months of history and an average of 30+ incidents per month, so tiny or sparse series never generate false signals.
Deseasonalise and score. Each series is smoothed with a 12-month moving average to strip the seasonal cycle, an OLS trend is fit to the trailing 24 months and annualised as a share of recent volume, then blended 60/40 with year-on-year momentum. Score above +2 reads rising, below -2 reads falling.
Forecast. Twelve months are projected with Holt-Winters additive triple-exponential smoothing (seasonal-naive fallback) and a 95% band that widens with the horizon. The Python pipeline additionally fits SARIMA for its archived output.