Configuring the solution

To predict ordering quantities, cost ranges, and requisition patterns, historical data is copied from FSM to the Data Lake through the FSM_RQ_ST replication set where it is stored in FSM_RequisitionLine. AI and ML models use this data to analyze patterns and generate predictions.

Data flow and scheduling

  • Replication sends requisition data to the Data Lake.

    We recommend that you run replication at least once per day.

  • Workflows must be scheduled after the replication is completed as replication triggers the model training using this data.
  • Example schedule:
    • FSM_RQ_ST → 00:00 AM
    • Quantity Anomalies → 00:40 AM (FSM_RQ_Requisition_Quantity_Anomalies_SCH)
    • Cost Anomalies → 00:50 AM (FSM_RQ_Requisition_Cost_Anomalies_SCH)
    • Once training is complete, the prediction endpoints are updated.
Note: For initial setup and deployment, refer to the FSM_RQ_Requisition_Anomalies_Deployment_Guide.

Follow these key rules:

  • Training uses released or processed requisition lines. A release date must exist for each line.
  • Training uses data from the last year.

Quantity anomaly prediction logic

These steps are followed to check if the requisitioned quantity is anomalous:

  1. Quantity is converted to Stock UOM.
  2. Quantity is grouped by Requesting Location and Item.
  3. Pattern is analyzed and outliers are removed using the Interquartile Range (IQR) method.
  4. Final range is calculated and converted back to user-entered requisition line UOM for display.

Cost anomaly prediction logic

These steps are followed to check if the requisitioned quantity is anomalous:

  1. Cost is normalized to Stock UOM.
  2. Cost grouped by Item.
  3. Outliers are removed using IQR method.
  4. Predicted cost range is converted back to entered UOM and shown in widget.

Rolling window calculation

Follow these calculations:

  • Rolling Window 1 (Baseline): Uses one-year historical data → Applies IQR to set lower and upper bound.
  • Rolling Window (Recent Trend): Has two parts:
    1. Rolling down: Uses last “X” days → Captures short-term behavior shifts through IQR.
    2. Rolling up: Uses next “Y” days → Anticipates near-term trends through IQR.
Note: X and Y days are defined by users as a configurable parameter at use case level.

The widget shows the final range calculated from the weighted average of each rolling window.