Introduction to the Analytical Engine

This chapter describes the role the analytical engine plays in the simulating forecasts. It also describes how the analytical engine functions generally and the different engine modes.

This chapter covers the following topics:

Overview

The Oracle Analytical Engine is an advanced analytical engine capable of multidimensional forecasting with mixed modeling techniques. The system is designed for large-scale installations handling analysis and modeling of tens to hundreds of thousands of different demand patterns.

The following figure shows an overview of how a Demantra solution uses the Analytical Engine:

the picture is described in the document text

Within a Demantra solution, the Analytical Engine runs periodically (in the background), reading data from the Demantra database and generating forecast data. The forecaster uses a worksheet to view the forecast and make adjustments, saving those changes to the database. The updated forecast is available to all users with the appropriate authorization.

The preceding figure is not meant to show hardware configuration, which is discussed in the Oracle Demantra Installation Guide, rather than in this manual. You should be aware, however, that the Analytical Engine can be used in a distributed mode. Specifically, your system may include the Distributed Engine, where the Analytical Engine is registered on multiple machines, all with access to the Demantra database. In this mode, the Analytical Engine automatically distributes its work across multiple machines simultaneously. This maximizes processing power and reduces bottlenecks. For more information about the distributed engine, see the Oracle Demantra Installation Guide.

Engine Modes: DP and PE

Oracle provides two different modes of the Analytical Engine:

What the Engine Does

