Christmas Eve vs New Year’s Eve: Last Minute Price Inflation?

Christmas Eve vs New Year’s Eve: Last Minute Price Inflation?

Check out Part 1 comparing Black Friday and Cyber Monday and Part 2 comparing Black Friday, Cyber Monday, and Green Monday

Battle of the Eves

Welcome to Part 3 of our ongoing series! We’re tracing the prices of popular products across multiple retailers throughout the winter season. Starting from Black Friday and continuing through to January, we are keeping a close eye on price movements and the actual effects of discounts during specific days or weekends.

The New Year is upon us and I hope that this holiday season was full of laughter, love, family, and, of course, gifts. Much as we may not want to admit it, buying presents is a large part of how we celebrate our holidays in December. And while we may all be mourning the hit our bank accounts took, hopefully you did not fall prey to any unexpected price hikes.

The reason that I am comparing the Eves rather than Christmas Day or New Year’s Day is because I was curious to see if stores would take advantage of last minute panic shoppers or if the discounts would hold. Christmas Day is also incredibly dead and I wanted to keep the continuity of Christmas Eve with New Year’s Eve.

Let’s look at the damage and see which retailers might have pulled a bait and switch.

Tech and Trivia

I laid out our methodology, parameters, and intervals in the first post, but I am going to continue to update the Tech and Trivia section so that you can follow along with the obstacles and solutions that have cropped up in the course of this project.

While conducting this price experiment, there were times when the contents that we wanted to scrape were hidden in a piece of JavaScript code. This included situations where the variations and prices of a particular product were stored in a JavaScript array that was mixed within the HTML. For example:

<div class="product_view">
    <script type="text/javascript">
        var variations = [
            ["16GB", "$300.00"],
            ["32GB", "$400.00"],
            ["64GB", "$500.00"]
        ];
        ...
    </script>
</div>

We used Scrapy selectors to extract the JS code from inside the <script> element:

>>> script = response.xpath(
                 "normalize-space(//div[@class='product_view']/script/text())"
             ).extract_first()
>>> script
u'var variations = [ ["16GB", "$300.00"], ["32GB", "$400.00"], ["64GB", "$500.00"] ];'

Once we got the code, we used js2xml, a library that converts JS code into XML data. Then we built a selector for the XML contents:

>>> xml_data = js2xml.parse(script)
>>> sel = scrapy.Selector(_root=xml_data)
>>> sel
<Selector xpath=None data=u'<program><var name="variations"><array><'>

We were then able to parse the contents using our usual selectors:

>>> sel.xpath("//var[@name='variations']//array/string[2]/text()").extract()
[u'$300.00', u'$400.00', u'$500.00']

So, if you ever have to deal with JavaScript code embedded in HTML, give js2xml a try.

The Results

The volatility of prices never fails to amaze me. In the span of a single week, a product can rise or drop $100. Even when prices hold consistently, where you shop determines if you are saving or spending at any given time.

I’m still congratulating myself on buying a FitBit Charge HR on Black Friday. Prices haven’t dipped back that low in over a month.

Tablets

Tablets

This was one of the most consistent categories. There weren’t any major price fluctuations except for the Samsung Galaxy Tab S2 at Best Buy (really hoping you didn’t buy that on New Year’s Eve). Amazon prices didn’t shift by more than $10 and most other prices stayed the same. One point to note is that it seems that Walmart has stopped carrying the Samsung Galaxy Tab S2 after Black Friday. Time will tell if it’s because they sold too many or too few.

Wearables

Wearables

The two largest price discrepancies for Wearables are the Apple Watch and the Jawbone UP3. New Year’s Eve (and current as of January 6, 2016) is the best price that Target has offered for the Apple Watch. Even during Black Friday, prices were $399 with a $100 gift card thrown in. So hopefully you were not one of those shoppers looking for a flashy last minute gift on Christmas Eve because you might be kicking yourself right now.

Home Theater

Home-Theater

Christmas Eve was the clear winner for the Home Theater category. Prices were either lower than or remained the same as New Year’s Eve. And a hearty congratulations to those Christmas procrastinators that scored a great price on the Apple TV at Target.

Video Game Consoles

Video-Game-Consoles

Once again, Christmas Eve came out on top. The sale on the XBox One Bundle has finally come to an end, but this was an expected development. Walmart either sold out or ceased to offer the PS4 Bundle, which is why it is not included on this graph.

Phones

Phones

Phones was one of the least impacted categories with only the iPhone 6S at Best Buy showing a significant price difference.

Toys

Toys

I’m going to go ahead and call it for New Year’s Eve. On Christmas Eve, the Star Wars BB-8 Droid R/C at Amazon had the highest price seen since we started tracking in late November. The LeapFrog Epic Tablet at Best Buy and the Mega Bloks Minions Supervillain Jet at Walmart conveniently kept higher prices during Christmas Eve before discounts during New Year’s Eve.

Wrap Up

Our last holiday prices post comes at the end of January so remember to follow us on Twitter, Instagram, and Facebook or subscribe to our RSS feed. This is the grand finale where we’ll help you make more informed shopping decisions next year!

Be the first to know. Gain insights. Make better decisions.

Use web data to do all this and more. We’ve been crawling the web since 2010 and can provide you with web data as a service.

Tell me more

Leave a Reply

Your email address will not be published. Required fields are marked *