FVAStaging
Versions
v1.0.0
Basic Information
Class Name: FVAStaging
Title: Forecast Value Add Staging
Version: 1.0.0
Author: John Ross Greene
Organization: OneStream
Creation Date: 2024-09-20
Default Routine Memory Capacity: 2.0 GB
Tags
Sensible AI Forecast, Information Retrieval, Cross Validation, Data Analysis, Interpretability, Report Generation
Description
Short Description
Routine to prepare FOR tables (Cascade Staged DMF/BMF), actuals, and optionally, customer benchmark data
Long Description
This routine combines any number of (required) OneStream Cascade Staged DMF/BMF data tables with (optional) customer forecast tables, along with their actual data, providing a standardized and simple routine to preprocess data for the creation of Forecast Value Add Snapshots. These forecasts can be separated by provided dimension columns, giving more granular control for comparing forecasted results. If the chosen intersection fill method is not 'Ignore Intersections', the dimension column(s) chosen must exist in ALL tables provided since they will be joined on, otherwise the routine will fail. Multiple forecast cycles can produce new tables for FVA ingestion and increase consumer confidence. User Warning: Any columns that are not needed in the FVA snapshot will be dropped.
Use Cases
1. Preparing For Forecast Value Add Snapshots
With Forecast Value Add Snapshots being a vital tool for comparing forecast accuracy and usability, having the ability to quickly and easily prepare data for this without the need for complex and time-consuming SQL queries allows for higher agility workflows, giving users the freedom to combine tables in preparation for FVA Snapshots quickly and effectively,and with a multitude of options for how these join operations are performed, either ignoring, using, or filling missingintersections (on Date, ForecastStartDate, and user-provide dimension columns)
2. Comparing Actuals, Customer Forecasts, and OneStream Sensible AI Forecast Forecasts
Users can compare the accuracy of their SensibleAI Forecast projects with each other and with the customer benchmark forecasts for a couple of different reasons. They can first validate that Sensible AI Forecast is beating the customer’s previous method of forecasting, then determine which of their project configurations is the most optimal (yields the most accurate forecasts). This routine combines these results together for easy analysis and data preprocessing for Forecast Value Add snapshots, reducing the need for an array of SQL queries and joins that otherwise would need to be performed to preprocess this data into a workable state for FVA analysis.
Routine Methods
1. Fva Project To Benchmark (Method)
- Method:
fva_project_to_benchmark-
Type: Method
-
Memory Capacity: 8.0 GB
-
Allow In-Memory Execution: No
-
Read Only: Yes
-
Method Limits: This method supports a 25K target dataset with actuals included, accompanied by a 25k benchmark dataset over a 6 month prediction at the daily level (182 time steps) in 2 minutes with 80GB of allocated memory. Runtime remains low with the highest supported configuration that included a 9 month prediction at the daily level (274 time steps) completing in 5 minutes. Memory limits outweigh runtime limits and any configurations beyond this cannot be guaranteed at the max memory allocation.
-
Outputs Dynamic Artifacts: No
-
Short Description:
- Joins FOR and Customer Benchmark tables into preprocessed table for Forecast Value Add Snapshots.
-
Detailed Description:
- The FVA Staging routine allows for quick preprocessing of Cascade Staged Model table(s) and Customer Benchmark Forecasts to be joined, with options to fill missing intersections based on ForecastStartDate, Date, and provided Dimension Columns.
-
Inputs:
- Required Input
- Deployed Model Forecast Tables: The Deployed Model Forecast data table(s) to join.
- Name:
deployed_model_forecast_table_connections - Tooltip:
- Validation Constraints:
- The input must have a minimum length of 1.
- The input must have a maximum length of 40.
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: list[TimeSeriesTableDefinitionSeriesDimension]
- Name:
- Customer Benchmark Tables: Local customer benchmark table to join with Deployed Model Forecast tables.
- Name:
benchmark_table_connection - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: Must be an instance of Time Series Source Data
- Nested Model: Time Series Source Data
- Required Input
- Connection: The connection to the source data.
- Name:
data_connection - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: Must be an instance of Tabular Connection
- Nested Model: Tabular Connection
- Required Input
- Connection: The connection type to use to access the source data.
- Name:
tabular_connection - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: Must be one of the following
- SQL Server Connection
- Required Input
- Database Resource: The name of the database resource to connect to.
- Name:
database_resource - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: str
- Name:
- Database Name: The name of the database to connect to.
- Name:
database_name - Tooltip:
- Detail:
- Note: If you don’t see the database name that you are looking for in this list, it is recommended that you first move the data to be used within a database that is available within this list.
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Detail:
- Type: str
- Name:
- Table Name: The name of the table to use.
- Name:
table_name - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: str
- Name:
- Database Resource: The name of the database resource to connect to.
- Required Input
- MetaFileSystem Connection
- Required Input
- Connection Key: The MetaFileSystem connection key.
- Name:
connection_key - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: MetaFileSystemConnectionKey
- Name:
- File Path: The full file path to the file to ingest.
- Name:
file_path - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: str
- Name:
- Connection Key: The MetaFileSystem connection key.
- Required Input
- Partitioned MetaFileSystem Connection
- Required Input
- Connection Key: The MetaFileSystem connection key.
- Name:
connection_key - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: MetaFileSystemConnectionKey
- Name:
- File Type: The type of files to read from the directory.
- Name:
file_type - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: FileExtensions_
- Name:
- Directory Path: The full directory path containing partitioned tabular files.
- Name:
directory_path - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: str
- Name:
- Connection Key: The MetaFileSystem connection key.
- Required Input
- SQL Server Connection
- Name:
- Connection: The connection type to use to access the source data.
- Required Input
- Name:
- Date Column: The column to use as the date.
- Name:
date_column - Tooltip:
- Detail:
- The date column must in a DateTime readable format.
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Detail:
- Type: str
- Name:
- Value Column: The column to use as the value.
- Name:
value_column - Tooltip:
- Detail:
- The value column must be a numeric (int, float, double, decimal, etc.) column.
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Detail:
- Type: str
- Name:
- Series Dimension: The series dimension name for labeling the table.
- Name:
series_dimension - Tooltip:
- Detail:
- The series dimension name should be unique to each table, to help keep track of each run
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Detail:
- Type: str
- Name:
- Connection: The connection to the source data.
- Required Input
- Name:
- Dimension Columns: The columns to use as dimensions.
- Name:
dimension_columns - Tooltip:
- Validation Constraints:
- The input must have a minimum length of 1.
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: list[str]
- Name:
- Intersection Fill Method for Merging Tables: Choose the method used to handle joining of tables.
- Name:
intersection_fill - Tooltip:
- Validation Constraints:
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: IntersectionFillMethod_
- Name:
- Deployed Model Forecast Tables: The Deployed Model Forecast data table(s) to join.
- Required Input
-
Artifacts:
- Final DMF table to Customer Benchmark DataFrame: Customer forecast data and FOR table(s) merged for FVA Snapshot
- Qualified Key Annotation:
fva_merged - Aggregate Artifact:
False - In-Memory Json Accessible:
False - File Annotations:
artifacts_/@fva_merged/data_/data_<int>.parquet- A partitioned set of parquet files where each file will have no more than 1000000 rows.
- Qualified Key Annotation:
- Final DMF table to Customer Benchmark DataFrame: Customer forecast data and FOR table(s) merged for FVA Snapshot
-
2. Fva Project To Project (Method)
- Method:
fva_project_to_project-
Type: Method
-
Memory Capacity: 8.0 GB
-
Allow In-Memory Execution: No
-
Read Only: Yes
-
Method Limits: This method is not computationally complex and can handle 25K targets, with actuals included, and a prediction horizon of 365 days in 5 minutes with 40GB of allocated memory. For reference, this produced a 50M row dataset representing one year forecasts at the daily level from 3 separate projects, providing support for higher time granularities that fall under these configurations or are scaled across a higher project count.
-
Outputs Dynamic Artifacts: No
-
Short Description:
- Vertically stacks OneStream Cascade Staged DMF/BMF tables for FVA Snapshot preprocessing
-
Detailed Description:
- This method will vertically stack as many Cascade Staged DMF/BMF tables as the routine is given for FVA Snapshot preprocessing.
-
Inputs:
- Required Input
- Deployed Model Forecast Tables: The Deployed Model Forecast data tables to join.
- Name:
deployed_model_forecast_table_connections - Tooltip:
- Validation Constraints:
- The input must have a minimum length of 1.
- The input must have a maximum length of 40.
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: list[TimeSeriesTableDefinitionSeriesDimension]
- Name:
- Dimension Columns: The columns to use as dimensions.
- Name:
dimension_columns - Tooltip:
- Validation Constraints:
- The input must have a minimum length of 1.
- This input may be subject to other validation constraints at runtime.
- Validation Constraints:
- Type: list[str]
- Name:
- Deployed Model Forecast Tables: The Deployed Model Forecast data tables to join.
- Required Input
-
Artifacts:
- Final FOR only FVA Staging DataFrame: Merged FOR tables for FVA Snapshot
- Qualified Key Annotation:
fva_stacked - Aggregate Artifact:
False - In-Memory Json Accessible:
False - File Annotations:
artifacts_/@fva_stacked/data_/data_<int>.parquet- A partitioned set of parquet files where each file will have no more than 1000000 rows.
- Qualified Key Annotation:
- Final FOR only FVA Staging DataFrame: Merged FOR tables for FVA Snapshot
-
Interface Definitions
No interface definitions found for this routine
Developer Docs
Routine Typename: FVAStaging
| Method Name | Artifact Keys |
|---|---|
fva_project_to_benchmark | fva_merged |
fva_project_to_project | fva_stacked |