Every KPI in Delphi knows where it came from. It isn’t just a number on a card — it’s a first-class object with its own history, its own formula, and its own chain of custody back to the raw data. When a number moves, you should be able to ask why and get a straight answer. KPIs in Delphi are built so you can.

A fixture-driven public example command center showing the same KPI and visualization language used in the product.
Define a KPI
A KPI starts with the obvious pieces: a name, a short description, a unit, and whether up or down is the good direction. You then point it at one or more data sources — a dataset field, a connector feed, or a sampled value — and pick how to derive the hero number: latest, sum, average, count, min, or max. You can also pin a target so the sparkline renders a dashed reference line, and a comparison period so the card shows a delta against last week, last quarter, or last year.
Most users don’t hand-author any of this. Ask Delphi in chat to create a KPI and it will wire up the sources, formula, and comparison for you based on the datasets already connected to the command center. See Connecting data for how those datasets get there in the first place.
Lineage and provenance
Every KPI carries a lineage graph — a small DAG that walks from raw sources, through any transforms, to the output value shown on the card. Click the Details button on a KPI and Delphi opens the lineage modal, which shows sources, transforms, and output as three stacked rows so you can trace the number end-to-end in one glance.
This is not a nice-to-have. When a regulator, a board member, or a skeptical colleague asks “where did that figure come from,” the lineage graph is the answer. It’s also what makes KPIs safe to use in reports and briefings: the number and its derivation travel together.
Versioning
KPIs are versioned automatically. The first time you save a KPI it becomes version 1. When you materially change the formula, the sources, or the description, Delphi bumps the version and appends an entry to the computation audit trail with the actor, the timestamp, and what changed.
This means a KPI’s history is a real, inspectable timeline — not a guess. If “recidivism” meant one thing in Q1 and a slightly different thing in Q3, you can see exactly when and why the definition shifted, and who made the call.
Reading the provenance badge
Under the title of every KPI card, you’ll see a small pill: the provenance badge. It shows the source the KPI is reading from and a colored dot indicating freshness. Green means realtime or near-realtime — the number you’re looking at reflects the latest data that’s landed. Yellow means historic, a value derived from a frozen window. Gray means sampled, a representative slice rather than a live feed.
Hover the badge to see when the KPI was last updated, and click it to jump straight into the lineage modal. The badge is the fastest sanity check on any dashboard: if it’s grey when you expected green, you know to investigate before trusting the number in a decision.
Asking Delphi about KPI movement
The most powerful thing you can do with a KPI is ask Delphi why it moved. In chat, try “why did recidivism jump last week?” or “what’s driving the change in average handling time?” Delphi reads the KPI’s lineage, pulls the relevant underlying data, and gives you a grounded explanation instead of a guess.
Because the lineage, versioning, and provenance are all first-class, the agent has real answers to work with — not just the hero number on the card.