> For the complete documentation index, see [llms.txt](https://docs.fabricplan.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fabricplan.com/planning-sheets/how-tos/measure-and-row-based-planning/row-based-modeling/create-forecasts-using-row-model.md).

# Create forecasts using row model

Use forecasting with a row model to project future values for row-level drivers and evaluate their impact on related rows and KPIs.

For example, you can forecast *revenue*, *expenses*, and other key drivers. Modify the forecasted drivers to explore different assumptions and analyze their cascading impact across the model.

This involves:

* Creating a row model to define relationships between drivers and calculated rows.
* Use **Forecast** to create forecast values and see how changes flow through the model.

### Use cases

You can use forecasts with a row model to

* **Project future performance:** Forecast business drivers and outcomes for upcoming periods.
* **Build driver-based forecasts:** Use historical or current values as a starting point and adjust individual drivers based on business assumptions to see the impact on KPIs.
* **Perform rolling forecasts:** Update forecast periods as new actuals become available and reforecast future periods.

### Prerequisites

Before you create a forecast:

* Make sure the planning sheet uses a standard date hierarchy, such as `Year > Quarter > Month`.
* Make sure the row model is configured with the required drivers and calculated rows. To learn how to create a row model, see [create a row model](/planning-sheets/how-tos/measure-and-row-based-planning/row-based-modeling/create-a-row-model.md).

### Create a forecast

Consider the following **P\&L (Profit and Loss) row model** to forecast *2026 values*.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FRYiXkykJTdcwONvT089N%2Fimage.png?alt=media&amp;token=434be2ca-3201-4a4a-a13a-3645dfe01474" alt=""><figcaption></figcaption></figure>

1. Go to **Model** > **Forecast**.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FHboNULQCri3BM3SJqfZY%2Fimage.png?alt=media&amp;token=f5cc6b32-df42-4ea4-a491-8f3e9d33828b" alt=""><figcaption></figcaption></figure>

2. In **Basics**, enter the forecast measure name and set the date range for the forecast period as **Jan 2026 - Dec 2026**. Select **Next**.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FQaCXxRHLq6f9xHZAAIvM%2Fimage.png?alt=media&amp;token=7a824b8a-ec70-479b-8a15-d4a892c82f69" alt=""><figcaption></figcaption></figure>

3. Configure the **Closed Period** settings to populate values for locked periods.
   * **Configure as:** Select **Link to Measure** to populate the forecast values from an existing measure.
   * **Source Measure:** Select **Actuals** to use the actual values for the closed periods.
4. Select **Next**.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FjjPe42zASHX4MbczAsBB%2Fimage.png?alt=media&amp;token=46d2a331-ac00-40b1-b233-75f00c54b4eb" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}

### Note

Closed-period forecast values are locked historical periods and users can't edit these values.
{% endhint %}

5. Configure the **Open Period** settings to pre-fill the 2026 forecast values using the 2025 actuals.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FK89AhiyWn8t1c4eBmkVa%2Fimage.png?alt=media&amp;token=ad6d819f-2d14-4505-99cb-e441add214e6" alt=""><figcaption></figcaption></figure>

* **Configure as:** Select **Data Input** to allow users to enter and modify forecast values.
* **Default Value:** Select **Measure** to use an existing measure as the default value and initialize the forecast values.
* **Measure:** Select **Actuals** measure for default values.
* Under **Pre-fill Open Periods**, configure the range to copy the 2025 actuals to the 2026 forecast as follows:
  * **Copy from:** Select **Actuals**.
  * **Target Range:** Select **Jan 2026 – Dec 2026** as the target.
  * **Operation:** Select **Period Range** to map each period in the source range to the corresponding period in the target range.
  * **Source Range:** Select **Jan 2025 – Dec 2025**.

6. Select **Save**.

The forecast measure is created for the row model. Review the generated forecast values and modify the open-period values as needed.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FR0F0IrxMKwyPPQM9uGhi%2Fimage.png?alt=media&amp;token=376c4744-20c2-4b21-8770-f4915999e892" alt=""><figcaption></figcaption></figure>

#### Analyze the forecast in a row model

After creating the forecast, use the row model to analyze how changes to forecast drivers affect related rows. For example, changing *Revenue* or *Purchase* expense can flow through the defined row relationships and affect *Profit* and other KPIs.

You can enter values at any period level, such as the **Year** total or individual **Quarter** cells.

The following image shows how a change in *revenue* for *Q1* affects the quarter-level *profit* and flows through to the overall *profit.*

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FKysSFLGQ9ccR1GuPUtAR%2Fimage.png?alt=media&amp;token=4d901008-fac2-4f8b-a84e-c87e12f6aa22" alt=""><figcaption></figcaption></figure>

The following image demonstrates how reducing purchase expense increases profit.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FA9q8ch50OrlyMMeto7Wc%2Fimage.png?alt=media&amp;token=8b2dd924-98b7-4f05-b0a3-31f21addfce8" alt=""><figcaption></figcaption></figure>

This approach lets you combine forecasting with driver-based row modeling to evaluate future performance and understand the cascading impact of different assumptions.

{% hint style="info" %}

### Note

To learn more about all forecasting options, see [Create a PnL forecast](/planning-sheets/how-tos/forecast-data-to-predict-future-trends/create-a-p-and-l-forecast.md).
{% endhint %}

### Next steps

After creating a forecast, you can take your analysis further by creating **scenarios** to simulate different assumptions without changing the base plan.

Create scenarios, adjust key drivers, and compare outcomes to identify the scenarios that best support your planning decisions. To learn more, see [Perform scenario analysis in the row model](/planning-sheets/how-tos/measure-and-row-based-planning/row-based-modeling/perform-scenario-analysis-in-row-model.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.fabricplan.com/planning-sheets/how-tos/measure-and-row-based-planning/row-based-modeling/create-forecasts-using-row-model.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
