1.8 million alerts triaged. Zero known critical misses.

QED built the AI triage layer inside a UK schools safeguarding platform: about 40,000 screen captures a day across 110 schools.

Students working on school devices

0

Known critical misses

No alert later confirmed critical by the client’s auditors was missed in production. The count is checked against auditor decisions, not graded by the system itself.

1.8M+

Alerts triaged in production

Every decision logged and auditable.

42%

Alerts auto-cleared

Cleared with the reasoning attached. Auditor workload fell 24% at launch.

500K+

Benign alerts cleared before review

Clear non-concerns closed before they reached a human queue.

8 min

Processing SLA

About 40,000 captures a day, triaged against an eight-minute end-to-end SLA.

Client

UK safeguarding software vendor, 110 schools

Duration

12+ months to steady-state operation

Team

4 senior engineers

Engagement

Embedded Partnership

Delivery hub

Zagreb & London

QED ran the engagement as an embedded partnership: four senior engineers inside the client’s team, from the first labelling loop through production and into steady-state operation. In production, QED’s triage layer has processed 1.8 million alerts across 110 UK schools, cleared 42% of them automatically with the reasoning attached, and missed no alert the client’s auditors later confirmed as critical.

The auditing bottleneck

UK schools have a statutory duty to monitor what happens on school devices. Safeguarding software raises an alert when a defined concern appears on screen, and the flags come from keyword matching. Keywords cannot read context: a history essay, a chemistry revision page and a genuine crisis can all trip the same phrase.

At 110 schools and roughly 40,000 captures a day, the queue itself becomes the risk. Auditors wading through benign alerts get slower and start to skim, and a genuine concern sits in the same queue as hundreds of harmless captures: games, revision pages, staff messages.

The brief was blunt: cut the queue without missing a single critical incident. A system that buys tidiness by missing things is useless here; the whole point is the alert it must not miss.

Four passes, ordered by cost

Each alert flows through the pipeline until one stage is confident. Cheap, decisive checks run first, so most alerts never reach the expensive ones. There are two ways out: escalate to a human now, or clear with the reasoning attached.

Anonymise

Names and identifiers replaced before any AI reads the text

Every name, email, address and identifier is swapped out before a language model reads a word. Each person becomes a consistent stand-in so the story still makes sense, public figures are kept for context, and the flagged phrase itself is protected even when the text lifted from the screenshot is garbled. Only after this pass does anything leave for a third-party language model.

Nothing leaves this stage identifiable

Reason

A language model with a written checklist

The model works through a checklist for each alert: intent, tone, the evasion slang that keyword lists miss. Anything that reads as a critical concern escalates to a human immediately, reasoning attached, and skips the rest of the pipeline.

Critical concern: escalates now

Look

An image model that reads the screenshot itself

A vision model re-examines the screenshot. Text sees the word “crossbow”; vision sees whether the page is a history lesson or a shop listing. It catches what the extracted text alone cannot.

Visual hit: flagged for review

Sweep

A final rules-based pass

A plain list of high-risk phrases and a strict second read cover everything the earlier stages cleared, so a phrase on that list escalates even if every stage above waved it through.

Everything else: cleared with the reasoning attached

The calls that carried risk

A release that misses one critical case never ships

Before any update goes live, it replays thousands of past, auditor-verified alerts through the real pipeline. One missed critical case blocks the release automatically. That gate holds on the test record rather than the live stream, so production is watched the same way: every auditor decision feeds the next round of tests. The traded cost is deliberate: the system would rather over-flag than under-flag.

Privacy that keeps the signal

The pipeline runs in Google Cloud’s London region. Report images sit behind short-lived links with no long-term copies, and what leaves for a third-party language model has already been anonymised. The anonymiser is built to preserve the evidence the classifier needs.

A deterministic floor under the AI

Underneath the models sits a plain list of high-risk phrases that escalates on its own. If the AI pipeline degrades, misroutes or goes down entirely, the phrases that matter most still reach a human.

Most captures never touch a GPU

The cheapest pass runs first, so expensive hardware only sees what earlier stages could not settle. Vision inference runs on rented spot capacity, two workers sharing each card, scaled up in seconds on live queue depth. Every AI call is individually costed, so the client can see what each decision costs.

The shape repeats outside safeguarding. Any queue where a false negative is catastrophic and false positives drown the humans reads the same: fraud review, content moderation, clinical triage, compliance alerts. The pattern transfers; the numbers have to be earned the same way.

Anyone promising these numbers without the labelling loop is guessing.

What we would tell you before starting

The accuracy is a product of the data loop, not the models. Every auditor decision is stored, every disagreement gets a written reason, and that record becomes the test suite each release must pass; the first months went into building that loop before any modelling. The false positives that remain are stubborn for a good reason: roughly two thirds are staff legitimately discussing safeguarding cases on monitored school devices, exactly the language the system exists to catch, and a category the client’s own policies require a human to clear.

Next step

Discuss a similar programme.

Tell us the outcome you need measured. We’ll be straight about what it takes.

Subscribe to our newsletter.

By submitting your email address, you agree to receive QED monthly newsletter. For more information, please read our privacy policy. You can always withdraw your consent.

Get product updates and news in your inbox. No spam.