This year, I will be teaching a Math Modeling course to a group of motivated high school students. One topic we will discuss is providing good search results from an online query. Here's the problem.

Imagine you run a large online retailer. A potential customer searches for "toaster oven". You can show them several different offers from different vendors. Vendor 1 has rating 4.3/5.0, price of \$20, and delivery time of 1 week. Vendor 2 has rating 4.7/5.0, price of \$25, and a delivery time of 5 days. Vendor 3 has rating 3.9/5.0, price of \$18, and delivery time of 2 weeks. In what order should you show the results to the customer on your website?

After discussing this specific problem, I will ask students to come up with a formula with variables RATING, PRICE, and DELIVERY TIME that provides reliable results in a variety of situations.

One thing I'm lacking is a data set that students can work with. Do you know where to find a data set of several hundred retail items along with a rating, price, and delivery time for each?


  • 3
    $\begingroup$ I would expect the delivery times to vary depending on the buyer's location (for example, whether or not it's in the same state as the vendor). That is, unless you define "delivery time" as the time it takes the vendor to send it for shipping, not as the time it takes the buyer to receive it. $\endgroup$ Jul 20 at 5:01
  • 1
    $\begingroup$ Looking at number of reviews is really important: I'd much rather have a product with a 4.5/5 rating and thousands of reviews than a 5/5 rating and one review. This alone can make for an interesting statistics lesson. $\endgroup$
    – TomKern
    Aug 11 at 4:16

This dataset seems pretty darn close to what you want if you swap in the number of items in stock for delivery time and trim it down a little.

It's a dataset of toy products on Amazon that includes close to 10,000 data points. I'd specifically restrict it to five of the columns: product_name, price, number_available_in_stock, number_of_reviews (could be an interesting additional variable to have them consider - i.e. a 4.7 average rating with 20 reviews is probably worse than a 4.5 average rating with 200 reviews), and average_review_rating.

If you're very in favor of the delivery time variable, you could probably just add in some randomly generated delivery times when you do the rest of the data set formatting? But as others have pointed out, delivery time is highly dependent on where the user is, so number in stock might be a reasonable substitute that gets at the same idea (and is already in the data set).

For future reference, kaggle is a pretty good site to check for free, large data sets.


You may have better luck finding data in a different area.

Many forms of GEO analytics have rich sets of data for things like: income, political, home prices, etc that may be more practical. The very concept of average, median, whatever can be a challenge by State, County, population vice geographic area. If you compute averages by County, what does that say about the State?

Even using recent election data can be an interesting challenge figuring how to break it down and present it.

Another potentially interesting data source and analysis is historical Stock Trades incorporating Time, Volume, and Price. It can be quite interesting to see sudden high Volume jumps preceding sudden price changes. It makes you go Hmmmm.

  • $\begingroup$ I could definitely adapt the problem to fit a variety of contexts. The main goal is for students to take a few characteristics of an item and create a formula that fits with our idea of usefulness. Do you have a specific data set that you're looking at? That's the part that I really need. $\endgroup$ Jul 21 at 3:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.