Wal-mart Sales Forecasting

June 27, 2016 | Author: Mithun Mathew | Category: Types, School Work
Share Embed Donate


Short Description

Forecasting 2012 holiday sales of Wal-mart with SAS Enterprise Miner using data obtained from kaggle.com...

Description

WAL-MART SALES

FORECASTING 94-832: Business Intelligence & Data Mining SAS

TEAM 7 MITHUN MATHEW MEAGAN MUSGRAVE AKASH PATEL RENU THOMAS IVY YANG

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

Table of Contents 1

Introduction .......................................................................................................................................... 3

2

Business Questions ............................................................................................................................... 4

3

4

5

6

7

8

2.1

Question One ................................................................................................................................ 4

2.2

Question Two ................................................................................................................................ 4

Description and Preparation of Data .................................................................................................... 5 3.1

Data Source ................................................................................................................................... 5

3.2

Data Sets Utilized .......................................................................................................................... 5

3.3

Data Preparation: Merging, Cleaning, and Transforming the Data ............................................. 5

Exploratory Analysis .............................................................................................................................. 7 4.1

Top 10 Stores by Sales .................................................................................................................. 7

4.2

Top 5 Departments across the stores ........................................................................................... 8

4.3

Sales vs CPI & Sales vs Fuel price .................................................................................................. 9

Unsupervised Learning: Clustering .................................................................................................... 10 5.1

Initial Results ............................................................................................................................... 10

5.2

Insight from Cluster A ................................................................................................................. 11

5.3

Insight from Cluster B ................................................................................................................. 12

5.4

Insight from Cluster C ................................................................................................................. 12

5.5

Overall Insight ............................................................................................................................. 13

Supervised Learning: Regression ........................................................................................................ 14 6.1

Linear Regression with Full Data ................................................................................................. 14

6.2

Linear Regression with Imputed and Transformed Full Data ..................................................... 15

6.3

Linear Regression with Filtered Data .......................................................................................... 16

6.4

Linear Regression with Normalized Data .................................................................................... 17

Supervised Learning: Decision Tree .................................................................................................... 19

7.1

Two-way Split .............................................................................................................................. 19

7.2

Three-way Split ........................................................................................................................... 20

7.3

Two-way Split without DEPT and STORE .................................................................................... 21

7.4

Decision Tree on Sampled Data .................................................................................................. 22

Time Series Analysis ............................................................................................................................ 23 8.1

Data Exploration ......................................................................................................................... 23

8.2

Hierarchical Clustering [6]........................................................................................................... 26

8.3

Sales Forecasting [7] ................................................................................................................... 27 1|Page

94-832: Business Intelligence & Data Mining SAS

Report 9 10

Team 7

Business Implications .......................................................................................................................... 30 References ...................................................................................................................................... 31

Appendix A .................................................................................................................................................. 32 Appendix B .................................................................................................................................................. 33

2|Page

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

1 Introduction This project has been done for the fulfilment of the project requirement of the course 94-832: Business Intelligence & Data Mining SAS. The data which formed part of our core analysis was the Walmart data set obtained from Kaggle. The data contained weekly sales of various departments within different stores over different period of time. Most of the work put into the project evolves around staging the data for cleaning the data and modelling around different parameters and methodologies. Using different methodologies, clustering, regression and decision tree, different models were generated and their errors were noted. Variables of importance were identified and clustering insights were drawn. Time serie analysis was done for hierarchical clustering on sales trends, and portrayed how each cluster was different from each other. To predict the sales for the end of the year holiday season of 2012, time series forecasting was used.

3|Page

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

