Show TOC

 POS Transaction Sales Analysis

 

This virtual data model (VDM) provides the prerequisites for analyzing the combined data from the point-of-sale (POS) transaction log and master data from SAP ERP for Retail. This provides a holistic view of POS sales and return transactions for retailers' transaction logs.

This virtual data model provides you with answers to the following questions:

  • On which date did the transaction take place?

  • What was the item sold?

  • Was there a promotion applied to the item, and, if so, what type of promotion was it?

Structure

Report Query Views

The point-of-sales system sales query (POSSalesQuery) report query view is included in this virtual data model. This view allows users to display information regarding the complete set of characteristics and measures from the transaction log (TLOG) of the point-of-sale (POS) system combined with master data. The amount measures are available with currency conversion with the display currency field.

Caution Caution

POSSalesQuery is a view that is intended to be used as a template and is not intended for productive use. It includes an extensive set of characteristics, measures and master data that may not be required for your business and that, as a result, can unnecessarily slow down the performance of the query view. Therefore, you can use the POSSalesQuery as a template to build several smaller, targeted query views which consume the reuse views listed below.

End of the caution.
Reuse Views

The report query view is supported by several reuse views, including the following:

  • POS sales (POSSales_V2)

    This view obtains the complete set of characteristics and measures from the POS transaction log.

    Note that this view completely replaces its predecessor view, POSSales , which is now deprecated.

    Caution Caution

    There are several filters activated in the POSSales_V2 reuse view:

    • Only line items belonging to categories A, B, C, or D are considered. This is a reference to the setting of the Category option in the Start of the navigation path SAP Customer Activity Repository Next navigation step POS Data Management Next navigation step POS Inbound Processing Next navigation step POS Transactions Next navigation step Define Sales Item Types End of the navigation path Customizing activity for a particular Sales Item Type.

    • Only Sales Movement transactions are considered. This is a reference to the settings of the Business Transac option to Sales Movement in the Start of the navigation path SAP Customer Activity Repository Next navigation step POS Data Management Next navigation step POS Inbound Processing Next navigation step POS Transactions Next navigation step Define POS Transaction Types End of the navigation path Customizing activity for a particular POS Transaction Type.

    • Only credit transaction are considered. This is a reference to the settings of the Debit/Credit Ind. option to Credit in the Start of the navigation path SAP Customer Activity Repository Next navigation step POS Data Management Next navigation step POS Inbound Processing Next navigation step POS Transactions Next navigation step Define POS Transaction Types End of the navigation path Customizing activity for a particular POS Transaction Type.

    • Voided transactions are excluded

    • Training transactions are excluded

    End of the caution.
  • POS Log Item Analytic (POSLogItemAnalytic)

    This view obtains the transaction item information from SAP Customer Activity Repository.

  • Common View Grouping for Sales Analysis Virtual Data Models

Business Objects

These views are built on the following business objects:

  • POS transactions

  • Material

  • Plant

Measures and Attributes

Some important measures and attributes are:

  • POS sales (POSSales_V2) view

    • The view provides general data, such as the order channel, material group, article, item ID and qualifier, store ID and location, transaction currency, business type, item ID, customer number, and whether a discount or promotion applied.

    • The view provides information about values including the sales amount, normal sales value, tax included and excluded amounts, item discount amount, distributed discounts amount, cost value, retail sales net amount, retail sales amount, discount amount, tax amount, return sales amount, returns discount amount, and promotion sales amount.

    • The view provides information about fashion-related values including the season, season year, fashion collection, and fashion theme.

Calculation of Measures

To interpret your POS sales data, it is important to understand the calculation of certain measures included in the views in this VDM, which are listed below. Several measures are only calculated when the RetailItemSubcategory is equal to A or B. This is a reference to the setting of the Subcategory option in the Start of the navigation path SAP Customer Activity Repository Next navigation step POS Data Management Next navigation step POS Inbound Processing Next navigation step POS Transactions Next navigation step Define Sales Item Types End of the navigation path Customizing activity for a particular Sales Item Type.

Measure

Explanation of Calculation

Calculation

SalesQuantityInSalesUnit

Provides the quantity in sales unit.

SalesQuantityInBaseUnit provides similar figures but using the base unit of measure.

The amounts are obtained from the RETAILQUANTITY field of the /POSDW/TLOGF table.

Positive values indicate that goods have been sold. Negative values indicate returned items or empties.

SalesAmount

Provides the total sales amount taking into consideration any possible adjustments at the POS terminal.

For example, if the price of a damaged item is reduced by the cashier, this reduced price and not the full sales price is considered.

SalesAmountInDisplayCrcy provides similar figures but using the display currency.

The amounts are obtained from the SALESAMOUNT field of the /POSDW/TLOGF table.

NormalSalesAmount

Provides the total sales amount not taking into consideration any possible adjustments at the POS terminal.

