How exposures are detected: the four kinds

[Risk & Exposures: where it lives now](/help/risk-overview) covers where the Exposures tab lives and how to navigate it. [Reading an exposure detail](/help/risk-exposure-detail) covers the detail p…

8 min read·Updated July 13, 2026
On this page

What this article covers

Risk & Exposures: where it lives now covers where the Exposures tab lives and how to navigate it. Reading an exposure detail covers the detail page field by field. This article covers the layer underneath both of those: the actual comparison logic Verinode runs, kind by kind, so you know exactly what triggers a "Missing workers comp" row or an EMR flag, and what does not.

An exposure is not a row anyone types in and it is not a stored table. Every time you open Compliance, Verinode reads three things you already have on file (your insurance policies, your active carrier-program memberships, and your service mix) and compares held coverage against required coverage. Where there's a gap, an exposure appears. Close the gap in the real world (bind the policy, bring the EMR down, confirm the endorsement) and the exposure simply stops being generated the next time the page reads your data. There is nothing to dismiss, archive, or mark resolved by hand.

Four exposure kinds exist in Verinode's schema. Three of them fire today. The fourth is reserved for a comparison Verinode doesn't run yet, covered honestly below.

Where to find it

Open Compliance from the sidebar (iq.verinode.ai/compliance). Two paths lead to the same Exposures tab: click the Open Exposures tile in the Explore row, or click straight into the Exposures tab of the card slider that runs Findings, Exposures, Audits, Regulations, Benchmarks. A saved /risk link redirects to iq.verinode.ai/compliance?tab=exposures automatically. Each row in the list opens the exposure's own detail view.

The comparison behind every exposure

Every open exposure comes from lining up two things:

  • What you hold: your insurance policies (type, carrier, coverage limit, EMR, expiration, status), your active carrier-program memberships, and the service lines in your operator profile.
  • What's required: policy types a program requires, a market-standard EMR gate, or an endorsement a service line typically needs.

Verinode treats a policy as currently held when its status reads active, expiring soon, or pending renewal. A canceled or fully expired policy doesn't count toward "held," so letting a required policy lapse without a renewal in motion is exactly the kind of gap this system is built to catch.

Kind 1: Missing required policy

What it checks. For every carrier program you're actively enrolled in, Verinode holds a known list of the policy types that program requires. If you don't have a held policy of that type, Verinode raises one exposure per missing type, per program.

Programs and requirements on file today:

| Program | Required policy types | |---|---| | Liberty Mutual Preferred | General Liability, Workers' Comp | | Travelers ASP | General Liability, Workers' Comp | | State Farm PSP | General Liability, Workers' Comp | | Allstate DRP | General Liability, Workers' Comp | | Servpro | General Liability, Workers' Comp, Commercial Auto |

What you see. Title reads "Missing [policy type]," for example "Missing workers comp." Current state shows "Not on file." Required state shows "Active policy." Required by names the program driving the requirement, for example "Liberty Mutual Preferred." The description spells it out in full: a program requires an active policy of a given type and none is on file. Severity is always critical, since it means active program work is running without coverage that program itself requires. The suggested remediation is concrete: contact your broker to bind the missing policy type and upload the certificate of insurance.

Tip

This is program-list-driven, not automatic. If you're enrolled in a carrier program that isn't Liberty Mutual Preferred, Travelers ASP, State Farm PSP, Allstate DRP, or Servpro, Verinode doesn't yet know that program's specific policy requirements, so it won't raise this kind of exposure for it even if a real gap exists. Check your own program's insurance requirements directly with the carrier in that case.

Kind 2: Insurance sub-limit (reserved, not yet active)

What it's meant to check. A policy can exist and still fall short: you hold general liability, but the dollar limit on it sits below what a program actually requires. That's a different gap from a missing policy type entirely, which is why it's modeled as its own kind.

What's actually live today. Verinode already reads the coverage limit off every insurance policy on file, that number is captured alongside carrier, EMR, and expiration on every policy record. What isn't wired up yet is a table of program-required minimum limits to compare it against, so this kind never fires. You won't see a sub-limit exposure appear on your Exposures tab regardless of how your coverage limits compare to what a program requires.

Note

Until this comparison ships, confirm your coverage limits directly against each program's stated minimums with your broker. It's the one insurance gap in this list Verinode isn't yet checking for you.

Kind 3: EMR commercial gate

