> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.usebridge.com/documentation/getting-started/eligibility-sdk/advanced/optimistic-soft-check/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.usebridge.com/_mcp/server. *This guide assumes familiarity with the [Hard Check](../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](../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. > **Note** > > Do not enable this for [Existing Patients](../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: ```typescript const session = createHardEligibilitySession({ serviceTypeIds: ["svt_xxx"], optimisticSoftCheck: true, }); ``` ### TypeScript Pass `optimisticSoftCheck: true` in the `hardEligibility` call: ```typescript const result = await bridge.hardEligibility({ serviceTypeIds: ["svt_xxx"], optimisticSoftCheck: true, state: "CA", patient: { payerId, firstName, lastName, dateOfBirth }, }); ``` 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. | Outcome | Session status | Description | | -------------------------------------------------------- | -------------- | ------------------------------------------------------- | | Soft check: no providers | `INELIGIBLE` | `ineligibilityReason.code` is `OUT_OF_NETWORK` | | Soft check: providers found | Continues | Waits for Policy, then Service Eligibility as usual | | Soft check: API error | Continues | Normal Hard Check path; error is logged via analytics | | Policy: `CONFIRMED` | Continues | Service Eligibility runs as usual | | Policy: `INVALID` / timeout, soft check had no providers | `INELIGIBLE` | `OUT_OF_NETWORK` instead of `POLICY_ERROR` or `TIMEOUT` | ### Analytics When enabled, the SDK emits additional Hard Eligibility events. See [Analytics](../analytics). --- See the [react-demo](https://github.com/use-bridge/sdk-typescript/blob/main/examples/react-demo/src/app/hard-eligibility/page.tsx) for a working example with a config toggle.