2 Business Questions 2.1 Question One Retailers face many challenges when trying to forecast sales due to several reasons: the scale of the problem, the erratic sales at the each individual store, season changes, constant introduction of new items, and repeated promotional activity [1]. In an attempt to eradicate these issues, retailers have turned to large-scale demand-forecasting that is able to accommodate large amounts of transaction data. By collecting these data, retailers can then mine it and project future customer behavior. The ability to forecast at such on such a large scale allows retailers the opportunity to optimize their revenue system, thus enabling better choices on promotions and pricing. For our project we take on this challenge and attempt to correctly forecast sales at Walmart. Given the reputation Walmart has about its competitive pricing structure, the ability to accurately project sales is key in its ability to function. However, research out of the University of Michigan recently affirmed that clustering prior to forecasting sales greatly increases the accuracy of forecasts [2]. By clustering stores based on sales, and attributes such as average temperature, fuel prices, etc., stores can eliminate the need to control for seasonal indices and classes (summer shoes versus winter shirts etc.). After applying hierarchical clustering to the data we hope to determine which stores are similar, in terms of both sales and store attributes, so that we can ascern which characteristics are key drivers and sales, thus allowing us to generate more accurate forecasts.

2.2 Question Two Recent news reports have underscored the importance of getting an accurate forecast. In January of 2014, Walmart had several chains cut their forecasts due to the holiday season and “profit-eating” discounts [3]. Moving forward to almost the end of 2014, Walmart again acknowledged that that it needs to do a “better” job at forecasting in order to ensure that it is keeping appropriate levels of inventory [4]. Given these recent developments, it is clear that forecasting plays an integral role in an retailers’ success. We will address Walmart’s challenge by leveraging sales data from 45 Walmart stores that are from different regions within the United States. By taking these data we will be able to make predictions on department-wide sales at each of the 45 stores. In addition to attempting to accurately predicting department-wide sales, we will also attempt to understand the impact of markdowns (price reductions) on holiday weeks. However, it is important to note that while we have data for each of the 45 stores regarding department-wide sales, we will be modeling the effect of markdowns without possessing complete historical data. Overall, we hope to understand which attributes significantly impact sales at the store level via regression, time series analysis, and decision tree models. These results can then foster an accurate prediction of 2012 sales data, thus allowing us to determine when is the best time to hire new employees.

4|Page

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

3 Description and Preparation of Data 3.1 Data Source The Walmart Store Sales data is published as Walmart recruiting competition on Kaggle [5]. It covers historical sales data for 45 Walmart stores in different regions of United States from 2010-02-05 to 2012-11-01. There three files contained in the data set: “stores.csv”, “features.csv” and “train.csv”.

3.2 Data Sets Utilized stores.csv This file describes three important features of 45 stores. Each store (1-45) is defined with a store type (A-C) and a store size (numeric). features.csv This file describes additional information about each store for the given weeks. Each record contains 5 types of promotion markdowns at the given week. It also involves the average temperature, fuel price,CPI and unemployment rate for its corresponding geographic region in this week. As well, each record indicates whether the week is a special holiday week. train.csv This is the main historical sales data for training. Each records represents weekly sales for a certain department in the given store at given week. It also maintains the “isHoliday” field specifying whether the week is a holiday week. Based on preliminary analysis, we decided to use all the tables provided. Although we use the official train data as our dataset, our business goals are not restricted to sales prediction in this project. Then the next step focuses on data cleaning, merging and pre-processing.

3.3 Data Preparation: Merging, Cleaning, and Transforming the Data To put together all the three .csv files (train.csv, features.csv and stores.csv), the PK – FK relations were identified. Before denormalizing the data, all the ‘NA’ values in the table features.csv was changed to NULL. The ‘TRUE’ and ‘FALSE’ values for the ISHOLIDAY attribute were changed to binary values 1 and 0 repsectively. The following statements generated the denormalized Walmart_Train dataset, which was used for the remainder of the project. Combining Stores and Features table as Stores_Features: CREATE TABLE Store_Features AS SELECT * FROM Stores JOIN Features USING(Store);

Combining Stores_Features and Train table as Walmart_Train: CREATE TABLE Walmart_Train AS SELECT *

5|Page

94-832: Business Intelligence & Data Mining SAS

Report FROM

