Skip to main content

Intro

The Forecasting Universal Model simplifies predictive forecasting, making it accessible to all technical levels. With easy-to-select options, you can configure the Forecasting Universal Model to predict future data points based on patterns or trends in your data without needing to build a forecasting model from the beginning. Learn more about forecasting generally in the FAQ below. In this article, learn how to add a forecast to a line or bar chart to a card in App Studio (the forecast includes two confidence interval ranges) or try out different configurations in the Domo. AI Playground. With the Forecasting Service, you can extract the cURL code and use it in other settings, such as when interacting with an API.
Learn more about forecasting and Universal Models with these resources:
Image: Forecasting in a Domo App via the Forecasting Universal Model
forecasting with um in app studio.jpg
Image: Forecasting in Domo.AI Playground via the Forecasting Universal Model
A screenshot of a computerDescription automatically generated


Enable the Forecasting Universal Model

Contact your Domo account team to enable the Forecasting Universal Model in your instance. See Required Grants for information on controlling access to the tool when enabled.

Required Grants

To access the Forecasting Universal Model, one of the following three grants must be enabled for your role:
  • Create AI Service Models — Allows users to create new models and edit, deploy, and delete models you can access.
  • Use AI Services — Allows users to access AI services for use in Domo apps, Domo Bricks, Jupyter Workspaces, and Workflows. This grant should be given to any user who needs to use AI services but does not need to manage them.
  • (Admin only) Manage AI Services — Allows admins to create, edit, deploy, and delete all models in AI Models.
If you are using the Forecasting Universal Model via App Studio, you also need the following grant. Domo admins have this grant by default.
  • Edit App (App Studio) Create, edit, share, and delete apps in App Studio.
Learn more about grants.

Forecast in a Domo App

The Forecasting Universal Model allows you to easily add a forecast to a line or bar chart card in a Domo app. You can use App Studio to input the seasonality of your data and the number of time points you would like to forecast. The forecast is automatically added to your card along with two confidence interval ranges. Note that the line or bar chart you add to a forecast must have the following:
  • A date column on the x-axis (values must be stored as a timestamp data type or with a daily, weekly, monthly, quarterly, or yearly granularity level)
  • A numeric column on the y-axis (values in this column must be stored as an integer, floating decimal, or fixed decimal data type)
  • No series column.
In the example image below, a line chart is embedded in an app that could be used for forecasting using the Forecasting Universal Model. The “Number of Orders | By Month” card uses a date column on the x-axis and a numeric column on the y-axis.
forecasting with um in app studio.jpg
Tip: Learn more about App Studio in the Knowledge Base.

Other Forecasting Scenarios

Do you want to add a forecast to an existing line or bar chart card that is not embedded in an app? You’ll need to embed it in an app. Learn how to create an app and then embed your existing card. Do you want to add a forecast to a line or bar chart card embedded in an app someone else owns? The app owner must share the app with you. Learn how to share apps with other Domo users. Still have questions? See the FAQ.

Add a Forecast to a Line or Bar Chart Card

To add a forecast generated by the Forecasting Universal Model to a Line or Bar Chart embedded in an app, you must have the required grants and follow these steps:
  1. Go to the Apps Home and locate the app to which you want to add the forecast.
  2. Hover over the app’s icon and select More (three vertical dots icon) > Edit to open it in edit mode.
    A screenshot of a computerDescription automatically generated
  3. Find and select the specific card you want to add the forecast to. The card displays with a blue outline and the right configuration panel opens.
  4. In the Settings tab of the right configuration panel, select Add Forecasting with AI. If this option is not enabled, then the card is not compatible with the Forecasting Universal Model.
    add forecasting with ai.jpg
    Important: Within App Studio, the Forecasting Universal Model is compatible with either Line Chart Cards or Bar Chart Cards that have been added as an element in an app. The line or bar chart must have the following:
    • A date column (values in this column must be stored as a date or time stamp data type, and be at the daily, weekly*, monthly, quarterly, or yearly granularity level) on the X-axis
    • A numeric column (values in this column must be stored as an integer, floating decimal, or fixed decimal data type) on the Y-axis
    • No Series column
    *If your date column is of weekly granularity, it must follow the YYYY - WW format. For example, the second week of year 2024 would be formatted as “2024-02.”Note that having weeks with partial or incomplete data, such as at the beginning or end of the year when only a few days fall within a given week, can lead to inaccurate forecasts.To address this, ensure consistent aggregation of data by either normalizing partial weeks (for example, prorating data for incomplete weeks) or excluding them from your DataSet.
