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

# Step 5: Generate a Report based on Rule results

export const SiftIcon = ({className}) => <span className={`inline-flex items-center align-middle text-black dark:text-white ${className || ''}`}>
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Artwork" x="0px" y="0px" viewBox="0 0 1005.58 733.96" style={{
  enableBackground: "new 0 0 1005.58 733.96",
  width: "2em",
  height: "2em"
}} xmlSpace="preserve">
      <path fill="currentColor" d="M552.16,150.89c-165.6,0-180.29,160.61-300.62,192.32v2.67h601.24v-2.67C747.74,324.18,717.72,150.89,552.16,150.89z   M453.46,583.08c165.6,0,180.29-160.61,300.62-192.32v-2.67H152.84v2.67C257.88,409.78,287.91,583.08,453.46,583.08z" />
    </svg>
  </span>;

## Overview

In the previous step, you created a Rule to capture an unusual drop in maximum air and ground temperature. That Rule now represents a precise condition that you can monitor in future datasets. By defining it once, you have transformed a visual observation into something that Sift can programmatically detect across Runs.

Now imagine receiving a new set of data from the rover and wanting to check whether the same issue has appeared again. Instead of manually inspecting plots or writing fresh checks, you can reuse the existing Rule to automate the review process. Sift evaluates the data against that logic and flags any matches. This reduces review time and ensures consistency across Runs.

For purposes of this tutorial, in this step you will simulate the arrival of a new dataset that happens to contain the same anomaly you previously identified.
Rather than uploading new data from the rover (a new Run), you will select the existing Run and evaluate it using the Rule you created.
This demonstrates how Sift can automatically check for known issues in incoming data, using Rules to surface matching conditions and generate a clear, structured [Report](../../documentation/review/overview).

## Generate a Report

With that context in mind, it is time to create a Report and see how Sift automatically flags the anomaly using your Rule.

1. In **Sift**, click <SiftIcon className="icon-sift" />.
2. Click the <Icon icon="stopwatch" /> **Runs** tab.
3. In the **Run name or description** box, enter:
   ```
   fl_env_telemetry_two_thousand_twenty_one
   ```
4. Replace `fl` with your own initials.
5. Click your Run from the search results to open it.
6. Click <Icon icon="list-check" /> **Create Report**.
7. Click the <Icon icon="code-simple" /> **Rules** tab.
8. Select your Rule (for example, **fl\_low\_max\_temp\_anomaly**).
9. Click <Icon icon="list-check" /> **Evaluate**.
10. Click <Icon icon="bell" /> **Notifications**
11. Click the **Completed** tab.
    * It may take a few moments for the Report to finish evaluating. Once complete, it will appear in the **Completed** tab.
12. In the **Report `fl`\_env\_telemetry\_two\_thousand\_twenty\_one** section, click **Open Report**.
    * `fl` referring to your own initials.

The completed Report highlights where the Rule logic was met within the dataset. In this case, the Rule `low_max_temp_anomaly` was triggered by a significant and sudden drop in both `max_air_temp(C)` and `max_ground_temp(C)` values on October 6, 2021.

The vertical marker on the plot indicates the exact timestamp of the anomaly. This confirms that Sift successfully detected the previously defined condition in the selected Run, demonstrating how Rules and Reports work together to automate anomaly detection and ensure consistent review across telemetry data.
