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.

Optimistic Soft Check 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.

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.

React

Pass optimisticSoftCheck: true when creating the session:

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

TypeScript

Pass optimisticSoftCheck: true in the hardEligibility call:

1const result = await bridge.hardEligibility({
2 serviceTypeIds: ["svt_xxx"],
3 optimisticSoftCheck: true,
4 state: "CA",
5 patient: { payerId, firstName, lastName, dateOfBirth },
6});

Omit the flag, or set it to false, and the session follows the normal Hard Check flow.

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. In this case, ineligibilityReason.code will be OUT_OF_NETWORK.

If the soft check finds providers, or if the soft check fails, Bridge falls back to the normal Policy and Service Eligibility flow.

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 Analytics.


See the react-demo for a working example with a config toggle.