What it checks. Your workers' comp Experience Modification Rate (EMR) is a market-standard number carriers use to price and gate program eligibility, separate from any single program's own rules. Verinode looks across every workers' comp policy on file that has an EMR value recorded, and reads the one with the furthest-out expiration date, your current EMR on record. If that value is 1.25 or higher, an exposure fires.

What you see. Title reads with the value spelled out, for example "EMR 1.31, commercial gate breached." Current state shows the EMR value itself, for example "1.31." Required state reads "<1.25 (commercial); <1.0 (preferred)," giving you both bars at once: the commercial-program floor and the tighter preferred-terms bar most operators aim for. Required by reads "commercial carrier programs" rather than one named program, since this is a general market gate, not one carrier's specific rule. Severity is always critical. The description explains the mechanics directly: most large-carrier programs disqualify at or above 1.25, and EMR typically takes two to three policy years of clean claims history to trend back down. The suggested remediation is to pull a loss run and work with your insurance advisor on a paydown plan.

Tip

An EMR under 1.25 keeps you eligible for standard commercial programs; under 1.0 puts you in range for preferred terms. Both numbers show on the exposure so you can see how far you are from either bar, not just whether you've crossed the gate.

Kind 4: Coverage type missing an endorsement

What it checks. This one is a heuristic, and Verinode is explicit about that on the record itself. If your service mix includes mold or biohazard work, and you hold an active or expiring-soon general liability policy, Verinode flags that restoration GL policies covering this kind of work typically carry a pollution endorsement, and that it hasn't confirmed that endorsement exists on your policy. This kind only fires when the base general liability policy is already active; if the whole policy type is missing, that's caught by Kind 1 instead, so you don't get two overlapping warnings about the same gap.

What you see. Title reads, for example, "mold work without confirmed pollution endorsement." Current state reads "Endorsement not confirmed." Required state names the specific endorsement expected, for example "pollution endorsement on general liability." Required by names the service line itself, for example "mold," since the expectation traces to the work you run rather than to a named carrier program. Severity is info, the lightest of the three that fire today, because Verinode hasn't parsed your certificate of insurance for endorsement language, it's raising a question to check with your broker, not asserting a confirmed gap. The suggested remediation: confirm with your broker that the policy includes the endorsement, and upload the declaration page if you have it.

How severity maps to what you see

Every exposure carries one of three severities, and each maps to a stance word you'll see on the row, the hero pill, and the Compliance posture panel:

  • Critical severity reads as Breaching. Both Kind 1 (missing required policy) and Kind 3 (EMR commercial gate) are always critical.
  • Warning severity reads as Exposed. No exposure kind currently in production lands here by default, though the stance engine supports it for coverage that exists but sits below a required threshold.
  • Info severity reads as Drift. Kind 4 (coverage type missing an endorsement) is always info.

Exposures never show as Hedged or Watching, the other two states in Verinode's five-word compliance vocabulary. Those are reserved for audits and regulations, which can be in a genuinely clean or a not-yet-knowable state; an exposure only exists as a row while a gap is open, so there's no "hedged exposure."

What makes an exposure disappear

  1. 1Missing policy: bind the required policy type with your broker and upload or forward the certificate of insurance.
  2. 2EMR gate: work the loss-run and paydown plan with your insurance advisor until your current EMR reads under 1.25 (or under 1.0 for preferred terms).
  3. 3Endorsement heuristic: confirm with your broker that the endorsement exists, then forward the declaration page.
  4. 4Reload Compliance. Verinode recomputes every exposure fresh from your current policies, memberships, and service mix. Once the underlying comparison no longer shows a gap, the row is gone, there's nothing to mark closed by hand.

Empty state and cold start

When Verinode compares your held coverage against every requirement it knows and finds no gap, the Exposures tab reads:

"No exposures detected, coverage matches active program requirements."

That's a real, computed clean state: your active policies satisfy every program you're enrolled in, your EMR is under the commercial gate, and no service-line endorsement question is open. It can change the next time you load the page, for instance if a policy lapses or a new program membership is added.

An empty Exposures tab on a brand-new account usually means something different: there's no insurance, program membership, or service-mix data on file yet to compare against, so nothing can be derived either way. In that case the wider Compliance home shows its own cold-start prompt to upload a certificate of insurance, forward an audit notice, or paste a regulation update, since exposures need real data on both sides of the comparison before they can say anything.

Data sources

  1. 1.Your insurance policies, program memberships, and service mix. Your business.
  2. 2.Carrier program insurance requirements (flagship programs). Verinode reference data.
Was this helpful?