There is only a difference between the actual sales value (SalesAmount) and the normal sales value (NormalSalesValue) in document currency if the sales value for the item has been overwritten. The Normal Sales Value in Doc. Currency provides the total value of the item multiplied by the quantity of items sold, not the price per piece.

Item discounts have already been calculated in this value. Depending on the country, taxes may be included in this value (countries with value-added tax) or may not be included in this value (countries without value-added tax, such as the USA).

NormalSalesAmountInDisplayCrcy provides similar figures but using the display currency.

TaxIncludedAmount

Provides the included taxes for the line item.

TaxIncludedAmountInDisplayCrcy provides similar figures but using the display currency.

The amounts are obtained from the TAXINC field of the /POSDW/TLOGF table.

For the TAXINC field to be populated, the POS transaction data must be enhanced for analytics as described under Enhancing Transaction Data for Analytics.

TaxExcludedAmount

Provides the excluded taxes for the line item.

TaxExcludedAmountInDisplayCrcy provides similar figures but using the display currency.

The amounts are obtained from the TAXEXC field of the /POSDW/TLOGF table.

For the TAXEXC field to be populated, the POS transaction data must be enhanced for analytics as described under Enhancing Transaction Data for Analytics.

ItemDiscountsAmount

Provides the discount amount for the line item.

ItemDiscountsAmountInDisplayCrcy provides similar figures but using the display currency.

The amounts are obtained from the ITEMDISC field of the /POSDW/TLOGF table.

For the ITEMDISC field to be populated, the POS transaction data must be enhanced for analytics as described under Enhancing Transaction Data for Analytics.

DistributedDiscountsAmount

Provides the distributed discount amount for the line item.

DistributedDiscountsAmountInDisplayCrcy provides similar figures but using the display currency.

The amounts are obtained from the DISTDISC field of the /POSDW/TLOGF table.

For the DISTDISC field to be populated, the POS transaction data must be enhanced for analytics as described under Enhancing Transaction Data for Analytics.

DistributedTaxIncludedAmount

Provides the amount of the distributed included taxes for the line item.

DistributedTaxIncludedAmountInDisplayCrcy provides similar figures but using the display currency.

The amounts are obtained from the DISTTAX field of the /POSDW/TLOGF table.

For the DISTTAX field to be populated, the POS transaction data must be enhanced for analytics as described under Enhancing Transaction Data for Analytics.

DistributedTaxExcludedAmount

Provides the amount of the distributed excluded taxes for the line item.

DistributedTaxExcludedAmountInDisplayCrcy provides similar figures but using the display currency.

The amounts are obtained from the DISTTAXEXC field of the /POSDW/TLOGF table.

For the DISTTAXEXC field to be populated, the POS transaction data must be enhanced for analytics as described under Enhancing Transaction Data for Analytics.

DistributedTenderAmount

Provides the amount of the distributed tender for the line item.

DistributedTenderAmountInDisplayCrcy provides similar figures but using the display currency.

The amounts are obtained from the DISTTENDER field of the /POSDW/TLOGF table.

For the DISTTENDER field to be populated, the POS transaction data must be enhanced for analytics as described under Enhancing Transaction Data for Analytics.

CostAmount_E

Provides the procurement costs for an item. It is used to calculate the sales volume margin. Cost does not refer to the cost of each piece but to the total cost of the item multiplied by the quantity.

CostAmountInDisplayCrcy provides similar figures but using the display currency.

NetSalesAmount

Provides the actual sales amount, which represents the sales amount minus the tax-included amount and the distributed tax-included amount, based on sales and returns.

NetSalesAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='A' OR "RetailItemSubcategory" ='B'),

("SalesAmount"- "TaxIncludedAmount" -"DistributedTaxIncludedAmount") , 0 )

RetailSalesAmount

Provides the full sales amount, which includes the sales amount, plus the tax-excluded and distributed tax-excluded amounts.

RetailSalesAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='A' OR "RetailItemSubcategory" ='B'),

("SalesAmount" +"TaxExcludedAmount" + "DistributedTaxExcludedAmount" ) , 0 )

DiscountAmount

Provides the amount of all discounts, which includes the distributed discounts amount and the item discounts amount.

DiscountAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='A' OR "RetailItemSubcategory" ='B'),

(("DistributedDiscountsAmount" +"ItemDiscountsAmount") , 0 )

TaxAmount

Provides the full tax amount, which includes the tax-included and tax-excluded amounts, plus the distributed tax-included and distributed tax-excluded amounts.

TaxAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='A' OR "RetailItemSubcategory" ='B'),

("TaxIncludedAmount" +"TaxExcludedAmount" +"DistributedTaxIncludedAmount" +"DistributedTaxExcludedAmount") , 0 )

LineItemTaxAmount

Provides the tax amount for all line items, which includes the tax-included amount plus the tax-excluded amount.

LineItemTaxAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='A' OR "RetailItemSubcategory" ='B'),

("TaxIncludedAmount" +"TaxExcludedAmount") , 0 )

