---
title: "Crafting a Dimension (Causal Hypothesis)"
url: "https://docs.noreja.com/en/article/crafting-a-dimension-causal-hypothesis"
language: "en"
last_updated: "2026-02-28T11:32:53.949Z"
---

# Crafting a Dimension (Causal Hypothesis)

Crafting a Dimension is where data modeling turns into structured causal insight. By defining a clear hypothesis of how activities relate to one another—and anchoring that structure with a consistent Case ID—you transform entity graphs into meaningful analytical perspectives. Through causal path design, attribute selection, and filter configuration, dimensions become the semantic backbone of dashboards, process analysis, and AI-driven insights, ensuring that every metric reflects a logically sound and business-aligned process narrative.

## Overview

Once your entities are successfully defined, it’s time to breathe structure and meaning into your analytics with dimension modeling. Think of dimensions as the lenses through which you’ll slice and dice your data—customer slices, product hierarchies, time breakdowns, and more. Here’s how you get started and stay in control:

* * *

## Navigating to the Dimensions Screen

Back in the Builder, select **Dimensions** from the left-hand menu. In an instant, you’re presented with a comprehensive table of every dimension you’ve crafted so far. This single view becomes your workspace for monitoring progress, tweaking configurations, and triggering imports.

* * *

### Understanding the Dimension Table

Each dimension lives in its own row, and the columns tell the full story:

**Name**  
Your custom label for the dimension—choose something focused and descriptive, such as `Runtime_Analysis_Order_Creation` or `Violations_Purchase_To_Pay`, so colleagues immediately grasp its analytical purpose.

**Entity Configuration**  
Displays which entity graph underpins the dimension. This is the blueprint you selected when first defining the dimension—whether it’s built off a single entity or a more complex join of related entities.

**Status**  
A simple two-state indicator:

-   **Not Imported** – you’ve defined the dimension, but haven’t yet made it available for analysis.
-   **Imported** (green) – your dimension has successfully completed its import and is now live in dashboards, the Analyzer, and AI-powered insights.

**Progress**  
Watch the import in action. While your dimension is being processed, this column shows each step—schema validation, data aggregation, relationship mapping—until it reaches **Import Done**.

**Timestamps**

-   **Created** – the exact moment you first defined this dimension.
-   **Changed** – the last time you updated its configuration.
-   **Imported** – when your most recent successful import completed, making the latest structure and data available to end users.

* * *

### Actions at Your Fingertips

On the far right, a row of buttons equips you to steer your dimensions through every stage of the lifecycle:

-   **Open Builder** Launches the Dimension Builder interface, where you’ll dive into the step-by-step design of attributes, hierarchies, and filters (covered in our next guide).
-   **Reset** Rolls back any unsaved edits and restores the dimension to its last imported state—ideal when experiments go sideways or you need a clean slate.
-   **Import** Triggers the full dimension import process. Use this whenever you’ve made configuration changes and want them reflected in your analytical environment.
-   **Delete** Permanently removes the dimension and all associated metadata. Be sure no reports or downstream processes depend on it before you click.
-   **Copy Configuration** Creates a duplicate of the dimension’s setup—perfect for building variant versions (e.g., regional slices or time-period comparisons) without starting from scratch.

* * *

### Pro Tips for Smooth Dimension Modeling

**Meaningful Names:** Incorporate the business context—`Q1_Process_Performance` is far more informative than `Dim_001`.

**Versioning via Copy:** When experimenting with new attributes or hierarchies, clone an existing dimension first. This way, you preserve a stable baseline.

**Frequent Imports:** After any change—whether adding a calculated attribute or adjusting a relationship—hit **Import** to keep your dashboards in sync.

**Reset to Recover:** If an import fails or yields unexpected results, use **Reset** before reconfiguring—this avoids a buildup of partial or inconsistent states.

With dimensions locked in and imported, you’re now ready to layer attributes, define hierarchies, and unlock powerful, multidimensional views across your entire process data universe. Onward to the Dimension Builder!

* * *

## Define Your Dimension Hypothesis

After you’ve clicked **Open Builder**, you enter the three-stage workflow for crafting your dimension: **Define Hypothesis**, **Configure Attributes & Filters**, and **Review & Import**. In this first stage, you’ll translate your business process into a clear, actionable model.

On the **left**, the sidebar lists every process activity you’ve already defined—things like **Order Placed**, **Payment Processed**, **Item Shipped**, and **Return Completed**. These are the building blocks of your dimension.

In the **center**, a blank grid awaits your design. This canvas is your stage, where activities become nodes and relationships become arrows. If you prefer tidy layouts, toggle on **Show Grid** beneath the canvas—faint lines will help you align everything neatly.

### Adding Activities

**Drag & Drop:** Click an activity in the sidebar and drag it onto the canvas. When you release, the node snaps into place.

**Quick Add:** Hover over any activity in the sidebar and click the small blue arrow to drop it onto the canvas instantly.

Arrange each node so that the sequence of steps reads naturally—typically flowing left to right or top to bottom. Positioning is more than aesthetics: a well-organized layout makes complex processes easy to follow at a glance.

### Drawing Causal Paths

Once your nodes are in place, it’s time to connect them:

Click **Add Paths** in the top-left toolbar.