Team 7 Train JOIN Store_Features USING(Store, Week, IsHoliday);

For analytical purposes and visualization, the variables TEMPERATURE, FUEL_PRICE and WEEKLY_SALES were categorized into the following classes: (Refer appendix A for SQL queries) Condition TEMPERATURE < 32 TEMPERATURE >= 32 AND TEMPERATURE < 64 TEMPERATURE >= 64 AND TEMPERATURE < 79 TEMPERATURE >= 79 AND TEMPERATURE < 95 TEMPERATURE > 95

TEMP_CLASS ‘Freezing’ ‘Cold’ ‘Comfortable’ ‘Hot’ ‘Extremely Hot’

3-1: TEMP_CLASS

Condition FUEL_PRICE < 2.75 FUEL_PRICE >= 2.75 AND FUEL_PRICE < 3.12 FUEL_PRICE > 3.12

FUEL_CLASS ‘Low’ ‘Medium’ ‘High’

3-2: FUEL_CLASS

Condition WEEKLY_SALES 0 AND WEEKLY_SALES 10000 AND WEEKLY_SALES 25000 AND WEEKLY_SALES 100000

SALES_CLASS ‘Negative’ ‘Low’ ‘Medium’ ‘High’ ‘Very High’

3-3: SALES_CLASS

To visualize the data from a better perspective, further categorical attributes were added, including the HOLIDAY (‘Super Bowl’, ‘Labor Day’, ‘Thanksgiving’, ‘Christmas’). The two weeks before each holiday was set as (‘Before Super Bowl’, ‘Before Labor Day’, ‘Before Thanksgiving’, ‘Before Christmas’). Furthermore, unemployment and CPI were categorized into ‘Low’, ‘Medium’ and ‘High’. Store size was categorized to ‘Small’, ‘Medium’ and ‘Large’. (Refer appendix B for SQL Queries)

6|Page

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

4 Exploratory Analysis 4.1 Top 10 Stores by Sales

4-1: Top 10 Stores

The above chart shows the top 10 stores in terms of sales revenue and their percentage contribution to the total sales generated between them. Store 20 was the highest contributor with a total of 301 Million. The stores are mix of 7 large sized and 3 medium sized stores. Together, these 10 stores accounted for 39% of the revenue generated by the given 45 stores.

7|Page

94-832: Business Intelligence & Data Mining SAS

Report 4.2

Team 7

Top 5 Departments across the stores

4-2: Top 5 Departments

The above figure shows the top 5 departments across the 3 store types namely A,B & C. Interestingly, Department number 72 showed a significant hike in sales across store type A and B. Store type A fetched the most sales whereas Store type C fetched the least sales.

4-3: Top 10 Stores 4-4: Top 5 Departments

8|Page

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

The above figure shows the pre-holiday sales registered by the 3 store types. The sales were the highest before christmas followed by pre thanksgiving, pre labor day and pre super bowl sales. Store type A registered the highest sales followed by store type B and store type C.

4.3 Sales vs CPI & Sales vs Fuel price

4-5: Sales vs CPI & Sales vs Fuel Price

No strong relationships were clear from visualizing the weekly sales data with respect to the CPI and the fuel price during that week.

9|Page

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

5 Unsupervised Learning: Clustering

5-1: Clustering Nodes

5.1 Initial Results The clustering model utilizes all of the attributes within the data sans weekly sales and all of the markdown variables and uses the store ID as the segment cluster variable role. We set the cluster variable role to ‘segment’ and indicate that the model should standardize the data. Utilizing the centroid clustering method yields three unique clusters.

5-2: Clustering

Each of these clusters represents a group of stores that share similar values of each distinct attribute that has been clustered around the store ID. Based on the initial results table, we can see that each cluster has different averages across each attribute.

10 | P a g e

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

Comparing these averages via the input means plot allows us to draw conclusions about each individual segment (see sections 5.2-5.4)

5-3: Clusters