ReturnsAmount

Provides the full returns amount, which includes the returns amount, plus the tax-excluded and distributed tax-excluded amounts. This is the amount of returns that are included in the retail sales amount.

ReturnsAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='B'),

abs ("RetailSalesAmount"), 0)

NetReturnsAmount

Provides a sum of only those return amounts that are included in the net sales amount.

NetReturnsAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='B'),

abs("NetSalesAmount"), 0 )

DiscountedReturnsAmount

Provides the amounts of all returned, discounted items.

DiscountedReturnsAmountInDisplayCrcy provides similar figures but using the display currency.

if( ( "RetailItemSubcategory" ='B' AND "HasDiscount" = 1 ),

abs ("RetailSalesAmount"), 0 )

ReturnsQuantityInSalesUnit

Number of returned items in sales units, in retail quantity.

ReturnsQuantityInBaseUnit provides similar figures but using the base unit of measure.

The amounts are obtained from the RETAILQUANTITY field of the /POSDW/TLOGF table.

The absolute value of only the negative values (which indicate returned items or empties) is considered.

if( ("RetailItemSubcategory" ='B'),

abs ("SalesQuantityInSalesUnit"), 0)

and

if( ("RetailItemSubcategory" ='B'),

abs ("SalesQuantityInBaseUnit"), 0)

ReturnsCostAmount

Provides the full procurement cost of all returned items.

ReturnsCostAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='B'),

abs ("CostAmount_E"), 0)

ReturnsDiscountAmount

Provides the total amount of discounts (including distributed discounts and line item discounts) for all the returned items.

ReturnsDiscountAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemSubcategory" ='B') ,

abs ("DistributedDiscountsAmount" +" ItemDiscountsAmount") , 0 )

NumberOfSalesItems

Provides the number of sold items. A sales line item increases the number, a returned line item decreases the number.

For example, if you sell ten articles and but return ten other articles, regardless of the merchandise category, your total number of sales items is 0.

if("RETL_ITEM_SCAT" ='A' , 1 ,

if("RETL_ITEM_SCAT" ='B', -1, 0) )

NumberOfReturnItems

Provides the number of retuned items.

if( ("RETL_ITEM_SCAT" ='B') , 1 , 0 )

NumberOfDiscountItems

Provides the number of sold, discounted items. A sales line item increases the number, a returned line item decreases the number.

if( (abs("DISTDISC") > 0 or abs("ITEMDISC") > 0) ,

if( "RETL_ITEM_SCAT" = 'B' , -1, 1), 0)

NumberOfPromotionItems

Provides the number of sold, promotional items. A sales line item increases the number, a returned line item decreases the number.

if("PROMOTIONID" != '',

if( "RETL_ITEM_SCAT" = 'B' , -1, 1), 0)

PromotionSalesAmount

Provides the retail sales amount for all items flagged as having promotions. This is the amount of promotional sales that are included in the retail sales amount.

PromotionSalesAmountInDisplayCrcy provides similar figures but using the display currency.

if( ( "HasPromotion" = 1),

("RetailSalesAmount"), 0)

PromotionNetSalesAmount

Provides a sum of only those promotional sales that are included in the net sales amount.

PromotionNetSalesAmountInDisplayCrcy provides similar figures but using the display currency.

if( ( "HasPromotion" = 1 ),

("NetSalesAmount"), 0)

PromotionQuantityInSalesUnit

Provides the quantity of promotional items in sales unit.

if( ("HasPromotion" = 1) ,

("SalesQuantityInSalesUnit"), 0)

MerchandiseSalesAmount

Provides the retail sales amount for all items flagged as a sale of goods sale item type. Returns are not considered in this total.

MerchandiseSalesAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemCategory" ='A') ,

("RetailSalesAmount"), 0)

MerchandiseSalesCostAmount

Provides the procurement cost amount for all items flagged as a sale of goods sale item type.

MerchandiseSalesCostAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemCategory" ='A') ,

("CostAmount_E"), 0)

MerchandiseReturnsAmount

Provides the amount of returns amount for all items flagged as a sale of goods sale item type.

MerchandiseReturnsAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemCategory" ='A'),

("ReturnsAmount"), 0)

MerchandiseDiscountAmount

Provides the total amount of discounts (including distributes discount and line item discounts) for all items flagged as a sale of goods sale item type.

MerchandiseDiscountAmountInDisplayCrcy provides similar figures but using the display currency.

if( ("RetailItemCategory" ='A'),

("DiscountAmount"), 0)

DistributedHeaderTaxAmount

Provides the full distributed header tax amount, which includes the distributed tax-included amount plus the distributed tax-excluded amount.

DistributedHeaderTaxAmountInDisplayCrcy provides similar figures but using the display currency.

"DistributedTaxIncludedAmount" +"DistributedTaxExcludedAmount"

Used Tables and Views

The main tables and views from which data is retrieved are:

  • /POSDW/TLOGF (transaction log flat table)