# Command Mode Source: https://runway-docs.cfo.ai/ai/command-mode Use Command Mode to build and update Runway work by describing what you want. Ari, Runway's AI assistant, can answer questions, inspect your model, and make changes when you describe what you want. Use Ari when you want to build pages, formulas, SQL, charts, scenarios, or multi-step modeling changes with natural language. ## The Ari chat Open Ari from the bottom-right button labeled **Open ARI chat**. The panel is titled **Ari**, and the input placeholder is **Ask anything**. Click the Ari button in the bottom-right corner of Runway. Type in **Ask anything**. Ari supports multiturn conversations, so you can refine the request after the first response. While Ari streams a response, the send button becomes **Stop generation**. Press **Esc** to close the panel, or press **Shift+Enter** to add a new line in your prompt. The chat header includes **New conversation** and **Move to floating chat panel** or **Move to sidebar**. ## Command Mode Command Mode is the Option-click (Alt-click on Windows) surface for write actions. Use it when you want Ari to change the object you are pointing at instead of chatting first. | Where you Option-click (Alt-click on Windows) | Prompt placeholder | Accept action | Discard action | | --------------------------------------------- | ----------------------------------- | ------------------------------ | ---------------------------------- | | Formula cell | **Describe the formula...** | **Save Changes** | **Discard Changes** | | SQL editor | **Describe the SQL query...** | **Accept** | **Reject** | | Chart block | **Describe chart configuration...** | Use the generated chart change | Discard the generated chart change | ## What Ari can build Ari can create and update databases, drivers, submodels, pages, scenarios, text blocks, driver grid blocks, chart blocks, SQL, and multi-step plans. When Ari works through a plan, Runway shows a **My plan** progress panel with a progress counter, todo status icons, and expandable subtasks. ## Good prompts * "Create a chart of revenue by region for this year." * "Write a forecast formula for net new ARR based on new customers and average contract value." * "Create a scenario for the downside hiring plan and add a page that compares it to Main." Ari and Command Mode are currently available to org Admins and Owners. ## FAQ Ari is the assistant. Command Mode is the Option-click (Alt-click on Windows) write surface that lets Ari change a specific formula, SQL editor, or chart. Yes. While a response is streaming, click **Stop generation**. Yes. Ari can create a multi-step plan and show progress in the **My plan** panel while it works. ## What's next * [Explain Mode](/ai/explain-mode) * [Connecting AI tools](/ai/connecting-ai-tools) * [Formulas syntax](/concepts/formulas/formulas-syntax) # Connecting AI tools (MCP) Source: https://runway-docs.cfo.ai/ai/connecting-ai-tools Connect Claude and other AI tools to Runway through MCP. Runway exposes a hosted MCP endpoint so Claude and other MCP-capable AI tools can read from your Runway model. Use it when you want an external assistant to search your model, read pages, inspect drivers, or calculate values without giving it write access. ## Setup In your AI client, add `https://runway-api.cfo.ai/mcp` as a remote MCP server. Your browser opens the Runway login flow through OAuth. Approve the connection. The client receives OAuth tokens, so there are no API keys to manage. ## Claude setup example In Claude, open the settings area. Go to the connectors area. Add a custom connector with `https://runway-api.cfo.ai/mcp` as the URL. ## What the connection can do All hosted MCP tools are read-only. | Capability | Tool | Description | | ------------------------- | ----------------------------- | ------------------------------------------------------------------------ | | List orgs | `runway_list_accessible_orgs` | List the Runway orgs accessible to the current authenticated user. | | Search | `runway_search` | Search a Runway org for pages, drivers, scenarios, and related entities. | | Read pages | `runway_read_page` | Read a Runway page and its visible contents. | | Read drivers and formulas | `runway_get_driver` | Read metadata and formulas for a Runway driver. | | Calculate values | `runway_get_driver_values` | Calculate driver values for one or more scenarios and month keys. | | List scenarios | `runway_list_scenarios` | List the published scenarios in a Runway org. | ## Limits and security * The MCP endpoint is read-only. * Access is available to Admin and above. * The rate limit is 60 calls per minute per user, tool, and org. * Authentication uses OAuth. You do not need to create or store API keys. ## FAQ No. The hosted MCP tools are read-only. No. The connection uses OAuth through your browser login. Hosted MCP access is available to Admin and above. ## What's next * [Command Mode](/ai/command-mode) * [Export API](/integrations/export-api) * [Roles and access](/reference/roles-and-access) # Data and privacy Source: https://runway-docs.cfo.ai/ai/data-and-privacy How Ari handles your data, model providers, and retention. Ari uses a combination of APIs from **OpenAI** and **Anthropic**. Both providers operate under commercial API terms that explicitly prohibit using customer data for model training. **Runway does not use your data for training either.** ## Retention API inputs and outputs are temporarily retained by our model providers, then automatically deleted: | Provider | Retention | | --------- | ------------- | | OpenAI | Up to 30 days | | Anthropic | Up to 7 days | ## When Ari runs Ari only runs when you **explicitly trigger it**. There's no background processing or passive data collection. # Explain Mode Source: https://runway-docs.cfo.ai/ai/explain-mode Use Explain Mode to understand why a number appears in your Runway model. Explain Mode lets you ask Runway why a value, formula, chart, query, or page looks the way it does. Use it when you want to understand the model behind a number without tracing every dependency by hand. ## How to use Explain Mode Hold **Option** on Mac or **Alt** on Windows while you are anywhere in Runway. Hover over or click a highlighted value, row, chart, formula, database cell, SQL editor, or page item. Runway opens an anchored AI explanation dialog and streams the answer as it works. ## What you can explain ### Driver values Explain a driver row or value cell to see the inputs, formula logic, and period context behind the number. Explain Mode also handles rollup periods such as YTD and QTD, including month-by-month trend context. ### Charts Explain a driver chart to understand what the chart is showing and how the underlying driver values contribute to the view. ### Formulas Explain a formula cell to understand how its references, date ranges, actuals logic, and forecast logic work together. ### Variance in BvA comparisons Explain Mode can analyze variance in BvA comparisons, including contribution percentages from the dependency tree. ### Database cells and columns Use Explain Mode on database table cells and column headers to understand the source data, formulas, and column meaning. ### SQL queries Use Explain Mode in a SQL query editor to open an explanation titled **Explain SQL Query**. ### Whole pages Use Explain Mode on page titles and navigation items to summarize what a page contains and how it is structured. ## The dialog The explanation streams into a dialog with collapsible thinking steps. From the header, you can start **New conversation**, move the dialog to **Move to floating chat panel** or **Move to sidebar**, or use **Minimize** and **Close**. Explain Mode is currently available to org Admins and Owners. ## FAQ Explain Mode only responds on explainable product surfaces. In grids, real data rows respond, while headers and summary rows may not. Yes. It can explain rollups such as YTD, QTD, quarter-to-last-close, half-year-to-last-close, and year-to-last-close. Explain Mode is currently available to org Admins and Owners. ## What's next * [Command Mode](/ai/command-mode) * [Driver details pane](/concepts/drivers/driver-details-pane) * [Budget vs. actuals](/guides/modeling/bva) # Databases basics Source: https://runway-docs.cfo.ai/concepts/databases/databases-basics Databases store raw and modeled business data in rows, then make that data available to drivers, formulas, pages, and reports. Databases are where source data becomes structured model data. Use a database when you need rows of real things, such as transactions, employees, deals, vendors, or assumptions, that can be segmented, rolled up, and referenced by drivers. ## What is a database? When you connect an integration, your data flows into a database. You can then create additional databases that pull from the original database and aggregate the data at different levels. For example, if you import GL data with vendor-level details from QuickBooks, NetSuite, or Xero, you can build another database that rolls it up by department or class. ## Creating a database Click the **+** button next to a section or page in the sidebar. Select **Database** and give it a clear name, icon, or emoji. Sidebar creation menu with Database selected ## Configuring a database After creating a database, configure the source, drivers, and segmentation that determine its grain. Click the **configuration** header to expand it. Select an existing integration query or another database. Choose the key metrics or dates you want to track as time series data. Select the dimensions to segment your data. Segmentation determines the database's granularity. Add useful metadata from the data source under **Other columns**. For example, if you are pulling in GL data at the most granular level, you might select **Amount** as the driver, use **Account Name**, **Class**, and **Vendor** as dimensions, and include **Account Type** under **Other columns**. Database configuration panel with data source, drivers, and dimensions The dimensions you use to segment your data appear alongside the driver name across the app, including in tables and charts. To improve readability, use only the dimensions needed to define the database's grain. Add extra metadata under **Other columns** instead. Dimension pills displayed beside a database-backed driver To inspect the structure of your source data before confirming the database, use the preview table. Database configuration preview table To limit the database to a subset of source data, apply a filter within the database configuration. Database configuration filter panel ## Adding a column To create a new column, click the **+** button at the far right of the database. You can add: * **Number driver:** Calculated numeric values. Drivers store time series data, so values can vary by month. * **Date driver:** Date values that can also vary over time. * **Dimension:** A predefined list of values that categorizes rows, such as Vendor, Location, or Department. * **Lookup:** A column that populates a dimension based on data from another database, similar to `VLOOKUP()`. For HRIS databases, follow the separate [HRIS database column flow](/concepts/databases/hris-databases#adding-columns-to-hris-databases). Database add-column menu with driver and dimension options ## Show a column as time series Drivers store time series data. In database tables, each driver column is usually displayed as a single value for readability, but you can expand one driver column to show its monthly values. Click the driver column name in the database header. Select **Show as time series**. The column expands on the far right after the other columns. Database column expanded as a time series If you show a different driver column as a time series, it replaces the currently expanded one. By default, each row shows forecast formula, actuals formula, and time series data for the selected date range. You can hide formula columns from column menus, from **Customize** > **Properties**, or with the shortcuts listed in [Keyboard shortcuts](/get-started/keyboard-shortcuts). Database column menu with Hide in blocks selected Database properties panel with column visibility controls To return the driver column to a single value, click the column name again and select **Show as value**. Database column menu showing Show as value ## Show all columns as time series Instead of expanding only one driver column, you can display all driver columns as time series. Click **Customize** in the top-right corner. Select **Display as**, then choose **Time series**. Database switched to time series display When you switch to this view, each former row becomes a section, and dimensions and drivers that were shown as columns become rows. Database time series orientation with drivers as rows ## Show and hide columns For a compact view, hide columns that are not always relevant and show them only when needed. Click the column name in the database header and select **Hide in block**. Or click **Customize**, open **Properties**, and toggle columns with the eye icon. Database column hidden from a block ## Adding a row If you need to manually add a row to a database, click **+ Add item**. After adding the row, set values for the dimensions used in **Segment by**. Database with a manually added row Segmentation determines the granularity of your database. Each row should have a unique combination of dimension values. If a row does not have a unique combination, Runway shows a warning because that row is linked to other rows with the same segmentation. For HRIS databases, follow the [HRIS database row flow](/concepts/databases/hris-databases). ## Deleting a column The deletion flow depends on how the column was added. For columns coming from database configuration, remove the column from the relevant section in configuration: Driver, Segment by, or Other columns. This prevents it from reappearing after the next integration sync or configuration refresh. Database configuration with a column removed from configuration For manually added columns, click the column header and select **Delete property**. If the column is used elsewhere in your model, Runway asks you to confirm because deleting it can cause reference errors. Database column menu showing Delete property ## Deleting a row To delete a row from a database, right-click the row and select **Delete row**. Deleting a row removes it from the database, but it does not delete the drivers connected to that row. Any formulas relying on those drivers remain unchanged, and the drivers still appear in your **Unlisted Drivers** page. To fully delete a driver and eliminate its impact on formulas, delete it from **Unlisted Drivers**. Unlisted Drivers page showing drivers not present on a page or model ## What's next * [Formulas in databases](/concepts/databases/formulas-in-databases) * [Segmenting drivers](/concepts/dimensions/segmenting-drivers) * [Database block](/concepts/pages/database-block) # Filtering, sorting & grouping Source: https://runway-docs.cfo.ai/concepts/databases/filtering-sorting-grouping When working with a database in Runway, you often need to adjust how data is displayed to focus on what matters most. Whether you're filtering specific rows, sorting for better readability, grouping relevant items, or adjusting the date range, Runway provides powerful tools to help you tailor your view. ## Filtering Filtering is useful when modifying or debugging database data, allowing you to focus on a specific subset of rows. It also helps when adding a database block to a page to share with your team without exposing the entire database. For example, you can filter a GL database by **department**, so each department head only sees the vendors they are responsible for. To apply a filter, click on the **Add filter** pill at the top of a database, then select the **dimension** or **driver** you want to filter by. * **Filtering by a dimension** allows you to use operators like **is one of, is none of, is empty,** and **is not empty.** When using **is one of** or **is none of,** you can select one, multiple, or all dimension values. * **Filtering by a number driver** supports operators like **is, is not, greater than, greater or equal,** and more. After selecting an operator, you can enter the comparison value in a free-text field. * **Filtering by a date driver** supports operators like **is, is not, is after, is on or after,** and more. After selecting the operator, you can choose from a wide range of date options, such as **this month, last month, custom months ago,** or even reference another driver to dynamically set the number of months. Filters Since drivers store time-series data that can change from month to month, you might wonder—**which month's data does Runway use when applying a filter?** By default, driver filters evaluate data based on **this month’s** values. You can change this to filter based on **last close month** or a specific custom month. To adjust this, click on the **As of** pill at the top of a database, set the **Time period** to **As of,** and modify the date. As Of When you add multiple filters, they are **ANDed** together, meaning only rows that meet all conditions will be shown. ## Sorting You can sort your database data based on one or multiple **dimensions** or **drivers**. Sorting When sorting by a **dimension**, you can choose: * **Alphabetically / Reverse Alphabetically** * **Numerically** – Useful when dimension values contain numbers. Even if a number is part of a text string, Runway isolates it and sorts accordingly. * **Manual** – Allows you to manually reorder rows. When sorting by a **number driver**, you can choose **ascending** or **descending** order. When sorting by a **date driver**, you can sort from **earliest to latest** or **latest to earliest**. Similar to filtering, sorting by a driver evaluates data based on **this month’s** values. You can change this to sort based on **last close month** or a specific custom month by adjusting the **As of** pill. ## Group by For better readability, you can **group** your database rows by any of your dimensions. Click the **Group by** pill at the top of the database (next to filter and sort), then select the dimension you want to group by. Similar to filtering and sorting, grouping by a driver evaluates data based on **this month's** values. You can change this to group based on **last close month** or a specific custom month by selecting the date option in the group by menu. Group By ## Date range Changing the date range for a database primarily affects **drivers**, as they hold data that can change over time and be displayed as a time series. **Dimensions**, on the other hand, are static and remain unaffected by date range changes. When displaying **one or all drivers as a time series**, each **month** within the selected date range is shown as a separate column. To change the date range, click on the “**Date range”** pill at the top of the database and select the **start** and **end** months. Date Range When displaying a driver column as a value, the values shown in that column are also defined by the date range. You will see Value of first month in the date range → Value of last month in the date range. If the first and last values are the same, only that single value is displayed without the → annotation. Rollup # Formulas in databases Source: https://runway-docs.cfo.ai/concepts/databases/formulas-in-databases This article covers how to manage driver formulas in databases to support scalable, dimensional modeling in Runway. For guidance on mapping values using dimensions, see [Lookups](/guides/modeling/lookups). ## Default formulas * Setting default formulas across a column can save a lot of time—both when you have many drivers that should follow the same logic, **and** when new segments are added to the database. Any new segment will automatically inherit the default formula unless it’s explicitly overridden. * In databases, each driver column can have a default formula, and any individual row (i.e., specific segmented driver) can override it. To revert to the default, just backspace or clear the custom formula. * Inherited formulas are shown in a lighter style to indicate they’re coming from the default.