Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 17 additions & 14 deletions concepts/formulas/formulas-basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,34 @@
description: "Formulas are the backbone of your model in Runway. They define the logic behind every driver and are essential for simulating how your business will evolve over time."
---

While Runway often generates helpful default formulas—especially when working with integrations or databases—theyre just a starting point. To truly tailor your model, youll need to write and refine your own formulas.
While Runway often generates helpful default formulas—especially when working with integrations or databases—they're just a starting point. To truly tailor your model, you'll need to write and refine your own formulas.

## Where to write formulas in Runway

There are four primary places where youll interact with formulas in Runway. Each has its own context depending on whether youre working with standalone drivers, databases, or HRIS data. Lets go through them one by one.
There are four primary places where you'll interact with formulas in Runway. Each has its own context depending on whether you're working with standalone drivers, databases, or HRIS data. Let's go through them one by one.

### #1 Driver table blocks

When working in a [driver table block on a page](https://docs.runway.com/concepts/pages/drivers-table-block) or in a [model](https://docs.runway.com/concepts/models/models-basics), youll often write or update formulas for the drivers you see there.
When working in a [driver table block on a page](https://docs.runway.com/concepts/pages/drivers-table-block) or in a [model](https://docs.runway.com/concepts/models/models-basics), you'll often write or update formulas for the drivers you see there.

Keep in mind that a driver table block can contain drivers created directly in the block, pulled from other driver table blocks, or drivers originating from databases. Given drivers are portable, making edits to the formula in one place will change it in all places its used.
Keep in mind that a driver table block can contain drivers created directly in the block, pulled from other driver table blocks, or drivers originating from databases. Given drivers are portable, making edits to the formula in one place will change it in all places it's used.

There are a few ways to access and edit a drivers formulas:
There are a few ways to access and edit a driver's formulas:

- **Show formulas as columns.**

Use the Customize menu to show the actuals and forecast formula columns, or press:
- `Option` \+ `Shift` \+ `A` to toggle the **actuals formula** column
- `Option` \+ `Shift` \+ `F` to toggle the **forecast formula** column
Use the Customize menu to show formula columns in the table:
- **Formula** column — displays the row-level formula that applies to each driver row, showing how formulas vary across different dimension values
- **Actuals Formula** column — shows the actuals formula for each driver (toggle with `Option` \+ `Shift` \+ `A`)

Check warning on line 24 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L24

Did you really mean 'Actuals'?

Check warning on line 24 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L24

Did you really mean 'actuals'?
- **Forecast Formula** column — shows the forecast formula for each driver (toggle with `Option` \+ `Shift` \+ `F`)

The Formula column is particularly useful for understanding how formulas are applied across segmented data. When a row has multiple dimension values, the Formula column displays the formula with conditions that match those specific segments. For rows representing aggregated data (like "ANY" segments), you'll see formulas with `ANY` values in italics, indicating they apply broadly across that dimension.

[More on customizing columns →](https://docs.runway.com/concepts/pages/drivers-table-block#customizing-table-columns)
- **Click the formula button next to the driver name.**

![Driver Table Formula Button Pn](/images/formulas/driver-table-formula-button.png)

Check warning on line 32 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L32

Did you really mean 'Pn'?
- **Open the drivers details pane.**
- **Open the driver's details pane.**

This gives you more room to work and context on the driver. [Learn more →](https://docs.runway.com/concepts/drivers/driver-details-pane)

Expand All @@ -38,16 +41,16 @@
- **Auto-generated** through [database configuration](https://docs.runway.com/concepts/databases/databases-basics#configuring-a-database), or
- **Manually added** to extend the database with additional calculated drivers. [Learn how →](https://docs.runway.com/concepts/databases/databases-basics#adding-a-column)

No matter how a driver column is created, it supports [****default actuals and forecast formulas****](https://docs.runway.com/concepts/databases/formulas-in-databases#default-formulas). These are set at the column level and apply to all rows unless a specific row has an override.

Check warning on line 44 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L44

Did you really mean 'actuals'?

You can view or edit the default formula in several places:

- [**When displaying a driver column as a time series**](https://docs.runway.com/concepts/databases/databases-basics#show-a-column-as-timeseries), click the ƒ button to open the formula editor.

![Database Default Formula 1 Pn](/images/formulas/database-default-formula-1.png)

Check warning on line 50 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L50

Did you really mean 'Pn'?
- **When displaying a column as a single value**, the same ƒ button will appear.

![Database Default Formula 2 Pn](/images/formulas/database-default-formula-2.png)

Check warning on line 53 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L53

Did you really mean 'Pn'?

### #3 Row-level driver formulas in a database

Expand All @@ -55,10 +58,10 @@

You can do this in two ways:

- **When viewing a driver column as a time series**, click directly into any rows (segment) formula cell to edit it.
- **When viewing a driver column as a time series**, click directly into any row's (segment) formula cell to edit it.
- **When using** the [**full time series view of a database**](https://docs.runway.com/concepts/databases/databases-basics#show-all-columns-as-timeseries), you can override the formula for any segment inline. This is especially useful for scanning and editing multiple overrides in one place.

![Database Row Formula 2 Pn](/images/formulas/database-row-formula-2.png)

Check warning on line 64 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L64

Did you really mean 'Pn'?

Formula overrides at the row level will take precedence over the column default for that specific row only. You can always clear the override to revert to the inherited column formula.

Expand All @@ -70,25 +73,25 @@

To learn more about how HRIS databases are structured and how they differ from other databases in Runway, [read this guide](https://docs.runway.com/concepts/databases/hris-databases).

## Forecast v.s. actuals formulas

Check warning on line 76 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L76

Did you really mean 'actuals'?

Now that weve explored the different places where you can interact with formulas in Runway, lets look at another key concept: the distinction between **forecast** and **actuals** formulas.
Now that we've explored the different places where you can interact with formulas in Runway, let's look at another key concept: the distinction between **forecast** and **actuals** formulas.

Check warning on line 78 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L78

Did you really mean 'actuals'?

Every driver in Runway supports two formulas:
- **Actuals formula** — used for all months **up to and including** your [last close date](https://docs.runway.com/concepts/last-close).

Check warning on line 81 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L81

Did you really mean 'Actuals'?
- **Forecast formula** — used for all months **after** the last close.

This split allows you to clearly separate how historical values are calculated from how future assumptions are modeled.

If an **actuals formula is not explicitly set**, Runway will automatically fall back to using the **forecast formula**. This fallback behavior follows Runways [formula inheritance logic](https://docs.runway.com/concepts/drivers/drivers-basics#formula-inheritance).
If an **actuals formula is not explicitly set**, Runway will automatically fall back to using the **forecast formula**. This fallback behavior follows Runway's [formula inheritance logic](https://docs.runway.com/concepts/drivers/drivers-basics#formula-inheritance).

Check warning on line 86 in concepts/formulas/formulas-basics.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/formulas/formulas-basics.mdx#L86

Did you really mean 'actuals'?

## More on formulas

Now that youve got the basics down, here are a few resources to help you take your formulas further:
Now that you've got the basics down, here are a few resources to help you take your formulas further:
1. [Formulas syntax](https://docs.runway.com/concepts/formulas/formulas-syntax)
2. [Functions & operators](https://docs.runway.com/concepts/formulas/functions-operators)
3. [Building lookup tables](https://docs.runway.com/guides/modeling/lookups)
4. [Propagating sparse data](https://docs.runway.com/guides/modeling/propagating-sparse-data)
5. [Cohorts](https://docs.runway.com/guides/modeling/cohorts)
6. [FX rate normalization](https://docs.runway.com/guides/modeling/fx-rate)
7. [Troubleshooting errors](https://docs.runway.com/guides/modeling/fixing-errors)
7. [Troubleshooting errors](https://docs.runway.com/guides/modeling/fixing-errors)
1 change: 1 addition & 0 deletions concepts/pages/drivers-table-block.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@
2. Select **Properties.**
3. Choose which columns to show or hide:
- **Data**
- **Formula** — displays the row-level formula for each driver, showing how formulas are applied with specific dimension values
- **Actual Formula**
- **Forecast Formula**
- **Used By**
- **Graph**
- **Rollup**

Check warning on line 25 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L25

Did you really mean 'Rollup'?

![images/pages/driver-table/properties.png](/images/pages/driver-table/properties.png)

Expand All @@ -34,7 +35,7 @@

You can also use the shortcut `cmd (Ctrl)` \+ `option` \+ `=` to add a driver above, or `cmd (Ctrl)` \+ `option` \+ `-` to add driver below.

![Adddriveraboveorbelow Pn](/images/drivers/basics/adddriveraboveorbelow.png)

Check warning on line 38 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L38

Did you really mean 'Adddriveraboveorbelow'?

Check warning on line 38 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L38

Did you really mean 'Pn'?
3. **Remove a driver** from the block in two ways:
- **Press Backspace** while the driver is selected.
- **Right-click the driver name**, then select **Remove from block**.
Expand All @@ -51,17 +52,17 @@

For more details on formatting, [see this article](https://docs.runway.com/concepts/drivers/driver-formatting).

## Time period rollups (quarter, year, etc)

Check warning on line 55 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L55

Did you really mean 'rollups'?

### Selecting the time period

By default, data in a driver table block is displayed monthly, with each **month as a separate column**. But what if you want to see your drivers in a different time granularity—like by quarter or year?

1. Click **Customize** in the top right, then select **Rollups**.

Check warning on line 61 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L61

Did you really mean 'Rollups'?
2. Choose a rollup option. You can pick from:

Check warning on line 62 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L62

Did you really mean 'rollup'?
- **Monthly**, **Quarterly**, or **Annual**
- **Monthly & Quarterly**, M**onthly & Annually**, or **Monthly, Quarterly & Annually**

Check warning on line 64 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L64

Did you really mean 'onthly'?
- For additional customization options, click **Custom rollup**, which provides additional options such as:

Check warning on line 65 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L65

Did you really mean 'rollup'?
- **Quarter to date**, **Half-year to date**, or **Year to date** (includes the current calendar month)
- **Quarter to last close**, **Half-year to last close**, or **Year to last close**
- **Trailing 3, 6, or 12 months** (relative to the current calendar month)
Expand All @@ -76,10 +77,10 @@

![images/pages/driver-table/time-period-aggregation.png](/images/pages/driver-table/time-period-aggregation.png)

You can also show the **Rollup** property as a column:

Check warning on line 80 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L80

Did you really mean 'Rollup'?

1. Click **Customize → Properties**, then enable **Rollup.**

Check warning on line 82 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L82

Did you really mean 'Rollup'?
2. In the table, click the **Rollup cell** for a driver to adjust its aggregation method directly from there.

Check warning on line 83 in concepts/pages/drivers-table-block.mdx

View check run for this annotation

Mintlify / Mintlify Validation (runway-5055a12e) - vale-spellcheck

concepts/pages/drivers-table-block.mdx#L83

Did you really mean 'Rollup'?

![images/pages/driver-table/rollup-property.png](/images/pages/driver-table/rollup-property.png)

Expand Down