Slot capture and question coverage

How VoiceLens tracks the details an agent had to collect and the questions it had to ask, and how both feed the health score.

Most calls exist to collect or confirm information: a budget and an area, a policy number, an appointment window, an identity check. A rubric describes those expectations as slots (values to capture) and questions (things the agent must ask). VoiceLens tracks both on every call.

Slots

A slot is one piece of information the agent should obtain. Each slot in a rubric has:

FieldMeaning
key, labelIdentifier and display name, for example budget, "Budget".
categoryGrouping for the scorecard: intent, property, amenities, contact, logistics. Other categories you type are stored as logistics.
typeString, Number, Currency, Email, Phone, Date, Bool or Enum (with options).
requiredWhether a missing value counts against the completion rate.
agentMustAskWhether the agent is expected to ask for it explicitly (this also creates a coverage question, see below).
synonyms, descriptionExtra vocabulary and guidance for the extractor.

Slot statuses

After analysis, each slot has one status:

  • Captured: a value was obtained.
  • Corrected: the value changed at least once during the call. The final value and the history are kept. A correction the agent ignored also produces a MISSED_CORRECTION fault.
  • Missing: the slot is required and applicable but no value was captured.
  • Not applicable: the slot belongs to a case branch the call did not enter (see case branching).

Two flags add nuance:

  • Volunteered: the customer gave the value without being asked, or before the agent's first question about it.
  • Corrected: set whenever the value history has more than one entry.

Completion rate

completion_rate = required applicable slots that are Captured or Corrected
                  ÷ required applicable slots

Optional slots appear on the scorecard but do not affect the rate.

Questions

A question is something the agent must ask, regardless of whether an answer was captured. Rubrics define questions in two ways:

  • Explicit questions with detection phrases, for example "verify identity", "recap the order", "ask if there is anything else".
  • Implicit questions synthesised from every slot marked agentMustAsk. If the rubric says the agent must ask for the callback number, VoiceLens checks that a question about it was actually asked, even if the number was volunteered.

Coverage rate

coverage_rate = required applicable questions that were asked
                ÷ required applicable questions

How both feed the health score

The health score multiplies the fault-based score by a quality factor built from the two rates, weighted by the rubric's captureWeight and coverageWeight (0.5 each by default). A call with perfect behaviour and nothing captured scores at most 50; a call that captured and asked everything is judged on its faults alone.

Weight them according to what the call is for. A booking line lives on capture; a regulated sales line lives on coverage.

Capture gaps across calls

The capture gaps view (and GET /api/analytics/capture-gaps) ranks slots by how often they are missed across the workspace and questions by how often they are skipped, with the corrected rate alongside. It is the fastest way to find the one detail your bot consistently fails to obtain, or the disclosure your team keeps skipping.

Practical guidance

  • Keep required slots to the ones that make the call actionable. Everything else can be optional and still appears on the scorecard.
  • Use Enum slots with options for anything with a fixed vocabulary (property type, product line, department); they are extracted more reliably and can drive case branching.
  • Add synonyms when callers use different words than your rubric ("flat", "apartment", "unit").
  • Mark a slot agentMustAsk only when asking is itself the requirement. For identity checks it is; for a volunteered budget it usually is not.