The AI Forecasting modal opens, containing various forecasting settings. Learn how to configure them in the table below.
Screenshot 2024-10-24 at 3.54.30 PM.png
  1. After configuring your settings, save them and close the app.
  2. Open the app in view mode.
  3. Locate the card and select Generate AI Forecast.
    generate ai forecast.jpg
    After a few seconds, the forecast should appear on the card.
    forecast callout.jpg
    You can interpret the forecast as follows:
  • Value (blue line) — Data points from the numeric column displayed on the Y-axis; the forecast is based on patterns or trends in this data.
  • Forecast (gray line) and forecastValue — Predicted data points by the Forecasting Universal Model; these points are equal to the average of the most probable potential results.
  • Range (darker blue shading) — A narrower range of probable potential results; we are 80% confident that the actual data points will fall within this range.
  • Range2 (lighter blue shading) — A wider range of probable potential results; we are 95% confident that the actual data points will fall within this range.
  • Conf0.8Upper — Data point that corresponds to the upper bound (such as the largest value) of the range.
  • Conf0.8Lower — Data point that corresponds to the lower bound (such as the smallest value) of the range.
  • Conf0.9Upper — Data point that corresponds to the upper bound (such as the largest value) of the Range2.
  • Conf0.9Lower — Data point that corresponds to the lower bound (such as the smallest value) of the Range2.
A screenshot of a graphDescription automatically generated
Tip: Learn more about forecasting in our resources above.

Table of Forecast Settings

This table describes how to configure the settings in the AI Forecasting modal.
Screenshot 2024-10-24 at 3.54.30 PM.png

Setting

Description

Recommendations

Forecast periods

Enter the number of time intervals you want to forecast.

For example, if your date column on the X-axis is measured in days and you would like to receive a forecast for the next two weeks, you would enter 14.

Note: The number you use should be an integer (whole numbers, no decimals) that is greater than or equal to one (1).

Default value: The default value displayed is based on the time frequency of your date column on the X-axis.

  • If your date column is measured in days, the default value is seven.
  • If your date column is measured in weeks, the default value is four.
  • If your date column is measured in months, the default value is 12.
  • If your date column is measured in quarters, the default value is four.

Seasonality period

Seasonality is a repeating pattern that occurs in your data at a fixed frequency (every hour, day, week, or month).

Enter an integer (a whole number, no decimals) that is greater than or equal to 1 that represents the seasonality that you want the forecast to take into account.

For example, if you have daily sales data and tend to observe higher sales on weekdays than weekends, your data exhibits weekly seasonality and you would set the seasonality period to 7.

However, if you have daily sales data and generally observe higher sales at the beginning and end of the month compared to the middle of the month, then your data exhibits monthly seasonality and you would set the seasonality period to 30.

The next column contains recommendations for how to set the seasonality based on the time frequency of your date column on the X-axis.

Default value: The default value displayed is based on the time-frequency of your date column on the X-axis. If your date column is measured in days, the default value equals 7. If your date column is measured in weeks, the default value equals 4, and so on.

  • Daily Data
    • Weekly seasonality (a reoccurring pattern for every seven days): set your seasonality period to 7.
    • Monthly seasonality (reoccurring pattern every thirty days): set your seasonality period to 30.
    • Annual seasonality (reoccurring pattern every 365 days): set your seasonality period to 365.
  • Weekly Data
    • Weekly seasonality (a reoccurring pattern every four weeks): set your seasonality period to 4.
    • Quarterly seasonality (a reoccurring pattern every thirteen weeks): set your seasonality period to 13.
    • Annual seasonality (a reoccurring pattern every fifty-two weeks): set your seasonality period to 52.
  • Monthly Data
    • Quarterly seasonality (a reoccurring pattern every three months): set your seasonality period to 3.
    • Annual seasonality (a reoccurring pattern every twelve months): set your seasonality period to 12.
  • Quarterly Data
    • Annual seasonality (a reoccurring pattern every four quarters): set the seasonality period to 4.
  • Yearly Data
    • If your data exhibits a reoccurring pattern every X years (such as 1, 2, 3…), set the seasonality period to X.