5.2 Insight from Cluster A Cluster A represents the largest amount of stores within this data set. Based on the means input plot (above), this cluster of stores has experienced lower than average fuel prices and unemployment rates. This is further complemented by a higher than average consumer price index rating. We can also observe that stores in this cluster are typically larger than the other stores. Overall, we might be able to infer that Cluster A is filled with stores in richer, suburban regions, thus explaining the high CPI and low unemployment rate and gas prices. However, because we do not have geographic information within this dataset we are unable to make further conclusions. In terms of what variables are important within this cluster, the chart below provides a visual of the importance of each attribute:

5-4: Cluster A - Variable Importance

11 | P a g e

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

Per the Variable Importance graph, CPI, unemployment rate, and store size are the top three important variables when considering this cluster of stores.

5.3 Insight from Cluster B Cluster B, per the input means plot, has higher a than average unemployment rates and temperature, but a lower than average fuel price, store size, and consumer price index. Again, because we do not have geographic data pertaining to each of the stores we are unable to make any further assumptions about the location of each of these stores within Cluster B. The variable importance graph (below) shows similar results as the graph from Cluster A.

5-5: Cluster B - Variable Importance

Again, the consumer price index, unemployment rate, and store size are all important variables within this cluster of stores. It appears that the same variables are important across Clusters A and B, but the averages of each of the attributes differs slightly relative to the overall attribute averages.

5.4 Insight from Cluster C Cluster C is completely different from Clusters A and B in that this is the only segment that addresses the importance of holidays. Overall, Cluster C has lower than average fuel prices and and temperature, but all other attributes are on par with the overall attribute average. Looking at the variable importance graph below confirms that this cluster’s important variables are in stark contrast to Cluster and A and B.

12 | P a g e

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

5-6: Cluster C - Variable Importance

This cluster of stores are grouped together because holidays have a large impact, with the variable ‘Holiday?’ dwarfing all other attribute values.

5.5 Overall Insight Looking at all of the clusters relative to the overall population averages reveals that clustering prior to forecasting can help eliminate errors that are often caused by seasonal changes or population disparity. The impact of store size remains constant throughout each different cluster, but moving to attributes beyond that reveal that the correlation between an attribute and weekly sales differs across each of the three unique clusters.

5-7: Correlation with Weekly Sales

To sum, an initial clustering analysis reveals that different groups of stores have different relationships with weekly sales depending on which cluster it belongs to. Holidays only appear to have an impact within Cluster C, while the other attributes of interest are more relevant to Clusters B and C. We now move onto our second method of unsupervised learning in an effort to test of the relationships seen above are statistically significant. 13 | P a g e

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

6 Supervised Learning: Regression 6.1 Linear Regression with Full Data

6-1: Regression

In this model, we maintains all the variables (CPI, DEPT, FUEL_PRICE, ISHOLIDAY, MARKDOWN1-5, STORE_SIZE, STORE_TYPE, TEMPERATURE, UNEMPLOYMENT), also we have WEEK as Time ID, STORE as ID and WEEKLY_SALES as target. We firstly use Data Partition node to split the data into 70% as training set and 30% as validation set. And then we set the selection model as stepwise, forward and backward separately, with validation error as the selection criterion. Effect DEPT STORE_SIZE

DF Sum of Squares F Value 80 2.46E+13 1456.02 1 2.15E+12 10162.5 Table 6-1: Regression Error

Pr > F = 64 AND >= 79 AND > 95 THEN

'Freezing' TEMPERATURE < 64 THEN 'Cold' TEMPERATURE < 79 THEN 'Comfortable' TEMPERATURE < 95 THEN 'Hot' 'Extremely Hot'

-- http://www.gasbuddy.com/gb_gastemperaturemap.aspx ALTER TABLE WALMART_TRAIN ADD FUEL_CLASS VARCHAR2(15); UPDATE WALMART_TRAIN SET FUEL_CLASS = (CASE WHEN WHEN WHEN ELSE END);

