Skip to main content
Verial is a healthcare simulated environment platform. You define environments (simulated EHRs, phone lines, fax, clearinghouses, portals), group tasks into benchmarks, and each task has criteria, typed assertions that the verification engine runs after a rollout to score the task. A criterion is a single typed assertion. It lives on a Task and, after the task run completes, produces one Criterion Run with passed, score, details, and evidence.

How Criteria Work

Unlike the legacy eval approach (a single natural language assert string judged by an LLM), a criterion has a structured assertion object. The verification engine dispatches to a dedicated check implementation keyed by assertion.assert.

Anatomy of a Criterion

Supported Checks

Each check is documented in full on the Criteria API reference. A quick tour:

fhir-resource-state

Assert that a FHIR search returns a resource with the expected field values after the rollout.

hl7-structural

Assert field values on HL7v2 outbound messages (ADT, ORU, ORM, SIU).

portal-state-match

Assert that a row in simulated portal state has the expected values after submission.

sftp-file-present

Assert that a file was uploaded to the SFTP endpoint, optionally checking parsed JSON contents.

voice-transcript

Assert that required phrases appear (and forbidden phrases do not) in the call transcript. Phrase matching is LLM-assisted.

x12-response

Assert field values on an X12 EDI response (270/271/276/277/278).

Annotated Examples

FHIR: Appointment booked

The engine runs a FHIR search for Appointment?patient=Patient/john-smith&status=booked, then asserts the first result has the expected participant display name.

Voice: required disclosures

The engine fetches the voice transcript for the task run’s playground and checks the agent’s turns for required and forbidden phrases.

SFTP: claim file uploaded

Portal: prior auth submitted

HL7: ADT sent

X12: 271 eligibility response

Writing Good Criteria

  • Prefer precise field assertions over free-form natural language.
  • Group related criteria under an axis so you can see a per-axis score breakdown in the task score.
  • Weight critical outcomes higher. Verial uses weighted means, so weight: 2 doubles a criterion’s contribution relative to weight: 1.
  • Test negative behaviors too. For example a voice-transcript criterion with not_contains: ["social security number"].
  • Start narrow. One criterion per observable outcome is better than one compound criterion.

Next Steps

Verification

How the verification engine scores criteria into a task score.

Criteria API

REST endpoints and full assertion spec reference.