Contact Optimization works by breaking up the proposed contacts into random subsamples of customers called "chunks." All proposed contacts and contact history belonging to a single customer are processed with that customer in the chunk in which that customer belongs. A customer can belong to a single chunk only. The accuracy of the optimization algorithm depends on these chunks of customers being statistically similar to each other. A larger chunk size makes this requirement more likely. Cross-customer capacity constraints are evenly distributed across the chunks. For example, your
Contact Optimization session contains a constraint specifying there is a maximum of 1000 offer A allowed. If the
Contact Optimization session is run with 10 chunks, each chunk has a capacity rule that allows a maximum of 100 offer A.
You use the algorithm tuning variable CustomerSampleSize to set the maximum chunk size. The larger the chunk, the more accurate the results. However, the session runtime and memory resources also increase. Do not use chunk sizes greater than 10,000 without careful planning. Many systems do not have enough memory resources to process more than 10,000 customers at a time. This lack of memory resources results in a failed
Contact Optimization session run with an out of memory error. In many cases, a larger chunk size might not significantly increase the optimality of the solution at all, but still takes more time and memory to run. Optimality is measured as the sum of scores of the surviving transactions in the Optimized Contacts Table. You might need to tune the
CustomerSampleSize based on your specific optimization problem and performance needs.
A smaller maximum chunk size might cause more chunks to be created. This setting makes it more likely that a rule might depend on some element (such as email channel) that is less numerous than the number of chunks. If the chunk size is reduced to 100 there would be 1,000 chunks. Now, the minimum for the rule is less than the number of chunks, which makes the modified rule 0.02 (20 divided by 1,000). In this case, 2% of the chunks use a rule with a minimum of 1, and the other 98% of the chunks use a minimum of 0. As long as each chunk is statistically similar regarding channel email, Contact Optimization processes the rule as expected. A problem occurs when there are fewer customers offered emails than there are chunks. If only 500 customers are offered emails, each chunk has only a 50% chance of containing a customer offered an email. Also, the odds that a particular chunk has both a customer offered an email and a minimum 1 rule is only 1%. Instead of meeting the specified minimum of 20,
Contact Optimization returns only 5 on average.