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

# Edges

> The causal relationships between variables — direction, strength, and mechanism.

An **edge** in a causal graph goes from a **cause** to an **effect**. It's directed. It carries information about how strong the relationship is and how it works.

## Creating an edge

Two ways:

* Drag from one variable's edge handle to another.
* Click the graph, **+ Edge**, then pick source and target.

## Edge attributes

* **Direction** — always from cause to effect. Reversing an edge changes its meaning entirely.
* **Sign** — positive (cause increases → effect increases), negative (cause increases → effect decreases), or unknown.
* **Strength** — small / medium / large. Or a numeric value if you have one from data.
* **Mechanism** — a one-line explanation. Optional but strongly recommended for the "why".
* **Evidence** — link to a document, dataset, or previous analysis that supports the edge.
* **Confidence** — how sure you are. Affects verification behavior.

## The DAG constraint

The graph must be acyclic. If you try to add an edge that would create a cycle (A→B and later B→A directly or transitively), the editor rejects it with a diagram of the offending path.

If two variables really do influence each other in both directions, this is usually a sign you need a **third variable** representing the interaction, or a time-lagged version (`A_t` → `B_{t+1}` → `A_{t+2}`).

## Confounders and colliders

The graph editor helps you avoid two classic mistakes:

* **Confounders** — a third variable causing both A and B. If you draw A→B without accounting for a confounder, downstream analysis will be wrong. The editor flags likely confounders (based on the other edges in your graph) as suggestions.
* **Colliders** — a variable caused by both A and B. Conditioning on a collider creates spurious correlations. The editor warns when a query conditions on a collider.

You can ignore both warnings — sometimes they're wrong — but they surface issues before they mislead reasoning.

## Bidirectional relationships (approximate)

If A and B genuinely co-vary without a clear causal direction, model them as **linked by a shared latent variable** — e.g., introduce a `both_driven_by_C` node with edges C→A and C→B. Preserves the DAG.

## Edge weights from data

If you have a dataset that measures both cause and effect variables, Nora can estimate edge strength directly:

* **Data source** — attach a document or table with the observations.
* **Estimator** — regression, correlation, or a small causal-inference model.
* **Result** — coefficient + confidence interval + p-value, stored on the edge.

Data-derived edges are marked visually so you can tell them from expert-authored ones.

## Managing many edges

* **Auto-layout** — snaps the graph into a readable arrangement using hierarchical topology.
* **Filter by strength** — hide weak edges to focus on the backbone.
* **Filter by confidence** — hide low-confidence edges when reviewing what you'd trust for verification.
* **Search** — find any edge by variable name.

## Testing an edge

Right-click an edge → **Test**. Nora runs a quick sanity check:

* Does the sign match observations in attached data?
* Do documents cited as evidence actually support this edge?
* Does removing this edge change downstream verification results significantly?

Useful for pruning weak or misleading edges before they affect production behavior.
