Conducting an unbiased survey

The client wanted to get feedback from customers on specific products with the ability to change and define the monthly target survey number.

The must-haves

Keeping in mind the primary goal of conducting surveys that fully reflect the current satisfaction level of customers, the must-have was to prevent the personnel from influencing which customers will be a part of the survey sample. In other words, it was crucial to ensure that the event of distributing surveys through codes on receipts is unpredictable to personnel and customers.

An international retail company focused on using existing data about products, stores, and customers to upgrade its business and increase revenue.


Decision Engine that randomly issues 7-day valid surveys based on multiple parameters so that a specific survey target number is completed each month.


- Transparent and unbiased survey to get customer’s feedback on specific products

- Real-time decisions if the transactions qualify to participate in the survey

Read more

Find out more about the Decision Engine we made below.

How did we help

Looking at the main goal of allowing customers to share their feedback with the coffee store chain from the technical perspective, our job was to ensure that 7-day valid surveys are randomly issued so that a specific target number is completed each month.

So, we have developed the Decision Engine - a mathematical model that uses binomial distribution to forecast the number of surveys that will be completed out of all issued so far.

Using this forecast, together with the number of already completed surveys, the monthly target, the estimate of the amount of traffic in the specific store and current date, the model can calculate how often the surveys need to be issued to reach the wanted target by the end of the month. This allows the Engine to decide in real-time, in a probabilistic way, whether the transaction is qualified for the survey or not.

When a customer enters the store and orders, for example, a caffe latte the cashier starts the transaction. When entering the order in the cash register, the query is sent to the decision-making model to see if the transaction qualifies for the survey or not. If it qualifies, the cashier makes the transaction, clicks on Save, and the POS device prints the receipt with the survey number and the corresponding URL that enables the customer to fill in the survey.

When the transaction is made, SOA agent* takes the data regarding the purchased products, their prices, and the corresponding survey code and sends it to the management software to improve customer experiences. The software confirms that the code can be used to fill in the survey and sends the survey ID through CDS** to the decision engine. When the customer completes and saves the survey, the mentioned software sends that information to the engine, with information about the country and the store where the survey was issued.

When the customer comes to the store upon survey completion and wants to use the given voucher, the cashier enters the corresponding survey code in the cash register. The cash register communicates with the decision engine through API and checks if the voucher was already used. In the case of an already redeemed voucher, the cash register prevents the discount or allows it if otherwise.

* SOA agent is a solution that captures, collects, and processes real-time sales transactions from POS devices and, as close to real-time, delivers processed information to different systems, one of them being the management software for improving customer experiences and CDS service.

** CDS is a sales data multi-subscriber that gets the transaction data and sends it to the management software to improve customer experiences.

This project was delivered as a continuation of the beneficial vendor-client relationship gained through previous projects, one of which was developing a Data platform. We proved our flexibility to the client’s wishes and integrity in delivering projects.