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

# Segmenting drivers

> One of the most powerful uses of dimensions is segmenting your drivers. For example, you might have an Amount driver segmented by both Account and Class, and another version rolled up by just Account.

## Why segment your drivers

### Easier & scalable modeling

Segmenting your drivers help you build scalable models that are easier to maintain and expand.

Take this example: you want to model **Growth Rate by Region**. You could create separate drivers like `Growth Rate - US`, `Growth Rate - EMEA`, etc.—but that naming convention gets messy fast.

When you segment drivers without using dimensions, you have to create formulas for your totals that reference each driver individually.

<img src="https://mintcdn.com/runway-5055a12e/qkmZoKL31yU_hnvb/CleanShot2025-06-02at19.42.38@2x.png?fit=max&auto=format&n=qkmZoKL31yU_hnvb&q=85&s=ccabdbef254af6a271cf0d014ba88896" alt="Nosegmentdrivers Pn" width="1888" height="474" data-path="CleanShot2025-06-02at19.42.38@2x.png" />

Instead, by segmenting a single **Growth Rate** driver using a **Region** dimension, you unlock powerful benefits.

* You can write one formula that is inherited by all regions using [***This Segment***](https://docs.runway.com/concepts/databases/formulas-in-databases#dynamic-formulas-using-this-segment)***.***
* When you [segment drivers in a database](https://docs.runway.com/concepts/dimensions/segmenting-drivers#segmenting-drivers-in-a-database), which is the recommended path, aggregations like `sum(Growth Rate [All Regions])` stay maintained as new items get added to a dimension.
* Segmenting a driver by a dimension makes it easy to slice drivers further and see more detailed cuts of data - just **add another dimension as a segment**.

<img src="https://mintcdn.com/runway-5055a12e/qkmZoKL31yU_hnvb/CleanShot2025-06-02at19.47.10@2x.png?fit=max&auto=format&n=qkmZoKL31yU_hnvb&q=85&s=8b91a0895de690938cb9b1abaad224d3" alt="Driversusingdimension Pn" width="2210" height="502" data-path="CleanShot2025-06-02at19.47.10@2x.png" />

Without dimensions, you'd need to manually create and maintain each driver, and manually update your formulas any time your data changes. With dimensions, Runway does the heavy lifting for you.

### Rollup and drill into your data

Dimensions make it easy to model your data at different levels of granularity—and to roll things up and drill-in when needed.

Let’s say you have a database with **Revenue** segmented by both **Region** and **City**. This means you have one driver for every segment (combinations of region and city).

<img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/segment-why-2.png?fit=max&auto=format&n=_tyDrsjKuAGqMAvO&q=85&s=67f51c6b318df308fea03e655237ba6a" alt="Segment Why 2 Pn" width="998" height="496" data-path="images/dimensions/segment-why-2.png" />

If you want to also view Revenue rolled up just by **Region**, you can easily do this by creating a rolled-up database:

1. Open the target database where you want the rolled-up data to live or [create a new one](https://docs.runway.com/concepts/databases/databases-basics#creating-a-database).
2. Click **Edit** to open the database [configuration menu](https://docs.runway.com/concepts/databases/databases-basics#configuring-a-database).
3. Add the **source database** (in this case, the one segmented by Region and City).
4. Choose the **driver(s)** you want to aggregate (e.g. Revenue).
5. Under **Segment by**, select a dimension one level higher (e.g. just Region).
6. Click **Confirm**.

<img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/segment-why-3.gif?s=155cc93b1af9ad16caabea2955fff73d" alt="Segment Why 3 Gi" width="800" height="421" data-path="images/dimensions/segment-why-3.gif" />

Now, when you reference this revenue driver in a [driver table block](https://docs.runway.com/concepts/pages/drivers-table-block) , [model](https://docs.runway.com/concepts/models/models-basics), or in a [formula](https://docs.runway.com/concepts/formulas/formulas-basics), you’ll see it available at both segmentation: Region x City, and just Region.

<img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/segment-why-4.gif?s=097e031d0af4daba52e4d3ad65f961a0" alt="Segment Why 4 Gi" width="800" height="395" data-path="images/dimensions/segment-why-4.gif" />

This makes it easy to [**drill in**](https://docs.runway.com/concepts/drivers/drill-ins) when you want detail, and **roll up** when you want the big picture—without manually summing or duplicating logic.

<img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/segment-why-5.png?fit=max&auto=format&n=_tyDrsjKuAGqMAvO&q=85&s=2d4ac0d664ef9d65388766ac50986821" alt="Segment Why 5 Pn" width="1738" height="994" data-path="images/dimensions/segment-why-5.png" />

This allows you to group and roll up by any meaningful metadata in your database.

You can also create similar hierarchies based on **other columns**, not just the ones in the segmentation of the [database configuration](https://docs.runway.com/concepts/databases/databases-basics#configuring-a-database).

## How to segment drivers

### Segmenting drivers in a database

When [configuring a database](https://docs.runway.com/concepts/databases/databases-basics#configuring-a-database), the **Segment by** field determines how the drivers in that database are broken down.

<img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/segment-how-1.png?fit=max&auto=format&n=_tyDrsjKuAGqMAvO&q=85&s=a062a047bfb153cb3cf17d0cecbfaa39" alt="Segment How 1 Pn" width="2510" height="1680" data-path="images/dimensions/segment-how-1.png" />

For example:

* In a granular database pulling from your GL integration, you might segment by `Account Name`, `Class`, and `Vendor`.
* Later, you may want to create a new database that sources data from this granular one—but rolled up—so it’s only segmented by `Class`.

### Segmenting drivers in a model

You can also segment a unsegmented driver in a [model](https://docs.runway.com/concepts/models/models-basics):

1. Click the **6-dot menu** next to the driver name in your model.
2. Hover over **Dimensions**, then select **Add dimension**.

   <img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/add-dimension-to-driver.png?fit=max&auto=format&n=_tyDrsjKuAGqMAvO&q=85&s=6b673b1cb878d4ec971a1d93c737a7ba" alt="Add Dimension To Driver Pn" width="1076" height="786" data-path="images/dimensions/add-dimension-to-driver.png" />
3. You can choose an existing dimension from the list, or type a new name and hit **Enter** to create a new one.

   <img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/create-dimension-through-driver.png?fit=max&auto=format&n=_tyDrsjKuAGqMAvO&q=85&s=169bc7bb3334675b074a022d0ef4b0ea" alt="Create Dimension Through Driver Pn" width="752" height="384" data-path="images/dimensions/create-dimension-through-driver.png" />
4. After creating a new dimension, you’ll be prompted to define its values (e.g., “Basic,” “Premium,” etc.) directly from the submenu.

   <img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/segment-how-2.png?fit=max&auto=format&n=_tyDrsjKuAGqMAvO&q=85&s=0bbb813d0673f5353572268cfd134e27" alt="Segment How 2 Pn" width="1010" height="430" data-path="images/dimensions/segment-how-2.png" />

### Segmenting drivers in a model using Expand by dimension

You can use **Expand by dimension** to segment a driver by a dimension from a model. This is most commonly used when modeling headcount.

<Warning>
  When you use **Expand by dimension** to segment drivers directly in a Model, you will have to click the 6-dot menu on a driver and select**Expand by dimension**  when new items get added to the dimension. Your drivers will not automatically be crated in a model for new items in a dimension.
</Warning>

1. When working in a model, select a driver and navigate to the 6-dot menu to the left of the driver name.
2. Hover over **Dimensions**, then select **Expand by dimension.**
3. Once you click the dimension you want to use as a segment, you will create one driver segmented by each value within that dimension.

   <img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/expand-by.gif?s=4baf50f4048dd7e1a52e5bd5a1cf776d" alt="Expand By Gi" width="800" height="458" data-path="images/dimensions/expand-by.gif" />
4. Expand by dimension is more powerful if you set a formula for the driver *before* clicking Expand by dimension.

   1. Choose the filter of the dimension you want to have as your segment on a data.
   2. For example, formula below sums Salary from the Hiring Plan where Team is Customer Success.

   <img src="https://mintcdn.com/runway-5055a12e/_tyDrsjKuAGqMAvO/images/dimensions/expand-by-formula.png?fit=max&auto=format&n=_tyDrsjKuAGqMAvO&q=85&s=88ae39dabf871fc3882eaed28f5c4fc6" alt="Expand By Formula Pn" width="1104" height="268" data-path="images/dimensions/expand-by-formula.png" />
5. When you click Expand by dimension where you have used the dimension as a filter in the formula, you will see the formula smart-match to each value in the dimension.

   <video muted autoplay="true" loop controls playsinline="true" class="doc-video" src="https://documentation.runwaydev.com/videos/expand-by-smart-formula.mp4" />
