Optimistic Soft Check

This guide assumes familiarity with the Hard Check flow.

During a Hard Check, resolving a new patient’s Policy is often the slowest step. Payers can be unreliable, and patients may wait on a spinner while Bridge polls or streams for a result.

Optimistic Soft Check is an optional session setting that runs a Soft Check in parallel with Policy resolution. If the soft check shows there are no providers for the payer and state, the session can return INELIGIBLE immediately, without waiting for Policy resolution to finish or fail.

This is disabled by default. If you omit optimisticSoftCheck from your session config, behavior is unchanged from a standard Hard Check.

Consider enabling this for new-patient Hard Checks when Policy resolution is slow or unreliable, and you want to surface out-of-network outcomes sooner when provider coverage is the limiting factor.

Do not enable this for Existing Patients flows. When a policyId is provided upfront, the SDK skips Policy creation entirely and this setting has no effect.

Create a Session

Pass optimisticSoftCheck: true when creating the session:

1const { createHardEligibilitySession } = useBridgeSdk();
2
3const session = createHardEligibilitySession({
4 serviceTypeIds: ["svt_xxx"],
5 optimisticSoftCheck: true,
6});

The flag is optional and defaults to off. Omit it, or set it to false, and the session follows the normal Hard Check flow with no extra API calls.

Behavior

When enabled, on submit Bridge:

  1. Creates the Policy as usual
  2. In parallel, runs a Provider Eligibility request for each configured Service Type (the same work a Soft Check performs)
  3. Races the soft check against Policy resolution

If the soft check completes first and finds no eligible providers, the session moves to INELIGIBLE. Handle the result with useHardEligibilityState the same way you would for any other ineligible session.

1interface IneligibilityReason {
2 // Code for referencing this reason
3 code: IneligibilityReasonCode;
4 // User friendly message to display
5 message: string;
6}

In this case, code will be OUT_OF_NETWORK. It’s expected that the message will be displayed to the patient.

If the soft check finds providers, or if the soft check fails, Bridge falls back to the normal Policy and Service Eligibility flow. A soft-check error does not block or change the Hard Check outcome.

OutcomeSession statusDescription
Soft check: no providersINELIGIBLEineligibilityReason.code is OUT_OF_NETWORK
Soft check: providers foundContinuesWaits for Policy, then Service Eligibility as usual
Soft check: API errorContinuesNormal Hard Check path; error is logged via analytics
Policy: CONFIRMEDContinuesService Eligibility runs as usual
Policy: INVALID / timeout, soft check had no providersINELIGIBLEOUT_OF_NETWORK instead of POLICY_ERROR or TIMEOUT

Analytics

When enabled, the SDK emits additional Hard Eligibility events. See the Analytics page for handler setup.


See the Demo Project for a working example with a config toggle.