Published definitions

Interval metric definitions, version 1.1

The formulas, state taxonomy, channel rules, and edge-case decisions that every Interval report computes under. Published so a team can agree on the numbers before it argues about them. Free to adopt, cite, and copy into your own reporting.

Version 1.1 Status current License CC BY 4.0 Cite as Interval definitions v1.1, intervalops.com

0Conventions

1State taxonomy

Every platform agent state maps to exactly one category per site. The mapping is configuration (the Site Profile), not code. An unmapped state is an error, never a silent bucket.

CategoryTypical statesStaffedProductive
On-contacton call, on chat, on task, hold, after-contact workyesyes
Readyavailable, idle, waitingyesyes
Aux-plannedbreak, lunch, training, meeting, coaching (when scheduled)yesno
Aux-unplannedpersonal, unscheduled aux codesyesno
Offoffline, logged outnono

2Adherence (channel-agnostic)

Adherence % = in-adherence scheduled minutes / total scheduled minutes

A minute is in adherence when the agent's actual state category is in the allowed set for the scheduled segment type:

Scheduled segmentAllowed actual categories
Work / phonesOn-contact, Ready
Break / lunchAux-planned (matching), Off
Training / meetingAux-planned (matching)
Not scheduledexcluded from the denominator

Rules. Grace period defaults to 0 minutes (configurable). Supervisor-approved exceptions flip the affected minutes to in-adherence and are reported separately as excepted minutes. Minutes are binary, no partial credit. Daily and team rollups are sum of numerators over sum of denominators.

Adherence is the only metric computed identically across all channel classes, which is why it headlines a blended view.

3Occupancy (channel-aware)

RT-1 voice

Occupancy % = on-contact minutes / (on-contact + ready minutes)

Aux time is excluded from the denominator; that is shrinkage's job. Typical target band 75 to 85 percent; sustained above 90 percent is a burnout signal.

RT-C chat: slot model

Occupancy % = occupied-slot-minutes / available-slot-minutesavailable-slot-minutes = (ready + on-contact minutes) x c, where c is the agent's configured concurrency capacity. occupied-slot-minutes = the per-minute count of active sessions, capped at c.

An agent on 2 of 3 chats for an hour is 66.7 percent occupied, never 200 percent.

DEF deferred: utilization

Utilization % = on-task minutes / staffed minutes

The honest term for deferred work is utilization, and the page says so.

Blended agents

One timeline; each minute is attributed to the channel of its active work (concurrent chat minutes split per active-session share). Report per-channel occupancy. Any overall figure is a weighted combination shown beside the split, never alone.

4Shrinkage

Shrinkage % = shrinkage hours / scheduled hours

Shrinkage hours are scheduled time in non-productive categories, split:

Shrinkage answers "how much scheduled time did not produce?" (capacity planning). Adherence answers "did reality follow the plan?" (floor management). They are different questions and are never substituted for each other.

5Forecast variance

Real-time channels, per interval

Variance % = (actual offered - forecast offered) / forecast offered

Scored two ways, always together:

Daily variance catches spikes; weekly bias catches drift. A week of small same-signed misses is a forecasting problem even when no single day alarms.

Deferred channels, per day

Backlog(t) = Backlog(t-1) + arrived - clearedVariance is arrived versus forecast arrivals. Service health is the share of backlog within the service window.

6AHT

7Decomp: attributing a service-level miss into shares

The question: "We missed service level. Why, in shares?"

Method

Let the staffing requirement R(V, H, S, A) be a function of offered volume V, handle time H (effort AHT for chat), shrinkage S, and adherence A. For voice, R is Erlang-style; for chat, slot math using concurrency capacity. Plan values carry subscript p, actual values subscript a.

  1. Total gap: G = R(Va, Ha, Sa, Aa) - R(Vp, Hp, Sp, Ap), in FTE or requirement-minutes. Equivalently, the service-level shortfall converted to requirement terms.
  2. One-at-a-time substitution: for each factor f, Delta_f = R(plan with only f at actual) - R(all plan).
  3. Interaction residual: epsilon = G - sum of Delta_f. Allocate epsilon to the factors in proportion to |Delta_f| and disclose it ("includes a proportional share of interaction effects").
  4. Present shares of G as percentages, named in plain language. Factors that moved the other way appear as negative shares ("gave back").

Shares are directional attribution, not blame-grade causality. The method is deterministic and reproducible, and it ends arguments because it is stated up front.

Worked example (synthetic)

Thursday, voice queue, 80/30 target, service level landed at 71.4 percent.

FactorPlanActualDelta_f (FTE)
Volume4,640 offered4,928 (+6.2%)+3.8
Absence (unplanned shrinkage)6.5%9.1%+1.7
Handle time6:426:56 (+14 s)+0.8
Adherence90%87.9%+0.6
Sum of Delta_f6.9
Total gap G7.0
Residual epsilonallocated proportionally0.1
Volume 55% Absence 25% Handle time 12% Adherence 8%

Plain-language statement: "Thursday's miss was 55 percent volume over forecast (about 288 extra contacts), 25 percent absence (3 agents out unplanned, 24 scheduled hours lost), 12 percent handle-time drift (+14 s, concentrated in one queue), and 8 percent adherence (extended lunches 12:30 to 1:30)."

Each share pairs with an action that matches its cause: score the forecast weekly; review the attendance pattern; coach the handle-time outliers on the specific driver; stagger the lunch block.

What the method refuses

8Signals (summary)

"Is today unusual" is answered with a z-score against the trailing 8 to 12 same weekdays, with known event days excluded from the baseline. Thresholds: |z| of 1.5 is watch, 2.0 is alert. Minimum baseline is 6 qualifying weekdays; below that, mark low confidence.

The full triage and coaching method (persistence rules, tenure bands, routing) is part of the Interval product and is not reproduced here. The demo shows it running.

9Edge cases, decided

10Versioning

VersionDateChange
1.02026-07Initial: states, adherence, channel-aware occupancy, shrinkage, forecast scoring, AHT, Decomp, edge cases.
1.12026-07Added day-of-week conditioned signals (summary here; full method in product).

A definition change bumps the version, logs the reason, and states the expected numeric impact (for example, "adherence will read about 1.5 points lower"). Reports cite the version they compute under.

Next: version 2.0 extends the taxonomy to hybrid queues where AI agents and people share the work (containment, escalation against its own forecast, intent-mix-adjusted AHT, and Decomp with a containment factor). Planned for the first quarter of 2027.

License and attribution

These definitions are published under the Creative Commons Attribution 4.0 International license. Copy them into your reporting standards, your data dictionary, or your vendor requirements. Attribute as "Interval definitions v1.1, intervalops.com".

Use them with an assistant

The definitions ship as an Agent Skill, so Claude, Claude Code, Codex, and any assistant that reads the Agent Skills format computes and explains WFM numbers under v1.1, names the version it used, refuses to blend occupancy across channels, and attributes a miss into shares instead of telling a story.

npx skills add intervalops/interval-definitions

Public repository publishing October 2026. The skill is the same CC BY 4.0 text as this page, packaged with a worked Decomp and example answers.

See them computed

The live demo runs every definition on a synthetic 24-agent site: adherence by interval, occupancy by channel, shrinkage split, forecast bias, Decomp on a missed Thursday, and Signals with persistence rules.

Open the demo Request early access