Get in touch
All case studies

MOPAC and Croydon CouncilGovernment / Public Safety

One governed view of community safety in London, with every figure traceable

Direct client engagement. A governed community safety intelligence platform for Croydon town centre, delivered for the Mayor's Office for Policing and Crime and Croydon Council's Violence Reduction Network. Eight Council and Metropolitan Police extracts are ingested with provenance into one canonical model, queried only through approved metric definitions, and surfaced through a role-aware application, a governed AI assistant, report generation and an endpoint external AI clients can connect to. Every figure carries its source, its age, its positional uncertainty and its disclosure status.

The problem

MOPAC and Croydon Council needed one intelligence layer across bodies that were reconciling spreadsheets by hand, with analysts spending more time correlating sources than acting on what they found. The harder problem was trust: a community safety platform has to be defensible to a council, a police service and the public at once, which rules out anything that cannot show where a number came from. An inherited prototype had filled gaps with fabricated data, including safe-venue locations that did not exist.

Building it

We deleted the fabricated data rather than labelling it, then rebuilt around provenance. Eight extracts are de-identified inside the source adapter, so identifiers never reach the store, and each object carries provenance, valid time, ingestion time, classification, confidence and an access policy. Every read passes a deny-by-default policy engine and a registry of ten approved metric definitions: the role is checked, the classification is checked, fields the role may not see are dropped, and cells below a small-number threshold are suppressed and reported as suppressed rather than silently omitted. There is no free-form query path anywhere in the system. Two constraints are encoded rather than documented: person-level scoring is a prohibition in the ontology, so the platform cannot compile a version of itself that produces a person-level risk score, and the AI assistant sits outside the governed boundary. It chooses which approved metric to call and writes the prose around the answer; it cannot introduce a figure the metric layer did not compute, and it cannot publish, send or approve anything.

What changed

Policy teams query postcode-level trends on demand instead of waiting for a reporting cycle, and the platform informs funding allocation and community safety strategy across the borough. Analysts get patrol simulation over real geography, where each scenario ships an explicit list of what it cannot tell you, including regression to the mean. Data quality is a surface rather than a footnote: refresh SLA, quarantine counts and geography confidence are shown per source. External assistants reach the same governed metric layer through one approved interface, so the same rules apply whichever client is asking (as of July 2026).

Eight Council and Metropolitan Police sources, one canonical model
Person-level scoring prohibited in the ontology itself
Ten approved metric definitions, no free-form queries anywhere
AI drafts and a named human approves, with a record per read

How a number gets out · the governed read path

More of our work

Let’s talk about
your project.

No pitch. A practical conversation about where AI fits in your operation.