FUEL_PRICE < 2.75 THEN 'Low' FUEL_PRICE >= 2.75 AND FUEL_PRICE < 3.12 THEN 'Medium' FUEL_PRICE > 3.12 THEN 'High' NULL

-- http://www.statisticbrain.com/wal-mart-company-statistics/ ALTER TABLE WALMART_TRAIN ADD SALES_CLASS VARCHAR2(15); UPDATE WALMART_TRAIN SET SALES_CLASS = (CASE WHEN WHEN WHEN WHEN WHEN ELSE END);

WEEKLY_SALES WEEKLY_SALES WEEKLY_SALES WEEKLY_SALES WEEKLY_SALES NULL

0 AND WEEKLY_SALES 10000 AND WEEKLY_SALES 25000 AND WEEKLY_SALES 100000 THEN 'Very High'

32 | P a g e

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

Appendix B CREATE TABLE WALMART_TRAIN_HOLIDAY AS SELECT * FROM WALMART_TRAIN; ALTER TABLE WALMART_TRAIN_HOLIDAY ADD HOLIDAY VARCHAR2(25);

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Super Bowl' WHERE WEEK IN (TO_DATE('12-Feb-10', 'DD-Mon-RR'), TO_DATE('11-Feb-11', 'DD-Mon-RR'), TO_DATE('10Feb-12', 'DD-Mon-RR'), TO_DATE('08-Feb-13', 'DD-Mon-RR'));

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Labor Day' WHERE WEEK IN (TO_DATE('10-Sep-10', 'DD-Mon-RR'), TO_DATE('09-Sep-11', 'DD-Mon-RR'), TO_DATE('07Sep-12', 'DD-Mon-RR'), TO_DATE('06-Sep-13', 'DD-Mon-RR'));

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Thanksgiving' WHERE WEEK IN (TO_DATE('26-Nov-10', 'DD-Mon-RR'), TO_DATE('25-Nov-11', 'DD-Mon-RR'), TO_DATE('23Nov-12', 'DD-Mon-RR'), TO_DATE('29-Nov-13', 'DD-Mon-RR'));

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Christmas' WHERE WEEK IN (TO_DATE('31-Dec-10', 'DD-Mon-RR'), TO_DATE('30-Dec-11', 'DD-Mon-RR'), TO_DATE('28Dec-12', 'DD-Mon-RR'), TO_DATE('27-Dec-13', 'DD-Mon-RR'));

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Before Super Bowl' WHERE (WEEK BETWEEN (TO_DATE('12-Feb-10', 'DD-Mon-RR') - 14) AND TO_DATE('12-Feb-10', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('11-Feb-11', 'DD-Mon-RR') - 14) AND TO_DATE('11-Feb-11', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('10-Feb-12', 'DD-Mon-RR') - 14) AND TO_DATE('10-Feb-12', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('08-Feb-13', 'DD-Mon-RR') - 14) AND TO_DATE('08-Feb-13', 'DD-Mon-RR'));

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Before Labor Day' WHERE (WEEK BETWEEN (TO_DATE('10-Sep-10', 'DD-Mon-RR') - 14) AND

TO_DATE('10-Sep-10', 'DD-Mon-RR'))

33 | P a g e

94-832: Business Intelligence & Data Mining SAS

