Skip to main content

IDENTITY INTELLIGENCE

Persons & Identity Intelligence

Legacy systems hand you clips. Sentinel hands you patterns. A person is an identity-level record backed by face embeddings (pgvector) — so you can answer who, when, where, and with whom across every camera, not just replay a single tape.

Persons directory with face thumbnails, identity-confidence bands, sighting counts and sparklinesClick to enlarge

An intelligence directory — every record carries an honest read on how well it is known.

512-D
Face embeddings
ArcFace vectors stored as pgvector rows, not loose clips
7 × 24
Pattern-of-life grid
168 weekday-by-hour cells, default 90-day lookback
5 bands
Identity confidence
Identifying → Confirmed, shown honestly on every record
Nightly
Duplicate sweep
kNN clustering feeds a human merge queue at 04:30 UTC

THE DIRECTORY

An intelligence directory, not a face album

The persons directory opens with a clickable KPI strip and a duplicate banner, then a grid of person cards. Every tile is a filter, and every card carries an honest read on how well we actually know that person.

KPI STRIP

Counts you can click

Total, Seen today, Watchlisted, Unidentified and Likely duplicates. Each tile filters the list in place; the duplicates tile routes straight to the merge queue. Each count soft-fails on its own, so a degraded subsystem never blanks the strip.

HONEST CONFIDENCE

Identity-confidence bands

Every card shows one of five honest chips — Identifying (no samples), Few samples (1-2 events), Low confidence (3+ but mean below 0.60), Probable (3+ and 0.60-0.75) and Confirmed (3+ and 0.75+). Sample-volume problems are kept separate from quality problems so operators know which fix to apply.

SORT & FILTER

Org-wide server-side sort

Sort by Recently seen, Most sightings, Recently enrolled or Alphabetical across the whole organisation — not just the visible page. Filter by Watchlisted, Seen today, Unidentified or category (VIP / POI / Employee / Other), with name search that composes with sort.

24-hour activity at a glance

Each card carries a batched 24-hour sparkline, last-seen time with the camera name, a sighting-count badge and a representative face crop — a quick read on tempo before you ever open the profile.

Watchlist signal, surfaced

Persons on the watchlist carry a prominent WATCH pill and a category color stripe, sharing the same colors as the watchlist module so the directory and the watchlist stay visually consistent.

Track on Map

The primary card action traces a person straight into the Command Center, opening their chronological sightings as a path across your camera estate.

THE PROFILE

What you can read off a single person

The person detail page is the densest surface in Sentinel. Below the hero — name, representative crop, and a stat grid of total sightings, cameras, face crops, first and last seen — sit the analytics that turn sightings into behaviour.

PATTERN OF LIFE

7 × 24 heatmap with a regularity score

A weekday-by-hour matrix over a default 90-day window, colour-scaled from quiet to active, with the peak cell outlined ("Peak: Mon at 09:00"). A 0-100 regularity score derived from Shannon entropy tells you how predictable a person is — and is floored to zero below ten sightings so a single hit can never read as "perfectly regular".

Learn more
CO-OCCURRENCE

Who is seen with whom

A network graph built from a camera-and-time self-join (default ±15 minutes, 90 days, top 10 connections) places the subject at the center with their most frequent companions in orbit, edges weighted by encounter count. Click any node to open that person and pivot the investigation. Edges without enrichment are dropped server-side so stale IDs never reach the operator.

Learn more
LOCATION

Location distribution + concentration

A ranked breakdown of which cameras a person appears on, with a concentration score from the top-camera share: Anchored (60%+), Localised (30%+), Selective (15%+) or Highly mobile (under 15%). Queries roll up server-side so a 5,000-camera subject never materialises every row.

MAP & TIMELINE

Movement path & sightings

A MapLibre path connects every sighting with per-marker camera, time and confidence, while all cameras show faintly so absence of presence is informative too. A tracking timeline scrubs the path, and the recent-sightings list filters live when you click a pattern-of-life cell.

DRILL DOWN

Click a cell, filter the evidence

Pattern-of-life isn't a static chart — it's an entry point into the timeline. Selecting a busy cell narrows the recent-sightings list to exactly that weekday and hour, so a habit you spot in the heatmap becomes a list of specific events you can open.

  • Click a heatmap cell to filter sightings to that weekday-and-hour; an amber pill shows the active selection and the list scrolls into view.
  • Click again to clear, or a different cell to swap — with a clear empty state when a quiet hour has no recent sightings.
  • Every recent sighting links to the event with camera, location, confidence and a face-crop fallback, so the trail stays evidence-grade.
  • The regularity and concentration scores give you the headline; the filtered list gives you the proof behind it.
Explore pattern-of-life
Pattern-of-Life 7×24 heatmap with a regularity score and the peak cell outlinedClick to enlarge

Click a busy cell to filter the sightings list to exactly that weekday and hour.

DATA HYGIENE

Duplicate detection, merge and split — kept honest

Identity data drifts: the same person can enrol twice, or two people can blur into one record. Sentinel keeps the directory clean with a nightly sweep that proposes — never decides — and operator-driven merge and split, all audit-logged.

  • A nightly per-organisation kNN sweep over face embeddings clusters likely duplicates with a tunable cosine threshold and union-find grouping.
  • Proposed clusters surface in an amber banner and a side-by-side merge queue — Keep this / Merge, Not the same, or Skip — so a human always makes the call.
  • Merge repoints every event and re-attaches every face embedding to the chosen canonical record; Split peels selected faces into a new person.
  • Every merge, split, rename and decision is written to the per-person audit history with actor and IP — the same accountability trail compliance reviews rely on.
See compliance & audit
Side-by-side duplicate-cluster merge queue with face crops, last-seen and sighting counts per memberClick to enlarge

A nightly sweep proposes likely duplicates; a human always makes the merge call.

ACCOUNTABILITY

Identity intelligence with a paper trail

Building a picture of a person is a serious capability, so the controls around it are first-class. Lawful basis travels with the record and every change is logged.

Lawful basis on the profile

When a person is watchlisted with a lawful basis, the basis, document reference and expiry surface right on the profile as a compliance-at-a-glance signal for the analyst working the case.

Per-person audit history

Create, delete, merge and split actions are colour-coded and stamped with the actor — name, email or "system" — plus IP address and a relative timestamp, scoped to that single person record.

Subject-rights ready

Sightings, watchlist entries, the person record and face crops can be exported for a data-subject request, and erasure deletes the embeddings and person row and nullifies the linked events.

See identity intelligence on your own footage

The persons directory, pattern-of-life, co-occurrence and movement analytics are the Sentinel capability legacy CCTV simply doesn't have. Book a demo and watch clips become patterns.