Noveum docs
ProductsNovaEvalConfigure smart sampling

Smart sampling and tiers

Sample production conversations, screen them in tiers, and distinguish dashboard controls from advanced policy fields available through the API.

Smart Sampling reduces continuous evaluation volume in two stages:

  • Sampling chooses a percentage of eligible conversations.
  • Tiers run different scorer groups and escalate selected conversations when a previous tier fails.

Before you start

Create an eval job, attach at least two compatible scorers, and run a representative manual cohort first. Review recent traffic volume, observed failure rates, and available Premium credits. Every scorer used in a tier must already be attached to the job. Smart Sampling has its own policy switch, but automatic processing also requires the eval job's separate Enabled switch to be on.

Configure it in the dashboard

Open an eval job's Settings tab. Smart Sampling appears below the job name, dataset, scorer count, and total-item summary.

Authenticated Demo evaluation Settings tab showing its job name, dataset, 12-scorer count, 36 total items, and disabled Smart sampling switch
Review the job summary here and its separate Scorers tab first: every scorer assigned to a sampling tier must already belong to the eval job.

Enable Smart Sampling to reveal the sample rate, tier editor, failure gates, and preview. This saves the policy; it does not enable the eval job itself.

Demo eval-job Settings tab with Smart Sampling enabled, a 10 percent sample rate, and the Suggest tiers action
A new policy starts at 10 percent. Suggest tiers is available when the job has at least two scorers.

The current dashboard exposes:

ControlCurrent behavior
Sample percentageAccepts 0.1-100%; a new policy starts at 10%.
Suggest tiersUses recent volume and scorer failure history to propose a policy; requires at least two job scorers.
Tier name and scorersAssigns each job scorer to at most one tier. Up to five tiers are supported.
Gate scorer togglesFor a later tier, escalate when any selected scorer from the immediately previous tier failed.
Preview costProjects daily conversations and credits from the trailing seven days of volume and recent scorer failure rates.
Status badgesShow today's candidates, sampled conversations, escalations, a credit pause, or the last coordinator error.

Tier 1 has no gate because every sampled conversation begins there. Every later tier must select at least one failure gate from the immediately preceding tier.

Build and save the tier funnel

Set the Sample rate between 0.1 and 100 percent, or choose Suggest tiers to replace the current draft with a data-informed proposal.
Give Tier 1 a recognizable name and assign its broad screening scorers. A scorer can belong to only one tier.
Add a later tier, select its narrower scorers, then choose one or more gate scorers from the immediately previous tier. A conversation advances when any selected gate scorer fails.
Repeat only when another escalation stage materially changes cost or diagnosis. The dashboard supports at most five tiers.
Choose Preview to calculate projected conversations and premium credits per day, resolve empty-tier or missing-gate warnings, and save the policy.
Turn on the eval job's separate Enabled switch so the coordinator can process new eligible conversations.

Turning the switch off on a job with a saved policy saves the job without that policy. It does not delete the job's scorers or past sampling runs.

The dashboard's gate editor creates failed conditions combined with OR and evaluated across any turn. Numeric score gates, AND, and average-across-turn gates exist in the API schema but are not dashboard controls.

A practical tier layout

Use inexpensive, broad checks first and narrower premium scorers later. For example:

  1. Screen - free format, latency, link, retrieval, or other deterministic scorers on every sampled conversation.
  2. Investigate - premium relevance, faithfulness, coherence, or tool-use scorers only when a selected Screen scorer fails.

All scorers used in a tier must already be attached to the eval job. A scorer cannot appear in two tiers.

Advanced policy fields in the API

The evalPolicy API schema supports controls that the current dashboard does not edit:

Sampling fields

FieldAllowed valuesServer default
sampling.boostShare0-0.50.3
sampling.adaptiveShare0-0.50.2
sampling.stratifyByUp to three of agent_name, duration_bucket, hour_of_dayagent_name, duration_bucket
sampling.boostsUp to 20 boost rulestrace error, cancellation, duration outlier, turn-count outlier

An attribute boost rule accepts eq, neq, contains, gt, or lt with a string or numeric value. Built-in rules are trace_error, cancelled, duration_outlier, and turn_outlier.

The server fills these defaults when the dashboard saves its smaller policy object. Their absence from the form does not mean the coordinator performs a purely uniform random sample.

Escalation fields

The API supports failed, lt, and lte conditions. Conditions can use or or and, and can evaluate any_turn or the conversation avg. Numeric conditions require a value from 0 through 10.

The same validation rules apply to UI- and API-created policies:

  • every tier contains at least one scorer
  • tiers are disjoint
  • Tier 1 has no escalateIf
  • every later tier has a gate
  • a gate references only scorers in the immediately previous tier

What changes after saving

For an eval job whose policy and separate job Enabled switch are both on:

  • the normal automatic evaluation path defers selection to Smart Sampling
  • the Smart Sampling coordinator scans new eligible conversations and advances its watermark
  • sampled runs carry a tier number; escalated runs link to their parent run
  • reaching the credit limit records a credits pause instead of continuing to enqueue paid work

A regular dashboard Run evaluation remains available and creates a normal manual run with its chosen filters and scorers. It does not automatically use the saved tier policy. API callers can request an ad-hoc policy run with useSampling: true; that option cannot be combined with a scorer override because tier scorer sets come from the policy.

Choosing a percentage

Start from the cost preview rather than a universal traffic threshold. Increase the percentage when important cohorts are too sparse; decrease it when stable high-volume traffic is consuming credits without changing the signal. Revisit the tier gates when escalation volume differs sharply from the preview.

Expected result

Settings shows a saved sampling percentage, disjoint scorer tiers, valid failure gates, and a daily conversation and credit preview. With the job also enabled, new eligible conversations create tiered runs according to the policy, while manual Run evaluation remains available for a separately chosen cohort.

Troubleshooting

SymptomWhat to check
Suggest tiers is unavailableAttach at least two scorers to the eval job
A scorer cannot be selected in another tierEach job scorer can belong to only one tier
Policy cannot saveEmpty tiers, duplicate scorers, a Tier 1 gate, or a later tier without a previous-tier failure gate
Preview cost is higher than expectedSample percentage, recent volume, escalation rate, and Premium scorers in each tier
Automatic runs pauseStatus badges and the recorded credit or coordinator error state
Policy is saved but no automatic runs startTurn on the eval job's separate Enabled switch, then confirm new conversations are eligible
Manual run does not follow tiersThis is expected; the regular dashboard run uses its own filters and scorer selection

Next steps