The Analytical Engine accesses the database and reads the historical demand and data from the causal factors (such as seasons, price changes, and specific events such as promotions [in the case of Promotion Effectiveness). It then generates a forecast for all or specific item-location combinations. Wherever possible, it generates the forecast at the lowest possible allowed level (such as SKU-store). If necessary, it aggregates data so that it can generate a forecast at a higher level and split it to the lower level as needed. The forecast tree (which you configure) controls how the Analytical Engine aggregates and splits data when performing this task.

When working on a node of the forecast tree, the Analytical Engine uses a set of engine models, which are mathematical forecasting models. It considers how well each of those models works for that node and it statistically combines the best results, and generates the forecast from that. Advanced users may choose to adjust parameters that control how the individual models work; see "Theoretical Engine Models" for details on the models. Advanced users can also adjust how the Analytical Engine treats different nodes in the forecast tree.

In PE mode, the Analytical Engine also decomposes the forecast into the following:

See also

"Basic Concepts" "Engine Details"

Batch and Simulation Modes

The Analytical Engine can run in two modes: batch and simulation.

In this mode, the user is usually performing a "what if" analysis. That is, he or she has made some changes within the worksheet and then performs the simulation to see whether those changes have the desired effect.

It is also possible to run simulations programmatically from within a workflow.

The Analytical Engine can run in only one mode at a time.

See also

"Comparison of Batch and Simulation Modes"

"Running the Engine from the Engine Administrator"

"Running the Engine from the Start Menu"

Engine Profiles

Each engine profile is a set of parameters with specific values, causal factors, forecasting models, and a forecast tree. Engine profiles are available to quickly change the functioning of the Analytical Engine dependent on the type of forecasts you want to develop. Oracle Demantra provides some predefined profiles, and you can define additional engine profiles, as needed. When you run the Analytical Engine, you specify the engine profile to use.

The predefined profiles are as follows:

Base

This engine profile is the standard default Demantra engine.

Batch

The batch engine profile uses the same forecast tree and causal factors as the Base engine, but the system parameters can be modified individually to reflect a different demand stream or other customization without modifying the Base.

Booking Forecast

The Booking Forecast engine profile uses the same forecast tree and causal factors as the default Demantra engine, but the system parameters can be modified individually to reflect a different demand stream or other customization without modifying the Base.

DSR POS Forecast

The DSR POS Forecast engine profile supports the Demand Signal Repository Point of Sale functionality. It uses the same forecast tree and causal factors as the default Demantra engine, but the system parameters can be modified individually to reflect a different demand stream or other customization without modifying the Base.

Forecast Install Base

This engine supports the forecasting of install base under contract, a service parts forecasting function.

The forecast tree is defined as follows:

Level Item Level Location Level
1 Lowest Item Lowest Location
2 Item Organization
3 Item Organization Type
4 Highest Item Highest Location

The causal factors associated with this engine profile are:

All other causal factors are disabled.

Forecast Spares Demand

This engine profile supports forecasting of spares at an organization. It executes on the data and combination tables used by the Spares general level.

The forecast tree is defined as follows:

Level Item Level Location Level
1 Lowest Spares Level Lowest Location
2 Latest Revision Organization
3 Latest Revision Organization Type
4 Highest Item Highest Location

The causal factors are defined as follows:

Simulation

This engine profile is the standard default simulation engine.

Simulation Install Base

The Simulation Install Base is a child of the Forecast Install Base engine profile. Should be used when generating a simulation on Install Base.

Simulation Spares Demand

The Simulation Spares Demand profile is a child of the Forecast Spares Demand engine profile. Should be used when generating a simulation on Spares Demand.

To create an engine profile:

When you create an engine profile, it is associated with a specific init_params table. It must not be the same table used by the other engine profiles. To check which init_params tables are in use, you can use the sql command select * from engine_profiles;

  1. Navigate to System Parameters.

    Business Modeler > Parameters > System Parameters.

    The System Parameters window appears.

  2. Select the Engine tab.

    The existing engine profiles are displayed in the Engine Profile drop-down menu.

  3. Click New.

    The Create Engine Profile dialog box appears.

  4. Select the engine profile you would like to use as a base for your new profile, if desired.

  5. In the Profile Name field, enter the name of the engine profile.

  6. In the Init Params Table Name, enter the init params table to be associated with this engine profile.

  7. In the Profile Type field, choose whether your engine profile will be a batch or simulation engine.

  8. If you have chosen a simulation engine profile type, select the parent batch profile.

  9. Click OK.

Related Topics

Configuring the Analytical Engine

Engine Parameters

Specifying the Demand Stream in an Engine Profile

Statistical forecasts are calculated by analyzing a historical data stream to find trends and seasonal patterns in the data, and then projecting those trends and patterns into the future. One of the keys to this process is the historical data stream. This data stream is typically referred to as the demand stream. Often there are several options for which data stream to use, with typical examples being shipments, orders, and consumption data.

The decision on which demand stream to use is typically based on:

Sometimes, it is desirable to create forecasts based on historical data taken from more than one demand stream. Some sample scenarios are the following:

Controlling which data series is used as the demand stream by the Oracle Demantra Analytical Engine is done by configuring the quantity_form system parameter. The quantity_form parameter contains an expression that is used by the engine to retrieve and aggregate demand stream data from the SALES_DATA table. Changing the expression results in different demand streams, or different combinations of demand streams, being used as the basis for generating the forecast.

To define the quantity_form parameter for an engine profile

  1. Navigate to System Parameters.

    Business Modeler > Parameters > System Parameters.

    The System Parameters window appears.

  2. Select the Engine tab

  3. Select the forecast from the Engine Profiles drop-down menu.

  4. Navigate to the Data Manipulation sub tab.

  5. Specify the expression in the Value column for the quantity_form profile row. The expression can be simple or complex. Make sure the quantity_form expression for a specific engine profile points to database columns containing the historical demand stream desired for the profile.

    The default syntax is: greatest(nvl(pseudo_sale,actual_quantity)*(1 + nvl(demand_fact,0)),0). This expression checks for the availability of user overrides stored in the pseudo_sale column. If they exist, these overrides supersede the historical sales found in the actual_quantity column. Any user defined % increase is then applied.

    • This is an example of a simple expression:

      actual_quantity

      Note: When running the analytical engine the expression will be wrapped by a 'sum' function, therefore aggregation functions should not be explicitly included in the expression.

    • This is an example of a more complex expression:

      nvl(pseudo_sale,nvl(shipments,orders))

      Here user overrides take precedent. If no user overrides are present, the expression uses shipments where available, otherwise it defaults to orders.

    • To use a different demand stream such as booking, enter the following expression:

      nvl(pseudo_sale,actual_quantity)*(1 + nvl(demand_fact,0))

    • For a Spares Forecasting demand stream (not based on the SALES_DATA table), the following expression represents a possible configuration:

      nvl(nvl(spf_shipment_over, spf_shipment_in),0)

  6. Click Save.

Note: When specifying quantity_form definitions, it is strongly recommended that the expression be constructed such that it prevents negative values.

Maintaining Engine Versions

The engine maintains the quantity of most recent engine versions defined in system parameter profile_forecasts_versions. For each of these versions, a full complement of columns is kept in SALES_DATA and PROMOTION_DATA. If a specific Engine Profile does not have a profile_forecasts_versions parameter, then the parameter value found in the system parameter active_forecast_versions is inserted into the profile during the engine run.

To define the number of engine versions maintained:

  1. Navigate to system parameters.

    Business Modeler > Parameters > System Parameters.

    The System Parameters window appears.

  2. Select the Engine tab

  3. Select the forecast from the Engine Profiles drop-down menu.

  4. Navigate to the Time sub tab.

  5. The parameter named profile_forecasts_versions, located on the Time sub tab controls the number of forecast versions for the given Engine Profile. The default value is 5.

Illegal Characters in Demantra

Within Demantra, do not use the following special characters:

Single quote (')

Double quote (")

Ampersand (&)

If you use these characters, unexpected results may occur.