Skip to main content

Symon.AI help center

Order validation


Currently, this solution is only available to Varicent ELT and Varicent users. For more information, please contact the Varicent Support team.

What if your order data contains records with parts that you can't sell together in the same configuration? What if your transactional data has issues preventing it from being used in Varicent Incentive Compensation Management (ICM)?

Catch errors earlier by validating transactions and orders. Prevent invalid data from propagating further through your organizational workflow. This saves workers from cost-intensive manual reviews later.

In this pipe, we aim to accomplish two things:

  • Validate orders for missing information, mismatching information and invalid combinations.

  • Validate transactions before submitting for processing, by catching currency mismatches, and missing dates.

The required (starting) datasets for this blueprint are Transactions (Data) and Orders.csv (Data), datasets that you want to validate. Additionally, there should be a Valid Orders (Data) table used to match against the Orders.csv (Data).

This use case walks through how to fix the three following issues before you can use it in ICM:

  1. Inconsistent data

  2. Missing values

  3. Currency mismatches

Transaction validation

Transactions (Data) consists of raw transactional data, which we are bringing into Symon.AI to validate and clean.

The Error Handling (Case) tool identifies which transactions are failing at least one of three cases. For example, we are looking for currencies that do not align with "Canada" as well as missing BookDate values.

The Valid Transactions (Filter) and Invalid Transactions (Filter) are filter tools that split our data out into two sets, the valid and invalid sets. You can manipulate, review and export the invalid data, before joining it back to the valid transactions.

The first invalid case we deal with is currency mismatches. The data in the invalid branch has either "CAN" listed as the country with a non-CAD currency, or has CAD currency with the country listed as other than "CAN". Error Correction (Formula) tool handles both these situations. In the first case, it replaces the ApprovedAmount value by multiplying by a USD:CAD exchange rate to convert it to CAD. For your own scenario, you could instead import a table with the exchange rate of multiple currencies, and even multiple dates. Using a Join tool, you could add the correct exchange rate to each record.

The Error Correction (Formula) tool also handles the missing BookedDates. Replace the null values with the existing ApplicationDate instead.

The Drop Original Columns (Drop) Rename Columns (Rename) tools do some column cleanup to allow us to join the data back together with the Union tool.

Order validation

In this section of the pipe, we're looking to validate orders for missing information, mismatches and invalid part combinations. Orders.csv (Data) contains a subset of data that joins with the Transactions (Data) data set through the TransactionID column.

The Orders.csv (Data) data set is initially set up such that there are multiple rows for each order.

Use the Data Part Filter (Filter) Ind Part Filer (Filter) Plat Part Filter (Filter) Source Part Filter (Filter) tools to pull each part type that comprises an order. Then use join tools to get each order depicted as a single row: Single Row Orders (Join).


One of our orders is missing a component. To not drop this column, use a right join for one of the join tools Right Join (Join).

Next, we do the first data validation where we apply Symon.AI's case tool Find inconsistencies (Case) to check for inconsistencies. For example, to check for empty fields and mismatching currencies.

Then, we want to ensure that the order represents a valid configuration by matching our orders to a table of valid configurations Valid Orders (Data). With this, we'll see which orders match to a valid set of parts, and which need to be investigated further.

The Combination Matcher tool accomplishes this by taking the existing single row orders data Drop unnecessary columns (Drop), and trying to match each row to one of the records in the valid configurations table Valid Orders (Data).


The combination matcher tool is set up to compare values in each of the pairs of Match columns, such as "PLATFORM ID" and "Platform ID". The orders that have a valid match will return a "TRUE" value in the "Matched" column, along with the ID of the valid order in the "MatchID" column.

Merge transaction and order data

Now that both branches have done their error validation, use a Join to bring the views together, using TransactionID and TxnId as the matching keys.

The valid combinations are exported back for ingestion into ICM, ready to be processed as valid transactions and orders. Export to ICM (Export).

Finally, since the invalid transactions may warrant further investigation, or you may not have been able to handle all the errors you found, Investigate invalid transaction-orders (Export) exports only the transactions that failed the original error validation or failed to match a valid parts combination. This allows you to further track these records, and follow up on the errors.