# Causal Graph

The causal graph is the heart of your Digital Twin—a visual map of cause and effect in your data. It shows not just that variables are related, but *how* they're related: which ones drive others, which ones share common causes, and how effects propagate through your system.

Reading a causal graph is like reading a circuit diagram for your business. Once you understand it, you can trace how changes flow through the system, identify leverage points, and understand why things happen the way they do. A marketing spend increase doesn't just affect sales—it might affect brand awareness, which affects customer acquisition, which affects revenue and eventually customer service load.

This guide teaches you to read, interpret, and refine the causal graph. It's one of the most valuable skills for getting value from RootCause.ai.

For the technical background, see [Causal Discovery](https://docs.rootcause.ai/core-technologies/causal-discovery).

(SCREENSHOT: Full causal graph visualization showing nodes, directed edges, and node highlighting)

***

### Anatomy of the Graph

The causal graph displays three things:

* **Nodes** – Each node represents a variable from your data (a column in your Data View). Nodes are usually shown as circles or boxes with the variable name.
* **Edges** – Lines connecting nodes represent causal relationships. The type of line tells you about the relationship.
* **Direction** – Arrows point from cause to effect. If you see A → B, that means changes in A cause changes in B.

(SCREENSHOT: Close-up of graph showing nodes labeled with variable names and arrows between them)

**Edge Types:**

| Edge  | Visual              | Meaning                                              |
| ----- | ------------------- | ---------------------------------------------------- |
| A → B | Solid arrow         | A causes B (strong evidence for direction)           |
| A — B | Undirected line     | A and B are related, but direction is uncertain      |
| A ↔ B | Bidirectional arrow | A and B share a common unobserved cause (confounder) |

Understanding edge types helps you know where you have certainty and where you might need expert input.

***

### Graph Views

RootCause.ai offers multiple ways to view the same causal structure:

**Flowchart View**

An interactive, draggable graph. This is the default and most flexible view.

* **Navigate:** Drag nodes to rearrange the layout
* **Zoom:** Scroll or pinch to zoom in on specific areas
* **Select:** Click a node to highlight its connections
* **Inspect:** Hover over edges to see relationship strength and statistics

(SCREENSHOT: Flowchart view with a node selected, showing its connections highlighted)

**DAG View**

A hierarchical layout with causes at the top and effects at the bottom. Useful for understanding the overall flow from inputs to outcomes.

(SCREENSHOT: DAG view showing layered hierarchy from top to bottom)

***

### Reading Relationships

**Direct Causes**

Look at the arrows pointing *into* a node. These are its direct causes—variables that directly influence it. If you want to change a variable, focus on its direct causes.

*Example:* If `customer_satisfaction` has arrows from `product_quality`, `support_response_time`, and `price_perception`, those three variables directly drive satisfaction.

**Direct Effects**

Look at the arrows pointing *out* of a node. These are its direct effects—what changes when this variable changes. Understanding effects helps you predict consequences of interventions.

*Example:* If `marketing_spend` has arrows to `brand_awareness` and `website_traffic`, increasing marketing affects both.

**Indirect Paths**

Follow chains of arrows to see indirect relationships. A → B → C means A indirectly causes C through B. These chains can be long—a change at one end of the system can ripple to the other.

*Example:* `economic_conditions` → `consumer_confidence` → `purchase_intent` → `sales` shows how macro factors eventually affect your bottom line.

(SCREENSHOT: Path highlighted showing indirect causal chain across multiple nodes)

**Confounders**

Sometimes two variables appear correlated but neither causes the other—they share a common cause (confounder). Ice cream sales and drownings both increase in summer, but neither causes the other; temperature is the confounder.

RootCause.ai detects and models confounders. When you see A ↔ B (bidirectional arrow), it means there's likely an unobserved variable affecting both. See [Confounder Detection](https://docs.rootcause.ai/key-innovations/confounder-detection-and-modeling) for the technical details.

***

### Path Analysis

The **Path Analysis** tab provides a different view: Sankey diagrams that show how causal influence flows through your system.

(SCREENSHOT: Sankey diagram showing inbound causal paths to a target variable with flow widths)

**Inbound Paths**

Select a target variable (like revenue or churn) to see all causal paths leading into it. The width of each flow shows contribution—how much each path explains the outcome.

This answers: "What drives this outcome, and how much does each driver matter?"

**Outbound Paths**

Select a source variable (like a decision you control) to see all downstream effects. This shows how changes propagate through the system.

This answers: "If I change this, what else changes?"

**Why Path Analysis Is Valuable:**

* **Identify biggest drivers:** Wide flows indicate strong causal influence
* **Understand intervention effects:** See how a change cascades
* **Find unexpected connections:** Discover non-obvious causal chains
* **Prioritize actions:** Focus on paths with the biggest impact

(SCREENSHOT: Outbound path analysis showing effects flowing from a selected variable)

***

### Editing Relationships

The discovered graph is a starting point, not a final answer. You can incorporate domain knowledge:

**Known Relationships**

If you're certain a causal relationship exists (from experiments, physics, or domain expertise), declare it:

1. Go to the **Config** or **Relationships** tab
2. Click **Add Known Relationship**
3. Specify source and target variables
4. Re-run discovery—the algorithm will respect your constraint

*Example:* You know from A/B tests that email campaigns increase conversions. Add this as a Known relationship to ensure the model captures it.

(SCREENSHOT: Known relationship editor with source/target variable selection)

**Blocked Relationships**

If you're certain a relationship *cannot* exist, block it:

1. Click **Add Blocked Relationship**
2. Specify the impossible relationship
3. Re-run discovery

*Example:* Customer age cannot be caused by purchase behavior (causality flows the other way). Block the reverse direction.

**When to Edit:**

* You have experimental evidence that contradicts or confirms a discovered edge
* Domain expertise tells you a relationship is impossible or certain
* You want to test hypotheses ("what if this relationship doesn't exist?")
* The graph includes obvious spurious correlations

***

### Handling Uncertain Edges

RootCause.ai flags edges where statistical evidence is ambiguous:

* **Undirected edges** (A — B) indicate the variables are related, but the algorithm couldn't determine which causes which
* These edges are surfaced for human review

**Resolving Uncertainty:**

1. **Consider the variables:** Does one logically precede the other? Is one a decision you make and one an outcome?
2. **Check temporal order:** If one consistently happens before the other, that's likely the cause
3. **Apply domain knowledge:** Which direction makes business sense?
4. **Add constraints:** If you're confident, add a Known relationship with the correct direction
5. **Re-run discovery** to update the graph

(SCREENSHOT: Uncertain edge highlighted with review prompt)

Don't feel pressured to resolve every uncertain edge immediately. Some uncertainty is okay—it reflects genuine ambiguity in the data.

***

### Model Probabilities

For each node, you can view how it's modeled given its parents:

* **Numeric variables:** Mean, variance, and how they depend on parent values
* **Categorical variables:** Probability distribution across categories

This shows the "mechanics" of the causal model—how parent values translate into child values.

(SCREENSHOT: Node detail panel showing probability distribution or parameter values)

***

### Evaluation Metrics

The **Evaluation** tab helps you assess model quality:

**Graph-Level Metrics:**

* Overall fit (how well the model explains the data)
* Number of relationships discovered
* Proportion of certain vs. uncertain edges

**Node-Level Metrics:**

For each variable, see how well it's predicted:

* **Categorical:** Accuracy, AUC (area under ROC curve)
* **Numeric:** MSE (mean squared error), MAE (mean absolute error), R²

(SCREENSHOT: Evaluation tab showing node-level metrics in a table)

**Using Metrics:**

* **Find weak spots:** Variables with poor metrics might need more data or better features
* **Guide refinement:** If a variable is poorly explained, consider what causes might be missing
* **Compare versions:** See if changes improve or hurt model quality

***

### Exporting the Graph

Share your causal understanding with others:

* **Image Export:** PNG or SVG for presentations and reports
* **Data Export:** JSON format with complete edge list and weights for use in other tools

Click the download button in the graph view toolbar.

(SCREENSHOT: Export dropdown showing image and data format options)

***

### Best Practices

**Start with Key Variables**

Don't try to understand everything at once. Focus on your most important outcome variables first. What drives them? Then expand outward.

**Validate with Experts**

The graph may surface relationships you didn't expect. Some are genuine discoveries—causation your team hadn't recognized. Others might be spurious. Share the graph with domain experts; their reaction helps separate signal from noise.

**Iterate**

Causal discovery is iterative. First pass reveals the broad structure. Then you refine: add Known edges for things you're sure about, block spurious connections, re-run, and review again. Each iteration improves the model.

**Document Your Reasoning**

When you add Known or Blocked relationships, write down why. Six months from now, you'll want to remember whether that constraint was based on an experiment, expert opinion, or just a hunch.

***

### Next Steps

With your causal graph understood, you're ready to act on it:

* Run [Simulations](https://docs.rootcause.ai/user-guide/digital-twin/simulations) to test what-if scenarios and find optimal strategies