If you want your forecast to account for no seasonality, set the seasonality period to 1.

Use forecast data from

The Forecasting Universal Model generates a forecast based on patterns or trends detected in the Y-axis column. Select the time period in the Y-axis column for which you would like the model to consider data.

Use the following dropdown options to specify the time period:

  • All Time — This option results in all Y-axis column data in your DataSet to be considered by the model. This is the default option.
  • Current Select the current time period, such as a quarter, that you want the model to consider. If you choose quarter, the model considers the Y-axis column data from the current 3-month period.
  • Previous Select the previous time period, such as a month, that you want the model to consider. If you choose month, the model considers the Y-axis column data from the last 30 days.
  • Next — Select the next time period, such as a week, that you want the model to consider. If you choose week, the model considers the Y-axis column data for the next 7 days.

Edit the Forecast

To edit the configuration for a forecast that has been added to a card and is embedded in a Domo app, follow these steps:
  1. Open the app in App Studio edit mode and select the card containing the forecast to open the right configuration panel.
  2. In the Settings tab of the configuration panel, select Configure AI Forecast. The AI Forecasting modal displays.
  3. Makes edits to the settings. After saving your changes, the updated forecast displays on the card.

Remove the Forecast

To remove a forecast that has been added to a card embedded in a Domo app, follow these steps:
  1. Open the app in App Studio edit mode and select the card containing the forecast to open the right configuration panel.
  2. In the Settings tab of the configuration panel, select Configure AI Forecast. The AI Forecasting modal displays.
  3. In the modal, select Remove. After saving your changes, the option to Generate AI Forecast is removed from the card.

Use the Forecasting Service in Domo. AI Playground

You can try out various configurations of the Forecasting Universal Model and compare the resulting outputs via the Forecasting Service in Domo. AI Playground. From the Forecasting Service, you can also extract the cURL code that generates the forecast and use the code in other settings, like interacting with an API.
Tip: Check out our forecasting resources. If you have other questions, see the FAQ.

Access the Forecasting Service

Access the Forecasting Service in Domo. AI Playground from the navigation by selecting More > Domo. AI.
A screenshot of a computerDescription automatically generated
In the left sidebar, select Playground. In the Service dropdown, choose Forecasting.
A screenshot of a computerDescription automatically generated

Use the Forecasting Service

