How We Present Crime Data
Full transparency on data sources, methodology, and limitations.
In short
- Every number is SAPS's number. We reproduce the official quarterly crime statistics exactly — no scores, no rankings by safety, no adjustments.
- SAPS counts by police station, not suburb. A suburb page shows the figures for the station that serves it, so neighbouring suburbs under one station show the same numbers.
- Counts are not per person. A station serving more people reports more crime. Use the change vs last year to see direction; use counts to see scale.
- We check the suburb-to-station mapping against SAPS's own boundaries, say on every suburb page how sure we are, and log every correction below.
- Found something wrong? Email [email protected] — reader reports have caught real errors, and we credit them.
What SafeSuburb Does
SafeSuburb takes official SAPS crime statistics — published as Excel spreadsheets by police precinct — and makes them searchable by suburb name. We present the raw numbers as reported by SAPS so you can draw your own conclusions. We do not assign a safety score or rank areas as "safe" or "unsafe" — that judgement belongs to you, based on the data.
We do compute a crime volume tier (Very Low to Very High) based on quintiles of raw crime counts within each province — this is a purely descriptive label, not a safety verdict. We also show how crime changed vs prior year (whether reported crime increased or decreased), which is calculated directly from raw counts with no population adjustment.
Data Sources
| Data | Source | Updated |
|---|---|---|
| Crime statistics | SAPS quarterly releases | 5× per year |
| Population — CT precincts | City of Cape Town Census 2022 Precinct Profiles(precinct-level) | Census 2022 |
| Population — other precincts | Stats SA Census 2022 Municipal Factsheet(municipality-level) | Census 2022 |
| Suburb mapping | CPF websites, SAPS docs, geographic data | Periodic review |
| Crime category definitions | SAPS Crime Definitions manual (2012), quoted verbatim from the Institute for Security Studies factsheet(categories the manual doesn't define show none) | Static (2012) |
What We Show
For each precinct area, we display:
| Annual crime totals | Combined count from all available SAPS quarterly releases for each financial year (April–March). Where SAPS has not yet published all quarters for a financial year, totals cover only the available quarters and are clearly labelled. While a year is in progress, precinct and suburb pages lead with the last complete financial year (full year vs full year) and show the quarters published so far as a separate "latest quarter" line compared with the same quarters a year earlier. |
| Trend vs prior year | Whether total reported crime increased, decreased, or stayed stable compared to the previous financial year — over the same quarters while the current year is still in progress (e.g. Apr–Jun 2026 vs Apr–Jun 2025). "Improved" = decrease >2%, "Worsened" = increase >2%, "Stable" = within ±2%. Where a whole province or region is coloured or counted as improving or worsening, the number of improving precincts must exceed the worsening ones (or vice versa) by at least 5% of its precincts; anything closer is shown as mixed. |
| Per-capita rates | Computed only for the 63 City of Cape Town precincts, which have a precinct-level Census 2022 population. The City of Cape Town page shows all reported crimes per 100,000 residents for the 63 together; the Western Cape insights correlations use, per precinct, rates per 100,000 residents for single SAPS categories such as drug-related crime, murder and driving under the influence, plus one combined violent-crime rate (assault, robbery, murder and attempted murder; sexual offences are not included). |
| Category breakdown | Annual counts for each SAPS crime category, with the change vs prior year. |
| Multi-year trend | Total crime per financial year across all available years, with a baseline average line for context. |
| Crime volume tier | Very Low, Low, Moderate, High, or Very High — based on quintiles (fifths) of raw crime counts relative to other precincts in the same province, for the latest period SAPS has published (Apr–Jun 2026). Precinct and suburb pages state it as a fifth, for example "the second-highest fifth of the province's precincts". A "Low" in one province may be higher than a "Moderate" in another. The national tier uses the same method across every precinct that reported at least one crime in that period. |
| Homepage highlights | The homepage shows three highlight cards: "Lowest crime volume" (lowest total reported crimes, minimum 200 cases to exclude tiny stations), "Largest drop" (biggest percentage drop, minimum 500 cases), and "Biggest increase" (biggest percentage rise, minimum 500 cases). The 500-crime threshold ensures highlighted precincts are large enough for percentage changes to be meaningful. Province trends pages differ: their lists of largest falls and rises take precincts with 200 or more reported crimes and rank them by the change in the number of crimes, not the percentage. |
What We Don't Do
Important Limitations
Why are the numbers not adjusted for population?
All crime figures are raw reported counts as published by SAPS — they are not divided by population. This means precincts serving larger residential areas will naturally report more crimes than smaller ones. A precinct like Khayelitsha, which covers a very large population, will have high absolute crime counts even if the rate per resident is similar to smaller precincts.
Use raw counts to understand the scale of crime in an area. Use the change vs prior year to understand whether crime is changing. Do not compare raw counts across precincts of different sizes without this context. Per-resident figures appear in two places, both limited to the 63 City of Cape Town precincts that have a precinct-level Census 2022 population: the City of Cape Town page (all reported crimes per 100,000 residents) and the correlations on the Western Cape insights page; everywhere else only municipality-level population exists, which is not precise enough for a fair per-precinct rate.
Why do neighbouring suburbs show the same numbers?
SAPS publishes crime statistics at police precinct (station) level — the lowest geographic level available. There is no official suburb-level crime data in South Africa. A single precinct typically covers multiple suburbs, so all suburbs served by the same police station share identical crime statistics.
This means crime data for a quiet residential suburb may include incidents from a neighbouring commercial or high-traffic area within the same precinct. We make this clear on every suburb page.
Neighbouring police precincts, listed on each precinct and suburb page, are the precincts whose official SAPS station boundaries share at least 100 metres of border with it, including across district and province lines. They are listed alphabetically, never ordered by crime.
When do we call a trend "improved" or "worsened"?
Trend labels (vs prior year and baseline) use a ±2% threshold to avoid labelling normal fluctuation as meaningful change:
| Improved | Crime decreased by more than 2% |
| Worsened | Crime increased by more than 2% |
| Stable | Change is within ±2% |
This threshold applies to both the vs-prior-year comparison and the pre-COVID baseline comparison. Small precincts with low crime counts may show large percentage swings from minor fluctuations — the threshold helps filter out noise.
Small numbers. When the earlier figure is under 50, we show both counts (for example "2 → 6") instead of a percentage, and lists ranked by percentage change leave such precincts out or put them last. When SAPS recorded no crimes in the earlier period we show "0 → 4", and "no earlier figure" only when there is no earlier figure at all. Five-year and pre-COVID comparisons use complete financial years only, never a part-year scaled up, and are left out for stations that opened in 2018/19 or later or appear to have lost part of their area when a neighbouring station opened; region comparisons count newer stations in the current total, because their areas belonged to other stations in 2018/19. Rankings of the biggest one-year changes also leave out stations next to one that opened in the last two years, and the 10-year view is not shown where a station opened inside that window.
When we do not show a percentage change
Where a precinct recorded fewer than 50 crimes in the prior financial year, we show the direction of change and the underlying counts, but not a percentage. On a very small base a percentage describes arithmetic rather than crime: a precinct going from 1 reported crime to 196 is a genuine increase, but expressing it as "+19,500%" implies a precision the figure does not carry.
On the full-year comparison this affects 45 of 1,169 precincts (those with fewer than 50 crimes in the earlier year); while a year is in progress the percentage is also left out for 222 on the latest-quarter line, which compares the published quarters with the same quarters a year earlier. The counts themselves are always shown, so nothing is hidden — you can compare the two years directly. Percentages are shown normally for every precinct at or above that prior-year threshold.
Do the figures include unreported crime?
SAPS data reflects crimes reported to police. Crime reporting rates vary significantly by area. Under-reporting is common in many communities, meaning the true crime picture may differ from what the statistics show.
Stats SA's Governance, Public Safety and Justice Survey (GPSJS) measures how much crime goes unreported, by crime type: from 31% for theft of personal property up to 100% for murder in the 2024/25 survey. See how much crime goes unreported for the full breakdown. SafeSuburb does not apply this or any other adjustment to the SAPS figures shown on the site; they remain raw reported counts throughout.
Which years and SAPS sources are covered?
Our data spans 13 complete financial years plus 1 partial year (2013-2014 through 2026-2027), drawn from two SAPS publication types:
| Period | Source | Categories |
|---|---|---|
| 2019-2020 onwards | SAPS quarterly Excel releases (Q1–Q4) | 30 categories with monthly breakdowns |
| 2013-2014 to 2018-2019 | SAPS Annual Statistics publication | 25 categories (~2% lower totals) |
How the two SAPS sources differ, and how partial years are compared
Category counts above exclude the six robbery sub-types that SAPS reports both individually and within Robbery with aggravating circumstances (see "How aggravated robbery is counted" below). The five categories the annual publication does not carry are Culpable homicide, Public violence, Crimen injuria, Neglect and ill-treatment of children and Abduction; they are not published in the annual station-level dataset, so figures for them begin with our quarterly coverage in 2019/20 rather than indicating any change by SAPS. Together they account for about 2% of national totals. The two products also disagree slightly about the same year. For 2022/23, the latest year both cover, SAPS's four quarterly figures do not add up to its own annual figure for 7,550 of 38,346 station-category rows. Most differ by a few crimes and most categories by under 2% nationally, though for stock-theft the annual figure is about 7% lower. We use the quarterly figures wherever all four quarters exist, so the step between 2018/19 and 2019/20 carries this difference as well as the five extra categories. SAPS’s annual tables also contain seven entries of −1, later corrections cancelling an earlier count. We show them as published: in five precinct-years (Clarens and Storms River 2013/14, Seven Fountains 2016/17, Lady Grey and Peddie 2017/18) that category reads −1 and the totals include it, so they equal SAPS’s own subtotals; the other two fall in years we take from the quarterly figures. SAPS has not so far changed a figure after publishing it; a check fails if it ever does, and any revision will be listed in our corrections below. Where SAPS has not yet published all quarters for a financial year, totals cover only the available quarters. Comparisons vs the prior year then use the same quarters of that year (Apr–Jun 2026 vs Apr–Jun 2025, for example) — never a partial year against a full one, and never a scaled-up estimate. Charts and stat cards clearly label incomplete years.
Where does population data come from?
Per-capita crime rates require population data. We use two different official Census 2022 sources:
| Scope | Source | Accuracy |
|---|---|---|
| City of Cape Town (63 precincts) | CoCT Census 2022 Precinct Profiles | Precinct-level |
| All other precincts | Stats SA Census 2022 Municipal Factsheet | Municipality-level |
Why per-capita rates are not on precinct pages
Per-capita rates are not displayed on individual precinct pages because only 63 out of over 1,150 precincts have accurate precinct-level population data. Per-capita analysis is available on the Western Cape Insights page, scoped to the 63 City of Cape Town precincts. Neither source accounts for population changes since 2022, daytime populations, or seasonal shifts in tourist areas. Municipal population figures were sourced from citypopulation.de (aggregating Stats SA Census 2022 data).
How do we map suburbs to police stations?
Our suburb-to-precinct mapping was originally compiled from community sources — Community Policing Forum websites, municipal GIS portals and SAPS documentation. Since August 2026 it is checked against the official SAPS station catchment polygons published at saps.gov.za/services/boundary.php. 2,479 suburbs are now boundary-confirmed — their location falls inside the catchment of the station we publish them under — and 89 were corrected where it did not (see the corrections logged below). A further 344 suburbs have no official coordinates we could obtain, so the question cannot be asked of them; they are reported as unverified rather than assumed correct. The remaining 330 are flagged for review: a boundary disagreement is a candidate, not proof of error — the same suburb name often appears in several places, and our review list runs at roughly 75% precision, so each row is corroborated against a second official dataset before anything is changed. We welcome corrections — email us at [email protected].
Where new suburb pages come from, station renaming, and coverage by province
Where new suburb pages come from. Since August 2026 we also add suburbs the other way round — starting from official geography rather than from a community source. Statistics South Africa's Census 2011 sub-place layer is the most recent official, name-bearing, suburb-level map of South Africa that the state publishes; Census 2022 sub-place geography has not been released. Where a sub-place lies inside a single SAPS station catchment — both by area and at its own representative point — the place and the station are known without inference, so the page can be created directly. 500 KwaZulu-Natal suburb pages were created this way on 9 August 2026. They are marked boundary-derived in our published provenance data, which is a stronger claim than most of the catalogue carries, not a weaker one: nobody guessed at them. Sub-places that straddle two stations, that duplicate a place we already publish, or that sit anywhere a police station exists in the crime data but not yet in the boundary map, were all excluded rather than approximated.
Station renaming: SAPS has recently renamed many police stations across the country (e.g. Grahamstown to Makhanda, Queenstown to Komani, Aliwal North to Maletswai). We map suburbs to the current official SAPS station names as they appear in quarterly crime statistics releases. Some stations have limited suburb coverage in our data — particularly in the Eastern Cape — because the renaming makes it harder to match historical mapping data to current station names.
Coverage: Suburb coverage varies by province. City of Cape Town precincts have the most detailed suburb mappings (5-15 suburbs per precinct). Rural and recently renamed stations may only show the station name itself as a single suburb. In all cases, the underlying crime data for the precinct is complete — only the suburb name mapping may be limited.
Which SAPS stations are not on the site?
Each SAPS quarterly release lists a small number of stations SafeSuburb does not publish a page for. As of the Q1 2026/27 data that is 32 stations, in two groups. Twenty-seven are pre-rename names. When SAPS renames a station it keeps reporting the old name as a separate row. We publish only the current name — Grahamstown appears as Makhanda, Queenstown as Komani, Uitenhage as Kariega — so the old name gets no page of its own. One station carries two old names: SAPS renamed Barkly East to Ekhephinit in its Q4 2025/26 release and respelled it Ekhephini in Q1 2026/27. Their figures are not discarded: the pre-rename years are merged onto the current station, as described above. Excluding the old row prevents the same station being counted twice. Five are genuinely excluded from every site-wide figure — volume tiers, trends, medians, category totals and all pages. Two report no crime at all in any quarter (Koopmansfontein and Weza); Tafalehashe is a new Cape Town station whose first figures appeared in the Q1 2026/27 release, held back until SAPS publishes its boundary so its suburbs can be located; and two are ports of entry serving no residential population, covered immediately below. Katkop and Dingleton, listed here until October 2026, are pre-rename names: SAPS publishes their records as Ngqayi and Siyathemba.
Renamed stations, ports of entry, and which precincts site-wide figures cover
Renamed stations — full history restored. When SAPS renames a station it reports the old and new names as separate rows, and the earlier years sit under the old name. Those years are now merged onto the current station, so a renamed precinct shows its complete record rather than starting at the rename date. Makhanda, for example, now shows all 13 financial years from 2013/14, including the years recorded as "Grahamstown". This covers 26 stations (27 pre-rename names, since Barkly East’s first new spelling was itself replaced). Twenty were verified against gazette or press records; six more — East London as Kugompo, Graaff-Reinet as Robert Sobukwe, Aberdeen as Xamdeboo, Barkly East as Ekhephini (first published as Ekhephinit), Katkop as Ngqayi and Dingleton as Siyathemba — were confirmed from the figures themselves, because SAPS republishes the earlier quarters under the new name and the two match exactly where they overlap. See the corrections logged below. Where a year exists under both names, the current station's own figure is kept.
Ports of entry. We also exclude dedicated port-of-entry stations that serve no residential population — chiefly King Shaka International Airport and Maydon Wharf (Durban harbour). Because SafeSuburb is about the areas people live in, crime recorded at an airport or harbour terminal would be misleading in a residential-safety context. This means our national totals sit about 0.03% below SAPS's all-stations national figure (roughly 528 of ~1.85 million reported crimes in the 2025/26 financial year). The figure most often quoted — the national murder count — is almost unaffected (these stations recorded no murders in 2025/26, and only a handful in other periods). Note: OR Tambo International Airport is included, because its precinct also serves real residential suburbs (e.g. Bonaero Park). The same exclusion applies to the interactive crime map — its national tallies are independently verified against SAPS's raw published figures and sit a few dozen crimes below SAPS's own national total per category. The gap is mostly theft, not drug crime: summed across the two stations for the 2025/26 financial year, All theft not mentioned elsewhere (about 33%) and Theft out of or from motor vehicle (about 20%) together make up more than half of it, with Commercial crime third (about 15%) and drug-related crime fourth (about 8%).
Every site-wide computed figure — volume tiers, trends, medians, and aggregate totals — is calculated over the 1,169 precincts SafeSuburb publishes as of the Q1 2026/27 data, not the full SAPS station list. This keeps every ranking and comparison scoped to areas you can actually look up on this site.
Additionally, some stations show extreme jumps vs the prior year (>200%) in their first years of data because they were newly established or had boundary changes. These stations are included on the site but their early-year data should be interpreted with caution: Kamhlushwa and Phola (Mpumalanga), Mokopane (Limpopo, renamed from Potgietersrus), Mareetsane (North West), Makhaza and Samora Machel (Western Cape).
How aggravated robbery is counted
SAPS publishes Carjacking, Truck hijacking, Cash-in-transit robbery, Bank robbery, and robbery at residential and non-residential premises both as standalone figures and as components of the headline Robbery with aggravating circumstances category. To avoid double-counting, every total, trend and comparison on this site uses Robbery with aggravating circumstances as a single category. The sub-types are never added on top of it.
How the sub-types appear on precinct pages
Precinct pages show these six sub-types as an indented breakdown directly under the aggravated-robbery row, for the financial years SAPS reports them (currently every year we publish, 2013-2014 onward). This lets you see, for example, how many of a precinct's reported aggravated robberies were carjackings, without changing what counts toward the total. The six sub-types will not sum to the aggravated-robbery figure above them: that category also includes street and other aggravated robbery that SAPS does not sub-classify, so the components are always a partial view of the whole. The Hijacking page aggregates carjacking, truck hijacking and cash-in-transit robbery nationally and per province; kidnapping and murder-rate have their own dedicated pages too, linked from Crime by category.
Rates per 100,000: the murder rate and the City of Cape Town
Every other page on this site shows raw crime counts, with no population adjustment, with two exceptions. The first is the Murder rate page, which shows murders per 100,000 people at national and province level. Rate = SAPS murders in the latest complete financial year, divided by the population estimate for that area, times 100,000. Populations come from the Stats SA Ward-level Small Area Population Estimates 2022 (published November 2025), summed up from ward level to national and province totals. The multi-year rate trend on that page holds population at this same 2022 estimate for every year shown, because no matching official estimate exists for other years. Rates for years far from 2022 are therefore approximate, more so the further back they go. The second exception: the City of Cape Town page shows all reported crimes per 100,000 residents for the latest complete year: the SAPS counts of its 63 precincts divided by their Census 2022 populations, the only precincts for which we hold a precinct-level population (see "Per-capita rates" above). It is our calculation, not a SAPS figure.
Why there is no murder rate per precinct
Why not a rate per precinct? We tested allocating the same ward-level population data down to individual SAPS precincts, area-weighted by the overlap between ward and precinct boundaries, then checked the result against the 63 City of Cape Town precincts that do have real precinct-level Census 2022 population. Against a pre-registered accuracy gate of 10%, the allocation missed by a median of 13.45% (worst case 685.4%, at Table Bay Harbour). The error traces to the allocation's uniform-density assumption: it works well for precincts that sit fully inside one or two wards, but fails where a precinct shares a ward with a mountain, harbour or other largely uninhabited area. Because the method failed its own gate, we did not wire it into the site. Precinct and suburb pages continue to show raw counts only, with no per-capita rate, until a precinct-level population source clears that bar.
How the suburbs-ranked pages rank
City ranking pages such as Cape Town suburbs ranked answer a question people actually search, but they do not rank suburbs as safe or unsafe. Each page contains four factual rankings: most improved and fastest rising order precincts by their five-year change in total recorded crime, and lowest and highest recorded volume order them by raw counts in the latest published period (Apr–Jun 2026), shown together with the province-relative volume tier. Where a page title poses a question like "safest suburbs?", the question is the search query, and the page answers it with these recorded-crime rankings and their limits, not with a safety verdict.
Caveats that apply to ranking pages
The usual caveats apply with full force on ranking pages, because ranking amplifies them: raw counts are not population-adjusted, so a small precinct can sit low on the volume table while having more crime per resident than a large one; five-year trends compare against a fixed baseline year and can swing on a single unusual year in small precincts; and all figures are reported crime for the whole precinct, not the individual suburb. The rankings cover the precincts SafeSuburb publishes, ordered by SAPS figures as published, nothing more.
What have we corrected?
Every material correction to how we process SAPS data is logged here, newest last. Click an entry for the full account — what was wrong, why our checks missed it, and what changed. In every case SAPS's own published figures were unaffected; these concern how we processed or attributed them.
May 2026 — three SAPS categories restored to totals.
Between March and May 2026, three reported-crime categories — Commercial crime, All theft not mentioned elsewhere, and Sexual offences detected as a result of police action — were unintentionally excluded from precinct totals due to a processing error on our side (they were mistakenly treated as duplicate subtotal rows). This understated the totals shown on precinct pages by roughly 20% on average, with a larger effect on business-district and commercial precincts. We corrected it on 29 May 2026: all totals, trends vs the prior year, and category breakdowns now reflect the complete SAPS station-level category set. SAPS's published figures were never affected — this was solely an error in how we processed them. See our Disclaimer regarding data accuracy and completeness.
May 2026 — robbery sub-types no longer double-counted.
SAPS reports carjacking, truck hijacking, cash-in-transit robbery, bank robbery, and house/business robbery both individually and within the headline Robbery with aggravating circumstances category. We had been adding both, which overstated totals by roughly 3% on average. We now count aggravated robbery once and treat those as a breakdown within it (see "How aggravated robbery is counted" above). As with the categories above, SAPS's published figures were unaffected — this was solely a processing error on our side.
July 2026 — corrected an inaccurate statement about renamed stations.
This page previously stated that where SAPS renames a station, "the historical record continues under the new name". That was not correct. When a station is renamed, SAPS reports the old and new names as separate rows, and our process excluded the old row — so the earlier years were dropped rather than carried forward. Twenty Eastern Cape precincts consequently showed a shortened history until we restored it, as described below. We found this on 29 July 2026 while reviewing an unrelated feature, and corrected the statement the same day. Why our checks did not catch it: our automated data tests verify internal consistency — that category counts sum to the totals we publish, that no precinct is orphaned, and that the percentage changes vs the prior year are arithmetically right. A precinct with a five-year history satisfies every one of those tests, because the missing years are absent rather than wrong. Nothing compared the length of each precinct's record against the SAPS source. We have since added that comparison as an automated check, and on 29 July 2026 we restored the missing years: 20 renamed stations now carry their pre-rename history, recovering 160 precinct-years of record. SAPS's published figures were never affected — this concerned which of them we carried forward.
July 2026 — volume tiers corrected for 53 precincts to use the published-precinct set.
Volume tier quintiles for 53 precincts, mostly in the Eastern Cape, had previously been calculated against a station set that included the unpublished stations described in "Excluded stations" above. We corrected this on 16 July 2026 so quintiles are computed over the published precincts only, consistent with the rest of this page. SAPS's published figures were unaffected — this was solely a computation-scope error on our side.
August 2026 — 58 suburbs were showing another station's crime figures.
Our suburb-to-precinct mapping was inferred from community sources and had never been checked against an authoritative boundary, because until August 2026 we had not obtained one. When we did, 58 suburbs turned out to sit inside a different station's catchment from the one we published them under — so they showed that station's crime figures instead of their own. The error was systematic rather than random: suburbs with their own police station were routed to the main town station, so the effect fell along township and town-centre lines. Ikwezi, for example, showed Mthatha's 4,672 crimes rather than Ngangelizwe's 991. We corrected all 58 on 3 August 2026, each with a redirect from the old address. Why our checks did not catch it: a suburb mapped to the wrong station is perfectly self-consistent — it has a real precinct, real figures and a working page — so there was nothing internally inconsistent to detect. The error was in the correspondence to reality, which no internal check can see. What we changed: every build now verifies each located suburb against the official SAPS polygons and fails if any mapping drifts. Corrections are only applied when a second, independent government dataset agrees, because the boundary comparison alone is right about three times in four. SAPS's published figures were never affected — this concerned which station's figures we showed you.
August 2026 — Bloemfontein CBD moved from Mangaung to Park Road.
The Bloemfontein CBD page published the Mangaung station's figures, 3,205 crimes in 2025/26. Two official sources show that station does not cover the CBD at all: overlaying the Statistics South Africa Census 2011 sub-place "Bloemfontein Central" on the official SAPS station boundaries puts 84.9% of it inside Park Road and 15.1% inside Navalsig, with no part of it inside Mangaung, whose nearest boundary is about 2.2 km away. The page now shows Park Road's figures, 8,726 crimes in 2025/26, so the number on that page has gone up. The old address redirects to the new one. This suburb had never been checkable before, because our slug says "CBD" while the census layer calls the same place "Central", so the name match missed it. SAPS's published figures were never affected. This concerned which station's figures we showed you.
August 2026 — one Bloemfontein city centre, published as two pages.
We were publishing both a "Bloemfontein CBD" page and a "Bloemfontein Central" page for the same physical place, and they showed different crime figures: 8,726 crimes for 2025/26 on one and 3,205 on the other, a difference of 2.72 times. The Census 2011 sub-place layer holds a single polygon for the Bloemfontein city centre, named "Bloemfontein Central", and both of our pages had been located from that one polygon, at the same point. There is no separate "Bloemfontein CBD" area in the census layer, or anywhere else we could find: Wikipedia's article on Bloemfontein Central opens by calling it Bloemfontein CBD, and the area it gives, 2.58 km², is the area of that polygon. On 9 August 2026 we resolved the two into one page, at Bloemfontein CBD, which carries the corrected Park Road figures. The Bloemfontein Central address redirects there. We kept the "CBD" name because that is what people search for: over the 90 days to 9 August, Google showed our pages 58 times for "bloemfontein cbd" and twice for "bloemfontein central". Why our checks did not catch it: two pages for one place are individually valid, and the rules we use to find duplicate suburb names compare spelling. "CBD" and "Central" mean the same thing to a reader and share no letters, so no spelling rule could pair them. What we changed: we now also treat two suburbs located at the same census point as a duplicate candidate, which finds this case regardless of what the two are called. SAPS's published figures were never affected.
August 2026 — eight pages showed a partial year labelled "Full year".
In its Q4 2025/26 release SAPS renamed four Eastern Cape stations: Aberdeen to Xamdeboo, Barkly East to Ekhephinit, East London to Kugompo, and Graaff-Reinet to Robert Sobukwe. The first nine months of 2025/26 are reported under the old name and the last three months under the new one, so we were publishing each station as two pages, each holding part of the year, and both marked complete. The East London page showed 4,063 crimes for 2025/26 when the true full-year figure is 5,556, an understatement of 27%, and a change vs the prior year of −7.9% when the true change is −3.7%. Aberdeen showed 270 against 342, Barkly East 351 against 484, Graaff-Reinet 1,975 against 2,602. Thirty-two precinct-years were affected in total, going back to 2021/22 on the new-name pages. On 9 August 2026 we merged each pair into a single page under the name SAPS now uses, carrying the full thirteen-year history, and the old addresses redirect to it. Why our checks did not catch it: the totals were correct arithmetic over the months we had — the categories summed, the percentages were right, nothing was inconsistent. The fault was that our processing counted how many quarters the province had published rather than how many that station had, so every precinct claimed a complete year whether or not it had one, and the test meant to catch this compared that count against a flag derived from the same count. What we changed: a year is now counted from the source columns actually read for that station, the build fails outright if any year claims to be complete without four of them, and a separate check confirms no page can print "Full year" over an incomplete one. We also added a way to confirm a rename from the figures themselves: SAPS republishes the earlier quarters under the new name, so the two names match exactly where they overlap — all four pairs matched on every category in two separate financial years. SAPS's published figures were never affected; this concerned how we assembled them into a year.
August 2026 — twenty renamed stations understated two early years.
SAPS publishes the same crime data twice: a quarterly series with 30 categories and an annual series with 25. For the twenty Eastern Cape stations whose pre-rename history we merged in July 2026, we had taken 2019/20 and 2020/21 from the annual series, although the quarterly series carries both years in full under the old name. Those forty precinct-years were therefore short by the five categories the annual series omits. MaXesibeni's 2019/20 showed 1,224 against a true 1,411; most were understated by about 3%, the largest by 15%. We corrected this on 9 August 2026: a pre-rename year now comes from the quarterly series whenever all four of its quarters exist, and the annual series is used only for 2013/14 to 2018/19, which the quarterly series does not reach. Why our checks did not catch it: the check we added in July asks whether a station's record starts as early as the source allows, and these records did — the years were present, just assembled from the thinner of the two sources. SAPS's published figures were never affected.
August 2026 — one North Riding suburb, published as two pages.
We were publishing both a "North Riding" page and a "Northriding" page for the same physical suburb in northern Johannesburg, and they showed different crime figures: 7,344 crimes for 2025/26 on the Honeydew page and 3,880 on the Randburg page, a difference of 1.89 times. The two are the same place spelled two ways: both of our pages had been located from a single Census 2011 sub-place, "North Riding", at the identical point, and Wikipedia's "Northriding" article uses both spellings for one suburb of Randburg and gives its area as 2.53 km², which matches that census polygon. Overlaying the official SAPS station boundaries showed the Randburg page was the wrong one: Randburg station does not cover any part of North Riding, whose nearest Randburg boundary is about 1.2 km away, while Honeydew covers the largest share and holds two of the three official reference points. On 10 August 2026 we resolved the two into one page, at North Riding, which carries the correct Honeydew figures. The Northriding address redirects there. Why our checks did not catch it: two pages for one place are each individually valid, and the rule that flags two suburbs sharing one census point had recorded this pair but waits for a second official source before merging — the SAPS boundary overlay was that source. SAPS's published figures were never affected.
September 2026 — 14 towns and suburbs were showing another station's crime figures.
A reader reported that Strand — a town with its own police station — was published under Somerset West's precinct, showing Somerset West's figures by default. They were right. Reviewing every suburb with the same shape in our data surfaced 13 more, corrected the same week: Whittlesea, Sada, Zwelitsha, Dutywa, Idutywa, Fort Beaufort, KwaMaqoma, Cradock, Lingelihle, Michausdal (Eastern Cape), Silverton and Mabopane (Gauteng), and Bulwer (KwaZulu-Natal). Three causes: placeholder entries in our original mapping that were never sourced; SAPS station renames hiding the right station (Fort Beaufort's station is now KwaMaqoma; Cradock's is Nxuba; the "James Calata" station our data pointed to is the renamed Jamestown, ~100 km away); and one name collision (the Harry Gwala town of Bulwer vs the Bulwer area of Durban's Berea). Four pages also carried the wrong district as a result. Why our checks did not catch it: the boundary comparison had flagged most of these — but as rows in a large review list with no process consuming it. A flag nobody reads is not a check. What we changed: every corrected page redirects from its old address; each correction was applied only after the SAPS station directory independently confirmed the right station; and the review list is now triaged, with the remaining flagged rows documented rather than silently pending. Each affected page previously showed a real station's genuine SAPS figures — just not the station that serves that suburb. One area aggregate changed as a result: while Samora Machel's only suburb was mapped to Philippi, the Samora Machel precinct had silently dropped out of the Cape Flats regional total; it is now included (23 → 24 precincts). No precinct, district, province or national figure changed — every one reproduces from the raw SAPS cells before and after, and we verified that directly.
September 2026 — "nearby precincts" were the district's lowest-crime precincts.
The block headed "Compare with nearby areas" on precinct and suburb pages listed the six precincts in the same SAPS district with the fewest reported crimes. It said so ("sorted by total reported crimes, lowest first"), but the selection itself was a ranking, and in large rural districts the six were often nowhere near. Since 27 September 2026 the block lists the precincts whose official SAPS station boundaries share a border with this one, in alphabetical order, including across district and province lines. SAPS's published figures were never affected — this concerned which neighbours we showed you.
September 2026 — two station contact cards showed another station's details.
The Take Action contact directory, added on 26 September 2026, showed the wrong station for two precincts: Philippi displayed Philippi East's phone, email and address, and Sunrise View (Free State) displayed a station in De Aar, 402 km away. Both came from name matching against the SAPS contact listing — "Philippi" matched "Philippi-East", and "Sunrise View" matched "Sunrise" in another province. We removed both cards on 27 September 2026 rather than guess, and matching is now limited to the precinct's own province. Why our checks did not catch it: the original checks compared each station's area code and position with its province, and De Aar fell within the tolerance we allowed at the provincial border. What we changed: every build now fails if a station's position is more than 25 km from its own SAPS precinct boundary, or if one SAPS station appears under two precincts. These are contact details only; no crime figures were affected.
October 2026 — the crime map compared three months with a full year.
From 29 August to 4 October 2026 the crime map opened on the 2026/27 financial year, for which SAPS had published only April to June, and compared it with the whole of 2025/26. Three months against twelve made almost every precinct look like it had fallen sharply: 1,168 of 1,169 were coloured "fewer crimes", and Camps Bay, for example, read "114 reported in 2026/27, down 81.2% vs previous year". On a like-for-like basis Camps Bay recorded 606 crimes in 2025/26, down 5.0%, and 114 in April to June 2026 against 111 a year earlier. Precinct and suburb pages were not affected: they already lead with the last complete year and compare a partial year only with the same quarters of the year before. We corrected the map on 4 October 2026: it now shows complete financial years only. Why our checks did not catch it: every number on the map was right for the months it added up, so nothing was internally inconsistent; the error was in which periods were set side by side. What we changed: every build now fails if any comparison we publish moves more than 95% of precincts in the same direction. Real years never do that (the most one-sided, the 2020/21 lockdown, was 86%), while a partial year against a full one moves almost all of them. SAPS's published figures were never affected — this concerned how we compared them.
October 2026 — the murder rate was calculated from three months.
From 29 August to 5 October 2026 the murder rate page divided the murders SAPS recorded in April to June 2026 by the whole population and headed the result "8.7 per 100,000 (2026/27)". A murder rate is an annual figure, so that was about a quarter of the real one: SAPS recorded 23,096 murders in 2025/26, the latest complete financial year, which is 37.2 per 100,000. The province rates had the same fault. Several other page titles also put a three-month count next to a bare financial-year label, such as "Kidnapping in South Africa: 4,636 Cases (2026/27)", and the "Most Improved Areas" titles did the same. The figures in the body of those pages were already labelled April to June 2026. We corrected these on 5 October 2026. The murder rate now uses the last complete financial year, with the latest quarter shown on its own line, and the other titles now name the months they cover. Why our checks did not catch it: the October map correction above covered comparisons, but these were labels, and each number was right for the months it added up. What we changed: our pre-release test of the live site now fails any page whose title names a financial year that is still in progress without saying which quarters it covers. SAPS's published figures were never affected — this concerned how we labelled them.
October 2026 — region pages and five-year changes used part of a year.
From 29 August to 7 October 2026 the five region pages compared crime in April to June 2026 with the whole of 2018/19, and said every region was 72% to 82% below its pre-COVID level. On complete years the change from 2018/19 to 2025/26 is: Tembisa 13.7% above (shown as 72.5% below), Bloemfontein 4.1% above (shown as 73.7% below), Soweto 19.6% below (shown as 82.3% below), Cape Flats 6.4% below (77.7%) and Mdantsane 0.5% below (79.0%). These include stations opened since 2018/19 in each region's current total, because their areas were part of other stations then. Separately, the five-year change on trends and insights pages ended on the year in progress, multiplying its three published months by four; Ngqayi showed 381 → 216 (−43.3%) where its complete years run 381 → 334 (−12.3%). (Ngqayi's earlier history, published under its old name Katkop, was merged in on 10 October 2026, so its five-year change is now 349 → 334, −4.3%.) Five-year changes now run from 2018/19 to the latest complete year, and only where that comparison holds (1,122 of the 1,169 precincts). The others show no five-year figure: stations that opened in 2018/19 or later, and stations that appear to have lost part of their area when a neighbouring station opened (their total fell, across the opening, by 0.4 to 2 times the new station's first full year; for example Randfontein when Mohlakeng opened, and Zebediela when Moletlane did). Some of the latter may be coincidences; we leave a figure out rather than risk publishing a boundary change as a change in crime. Precinct and suburb pages were not affected. Why our checks did not catch it: each figure was arithmetically consistent with the totals it used; the error was which periods those totals covered. What we changed: both comparisons now use complete financial years only, and every build recomputes all 1,169 five-year changes and every region comparison from the per-precinct figures and fails on any difference. SAPS's published figures were never affected — this concerned how we compared them.
October 2026 — insights and trends pages averaged percentages and ranked small numbers.
Until 10 October 2026, the district and provincial "average trend" on district insights pages, and each province's "avg trend" on the national trends page, were averages of individual stations' percentage changes. An average of percentages lets a few tiny stations outweigh large ones. Pixley ka Seme showed +25.0% although its combined total went from 1,644 to 1,643 (−0.1%). Gauteng and KwaZulu-Natal showed small rises when their totals had fallen 0.2%. These figures are now the change in the combined total of every station in the area, including stations opened in the last year, whose crimes were in their neighbours' earlier totals. On province insights pages, the "low-crime areas worsening" list and the burglary-and-robbery list ranked percentages on very small numbers (Vanderkloof's "+500%" was 2 crimes rising to 12). The burglary-and-robbery list also included stations whose boundaries changed after 2018/19. Both lists now follow the small-numbers rule above and the five-year comparability rule. Multi-year streaks now leave out stations whose area changed, end at any year within ±2%, and do not count steps from fewer than 50 crimes (one insights page showed Tuinplaas rising for 6 years; by these rules it is 3). Lists of the biggest one-year movers leave out stations next to a newly opened one (Bloemspruit's −35.2% was area moving to Sonskyn), and "stable" counts no longer include stations with no earlier figure. Why our checks did not catch it: each figure was the correct average of the numbers it used; the error was in what was averaged. What we changed: every build now recomputes these lists from the per-precinct figures, and the staging test recomputes every district, province and national total change shown, failing on any difference. The same small-numbers rule now also applies to the violent, property, murder and other cards on suburb pages and to compare pages, which had shown percentages on any earlier figure: Loeriesfontein's murder card read "↓ 100%" for 1 murder falling to none, and Brandvlei was shown "↑ 175%" for 8 crimes rising to 22. Separately, two renamed stations had been treated as new: SAPS publishes Katkop's history under the name Ngqayi and Dingleton's under Siyathemba, with every shared figure identical, and its boundary map carries only the new names. Treating them as new left John Taolo Gaetsewe's 2019/20-to-2025/26 change at +7.8% instead of −1.9%, and wrongly marked two neighbouring stations, Kathu and Sulenkama, as having lost area. Both histories are now merged. SAPS's published figures were never affected — this concerned how we summarised them.
October 2026 — search-result descriptions named the wrong year.
From 29 August to 24 October 2026 the short descriptions search engines show under our suburb and precinct pages gave a full year's total (April 2025 to March 2026) and then said "Latest 2026/27 SAPS data" — the financial year that had only one quarter published. The figure was right; the year named beside it was not. Crime-category pages described a three-month total (April to June 2026) as "2026/27 SAPS data", which reads as a full year. About 4,300 suburb and precinct pages were affected, as well as the crime-category pages. The pages themselves always labelled their figures correctly. Why our checks did not catch it: our period checks read page titles and visible text, not the meta description, which only search engines display. What we changed: every description now names the period of the figure it states — 2025/26 on suburb and precinct pages, the month range for quarter totals — and the staging check reads every description and fails if a figure sits beside the in-progress year without its months. SAPS's published figures were never affected.
October 2026 — seven figures and labels corrected after an independent review.
A hostile review of the site on 24 October 2026 found seven places where a figure, a selection or its label was wrong, all corrected the same day. (1) The year table on the murder-rate page still gave a rate for April–June 2026 (8.7 per 100,000), the figure withdrawn on 5 October; a part year now has no rate. (2) "Most reported crime" on suburb comparison pages only looked at violent and property categories, so for about half of all precincts it missed a larger category such as drug-related crime or other theft; it now uses every category, as precinct pages do. (3) The reported-crime page said survey reporting rates ranged from 41.1%; that was the lowest household crime, and theft of personal property was reported 31.0% of the time. (4) This page said the small-numbers rule affected 46 precincts, counted on the wrong year; it is 45 on the full-year comparison and 222 on the latest-quarter line. (5) The neighbouring-precinct cards show April–June figures but named no period except in a tooltip; the period is now stated. (6) The Western Cape insights page described its precinct groups as a K-means clustering of per-capita rates and called one group "assault-dominant, mostly smaller towns". The groups come from fixed share-of-total rules, and that group is simply the precincts no rule fits; each group is now described by its rule. (7) Province insights picked the largest fall since 2018/19 only among precincts with 50 crimes in both years, a stricter rule than the one stated here, so it named a smaller fall than precinct pages show (Free State: Tierpoort −43.8% rather than Goedemoed −77.8%); it now uses the published rule. Why our checks did not catch them: each was a selection or label, not an arithmetic error, and no check recomputed which item a list should name. What we changed: the staging check now recomputes the largest rise and fall, the most reported crime on comparison pages and the survey range, and fails on a part-year rate or an unlabelled neighbour block. SAPS's published figures were never affected.
October 2026 — an independent recount from SAPS's raw tables found three more faults.
On 24 October 2026 we checked every precinct page against a fresh count built only from SAPS's own tables, sharing no code with the site. It found three faults, all corrected the same day. (1) The "more than 2%" rule for an increase or decrease was applied after rounding the change to one decimal, so six precincts whose full-year change was just over 2% read "stable": Sandton (6,781 to 6,645, a fall of 2.006%), Newark, Clarens, Helpmekaar, Mkhuze and Actonville. The rule now applies to the exact change. (2) Eight precincts with a valid five-year comparison did not show it. Five (OR Tambo International Airport, Johannesburg Central, Balfour, Middelburg in the Eastern Cape and Mpumalanga in KwaZulu-Natal) said instead that they had opened since 2018/19 or lost area, which was not true; their names are abbreviated in SAPS's tables and a name match failed. Three with no change at all (Kabokweni, Ugie, Witpoort) showed nothing, because a change of 0.0% was treated as missing. (3) The national trends page described three stations that recorded no crimes in April–June 2025 as having "no earlier figure". It now says they recorded none. The recount also confirmed five one-crime differences that come from how we read SAPS's −1 entries, now described under "Which years and SAPS sources are covered?" above. What we changed: the staging check now applies the rule to the exact change and fails if a comparable precinct does not show its five-year figure. SAPS's published figures were never affected.
October 2026 — crime-category pages gave percentages on small numbers.
The rule on this page is that no percentage change is shown when the earlier figure is under 50. The national, province and district crime-category pages applied it to their tables but not to their headline sentence, page title or search description. Until 24 October 2026, for example, the Xhariep attempted-murder page said its 35 cases were up 775% on April–June 2025, when the earlier figure was 4. On district pages 39 of 657 were affected. They now say "up" or "down" without a percentage. Separately, several pages said a number of precincts "reported less crime" or "reported more" when the number counted only those whose change was larger than 2% (for example 89 of 200 Eastern Cape precincts, when 97 had any fall); they now say "more than 2% fewer" or "more than 2% more". What we changed: the staging check now fails any category page that shows a percentage change on a base under 50 in its headline, title or description. SAPS's published figures were never affected.
October 2026 — district crime-category charts labelled a quarter as a full year.
The chart on each of the 657 district crime-category pages has two points: April–June 2025 and April–June 2026. Until 25 October 2026 the first was labelled as the whole of 2025/26, so it read as a collapse from a full year to one quarter. Xhariep showed 4 attempted murders for 2025/26 when the full year had 38. The two points are now labelled by the months they cover. What we changed: the staging check now fails a district category chart that names a financial year while that year is in progress. SAPS's published figures were never affected.
October 2026 — two suburb pages said a new station recorded no violent or property crime.
The question "What is the crime rate in …?" on the Sonskyn and Sunrise View suburb pages said that of the station's crimes in 2025/26, "0 were violent (contact) crimes and 0 were property crimes". Sonskyn recorded 611 violent and 127 property crimes, and Sunrise View 104 and 10. Both stations opened in 2025/26, so they have no earlier year, and the sentence took its figures from the comparison with the previous year, which is empty without one. It now uses the year's own totals. The same answer appears in the page's structured data, which search engines and AI assistants read. Found on 25 October 2026 by an independent review of our new figure check. What we changed: a new check recomputes every figure in page titles, descriptions, questions and answers, and structured data from SAPS's own tables, and fails on any sentence with a number it cannot check. SAPS's published figures were never affected.
October 2026 — insights pages: a rounding error, a table that left out small stations, and an overstated test.
A recount of every figure on the insights pages from SAPS's own tables, done while extending our figure check to those pages, found three faults. (1) The "longest sustained rise" callout rounded an already rounded figure, so Limpopo's Mecklenburg read "+10%" a year for an average of 9.5%, and Mpumalanga's Mmametlake "+9%" for 8.5%; the callouts now show one decimal place. (2) The five-year table on district insights pages left out stations whose latest year had fewer than 50 crimes, a stricter rule than the one stated here (a base of 50 in 2018/19), so Xhariep's table missed Goedemoed, down from 72 to 16. The same fault was corrected on province insights pages on 24 October. (3) The Western Cape correlations said all five pairs were significant at p < 0.01; two are not (driving under the influence with serious assault, r = 0.31, and with murder, r = −0.08), and one of them was described as a "moderate link". Pairs that do not pass the test are now marked "not significant". The same section used "assault" for two different SAPS categories and "violent crime" for a narrower group than elsewhere on the page; they are now named. What we changed: the figure check now recomputes every number on the insights pages from SAPS's tables. SAPS's published figures were never affected.
October 2026 — Mangaung's suburb ranking left out its largest five-year fall.
The "largest falls since 2018/19" list on the Mangaung suburbs-ranked page only took stations with at least 50 crimes in both 2018/19 and 2025/26, a stricter rule than the one stated here (a base of 50 in 2018/19). So it left out Van Stadensrus, down from 102 to 47 crimes, a fall of 53.9%, and began with a smaller fall. It now uses the published rule. Of the seven cities with such a ranking, only Mangaung was affected. This is the same fault corrected on province insights pages on 24 October and on district insights pages on 26 October. Found by our figure check, which now covers these pages. SAPS's published figures were never affected.
October 2026 — five old precinct-years were one crime too high.
SAPS’s annual tables contain a few entries of −1, corrections that cancel a crime counted earlier. Our processing read them as 0, so five precinct-years showed one crime more than SAPS’s own subtotal: Clarens 2013/14 (218 instead of 217), Storms River 2013/14 (464 instead of 463), Seven Fountains 2016/17 (55 instead of 54), Lady Grey 2017/18 (292 instead of 291) and Peddie 2017/18 (624 instead of 623). Their contact or property totals and their district totals for those years were one higher too, and the province and national totals one or two higher (Eastern Cape 2017/18 by two, as Lady Grey and Peddie are both in it). We had disclosed this on this page; on 26 October 2026 we started carrying the −1 as published, so every total now equals SAPS’s subtotal. What we changed: a negative entry in a quarterly table now stops the data build instead of being read as 0, and our reconciliation against SAPS’s tables no longer allows any difference for these cells. SAPS’s published figures were never affected.
URL structure
Suburb pages follow the pattern /province/district/precinct/suburb/. When a police station serves a single main town with the same name, the URL will repeat the name (e.g. /hermanus/hermanus/). The first is the precinct (police station), the second is the suburb. The precinct page at /hermanus/ lists all suburbs served by that station.
What if a suburb spans two precincts?
SAPS precinct boundaries don't always follow suburb lines. Across all provinces, 71 suburbs are physically split across two or more police precincts. For these suburbs, we show crime data from all relevant precincts on a single page so you can see the full picture without needing to know which precinct covers your street.
Search results show the volume tier from the primary precinct (listed first alphabetically). The suburb page shows both precincts' crime totals, trends, and breakdowns side by side.
View Western Cape multi-precinct suburbs (19)
| Suburb | Precincts |
|---|---|
| Bayview | Mitchells Plain, Strandfontein |
| Brown's Farm | Nyanga, Philippi |
| Clovelly | Fish Hoek, Kirstenhof |
| Constantia | Dieprivier, Wynberg |
| De Waterkant | Cape Town Central, Sea Point |
| Kenilworth | Claremont, Wynberg |
| Lakeside | Kirstenhof, Muizenberg |
| Lentegeur | Lentegeur, Mitchells Plain |
| Lwandle | Lwandle, Strand |
| Newlands | Claremont, Rondebosch |
| Nomzamo | Lwandle, Strand |
| Observatory | Mowbray, Woodstock |
| Pelican Park | Grassy Park, Samora Machel |
| Philippi | Nyanga, Philippi |
| Plumstead | Dieprivier, Wynberg |
| Rondebosch East | Athlone, Lansdowne, Rondebosch |
| Rugby | Maitland, Milnerton |
| Sarepta | Bellville South, Kuilsrivier |
| Tygerhof | Goodwood, Milnerton |
Contact directory
Where do the "Take Action" contacts come from?
Every suburb page includes a Take Action section with two sets of contact details, sourced from external websites and stored as static JSON on our CDN. These contacts are informational — they are not part of the crime data.
| Source | What it provides | Coverage |
|---|---|---|
| saps.gov.za | Station phone, email, address, GPS, named contacts (Commander, Detectives, Visible Policing) | 1,152 / 1,169 stations |
| municipalities.co.za | Municipality main line, toll-free, website, service department fault lines (Electricity, Water, Roads, Refuse) | 256 / 257 municipalities |
How contacts are verified and refreshed
Contact details are collected by a build-time scraper and validated automatically: each station's area code is cross-checked against its province, its GPS position must lie within 25 km of its own official SAPS precinct boundary, and no SAPS station may appear under two precincts. The SAPS website has known server-side caching issues that can return one station's data when another is requested, so each result's identity is checked after fetching. A result is accepted if its email or address names the station, or, where SAPS abbreviates the name or lists only an officer's email, if its GPS position falls inside that station's own precinct boundary. Where neither holds, we show no station card rather than risk the wrong one. In September 2026 these checks found two precincts showing a neighbouring station's details, Philippi (Philippi East's) and Sunrise View (a De Aar station's); both were removed. Contacts are re-scraped quarterly alongside SAPS crime data updates. The "last verified" date on each suburb page reflects the most recent scrape.
Update Process
When SAPS publishes a new quarterly release:
Questions or corrections?
Questions about our methodology, data sources, or suburb-to-precinct mapping? Found an error?
[email protected]