POS Explorer

Prof. Hasso Plattner and the staff of our chair presented a POS Explorer prototype for retail businesses in the keynote at SAPHHIRE 2013 in Orlando, Florida.

Use Case

The tool helps retail companies to explore their sales data. It supports employees to initiate and plan new promotions. Typical questions are which products should be promoted and how they will react to price changes. Exploring the raw POS data with sub-second response times and finding new interesting combinations of products for promotions generates helpful insights, resulting in actual business value.


The prototype runs on 4 billion records of POS data (~400GB in memory, 2TB raw data). The 4 billion records are partitioned into 100 partitions over the transaction ID. Additionally we have master data of products and stores, which include for example the names of products.


Key Figures

On the left side of the first page you can see the product hierarchy to search and filter for a product. Each product is assigned to one product group. On the right side you can see three key figures. The first one is the market share of products compared to their product groups. The basket value describes the average value of baskets where a product was sold in and the revenue is the total revenue generated of the respective products.  On the bottom we see the three key figures and their development over time.

Basket analysis

The basket analysis on the second page is based on an apriori algorithm. It calculates products that are most commonly sold together with the selected product. These products are shown in the table on the right. The support and confidence value indicates how strong the correlation between the two products is. The support value illustrates how many transactions contained both products. The confidence value shows the percentage of the transactions, which contained product A, also contain product B.

For each partition we count the number of transactions that contain product A & B and the number of transactions that contain only product A. Afterwards, the quantity is added and divided after the apriori algorithm rule.

For selected products out of the table, you can see further information in the circle on the left. The size of the blue area represents the average basket value where both products were sold together.


Week matrix

At the top of the last page, the matrix shows the average revenue and basket value generated by two selected products over the days of the week and times of the day.
To increase the significance of this matrix, a next step could be to calculate the relative amount of revenue compared to the total revenue. Thereby outliers would be easier to detect. Additionally, one could think about adding filters to only analyze a subset of data, e.g. only a specific period of time.

At first, we get all transactions where both products were sold together. For these transactions, we calculate the basket value and select the weekday and hour. Afterwards, we add the basket values and count the number of transactions for each weekday and hour. This calculation happens on each partition. Following, the average basket value is computed.


Price elasticity

The price elasticity indicates how the number of sales of a product changes when its price is changed. A first version is shown on the bottom of page three. Here you can see the average revenue generated grouped by the different prices the product was sold for.
A next step could be to perform a regression algorithm, calculating the actual price elasticity values or going even one step further to calculate cross price elasticity, taking price changes of other products into account.