Skip to main content

Overview

Thresholds turn raw metric values into clear pass/fail outcomes. By setting a threshold on a metric, you create a derived boolean metric that automatically evaluates whether each call meets your defined criteria. For example, you can set a threshold on Response Time of < 1000ms using the P95 aggregation across agent turns — any call where the 95th percentile agent response time exceeds 1 second will be flagged as a failure. Threshold Configuration

How Thresholds Work

When you configure a threshold, Roark creates a derived metric behind the scenes:
  1. The source metric is collected as usual (e.g., a satisfaction score of 8)
  2. The threshold compares the value against your condition (e.g., >= 7)
  3. A boolean Pass or Fail result is produced automatically
  4. The result is stored alongside the original metric for reporting
Thresholds are available on these metric output types: Scale, Numeric, Count, Boolean, and Classification.

Configuring a Threshold

Thresholds can be added from several places in Roark:
  • Policies — Add thresholds when selecting metrics for a policy
  • Playground — Test a threshold against a real call before deploying
  • Simulation Run Plans — Set pass/fail criteria for simulation testing
In each case, the configuration options are the same.

Threshold Fields

FieldDescription
OperatorThe comparison to apply (see operators below)
ValueThe threshold value to compare against
Aggregation ModeHow to handle metrics with multiple values per call (optional)
Participant RoleFilter to a specific speaker — Agent, Customer, or All (optional)

Operators

The available operators depend on the metric’s output type.

Numeric Types (Scale, Numeric, Count)

OperatorSymbolExample
Greater than>Score > 5
Greater than or equals>=Score >= 7
Less than<Response time < 3000ms
Less than or equals<=Response time <= 2000ms
Equals=Count = 0
Not equals!=Count != 0

Categorical Types (Boolean, Classification)

OperatorSymbolExample
Equals=Compliance check = true
Not equals!=Call outcome != “escalated”

Aggregation Modes

When a metric produces multiple values per call (e.g., a per-segment metric that fires on every turn), the aggregation mode determines how those values are combined before applying the threshold.
ModeDescriptionExample
EachCompare every value individually — fails if any single value failsEach response time < 5000ms
AverageAverage all values, then apply the thresholdAverage sentiment >= 6
MinUse the minimum valueMin confidence >= 0.8
MaxUse the maximum valueMax response time < 10000ms
MedianUse the median valueMedian score >= 7
SumSum all values, then apply the thresholdTotal talk time <= 300000ms
P95Use the 95th percentile valueP95 response time < 5000ms
P99Use the 99th percentile valueP99 latency < 8000ms
CountCount how many values fail, then compare against a max allowed failures thresholdNo more than 2 segments below threshold
For call-level metrics that produce a single value, aggregation is not needed — Each mode is used by default.

Participant Role Filtering

For metrics with PER_PARTICIPANT scope, you can narrow the threshold to a specific speaker:
RoleDescription
AllApply to all participant values (default)
AgentOnly evaluate the agent’s values
CustomerOnly evaluate the customer’s values
This is useful when a metric like sentiment is tracked for both speakers but you only want to set a threshold on the agent’s performance.

Examples

Source metric: Customer Satisfaction (Scale 1-10) Operator: Greater than or equals Value: 7 Result: Pass if satisfaction is 7 or above, Fail otherwise
Source metric: Response Time (Numeric, per-segment) Operator: Less than Value: 1000 (milliseconds) Aggregation: P95 Participant Role: Agent Result: Pass if 95th percentile agent response time is under 1 second
Source metric: Identity Verified (Boolean) Operator: Equals Value: true Result: Pass if the agent verified the caller’s identity
Source metric: Tone Appropriate (Boolean, per-segment) Operator: Equals Value: true Aggregation: Count (max failures: 2) Result: Pass if no more than 2 segments have an inappropriate tone

What’s Next