# FNOL Coverage Checks



Overview [#overview]

With a [First Notice of Loss](/features/claims/fnol), *Coverage Checks* can be automatically performed to validate whether coverage could apply to the loss. This is done by finding the segment of the policy that is active at the time of the loss (if any), and optionally checking the contents of that segment for coverage information.

Process [#process]

When an FNOL is created, the system will set the FNOL's `segmentLocator` automatically, based on the state of the policy as of the `incidentTime`, and excluding any segments created atfer the incident time. This ensures that policy changes made after the incident time are not considered for purposes of checking coverage.

<Callout>
  The `segmentLocator` will only be set for non-gap segments. If the segment found is a `gap` type, the locator will remain null.
</Callout>

After creating the FNOL, you may <ApiLink name="addLosses">add</ApiLink> *Losses*. The coverage check process will update the `fnolLossState` for each `pending` loss to either `valid` or `excluded` based on the coverage check.

The following steps are conducted in the coverage check process:

* First, the system will check whether, for the time of the incident time of the FNOL, that there is a non-null, non-gap segment on the policy, created before the incident time, that is not superseded by a gap segment. If there is no such segment, all losses with state `pending` will be updated to become `excluded`.
* Otherwise, for each loss that has `pending` state, the system will check whether a corresponding coverage element is available.

The coverage element check for a loss is as follows:

* If the loss's `coverageElementLocator` is not null, *and* the segment contains an element with that locator, the loss is `valid`.

* If the loss type is configured with an empty array of coverage types, the loss is `valid`.

* If the loss's `exposureElementLocator` is null:
  * If there is an element *anywhere* in the segment with `type` equal to *any* of the coverage types configured for the loss, the loss is `valid`.
  * Otherwise the loss is `excludded`.

* If the loss's `exposureElementLocator` is *not* null:
  * If the `coverageElementLocator` is null *and* there is an element that has that a type matching *any* of the configured coverage types for the loss which is a direct or indirect ancestor or descendant of the exposure element (that is, no horizontal traversals are needed to find the coverage element from the exposure element), the loss will be `valid`.
  * If such an element is identified, its locator will be used to set the `coverageElementLocator` for the loss.

* If *none* of the above scenarios apply, the loss will be `excluded`.

<Callout>
  You may manually override the coverage check determination with the <ApiLink name="includeLoss" /> and <ApiLink name="excludeLoss" /> endpoints.
</Callout>

See Also [#see-also]

* [First Notice of Loss](/features/claims/fnol)
* [FNOL API Guide](/api/claims)
