Scraping Used Car Inventory
The rise of e-commerce has left in its trails an abundance of data that, if collected and harnessed properly, can provide meaningful insight to business analysts, economists, and any student of trade. For my web-scraping project at The Academy, I decided to collect data from a popular and rapidly growing online retailer of used cars. Fields that I scraped from this retailer’s website included VIN numbers, stock keeping units (SKU), vehicle price, mileage, make/model, year, efficiency (as measured by both city miles/gallon and highway miles/gallon), engine type, fuel type, transmission type, horsepower, interior color and exterior color, number of passengers, powertrain and base warranty… in short, I was able to re-construct the company’s inventory with a high degree of precision and detail.
The scrape I developed could have many useful applications. A financial analyst might run it periodically to ascertain metrics of interest such as rate of sale, days in inventory, average selling price, markdown cadence, and the quality/skew of new vehicles that are acquired into inventory. Competitors might use it to understand the types of vehicles and pricing levels in the market; they may also be able to join the scrape data with other publicly available data sets to understand vehicle ownership patterns, accident incidence, lease records, etc. With access to data as complete as this, and with a truly unique identifier to each observation (i.e. VIN), the possibilities for analysis are nearly endless.
Scraping this site was not, however, without its challenges. First, I developed a Scrapy shell to generate a list of URL’s representing links to each of the company’s vehicles inventoried for sale. Once inside those individual pages, though, I encountered numerous scripts (Java, Ajax, etc.) that made parsing the data extremely difficult. I then wrote a second script in Selenium to scrape each individual car’s page and extract the details for tabulation. This process took much tweaking, but achieved the desired result. After scraping several hundred sites, the site identified my crawl; requiring me to anonymize my proxies to proceed. In short, the stumbling blocks I encountered proved to be an incredible learning experience for me.
Some interesting observations and take-aways from the data follow below.
First, a quick EDA; the retailer I scraped focuses on cars 5 years or younger; mileage tending in the 35k range, and at a pricing sweet-spot of about $16k:
The inventory of this retailer skewed heavily towards Nissan brand cars. This made sense to me; according to news sources, Nissan has been one of the most aggressive manufacturers in the US; spending heavily on incentives over the years in an attempt to gain share of market. In fact, according to a Financial Times article dated January 31, 2019, Nissan's operating margin of 3.6% is the lowest of any large manufacturer. http://(https://www.ft.com/content/763c421a-2568-11e9-8ce6-5db4543da632)
Of interest to me were which variables most affected price. I ran a correlation matrix to observe relationships with various data features; the heatmap below indicates that vehicle price tended to be positively correlated with its horsepower; and negatively correlated with efficiency (Highway and City Miles per Gallon).
This could be visualized further through a scatterplot and regression analysis of vehicle horsepower & price. Additionally, the engine type of a vehicle and its tire size, in that they are both partially related to horsepower, seem to reflect a similar relationship to price.
Though intuitive, I found the relationships curious and worthy of further exploration. Are consumers really willing to pay more for a vehicle that is less fuel efficient? Is the absolute power of a vehicle still the key driver of its value? The answer, in my opinion, is yes; but the relationship is in fact changing.
A more detailed study of the relationship between efficiency and price in this inventory sample indicates that while a negative correlation continues to exist for traditionally fueled vehicles (i.e. gas and diesel), newer hybrid and lithium electric models are re-defining this relationship. Notably, electric cars exhibit a positive correlation between their price and efficiency:
Currently, there are not many vehicles in this retailer's inventory that use alternative energy; and the majority of those that do, appear to be trucks. But as these are relatively new technologies, I would expect more and more of these cars to enter the mix, and as I run this scrape in future periods, I would expect correlations to shift.
A final point of interest to me has to do with the observed relationship between exterior price and color. Though the most common color in inventory happened to be black, the highest average prices were for cars labeled "graphite", which is a dark shade of gray. But this is where nomenclature can be very important -- labeling the same graphite car as either "charcoal" or simply "grey" would seem to result in a much lower price!