Today we launched some really cool new shipping features on Detailed Image. They were a cumulation of about a month long shipping project that we took on. It was really the one big thing that we wanted to make sure that we got done before the holidays. Shipping options are just so important to customers that you’d have to be crazy not to be regularly reviewing and improving how you ship.
Like most online retailers, we didn’t have a good understanding of how accurate our shipping quoting system was. We use the FedEx API, but there are scenarios where surcharges are applied that make quoting a little more complex than it should be. Plus those quotes are working under the assumption that the weights in our database are accurate, and that the box size system selects the correct box for the order.
Unlike most online retailers, we decided to do something about it. FedEx posts each shipment individually to our AMEX card with the associated tracking number for the charge. We also store all tracking numbers in our database when the shipment goes out. By pairing the two we could compare what we charged the customer vs what FedEx charged us.
In about 3 hours I was able to gather and analyze about 3,000 recent transactions with matching tracking numbers using a combination of Excel (err Open Office Calc), MySQL, and PHP. The majority of our orders are shipped via FedEx Ground, so that was the most important segment to look at. Because we were looking to determine our quoting accuracy (and not necessarily our raw profitability) I factored out any orders that had discounted/free shipping applied from a coupon or other shipping promo.
My hypothesis going in was that we were losing a little money each shipment. I was wrong. We’re actually doing a really good job. When you factor in our 5% AMEX savings, we’re netting $1.13 per shipment. As far as accuracy goes, we’re pretty good too with an average standard deviation of just $0.64 per order. This is illustrated best by looking at the graph below of shipping costs (the y-axis), sorted by increasing shipping quote (the x-axis). Notice how closely our real cost in blue closely hugs the shipping cost that we charged the customer:
FedEx Express shipments yielded much the same result.
The next step was to figure out how much our packing materials were costing us. I added up all of the materials we’ve bought this year – packing peanuts, boxes, and tape – and then divided that over the number of orders we’ve had during the same period. This is only an estimate, since we had some unused materials at the beginning of the year and have some unused materials now. Nonetheless it’s a good estimate. Turns out each order costs us $1.09 in materials.
Sweet – we’re essentially breaking even! That’s great news. It allows us to move forward with confidence that we’re accurate and that we’re not losing money on a per-order basis. Shipping discounts are more a function of marketing than they are of our shipping processes. To me, whether we give 15% off on a coupon or free shipping doesn’t really matter. It all comes off the same bottom line.
The final part of this study was to compare our shipping costs to our 3 biggest competitors. We do get a decent amount of complaints about our shipping prices being too high. I just assumed our competitors undercut our shipping costs because they are large than us. Again, I was wrong:
Given the results of the study, we were able to move ahead with some of the big improvements that we had planned. Had this not turned out so well, our focus would have been on getting this core stuff right.
As we have it though, we’re doing a pretty good job with the core stuff so we’re able to move on to some of the more advanced stuff. This is where the fun starts.
First things first, we listened to our Alaska and Hawaii customers and switched the shipping option from FedEx to USPS. They get their packages faster and save about 20% on every order. It was a no brainer.
Second, we fixed a problem that causes a lot of online retailers trouble: aerosol containers. Due to safety precautions, aerosol containers can’t be shipped via air, regardless of the service. Previously, we dealt with this on a case by case basis since most of our orders are Ground shipments. However, the number of instances where people were ordering aerosols via Express were increasing. This not only is a pain for us (we have to contact the customer, place the order aside, wait for a response about substituting an item or taking a refund/credit), but customers are generally peeved because their expedited order gets delayed.
Simple solution – I added an aerosol field to the database and if you check out with an aerosol in your cart you see the following:
The next features are the really good stuff.
We added an AJAX “quick quote” feature that allows users to get a shipping quote for any order without logging in or giving us any of their personal information. This is something customers regularly complained about. Previously they had to sign up for an account. And while there are some benefits to us by having them do that (more newsletter subscribers), at the end of the day customers want a simple way to get a quote (I know I do when I shop), so it’s best to give them a feature to improve their shopping experience.
We also added FedEx Home as a shipping option. It costs the same as FedEx Ground, but the main differences are that it delivers Tuesday – Saturday and requires a signature. Customers can now choose the option that works best for them.
And finally, the really cool one. Based upon the time of day, the service selected, and the shipping destination, we estimate the day the order will leave our warehouse as well as the day that it will be delivered. The system factors in all shipping holidays through 2013 (I made a note to look up the holidays for 2014+ on 1/1/2013…). On other sites, just estimating the ship date has made a noticeable difference in conversion rate.
This one is huge. Since detailing is primarily a weekend hobby, many customers order later in the week in anticipation that they’ll receive their order before the weekend. Now they’ll know for sure. Greg won’t have to deal with customers who ordered Thursday night and are two days away but don’t receive their order until Monday. And for every one of those who complains, I bet there are a lot more who don’t complain but wish they had a better idea of when their products would be arriving.
We’re also doing a few non-website related things to improve our shipping:
- We (finally) talked FedEx into sending us a backup label printer. Sometimes ours can be spotty.
- We’re working on “emergency” scenarios for when FedEx Ship Manager software is down or won’t interface correctly (this almost happened Monday…thankfully they issued a patch and we were OK).
- We’re negotiating a later pick up. This will allow us to bump up our ship time on the new quoting system and advertise on the site “we ship all orders placed after 3:00 PM on the same day” (now it’s 9 AM). This also means that we’ll be keeping the warehouse open longer. Instead of just 9-3 I think we’ll be at a more normal 8-5 pretty soon. For a little while it’ll suck, but we’re working on getting the employees in place so that we don’t need to be there all the time. There’s just a lot more warehouse work now than there was a year ago. It can’t all be done in 30 hours any more.
- We’re negotiating rates with UPS. I doubt we’ll switch, but we’re starting to hit the type of volume where it’s worth negotiating between FedEx and UPS on a regular basis.
As a whole, this was a very rewarding project. There’s no doubt that this stuff matters to our customers. The data analysis was important for us, but the new features will hopefully upgrade our customers shopping experience and continue to show that we’re constantly pushing the envelope with features that benefit them.