Performance Indicators
Performance Indicators are quantifiable metrics that evaluate the success, efficiency, or impact of strategic responses. They close the feedback loop in the Strategic Response Model, enabling organizations to measure whether responses achieved their intended outcomes.
Schema: performance-indicator.schema.json
Specification: JSON Schema Draft-07
Overview
What are Performance Indicators?
In the SRM context, performance indicators are specific, measurable criteria that:
- Define what success looks like for a strategic response
- Provide quantifiable targets against baselines
- Enable ongoing monitoring and adjustment
- Support governance reviews and audits
A strategic response or strategic intent lists the indicators that measure it in its performanceIndicatorReferences, using each indicator's performanceIndicatorID. An indicator records the strategic elements it supports in strategicAlignments.
The Measurement Loop
Indicator Types
The schema has no indicator-type field: the classification below is guidance for choosing a balanced set of indicators. Early signals are recorded in an indicator's leadingIndicators, and when results are expected to appear in its outcomeTimeframes.
Outcome Indicators
Measure the ultimate result or impact of the response.
| Type | Description | Example |
|---|---|---|
| Effectiveness | Degree to which objectives are achieved | Compliance rate = 100% |
| Impact | Broader organizational effect | Customer satisfaction +15pts |
| Value | Business value delivered | Revenue increase $2M |
Process Indicators
Measure the execution and delivery of the response.
| Type | Description | Example |
|---|---|---|
| Efficiency | Resource utilization | Cost per transaction -20% |
| Timeliness | Schedule adherence | Milestones on-time 90% |
| Quality | Output quality | Defect rate <2% |
Leading Indicators
Predict future performance or outcomes.
| Type | Description | Example |
|---|---|---|
| Predictive | Early warning signals | Pipeline coverage 3x |
| Adoption | Uptake and usage | User adoption 75% |
| Readiness | Preparation state | Training completion 100% |
Lagging Indicators
Confirm outcomes after the fact.
| Type | Description | Example |
|---|---|---|
| Result | Final outcome achieved | Project delivered |
| Retrospective | Post-implementation review | Benefits realized 85% |
Indicator Attributes
Core Attributes
| Attribute | Type | Required | Description |
|---|---|---|---|
performanceIndicatorID | String | ✓ | A unique identifier for the performance indicator |
title | String | ✓ | The name or label of the performance indicator |
description | String | ✓ | A brief explanation of what the indicator measures |
owner | String | The person or role responsible for this indicator | |
orgUnitTitle | String | The organizational unit to which this indicator belongs | |
orgUnitID | String | ID of the organization unit named in orgUnitTitle | |
version | String | Version of this indicator definition | |
lastUpdated | DateTime | When this indicator was last updated |
Measurement Attributes
| Attribute | Type | Required | Description |
|---|---|---|---|
unitOfMeasure | String | The unit in which performance is measured (e.g. %, $AUD) | |
baselineValue | Number | The starting reference point for performance | |
currentValue | Number | The current measured value (actual performance) | |
targetValue | Number | The target or goal value to be achieved | |
variance | Number | The calculated difference between currentValue and targetValue | |
variancePercentage | Number | The percentage difference from the target value | |
thresholdType | Enum | General threshold logic, e.g. higher-is-better or lower-is-better | |
thresholds | Array[Object] | Detailed list of threshold rules | |
evaluativeModel | Object | Describes a model used to analyse or interpret performance trends | |
measurement | Object | Objective, subjective, or proxy measurement approaches |
Timing Attributes
| Attribute | Type | Required | Description |
|---|---|---|---|
targetDate | Date | The date by which the target should be achieved | |
validFrom | Date | Start date of the performance measurement period | |
validTo | Date | End date of the performance measurement period | |
aggregationPeriod | Enum | The timeframe used to aggregate performance data (shared frequency list) | |
assessmentFrequency | String | How often the performance is assessed (e.g. weekly, monthly) | |
statusHistory | Array[Object] | Historical performance records for trend analysis |
Data and Relationship Attributes
| Attribute | Type | Required | Description |
|---|---|---|---|
dataSource | String | Source system or method used to collect performance data | |
leadingIndicators | Array[Object] | Metrics that show early progress before outcomes materialize | |
potentialMetrics | Array[Object] | New measurement categories for innovative initiatives | |
outcomeTimeframes | Object | When different results are expected to manifest | |
strategicAlignments | Array[Object] | Strategic objectives or initiatives this indicator supports | |
relatedIndicators | Array[Object] | Other performance indicators related to this one | |
stakeholderImpacts | Array[Object] | How this indicator affects or interests different stakeholders |
Threshold (thresholds)
| Attribute | Type | Required | Description |
|---|---|---|---|
level | String | ✓ | Label for the threshold level (e.g. warning, critical) |
value | Number | ✓ | Numeric threshold value |
comparisonOperator | Enum | ✓ | Logical operator for threshold evaluation |
alertMessage | String | Message to display or send when threshold is breached | |
notificationRecipients | Array[String] | List of roles or individuals to be notified |
Evaluative Model (evaluativeModel)
| Attribute | Type | Required | Description |
|---|---|---|---|
modelType | String | The name of the model (e.g. movingAverage, trendLine) | |
parameters | Object | Model parameters as key-value pairs | |
description | String | Explanation of the model's role or calculation logic |
Leading Indicator (leadingIndicators)
| Attribute | Type | Required | Description |
|---|---|---|---|
indicatorName | String | ✓ | Name of the leading indicator |
description | String | ✓ | Explanation of how this indicator signals future performance |
triggerThreshold | Number | Value at which action should be taken | |
leadTime | String | Typical time between indicator change and outcome impact | |
confidenceLevel | Number | Estimated confidence (0-100%) that this indicator predicts the outcome | |
currentValue | Number | Current measurement for this leading indicator |
Potential Metric (potentialMetrics)
| Attribute | Type | Required | Description |
|---|---|---|---|
metricName | String | ✓ | Name of the potential new metric |
description | String | ✓ | Explanation of what this metric would measure |
valueProposition | String | How this metric would add value to performance measurement | |
implementationChallenges | Array[String] | Potential challenges in implementing this metric | |
dataRequirements | Array[String] | Data needed to calculate this metric | |
estimatedImplementationTime | String | Estimated time required to implement this metric |
Outcome Timeframes (outcomeTimeframes)
| Attribute | Type | Required | Description |
|---|---|---|---|
immediateOutcomes | Array[Object] | Outcomes expected within 0-3 months | |
intermediateOutcomes | Array[Object] | Outcomes expected within 3-12 months | |
longTermOutcomes | Array[Object] | Outcomes expected after 12+ months | |
catalyticEvents | Array[Object] | Key events that may accelerate or modify outcomes |
Each immediate, intermediate and long-term outcome has these fields:
| Attribute | Type | Required | Description |
|---|---|---|---|
outcome | String | Description of the outcome | |
expectedValue | Number | Expected value to be achieved | |
confidenceLevel | Number | Confidence level for this outcome (0-100%) |
Each catalytic event has these fields:
| Attribute | Type | Required | Description |
|---|---|---|---|
event | String | Description of the catalytic event | |
probability | Number | Probability of this event occurring (0-100%) | |
impactDescription | String | Description of how this event would impact outcomes | |
estimatedDate | String | Estimated date when this event might occur |
Measurement (measurement)
| Attribute | Type | Required | Description |
|---|---|---|---|
approachType | Enum | ✓ | The primary approach to measurement |
objectiveComponents | Array[Object] | Direct, quantifiable measurement components | |
subjectiveComponents | Array[Object] | Judgment or perception-based measurement components | |
proxyComponents | Array[Object] | Indirect measurement components used when direct measurement isn't possible | |
dataNormalization | Object | Methods for normalizing or standardizing different measurement components |
Objective Component (objectiveComponents)
| Attribute | Type | Required | Description |
|---|---|---|---|
component | String | ✓ | Name of the objective measurement component |
method | String | ✓ | Method used for collecting this data |
formula | String | Formula or calculation used (if applicable) | |
weight | Number | Weight of this component in the overall metric (0-100%) | |
validationProcess | String | Process used to validate this measurement |
Subjective Component (subjectiveComponents)
| Attribute | Type | Required | Description |
|---|---|---|---|
component | String | ✓ | Name of the subjective measurement component |
assessmentMethod | String | ✓ | Method used for subjective assessment (e.g., survey, expert review) |
assessors | Array[String] | Roles or individuals conducting the assessment | |
weight | Number | Weight of this component in the overall metric (0-100%) | |
biasControlMeasures | Array[String] | Measures to control bias in subjective assessment |
Proxy Component (proxyComponents)
| Attribute | Type | Required | Description |
|---|---|---|---|
component | String | ✓ | Name of the proxy measurement component |
targetMeasure | String | ✓ | What this proxy is intended to represent |
correlationStrength | Number | Estimated correlation between proxy and target (0-1) | |
validationMethod | String | Method used to validate the proxy's correlation | |
limitations | Array[String] | Known limitations of this proxy measure | |
weight | Number | Weight of this component in the overall metric (0-100%) |
Data Normalization (dataNormalization)
| Attribute | Type | Required | Description |
|---|---|---|---|
method | String | Normalization method used (e.g., min-max, z-score) | |
description | String | Explanation of how normalization is applied | |
parameters | Object | Parameters used in the normalization process |
Strategic Alignment (strategicAlignments)
| Attribute | Type | Required | Description |
|---|---|---|---|
alignmentID | String | ✓ | ID of the strategic objective or initiative |
alignmentType | Enum | ✓ | Type of strategic element this indicator aligns with: the shared domain list (e.g. initiative, policy, capability, valueStream) plus strategicObjective |
alignmentStrength | Integer | Strength of alignment on a scale of 1-5 | |
alignmentDescription | String | Description of how this indicator supports the strategic element |
Status History Entry (statusHistory)
| Attribute | Type | Required | Description |
|---|---|---|---|
date | Date | ✓ | Date of the performance measurement |
value | Number | ✓ | Measured value on that date |
status | Enum | Performance status relative to target | |
comment | String | Optional commentary on this measurement |
Related Indicator (relatedIndicators)
| Attribute | Type | Required | Description |
|---|---|---|---|
indicatorID | String | ✓ | ID of the related indicator |
relationshipType | Enum | ✓ | Type of relationship with the related indicator |
relationshipStrength | Integer | Strength of relationship on a scale of 1-5 | |
relationshipDescription | String | Description of how this indicator relates to the other |
Stakeholder Impact (stakeholderImpacts)
| Attribute | Type | Required | Description |
|---|---|---|---|
stakeholderID | String | ✓ | ID of the stakeholder |
interestLevel | Enum | Level of interest from this stakeholder (shared four-point rating: low, medium, high, critical) | |
impactDescription | String | How this indicator impacts the stakeholder | |
communicationFrequency | String | How often updates are shared with this stakeholder |
Value Lists
Aggregation Period (aggregationPeriod)
| Value | Use Case | Example |
|---|---|---|
continuous | Streamed, uninterrupted measurement | Sensor telemetry |
realTime | Critical operational metrics | System availability |
hourly | Intraday operational monitoring | Call queue length |
daily | High-frequency operational | Transaction volumes |
weekly | Tactical project metrics | Sprint velocity |
monthly | Standard business metrics | Revenue, costs |
quarterly | Strategic review metrics | NPS, market share |
semiAnnually | Half-yearly reviews | Employee engagement |
annually | Long-term strategic | Brand equity |
eventDriven | Aggregated when a defined event occurs | Incident post-mortems |
onDemand | Aggregated when requested | Board information requests |
adHoc | Irregular, as needed | One-off investigations |
Threshold Type (thresholdType)
| Value | Meaning | Example |
|---|---|---|
higherIsBetter | Higher is better | Revenue, satisfaction |
lowerIsBetter | Lower is better | Costs, defects |
targetIsOptimal | Performance is best at the target value | Certification obtained, staffing level |
rangeIsOptimal | Stay within range | Compliance rate, inventory level |
Comparison Operator (comparisonOperator)
Thresholds enable automated alerting when metrics move outside acceptable ranges. Each threshold rule names a level, a value and the operator used to compare the measured value with it:
{
"thresholdType": "higherIsBetter",
"thresholds": [
{ "level": "warning", "value": 95, "comparisonOperator": "lessThan" },
{ "level": "critical", "value": 90, "comparisonOperator": "lessThan" }
]
}
| Value | Description |
|---|---|
greaterThan | Greater than value |
lessThan | Less than value |
greaterThanOrEqual | Greater than or equal to value |
lessThanOrEqual | Less than or equal to value |
equal | Exactly equals value |
notEqual | Does not equal value |
A range is expressed as two threshold rules, one with greaterThanOrEqual and one with lessThanOrEqual.
Measurement Status (status)
| Value | Description |
|---|---|
aboveTarget | Measured value is better than target |
onTarget | Measured value meets target |
belowTarget | Measured value falls short of target |
critical | Measured value has breached a critical threshold |
Relationship Type (relationshipType)
| Value | Description |
|---|---|
parent | The related indicator rolls up this one |
child | The related indicator rolls up into this one |
correlatesWith | The two indicators move together |
influences | This indicator drives the related one |
derivedFrom | This indicator is calculated from the related one |
componentOf | This indicator is part of a composite indicator |
Measurement Approach (approachType)
| Value | Description |
|---|---|
objective | Direct, quantifiable measurement |
subjective | Judgment or perception-based assessment |
proxy | Indirect measurement standing in for the target measure |
hybrid | A combination of approaches |
JSON Schema Definition
The full definition is performance-indicator.schema.json. It requires performanceIndicatorID, title and description, and rejects properties it does not define.
Examples
Compliance Rate Indicator
{
"performanceIndicatorID": "PI-001",
"title": "Privacy Compliance Rate",
"description": "Percentage of data processing activities compliant with Privacy Act requirements",
"unitOfMeasure": "%",
"baselineValue": 72,
"currentValue": 94,
"targetValue": 100,
"variance": -6,
"variancePercentage": -6,
"thresholdType": "higherIsBetter",
"thresholds": [
{ "level": "warning", "value": 95, "comparisonOperator": "lessThan" },
{
"level": "critical",
"value": 90,
"comparisonOperator": "lessThan",
"alertMessage": "Privacy compliance below 90%",
"notificationRecipients": ["Chief Compliance Officer"]
}
],
"targetDate": "2025-06-30",
"validFrom": "2024-06-15",
"aggregationPeriod": "monthly",
"dataSource": "Compliance Management System",
"owner": "Chief Compliance Officer",
"orgUnitTitle": "Risk and Compliance",
"orgUnitID": "OU-RISK-001",
"measurement": {
"approachType": "objective",
"objectiveComponents": [
{
"component": "Compliant processing activities",
"method": "Automated control testing",
"formula": "(Compliant activities / Total activities) × 100"
}
]
},
"strategicAlignments": [
{ "alignmentID": "srm-privacy-compliance-2024", "alignmentType": "initiative", "alignmentStrength": 5 }
],
"statusHistory": [
{ "date": "2024-09-01", "value": 85, "status": "belowTarget", "comment": "Initial remediation complete" },
{ "date": "2024-10-01", "value": 89, "status": "critical", "comment": "Training program launched" },
{ "date": "2024-11-01", "value": 92, "status": "belowTarget", "comment": "Technical controls deployed" },
{ "date": "2024-12-01", "value": 94, "status": "belowTarget", "comment": "Process changes implemented" }
]
}
Customer Satisfaction Indicator
{
"performanceIndicatorID": "PI-002",
"title": "AI Service Customer Satisfaction",
"description": "Net Promoter Score for customers using AI-powered service channels",
"unitOfMeasure": "NPS points",
"baselineValue": 40,
"currentValue": 48,
"targetValue": 55,
"thresholdType": "higherIsBetter",
"thresholds": [
{ "level": "warning", "value": 45, "comparisonOperator": "lessThan" },
{ "level": "critical", "value": 35, "comparisonOperator": "lessThan" }
],
"targetDate": "2025-12-31",
"validFrom": "2024-01-01",
"aggregationPeriod": "monthly",
"dataSource": "Customer Feedback Platform",
"owner": "Head of Customer Experience",
"measurement": {
"approachType": "subjective",
"subjectiveComponents": [
{
"component": "Likelihood to recommend",
"assessmentMethod": "Post-interaction survey: % Promoters (9-10) minus % Detractors (0-6)",
"assessors": ["Customers"]
}
]
},
"relatedIndicators": [
{ "indicatorID": "PI-004", "relationshipType": "correlatesWith", "relationshipStrength": 4 }
]
}
Cost Efficiency Indicator
{
"performanceIndicatorID": "PI-003",
"title": "Cost per Customer Service Interaction",
"description": "Average cost to resolve a customer service request across all channels",
"unitOfMeasure": "AUD",
"baselineValue": 12.0,
"currentValue": 9.25,
"targetValue": 8.5,
"thresholdType": "lowerIsBetter",
"thresholds": [
{ "level": "warning", "value": 10.0, "comparisonOperator": "greaterThan" },
{ "level": "critical", "value": 12.0, "comparisonOperator": "greaterThan" }
],
"targetDate": "2025-06-30",
"aggregationPeriod": "monthly",
"dataSource": "Financial Management System + CRM",
"owner": "Finance Business Partner - CX",
"measurement": {
"approachType": "objective",
"objectiveComponents": [
{
"component": "Total customer service cost",
"method": "Financial system extract",
"formula": "Total CS cost / Total interactions"
}
]
}
}
Adoption Indicator
{
"performanceIndicatorID": "PI-004",
"title": "AI Channel Adoption Rate",
"description": "Percentage of eligible customer interactions handled by AI channels",
"unitOfMeasure": "%",
"baselineValue": 0,
"currentValue": 42,
"targetValue": 60,
"thresholdType": "higherIsBetter",
"targetDate": "2025-12-31",
"aggregationPeriod": "weekly",
"dataSource": "Channel Analytics Platform",
"owner": "Digital Channels Manager",
"leadingIndicators": [
{
"indicatorName": "Agent training completion",
"description": "Share of service agents trained to hand over to and from AI channels",
"triggerThreshold": 80,
"leadTime": "4 to 6 weeks",
"confidenceLevel": 70,
"currentValue": 92
}
],
"outcomeTimeframes": {
"immediateOutcomes": [
{ "outcome": "AI handles password resets and balance enquiries", "expectedValue": 20, "confidenceLevel": 90 }
],
"longTermOutcomes": [
{ "outcome": "AI handles the majority of eligible interactions", "expectedValue": 60, "confidenceLevel": 60 }
]
}
}
Indicator Relationships
Performance indicators can relate to each other through relatedIndicators:
Usage Guidelines
Selecting Effective Indicators
- SMART criteria — Specific, Measurable, Achievable, Relevant, Time-bound
- Balance leading and lagging — Don't wait until the end to measure
- Limit quantity — 3-5 indicators per response is typically sufficient
- Ensure measurability — Data source must exist and be reliable
- Align with response objectives — Indicators must reflect what success means
Common Mistakes to Avoid
| Mistake | Problem | Solution |
|---|---|---|
| Too many indicators | Dilutes focus, overwhelming | Prioritize 3-5 key metrics |
| Vanity metrics | Look good but don't matter | Focus on actionable metrics |
| No baseline | Can't measure improvement | Establish baseline before starting |
| Unmeasurable targets | "Improve customer experience" | Define specific, quantifiable targets |
| Wrong frequency | Measure too late to act | Match aggregationPeriod to response urgency |
Indicator Lifecycle
Performance indicators often map to data quality metrics and pipeline KPIs. Consider creating automated feeds from your data observability tools to populate SRM performance indicators, enabling real-time tracking of how data quality initiatives are progressing.
Related Documentation
- Strategic Response Model Overview — Full SRM documentation
- Trigger Schema — What initiates responses
- Rationale Schema — Why responses are taken
- Performance Domain — Domain-level performance modeling