Page tree

 

Support | BlogContact Us | 844.332.2821

 

Contents:

This documentation applies to Trifacta Wrangler. Download this free product.
Registered users of this product or Trifacta Wrangler Enterprise should login to Product Docs through the application.

The following dataset contains orders for multiple customers over a period of a few days, listed in no particular order. You want to assess how order size has changed for each customer over time and to provide offers to your customers based on changes in order volume.

Source:

DateCustIdOrderIdOrderValue
1/4/16C001Ord002500
1/11/16C003Ord005200
1/20/16C002Ord007300
1/21/16C003Ord008400
1/4/16C001Ord001100
1/7/16C002Ord003600
1/8/16C003Ord004700
1/21/16C002Ord009200
1/15/16C001Ord006900

Transform:

When the data is loaded into the Transformer page, you can use the PREV function to gather the order values for the previous two orders into a new column. The trick is to order the window transform by the date and group it by customer:

window value: PREV(OrderValue, 1) order: Date group: CustId

window value: PREV(OrderValue, 2) order: Date group: CustId

rename col: window to: 'OrderValue_1'

rename col: window1 to: 'OrderValue_2'

You should now have the following columns in your dataset: DateCustIdOrderIdOrderValueOrderValue_1OrderValue_2.

The two new columns represent the previous order and the order before that, respectively. Now, each row contains the current order (OrderValue) as well as the previous orders. Now, you want to take the following customer actions:

  • If the current order is more than 20% greater than the sum of the two previous orders, send a rebate.
  • If the current order is less than 90% of the sum of the two previous orders, send a coupon. 
  • Otherwise, send a holiday card.

To address the first one, you might add the following, which uses the IF function to test the value of the current order compared to the previous ones: 

derive value: IF(OrderValue >= (1.2 * (OrderValue_1 + OrderValue_2)), 'send rebate', 'no action') as: 'CustomerAction'

You can now see which customers are due a rebate. Now, edit the above and replace it with the following, which addresses the second condition. If neither condition is valid, then the result is send holiday card.

derive value: IF(OrderValue >= (1.2 * (OrderValue_1 + OrderValue_2)), 'send rebate', IF(OrderValue <= (1.2 * (OrderValue_1 + OrderValue_2)), 'send coupon', 'send holiday card')) as: 'CustomerAction'

Results:

After you drop the OrderValue_1 and OrderValue_2 columns, your dataset should look like the following. Note that since the transforms with PREV functions grouped by CustId, the order of records has changed.

DateCustIdOrderIdOrderValueCustomerAction
1/4/16C001Ord001100send rebate
1/7/16C001Ord002500send rebate
1/15/16C001Ord006900send rebate
1/8/16C003Ord004700send rebate
1/11/16C003Ord005200send rebate
1/21/16C003Ord008400send coupon
1/7/16C002Ord003600send rebate
1/20/16C002Ord007300send rebate
1/21/16C002Ord009200send coupon

Your Rating: Results: PatheticBadOKGoodOutstanding! 3 rates

This page has no comments.