# NONSIM
URL: https://docs.valsight.ai/nonsim/
Description: The NONSIM function returns the value of a node with no assumptions applied to that node. Upstream nodes that affect the input still have their assumptions applied.
**Category:** [Assumptions & result sets](/assumptions-result-sets/)

## Overview

The **NONSIM** function **returns the value of a node with no assumptions applied to that node**. Upstream nodes that affect the input still have their assumptions applied.

Use this function when you want to isolate the effect of assumptions placed on the node itself, while keeping upstream assumptions active.

## Syntax

`NONSIM('Node' [, "useVariablesFrom"])`

**Example usage:** `NONSIM('Revenue')`

## Parameters

| Parameter            | Description                                                                  | Type           | Required | Default      |
| -------------------- | ---------------------------------------------------------------------------- | -------------- | -------- | ------------ |
| **Node**             | Input node, specified using the node name in single quotes (e.g.`'Revenue'`) | Node reference | Yes      | --           |
| **useVariablesFrom** | Determines which variable values are used in the calculation                 | Keyword        | No       | `"SCENARIO"` |

**useVariablesFrom options:**

* `"SCENARIO"`: Uses variable values as overridden by the scenario. This is the default.
* `"PROJECT"`: Uses the original project default values instead of scenario overrides.

## Output shape

| Aspect         | Behavior                                                                                                   |
| -------------- | ---------------------------------------------------------------------------------------------------------- |
| Dimensionality | Same as the input node.                                                                                    |
| Values         | The input node's values computed without its own assumptions, but with upstream assumptions still applied. |
| Row count      | Same as the input node's values without its own assumptions.                                               |

## Watch out

* The input must be a **single node reference**. Combinations of operations (e.g. `'A' + 'B'`) are not valid.
* NONSIM only removes assumptions from the **specified node**. Upstream nodes keep their assumptions. To remove assumptions from the node and all upstream nodes, use [BASELINE](/baseline/) instead.
* If the model has **multiple baselines**, the baseline of the current scenario is used.
* The **PROJECT** mode only applies project default variable values to nodes calculated within the NONSIM function. Upstream nodes outside the NONSIM call still use scenario variable values.

## Examples

### Baseline values without assumptions

This example shows the baseline result of multiplying two nodes when no assumptions or variable overrides are applied. The project default variable $MY\_VAR is set to 10.

**Project default variables:** $MY\_VAR = 10

**Input node:** `'Node 1'`

| Year | Value         |
| ---- | ------------- |
| 2025 | $MY\_VAR = 10 |
| 2026 | $MY\_VAR = 10 |
| 2027 | $MY\_VAR = 10 |
| 2028 | $MY\_VAR = 10 |

**Input node:** `'Node 2'`

| Year | Value |
| ---- | ----- |
| 2025 | 1     |
| 2026 | 1     |
| 2027 | 1     |
| 2028 | 1     |

**Formula:** `'Node 1' * 'Node 2'`

| Year | Value |
| ---- | ----- |
| 2025 | 10    |
| 2026 | 10    |
| 2027 | 10    |
| 2028 | 10    |

These are the baseline results with no assumptions applied.

### Values with scenario overrides and assumptions

This example shows how the same nodes look when a scenario overrides $MY\_VAR to 20 and assumptions are activated on both nodes.

**Variable override via scenario:** $MY\_VAR = 20

**Input node:** `'Node 1'` (with overridden $MY\_VAR as 'Base' and activated assumptions as 'Change')

| Year | Base | Change | Result |
| ---- | ---- | ------ | ------ |
| 2025 | 20   | 0      | 20     |
| 2026 | 20   | 10     | 30     |
| 2027 | 20   | 20     | 40     |
| 2028 | 20   | 30     | 50     |

**Input node:** `'Node 2'` (with the initial measures as 'Base' and activated assumptions as 'Change')

| Year | Base | Change | Result |
| ---- | ---- | ------ | ------ |
| 2025 | 1    | 1      | 2      |
| 2026 | 1    | 2      | 3      |
| 2027 | 1    | 3      | 4      |
| 2028 | 1    | 4      | 5      |

**Formula:** `'Node 1' * 'Node 2'`

**Result node:** (with its own activated assumption adding +5 as 'Change')

| Year | Base (Node 1 × Node 2) | Change | Result |
| ---- | ---------------------- | ------ | ------ |
| 2025 | 20 × 2                 | 5      | 45     |
| 2026 | 30 × 3                 | 5      | 95     |
| 2027 | 40 × 4                 | 5      | 165    |
| 2028 | 50 × 5                 | 5      | 255    |

### Comparing SCENARIO vs PROJECT mode

This example shows the difference between the two modes. NONSIM removes only the Result Node's own assumptions (+5 Change) but keeps upstream assumptions on Node 1 and Node 2.

**Formula:** `NONSIM('Result Node')`

**Equivalent to:** `NONSIM('Result Node', "SCENARIO")`

| Year | Calculation | Result |
| ---- | ----------- | ------ |
| 2025 | 20 × 2      | 40     |
| 2026 | 30 × 3      | 90     |
| 2027 | 40 × 4      | 160    |
| 2028 | 50 × 5      | 250    |

The Result Node's own assumption (+5) is removed, but Node 1 and Node 2 keep their assumptions and the scenario's variable override ($MY\_VAR = 20).

**Formula:** `NONSIM('Result Node', "PROJECT")`

| Year | Calculation   | Result |
| ---- | ------------- | ------ |
| 2025 | 10 × 2        | 20     |
| 2026 | (10 + 10) × 3 | 60     |
| 2027 | (10 + 20) × 4 | 120    |
| 2028 | (10 + 30) × 5 | 200    |

PROJECT mode reverts $MY\_VAR to the project default (10), so Node 1's base becomes 10 instead of 20. Node 1's upstream assumptions (Change = 0, 10, 20, 30) and Node 2's assumptions are still applied.

## Related

| Function               | When to use instead                                                                                                                       |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| [BASELINE](/baseline/) | When you want to remove assumptions from the node and all upstream nodes. NONSIM only removes assumptions from the specified node itself. |