Report OR (WEEK BETWEEN (TO_DATE('09-Sep-11', 'DD-Mon-RR') - 14) AND OR (WEEK BETWEEN (TO_DATE('07-Sep-12', 'DD-Mon-RR') - 14) AND OR (WEEK BETWEEN (TO_DATE('06-Sep-13', 'DD-Mon-RR') - 14) AND

Team 7 TO_DATE('09-Sep-11', 'DD-Mon-RR')) TO_DATE('07-Sep-12', 'DD-Mon-RR')) TO_DATE('06-Sep-13', 'DD-Mon-RR'));

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Before Thanksgiving' WHERE (WEEK BETWEEN (TO_DATE('26-Nov-10', 'DD-Mon-RR') - 14) AND TO_DATE('26-Nov-10', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('25-Nov-11', 'DD-Mon-RR') - 14) AND TO_DATE('25-Nov-11', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('23-Nov-12', 'DD-Mon-RR') - 14) AND TO_DATE('23-Nov-12', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('29-Nov-13', 'DD-Mon-RR') - 14) AND TO_DATE('29-Nov-13', 'DD-Mon-RR'));

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Before Christmas' WHERE (WEEK BETWEEN (TO_DATE('31-Dec-10', 'DD-Mon-RR') - 14) AND TO_DATE('31-Dec-10', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('30-Dec-11', 'DD-Mon-RR') - 14) AND TO_DATE('30-Dec-11', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('28-Dec-12', 'DD-Mon-RR') - 14) AND TO_DATE('28-Dec-12', 'DD-Mon-RR')) OR (WEEK BETWEEN (TO_DATE('27-Dec-13', 'DD-Mon-RR') - 14) AND TO_DATE('27-Dec-13', 'DD-MonRR'));

UPDATE WALMART_TRAIN_HOLIDAY SET HOLIDAY ='Not Holiday' WHERE HOLIDAY IS NULL; ALTER TABLE WALMART_TRAIN_HOLIDAY ADD STORE_SIZE_CLASS VARCHAR2(10); UPDATE WALMART_TRAIN_HOLIDAY SET STORE_SIZE_CLASS = CASE WHEN STORE_SIZE < 100000 THEN 'Small' WHEN STORE_SIZE >= 100000 AND STORE_SIZE < 200000 THEN 'Medium' WHEN STORE_SIZE >= 200000 THEN 'Large' END; ALTER TABLE WALMART_TRAIN_HOLIDAY ADD UNEMPLOYMENT_CLASS VARCHAR2(10); UPDATE WALMART_TRAIN_HOLIDAY SET UNEMPLOYMENT_CLASS = CASE WHEN UNEMPLOYMENT < 7 THEN 'Low' WHEN UNEMPLOYMENT >= 7 AND UNEMPLOYMENT < 11 THEN 'Medium' WHEN UNEMPLOYMENT >= 11 THEN 'High' END; ALTER TABLE WALMART_TRAIN_HOLIDAY ADD CPI_CLASS VARCHAR2(10); UPDATE WALMART_TRAIN_HOLIDAY SET CPI_CLASS = CASE WHEN CPI < 159 THEN 'Low' WHEN CPI >= 159 AND UNEMPLOYMENT < 192 THEN 'Medium' WHEN CPI >= 192 THEN 'High' END;

34 | P a g e

94-832: Business Intelligence & Data Mining SAS

Report

Team 7

ALTER TABLE WALMART_TRAIN_HOLIDAY ADD DEPT_CLASS VARCHAR2(12); UPDATE WALMART_TRAIN_HOLIDAY OH SET DEPT_CLASS = 'Low Sales' WHERE DEPT IN ( SELECT DEPT FROM ( SELECT DEPT, MEDIAN(WEEKLY_SALES) MD FROM WALMART_TRAIN_HOLIDAY GROUP BY DEPT) WHERE MD < 20000);

UPDATE WALMART_TRAIN_HOLIDAY OH SET DEPT_CLASS = 'Medium Sales' WHERE DEPT IN ( SELECT DEPT FROM ( SELECT DEPT, MEDIAN(WEEKLY_SALES) MD FROM WALMART_TRAIN_HOLIDAY GROUP BY DEPT) WHERE MD > = 20000 AND MD < 40000);

UPDATE WALMART_TRAIN_HOLIDAY OH SET DEPT_CLASS = 'High Sales' WHERE DEPT IN ( SELECT DEPT FROM ( SELECT DEPT, MEDIAN(WEEKLY_SALES) MD FROM WALMART_TRAIN_HOLIDAY GROUP BY DEPT) WHERE MD > = 40000);

35 | P a g e

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF