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

# Variables

> The nodes of your causal graph — the things you measure.

Every causal graph is a set of **variables** connected by **edges**. A variable is a measurable quantity in your domain.

## Variable types

* **Continuous** — real-valued (temperature, price, latency).
* **Discrete** — a finite set of categories (department, status, tier).
* **Binary** — true/false (churned, approved, flagged).
* **Count** — non-negative integers (visits, retries, staff on shift).

Nora picks a sensible default statistical treatment per type but you can override.

## Creating a variable

From the graph canvas:

* Click **+ Variable** and fill in:
  * **Name** — how you'll refer to it (`blood_pressure_systolic`, `refund_processed`).
  * **Display label** — human-readable version shown on the node.
  * **Type** — continuous / discrete / binary / count.
  * **Unit** — for continuous (`mmHg`, `USD`, `ms`).
  * **Description** — one line. Shown in tooltips and used by extraction.
  * **Values** — for discrete, the allowed categories.

## Modeling advice

* **Prefer measurable variables.** "Customer satisfaction" is too vague; "NPS score" or "days-to-resolution" is measurable.
* **One variable per concept.** Don't merge "temperature" and "pressure" into one node.
* **Name variables in the direction of measurement.** `refund_rate` not `no_refund`. Positive framing avoids double-negatives when reasoning.
* **Split composite variables.** "Cost" splits into `labor_cost`, `materials_cost`, etc. — clearer edges downstream.

## Attributes

Every variable can carry metadata:

* **Range** — expected min/max for continuous.
* **Reference values** — normal, warning, critical.
* **Source** — where the variable was measured or estimated (link to a document or dataset).
* **Confidence** — how confident you are in this variable's role in your model.

Metadata surfaces in analysis and in verification (e.g., "the Agent claimed X = 200, but X's range is 0-50").

## Grouping

Group related variables into **clusters** (visual only — doesn't affect causal semantics):

* Drag variables into a group.
* Give the group a name and color.
* Collapse to hide detail; expand to work with individuals.

Great for large graphs — 50+ variables becomes navigable when grouped by subsystem.

## Renaming

Renaming a variable updates every edge, every attached document, and every stored analysis. No stale references.

## Deleting

Deleting a variable removes all incoming and outgoing edges. Nora warns you and shows the cascade. Deleted variables can be restored within 30 days from the graph history.

## Bulk import

Import variables from a CSV:

```csv theme={null}
name,type,unit,description
temperature,continuous,celsius,ambient temperature at sensor A
status,discrete,,pipeline status (ok/warn/err)
```

Then use extraction to propose edges among them (see [Extract from documents](/build/causal-graph/extraction)).
