Changed
- GET /v1/safety/geography/metrics covers England and Wales, so Welsh area codes return scored figures alongside English ones. Each month summarises the trailing 24-month window ending at that month:
totalCrimeCount, each category'scrimeCountand the counts intimeSeriesDataare window totals, andperiodDetails.windowMonthsreads24.totalCrimeRateandcrimeRatestay per 1,000 residents per year. To migrate, compare rates rather than counts with any figures you stored before this release, or divide a count bywindowMonths. - Scores are null, never 0, where a police force did not report.
crimeScore,percentileandtrendFactorread null in that case, anddataAvailabilityon each row, category and time-series point says how complete the data is:available,partial,missingorunknown. Amissingrow's counts come from incidents recorded by a neighbouring force and are not evidence that an area is safe. A merged row reportsavailableonly when every merged area does, andpartialotherwise. To migrate, handle the four values and readdataAvailabilitybeside every number. percentileranks an area among areas of the same type in England and Wales for that month, from 0 to 100 where 100 is safest, and is null when fewer than 10 areas could be ranked.percentileLocalgives the same rank within the area's parent local authority. Do not compare percentiles across area types.trendFactorcompares the most recent year with the year before, and a positive value means crime is falling. It has no fixed range, so check the sign and any bounds in rules that read it.trendLabelstates the trend in words (improving,worsening,stableorunknown), withtrendRatio(incidents in the latest year over the year before, where above 1 means rising),trendZandtrendSignificantbeside it.- Each category's
crimeScoresits on that category's own scale, so compare a category with itself across areas and months rather than with other categories. Only theallcategory carriesexplanatoryTags, and the others return an empty list. The tag vocabulary gainsharm_driven_by_<category>,partial_coverageandno_incidents_in_window. - Rows gain
entityType,name,country(englandorwales),totalCrimeScoreandmodelVersion. Categories gainharmRate, the expected harm per 1,000 residents per year with each offence weighted by its severity, andharmLowerandharmUpper, the 80% prediction interval on harm over the next 12 months, pluscoveredPeriods, the number of months in the window with usable data.periodDetailsgainsstartandendinYYYY-MMform. - GET /v1/safety/crime returns
outcomeon each incident, the last recorded outcome as the police data source publishes it, and null for anti-social behaviour and where no outcome is recorded yet.reportedByis the identifier of the recording force in lower-case hyphenated form, such asmetropolitan, so map it to a display name on your side.crimeDateis the first day of the month the incident was recorded in, and incident history starts in August 2020. - GET /v1/safety/catalog and GET /v1/safety/catalog/{country} list
englandandwales. Only monthly periods are published, soyearlyperiod lists are empty.
Removed
- Parish and local planning authority codes on GET /v1/safety/geography/metrics, which return an empty
datalist. Request the ward or local authority district that contains the area instead. quarterlyfromperiodTypein the safety catalogue. Use monthly periods.estimatedandinsufficientfrom categorydataAvailability.single_crime_type_dominates,primarily_violent_crime,mostly_low_severity_crimes,recent_crime_concentrationanddistributed_over_timefromexplanatoryTags.- Location text on GET /v1/safety/crime:
crimeLocationis null because the data source publishes none. Place an incident withcoordinatesinstead.