Click and hold on a source node (for example, **Order Placed**), drag to a target node (such as **Payment Processed**), and release. An arrow appears, representing the expected progression.

Continue drawing until every necessary relationship is mapped.

Click **Add Paths** again to finish.

These paths define the causal flow—exactly how one activity leads to the next in your business process.

> **Causal Integrity by Design**
> 
> To ensure meaningful and interpretable models, Noreja guides you toward a clear causal structure. 
> 
> Paths can only be created in a way that preserves a consistent, directional cause-and-effect flow. Relationships that would introduce causal loops or contradict a clear progression are automatically prevented, ensuring that the model remains readable, logically sound, and aligned with how processes unfold in reality. 
> 
> As a result, every path you draw contributes to a transparent and trustworthy causal narrative of your business process.

### Refining Node Behavior

Right-click any activity node to open its context menu, where you can:

**Delete:** Remove the node if it’s no longer needed.

**Start Activity:** Mark this step as a valid entry point—useful if multiple activities can initiate the process.

**End Activity:** Flag this node as a legitimate endpoint.

**Standard Activity:** Clear any start/end flags, returning the node to its default state.

**Set Case ID:** Choose this node’s primary key (for example, `order_id`) to act as your Case ID—the unique identifier that ties the entire process together.

> **Why the Case ID Matters**  
> By anchoring your dimension to a single key—like an order number or customer ID—you ensure every event, timestamp, and metric rolls up correctly. This consistency underpins accurate reporting, reliable dashboards, and meaningful AI-driven insights.

### Final Check

Before moving on, take a moment to review:

Have you placed all required activities?

Are all causal relationships clearly drawn?

Is the Case ID correctly assigned?

When you’re satisfied that your hypothesis graph mirrors the real-world process, click **Next** in the bottom-right corner. You’ll proceed to **Step 2: Configure Attributes & Filters**, where you’ll select data fields, define calculations, and set up filters that turn your model into a powerful analytical asset.

* * *

## Configure Filters for the Dimension

With your process graph in place, the next stage lets you define **filters**—the knobs and levers your end users will turn in **Dashboards** and the **Analyzer** to focus on the segments that matter most to your business.

When you open the **Filter Settings**, you’ll see a table much like the one you saw for activities:

| Column | Description |
| --- | --- |
| **Filter Name** | A descriptive label you choose—ideally matching the underlying property, such as `Order Value Range` or `Customer Segment`. |
| **Activity** | Indicates which process activity the property belongs to (e.g., `Payment Processed`, `Order Shipped`). |
| **Property** | The technical name of the field within that activity’s schema (for example, `total_amount` or `customer_type`). |
| **Type** | The data type of the filter, which determines the kinds of controls available (numeric slider, date picker, multi-select list, etc.). |
| **Actions** | Buttons to **Edit** or **Delete** each filter. |

### Adding a New Filter

Click the **⁺ Add Filter** button below the existing list.

In the modal that appears, complete these four fields:

**Activity**  
Select the process activity where the property resides.

**Property**  
Choose from the list of imported fields associated with that activity.

**Type**  
This menu adapts to your property’s data type:

1.  **Numeric (e.g., DECIMAL, INTEGER):**
    -   **Size Range** (S, M, L) for quick buckets
    -   **Comparison Operators** (>, <, =)
    -   **Number List** for selecting discrete values
    -   **Slider Range** for free-form min/max selection
2.  **Text or Indicator:**
    -   **Multi-Select List** to pick one or more values
3.  **Timestamp / Date:**
    -   **Date/Time Picker** for precise period selection with **Predefined Time Filters** (Last 7 days, Month to Date, etc.)

**Filter Name**  
Provide a clear, user-friendly label—this is what your analysts will see in the UI. 

Click **Confirm** to add the filter. Repeat as needed until you’ve have all the necessary filters defined. When your filter list reflects all the slices and dice you require, click **Next** to advance to the final step.

* * *

## Finalizing Your Dimension in the Summary

The **Summary** page offers a consolidated view of your dimension configuration:

**Start & End Activities**  
A quick list of which nodes you designated as valid entry and exit points.

**Hypothesis Visualization**  
A compact rendering of your causal graph, so you can verify that every node and arrow appears as intended.

**Context Information**  
A placeholder for descriptive text or metadata about this dimension—useful for annotating business logic or intended use cases (more on context in our dedicated article).

**Filter Overview**  
A table of all filters you’ve created, complete with names, associated activities, and types.

Review each section to confirm accuracy. If you spot anything that needs adjustment, you can click back through the stepper to make changes. Once everything checks out, click **Save & Exit**—your dimension configuration is now finalized.

* * *

## Importing the Dimension

Back on the Dimensions overview, locate your newly configured dimension and click **Import** in the Actions column. This triggers the import process:

**Validation:** Confirms your configuration against the source schema.

**Dimension Generation:** Pulls in the relevant event data from the **Entity (not the source system again!).**

**Completion:** Updates the **Status** to **Imported** and logs the **Imported** timestamp.

With the import successful, your dimension becomes immediately available for reporting, dashboarding, and AI-driven insights throughout the Builder. You’ve now completed the end-to-end dimension modeling workflow. Happy analyzing!
