KRI Playground
The KRI Playground is a visual builder that lets you create and configure Key Risk Indicators using a drag-and-drop pipeline interface. Build your KRI logic visually, see a real-time preview of threshold calculations, and publish when ready.

How It Works
The Playground presents a visual canvas where you build a KRI pipeline:
- Data Source → Define where the KRI gets its data
- Filter → Optional conditions to narrow the dataset
- Aggregation → How to calculate the metric (count, sum, average, etc.)
- Threshold → Define warning and critical threshold levels
- Schedule → How often the KRI should run
Building a KRI
Step 1 — Define the Data Source
Select the data source for your KRI:
| Source Type | Description | Example |
|---|---|---|
| Entity Query | Query audit universe entities | "All business units with risk score > 15" |
| Finding Metric | Based on finding data | "Open critical findings count" |
| Action Plan Metric | Based on remediation data | "Overdue action plans" |
| Custom SQL | Advanced users can write SQL queries | Custom analytical queries |
Step 2 — Set Thresholds
Configure when the KRI should trigger alerts:
| Threshold Type | Description |
|---|---|
| Warning (Amber) | Approaching risk tolerance — investigate |
| Critical (Red) | Exceeds risk tolerance — immediate action required |
| Normal (Green) | Within acceptable range |
The real-time preview shows how current data maps against your thresholds.
Step 3 — Configure Scheduling
| Frequency | Cron Expression | Use Case |
|---|---|---|
| Daily | 0 6 * * * | High-priority operational KRIs |
| Weekly | 0 6 * * 0 | Regular monitoring |
| Monthly | 0 6 1 * * | Strategic KRIs |
| Quarterly | 0 6 1 */3 * | Board-level indicators |
| Custom | User-defined cron | Specific schedules |
Step 4 — Link to Universe
Optionally link the KRI to:
- An Audit Universe Item (
universe_item_id) — the entity being monitored - A Risk Library Item (
risk_library_id) — the risk being tracked
Step 5 — Preview & Validate
The real-time preview panel shows:
- Current calculated value
- Threshold visualization (gauge or chart)
- Historical trend (if data exists)
- Alert status based on current thresholds
Step 6 — Publish
KRIs follow a publish lifecycle:
KRI Fields
| Field | Type | Description |
|---|---|---|
title | String | KRI display name |
description | String | What this KRI measures |
query_definition | String | SQL or logic definition |
threshold_value | Float | Critical threshold |
current_value | Float | Latest computed value |
frequency | String | DAILY, WEEKLY, MONTHLY, QUARTERLY |
category | String | OPERATIONAL, FINANCIAL, COMPLIANCE, STRATEGIC |
kri_status | String | DRAFT, VALIDATED, PUBLISHED, ARCHIVED |
is_active | Boolean | Whether actively monitored |
pipeline_definition | JSON | Visual pipeline configuration |
cron_expression | String | Custom schedule (optional) |
last_run_at | DateTime | Last execution time |
next_run_at | DateTime | Next scheduled run |
Permissions
| Action | QA/CA | Manager | CAE | Admin |
|---|---|---|---|---|
| Create KRIs in Playground | ✅ | ✅ | ✅ | ✅ |
| Validate KRIs | ✅ | ❌ | ✅ | ❌ |
| Publish KRIs | ❌ | ❌ | ✅ | ✅ |
| Archive KRIs | ❌ | ❌ | ✅ | ✅ |