# Simulation Simulate a rule or analysis version with manually entered values to check the result before publishing it. The simulation writes nothing: it does not change events, lists or analysis windows. Any version can be simulated, including a draft, by any access profile. A [connected agent](/en/admin/agent/#operations) runs the same simulations. ## Simulate a rule In the version menu, select **Simulate…**: 1. Under **Variables**, fill in the fields the rule reads. 2. If the rule runs an analysis, choose the analysis windows. 3. Select **Simulate**. The analysis windows define the history each analysis run reads: | Windows | Behavior | | :--------------------- | :--------------------------------------------------------------------------- | | **Live** | the account's accumulated history, as in a real run | | **Empty** | no history; counts start at zero and proportions do not produce a score | | **Supplied values** | each cell uses the entered value; a blank cell is evaluated with no history | With **Supplied values**, the screen shows one field per cell of each analysis. A count cell takes an integer from 0. A proportion cell takes the **Percentage**, from 0 to 100, and the **Sample**, from 1. The trigger and the score are still calculated from each cell's configuration. The values are only used if the condition that runs the analysis is met. ### Result The result reports which condition was met and is split into four tabs: | Tab | Content | | :---------------- | :----------------------------------------------------------------------------------------------- | | **Fields** | values the actions would write to the event | | **Transients** | [temporary variables](/en/rules/expression-syntax/#temporary-variables-) produced during the run | | **Unevaluated** | cells left out of the decision, with the reason | | **Execution** | each condition, met or not, and the lists, analyses and enrichments queried by a met condition | An unevaluated cell takes no part in the decision, and the absence of a trigger does not indicate low risk. The reasons are **Not enough data to score**, **Dimension has no value in the event** and **Window unavailable**. When an action replaces or clears an entered value, the screen shows a notice under the corresponding field. The conditions that follow read the new value. ### What the simulation runs The simulation reproduces the real run, with the following differences: | Action or query | In the simulation | | :-------------------------------------------------------------------------- | :------------------------------------------------------------------------ | | [Set field](/en/rules/actions/set_field/) and the temporary variable actions | write only to the simulation's memory | | [Run analysis](/en/rules/actions/run_analysis/) | reads the real windows, except with **Empty** or **Supplied values** | | [Enrich](/en/rules/actions/enrich/) and [list](/en/rules/lists/) queries | query the real data, read only | | [Add to list](/en/rules/actions/add_to_list/) and [record analysis](/en/rules/actions/record_analysis/) | are not run; the result shows them as actions not executed | A version in [observation](/en/rules/versioning/#observation) is simulated against the windows of the analysis in observation. The simulation does not count toward the runs nor toward the [conditions met](/en/rules/versioning/#conditions-met). ## Simulate an analysis In the analysis version menu, select **Simulate…**: 1. Under **Dimensions**, fill in the fields the cells group the windows by. A cell with any blank dimension is not evaluated. 2. Choose the analysis windows, with the same options as the [rule simulation](#simulate-a-rule). 3. Select **Simulate**. The **Cells** card shows one row per cell: | Column | Content | | :---------- | :------------------------------------------------------------------------------- | | **Name** | the cell's name and measure, with the **Triggered** and **Decided** marks, when they apply | | **Window** | the cell's accumulation period | | **Threshold** | the cell's trigger; blank on a [no-trigger cell](/en/rules/analyses/#no-trigger) | | **Score** | the cell's score; blank on a no-trigger cell | | **Value** | measured value | | **Sample** | number of observations | | **Source** | where the value comes from | The **Source** column takes one of these values: | Source | Origin | | :---------------- | :---------------------------------------------------------------- | | **Window** | the account's real window | | **Supplied** | value entered in the simulation | | **No history** | empty windows, or a blank cell under **Supplied values** | In a draft, a cell created in this version shows the notice **New in this version. Starts with no history once published.** The cells that come from an earlier version keep the windows' history, as described in [Analysis versions](/en/rules/versioning/#analysis-versions). The **Result** card indicates the cell that triggered the analysis and shows the values a rule receives when running this version: the score, the score cell, and the count and names of the triggered cells. The corresponding keys are in [Run analysis](/en/rules/actions/run_analysis/).