> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siftstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Detect and review issues in a Run

> Generate a Report, review flagged issues, and close them out

After completing this topic, you can generate a Report for a Run, investigate the issues it flags, and close them out from start to finish.

<Note>
  New to Detect and Review? Read the [Overview](/documentation/review/overview) to understand how Rules, Reports, Annotations, and Campaigns work together before proceeding.
</Note>

## When to use this workflow

Use this workflow when you have a completed Run and want to evaluate it against a set of Rules, examine any flagged issues, and mark them as resolved. This is the core daily loop for anyone doing data review in Sift.

## Before you begin

* You have at least one Run in Sift. If you need to import or stream telemetry first, see [Import](/documentation/ingest/data-import/import-data-from-a-file) or [Stream](/documentation/ingest/stream).
* At least one Rule exists in your workspace. If no Rules have been created yet, see [Detect deviations automatically using Rules](/documentation/review/detect-deviations-automatically-using-rules).

## Complete the workflow

### Step 1: Generate a Report

1. In **Sift**, click the **Runs** tab.
2. In the **Runs** table, click the Run you want to review.
3. Click **Create report**.
4. Click the **Rules** tab.
5. In the **Rules** table, select the Rules you want to evaluate.
6. Click **Evaluate**.

Sift evaluates the selected Rules against the Run's telemetry and opens the Report when complete.

<Info>
  If your team has already set up a Report Template for this type of Run, use the **Report Template** tab in step 5 to select it. This applies a predefined set of Rules in one click. See [Set up a repeatable review checklist](/documentation/review/set-up-a-repeatable-review-checklist).
</Info>

<Tip>
  **Python client**: To generate Reports across many Runs, such as every Run in an Asset's history, use the [Python client](/documentation/reference/stream/client-library-reference) instead of repeating this workflow manually for each Run.
</Tip>

<Info>
  If the Report includes a Family Rule, Sift prompts you to resolve the alignment for the Run before evaluation. Map the Run's alignment configurations to the Family's T-0 so the comparison is time-synchronized correctly. See [Detect statistical deviations using Family Rules](/documentation/analyze/families/detect-deviations-from-a-historical-baseline).
</Info>

### Step 2: Read the Rule summary panel

The Report opens with a list of Rules that were evaluated and violated. This means each Rule generated at least one Annotation. Rules that passed without generating any Annotations are not shown by default.

Each Rule in the list shows its current state:

* **Open**: no Annotations have been reviewed yet. This is the default.
* **Failed**: one or more Annotations were marked **Failed**.
* **Accepted**: all Annotations were marked **Accepted**.

Click any Rule to expand it and see its Annotations and the chart of the channel data that triggered it.

For a full definition of each state, see [Annotations reference](/documentation/reference/annotations-reference).

### Step 3: Open an Annotation

1. In the **Rules** section, click the Rule you want to investigate.
2. Click the Annotation listed under that Rule.

The Annotation details panel opens on the right. It shows the triggered channel values, the Rule expression that fired, Asset metadata, and a comment thread.

### Step 4: Update the Annotation state

In the Annotation details panel, use the status control to change the state from **Open** to either **Failed** or **Accepted**:

* Mark **Failed** if the telemetry represents a real problem that must be addressed.
* Mark **Accepted** if the finding was reviewed and determined to be valid or not requiring action.

State changes are recorded in the activity log.

### Step 5: Leave a comment

In the **Enter a comment** box at the bottom of the details panel, type your notes and click **Post**. Comments support rich text and appear alongside state changes in the activity log, giving the full context of the review decision.

### Step 6: Assign the Annotation (optional)

If the issue needs follow-up from a specific team member, use **Assigned to** to assign it. Assignment changes are logged alongside comments and state updates.

## Verify the result

After reviewing all Annotations in the Report:

* Every Rule in the Report should show a state of **Failed** or **Accepted**. None should remain **Open** if the review is complete.
* Each Annotation you investigated should have a state, a comment explaining the decision, and an assignee if follow-up is needed.

## Next steps

* To set up Rules that detect issues automatically in future Runs, see [Detect deviations automatically using Rules](/documentation/review/detect-deviations-automatically-using-rules).
* To create a template so you do not need to pick Rules manually next time, see [Set up a repeatable review checklist](/documentation/review/set-up-a-repeatable-review-checklist).
* To triage a large set of Annotations across multiple reviewers, see [Triage and close out flagged issues](/documentation/review/triage-and-close-out-flagged-issues).

## Reference

* [Annotations reference](/documentation/reference/annotations-reference)
* [Report chart display options](/documentation/reference/report-chart-display-options)


## Related topics

- [Triage and close out flagged issues](/documentation/review/triage-and-close-out-flagged-issues.md)
- [Set up a repeatable review checklist](/documentation/review/set-up-a-repeatable-review-checklist.md)
- [Campaigns: track a multi-Run review effort](/documentation/review/track-a-multi-run-review-campaign.md)