To test various configurations of the Forecasting Universal Model via the Forecasting Service and compare to the resulting forecasting output, you must have the required grants enabled and follow these steps:
  1. Configure the forecasting settings in the Configuration pane. The table below describes the configuration settings.
    Note:When the checkbox labeled Use Default Model is marked, a default Forecasting Universal Model is automatically selected for use with the Forecast Service. The default Forecasting Universal Model is an ARIMA (AutoRegressive Integrated Moving Average) model. An ARIMA model is a forecasting method that combines autoregression and differencing to make the data stationary and a moving average of past forecast errors. Data scientists commonly use ARIMA models for forecasting. Learn how to change the default Forecasting Universal Model.
    use default panel.jpg

    Settings

    Description

    Recommendations

    DataSource

    Select the DataSet to use for forecasting. The DataSet you select needs to have one date column and one numeric column in order to configure subsequent options.

    Date Column

    Select the date column that identifies the date interval corresponding to each row in your DataSet. Values in this column must be stored as a date or time-stamp data type and must also be at the daily, weekly, monthly, quarterly, or yearly granularity level. If you have selected a DataSource, all available data columns with date or time-stamp data types are listed.

    Value Column

    Select the numeric column of data to forecast. Values in this column must be stored as an integer, floating decimal, or fixed decimal data type. If you have selected a DataSource, all available numeric data columns that are an integer, floating decimal, or fixed decimal data type are listed.

    Frequency

    Select the time frequency to forecast.

    Aggregation Type

    Select the aggregation that should be applied to the Value Column (numeric column of the data you want to forecast).

    If the data in the Value Column is measured simultaneously as the frequency you’d like to forecast ( ex., you have daily data and want to forecast at the daily level), select Average (this does not aggregate your data).

    If the data in the Value column is not measured at the same time frequency as you’d like to forecast ( ex., you have daily data and want to forecast at the monthly level), select how your data should be aggregated to the level you would like to forecast at. For example, if you have daily revenue data and would like to forecast monthly revenue, set the Frequency to “Month” and Aggregation Type to “Sum.”

    Forecast Length

    Select or input the number of time intervals you want to forecast. For example, if you select the Day option for the Frequency setting and want to receive a forecast for the next two weeks, enter 14 for the Forecast Length. The number you input should be an integer (whole number, no decimals) that is greater than or equal to 1.

    Seasonality Period

    Input the number of seasonality periods you would like the forecast to take into consideration. The input should be an integer (whole number, no decimals) that is greater than or equal to one.

    Seasonality refers to a repeating pattern that occurs in your data at a fixed frequency (ex., every hour, day, week, or month). For example, if you have daily sales data and tend to observe higher sales on weekdays than weekends, your data exhibits weekly seasonality and should set your Seasonality Period to seven.

    • Daily Data
      • Weekly seasonality (a reoccurring pattern for every seven days): set your seasonality period to 7.
      • Monthly seasonality (reoccurring pattern every thirty days): set your seasonality period to 30.
      • Annual seasonality (reoccurring pattern every 365 days): set your seasonality period to 365.
      • For no seasonality, set the period to 1.
      • The seasonality period is set to 7 if the Frequency = Day.
    • Weekly Data
      • Weekly seasonality (a reoccurring pattern every four weeks): set your seasonality period to 4.
      • Quarterly seasonality (a reoccurring pattern every thirteen weeks): set your seasonality period to 13.
      • Annual seasonality (a reoccurring pattern every fifty-two weeks): set your seasonality period to 52.
      • For no seasonality, set the period to 1.
      • The seasonality period is set to 1 if the Frequency = Week.
    • Monthly Data
      • Quarterly seasonality (a reoccurring pattern every three months): set your seasonality period to 3.
      • Annual seasonality (a reoccurring pattern every twelve months): set your seasonality period to 12.
      • For no seasonality, set the period to 1.
      • The seasonality period is set to 12 if the Frequency = Day.
    • Quarterly Data
      • Annual seasonality (a reoccurring pattern every four quarters): set the seasonality period to 4.
      • For no seasonality, set the period to 1.
      • The seasonality period is set to 4 if the Frequency = Quarterly.
    • Yearly Data
      • If your data exhibits a reoccurring pattern every X years (such as 1, 2, 3…, set the seasonality period to X.
      • For no seasonality, set the period to one.
      • The seasonality period is set to one if the Frequency = Yearly.
  2. After configuring your settings in the Configuration pane, select Run to generate the forecast. Forecast results are displayed in the Output pane.
run forecast in playground.jpg
  1. (Optional) Expand the Output pane by selecting Expand.
expand.jpg

Interpret Forecast Results

The forecast results can be interpreted as follows (see highlighted text). You receive this information for each time point of your forecast in the O utput pane.
A screenshot of a computerDescription automatically generated
For example, if you select Forecast Length = 8 in the Configuration pane, you receive the forecast results for each of the eight time points forecasted. If you expand the Code Snippet pane, you can view the block of cURL code that generates the forecast output. You can select Copy Code to copy this code to your machine’s clipboard and use it in other settings, such as interacting with an API.
copy code.jpg
Note: To regenerate the forecast based on different configurations, change the settings in the Configuration pane and select Run.

Change the Default Forecasting Universal Model

The default Forecasting Universal Model is an ARIMA (AutoRegressive Integrated Moving Average) model. An ARIMA model is a forecasting method that combines autoregression and differencing to make the data stationary and a moving average of past forecast errors. Data scientists commonly use ARIMA models for forecasting. The AI Service Layer Settings allow you to change the default Forecasting Universal Model to a model you built or from an external third party.

FAQ

Forecasting is the process of predicting future outcomes based on historical data. Forecasting can help businesses and individuals make informed decisions by estimating future trends such as sales, demand, and customer behavior.
Forecasting identifies patterns or trends in past data and applies statistical models to project those trends into the future. By analyzing past behavior, it can provide an estimate of what is likely to happen next.
Generally, you can forecast any count-based metric. For example, you can forecast financial data (revenue, sales, prices, profit), marketing data (customer churn, engagement, traffic), or operations data (employee turnover, inventory, demand).
While having more data generally improves forecast accuracy, it’s still possible to create forecasts with limited data. However, the less data you have, the less confident you can be in the results.
Forecasts are generally more accurate when applied to outcomes that exhibit clear, sequential patterns (such as trends and seasonality) over time. The more consistent and observable the pattern, the better the forecast’s accuracy. For random or unpredictable events like lottery events, fashion trends, or natural disasters, forecasting becomes unreliable due to the lack of a discernible pattern.
The further into the future you try to predict, the less accurate your forecast is likely to be. Short-term forecasts are generally more reliable because they are less likely to have unexpected changes or variables.
A forecast range is a statistical interval that indicates the degree of uncertainty around a forecasted value. It provides a range within which the actual outcome is expected to fail based on a specified level of confidence (for example, 90-95%).Forecast ranges are important because they help quantify uncertainty in forecasts, allowing stakeholders to gauge prediction reliability. Smaller forecast ranges usually indicate greater reliability. By providing a range rather than a single value, forecast ranges facilitate better decision-making by highlighting potential risks and the likelihood of different outcomes.
Large forecast ranges can occur for several reasons, including high variability in historical data, insufficient data points, or the presence of outliers that skew the predictions. Additionally, if the underlying model doesn’t adequately capture the trends or patterns in the data, it can lead to increased uncertainty and wider ranges. To improve the precision of your forecasts, consider refining your model, increasing the amount of historical data, or addressing any anomalies in your DataSet.
Forecast accuracy refers to how closely a forecasted value matches the actual outcome. It measures the reliability of the prediction with higher accuracy, meaning the forecast is closer to reality.
No, forecasting gives an estimate, not a guarantee. The accuracy depends on the quality of the data, how consistent the patterns are, and how far into the future you’re trying to predict. However, good forecasts can provide valuable insights for decision-making.
You can evaluate forecast accuracy by comparing your predicted values to the actual outcomes using various metrics. Two common methods include creating a forecast for a specific number of future periods and comparing it to actual results after the period ends, or withholding a set of historical observations, forecasting those dates, and then comparing the predictions to the actuals. Metrics like Mean Absolute Error (MAE) and Recall can be used to quantify the accuracy of your forecasts.

Forecasting Universal Model Questions

T he model will NOT generate a forecast if there are missing or null values in the numeric column you would like to use to forecast.For example, if you have two years of monthly revenue data for the years 202 2 and 202 3 and revenue is missing for the row corresponding to May 202 3 (see sample sub-section of data below), the model will not be able to generate a forecast.

Date

Revenue

2023-03

134,589.12

2023-04

144,567.45

2023-05

NULL

2023-06

154,387.98

However, if an entire row of data is miss ing, the model can generate a forecast.F or example, if you have two years of monthly revenue data for years 2022 and 2023 and the entire row corresponding to May 2023 is missing (see sample sub-section of data below), the model produces a foreca st. Please note that missing entire rows of data will likely affect the accuracy of your forecast.

Date

Revenue

2023-03

134,589.12

2023-04

144,567.45

2023-06

154,387.98

For most use cases, the default seasonality is the right fit. However, there are cases in which the default seasonality is not necessarily the obvious answer.For example, national soccer jerseys sales spike around World Cup events, which occur every four years. The data is captured in yearly observations, but a forecast for national soccer jerseys would likely benefit from a seasonality of four to identify that there is a cyclical pattern every four years.
The Forecasting Universal Model utilizes ARIMA as the default algorithm. The ARIMA al gorith m considers trend (the general direction of the data), seasonality (the recurring patterns in the data), statistical properties of the data (such as the mean), autocorrelation (the relationship between data points over time), and noise (random fluctuations that do not match the general behavior of the data) when generating a forecast.
The Forecasting Universal Model utilizes ARIMA as the default algorithm. While this is a popular and respected algorithm, there are limitations. For example, ARIMA assumes a linear relationship for the target variable, which may not always be the case. ARIMA, like many forecasting models, is also sensitive to outliers. T he Forecasting Universal Model also only supports univariate forecasting, which means you cannot account for external factors in a forecast (for example, weather features when forecasting amusement park attendance ).
While you can’t currently replace the default model, this functionality is planned. It will be available via the AI Service Layer Settings.
Yes, you can build a custom forecasting model in Domo. W e recommend using Domo’s Jupyter Workspaces to do so. Please note that you need experience with either R or Python coding languages to use Jupy t er Workspaces.Domo also offers consulting services with their team of experienced data scientists who can help you build a custom forecasting solution; p lease contact your Domo account team for more information.

Add a Forecast Card Embedded in a Domo App

Note: Adding a forecast generated by the Forecasting Universal Model to a card embedded in a Domo app is currently in Alpha. Please be aware of the following limitations, which Domo is actively working to address:
  • When you select Generate AI Forecast, the card may go blank, and no forecast appears. If this situation occurs, it means the forecast failed to generate. Please review how you configured the forecast and try to generate it again. Error messages that describe the specific error reason are coming soon.
  • Adding a forecast to a Bar Chart Card changes the card to a Line Chart Card. The ability to display a forecast in a Bar Chart Card is coming soon.
  • Adding a forecast to a Line or Bar Chart Card results in pre-set Color Rules being applied to the card. The ability to keep pre-forecasting Color Rules applied to the card is coming soon.
  • The ability to select the color(s) of the forecasted output—forecast values and ranges—is forthcoming.
To get help with forecasting, the Domo AI Labs team is offering one complimentary office hour. Meet with a data scientist and get your questions answered. Email datascienceSME@domo.com to sign up.
No, the Forecasting Universal Model does not support series-specific forecasts. To create a series in the same card, you must create a separate card for each series segment and then add a forecast with the Forecasting Universal Model.
No. The ability to access the forecasted data points and ranges in a Domo DataSet is coming soon.
If a forecast appears strange or not as expected, several factors could be contributing to this issue, including:
  • Missing Data — Incomplete data can lead to inaccurate forecasts, as the model may not properly capture underlying patterns or trends. Try to i dentify and fill in missing values using techniques such as interpolation, forward/backward filling, or employing domain knowledge to estimate missing data points.
  • Insufficient Data — Forecasting models rely on past observations to identify trends and seasonal patterns. If you try to forecast with a DataSet that has too few rows of data, the model may lack the needed information to make accurate predictions, leading to forecasts that do not align with expected outcomes. Try to add additional rows of data to your DataSet if possible.
  • Outliers — Outliers are unusually high or low data points. For example, unusually low sales in April 2020 (due to the pandemic ) would be an outlier in a Monthly Revenue column. The presence of outliers can significantly impact forecasts. Identify and analyze outliers to determine if they should be removed, adjusted, or included in your DataSet. Learn how to identify and address outliers from this presentation by Domo data scientists.
  • Improperly Specified Seasonality — If seasonality isn’t accurately specified when configuring the forecast, the model will fail to account for the true seasonal pattern in your data, resulting in a misleading forecast. Learn about seasonality.
Experiencing issues? Contact support@domo.com for assistance.