Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find Best Price for a Deck of Collectible Cards?

Tags:

Or The Traveling Salesman plays Magic!

I think this is a rather interesting algorithmic challenge. Curious if anyone has any good suggestions for solving it, or if it is already solvable in a known way.

TCGPlayer.com sells collectible cards for a variety of games, including Magic the Gathering. Instead of just selling cards from their inventory they are actually a re-seller from multiple vendors (50+). Each vendor has a different inventory of cards and a different price per card. Each vendor also charges a flat rate for shipping (usually). Given all of that, how would one find the best price for a deck of cards (say 40 - 100 cards)?

Just finding the best price for each card doesn't work because if you order 10 cards from 10 different vendors then you pay shipping 10 times, but if you order all 10 from one vendor you only pay shipping once.

The other night I wrote a simple HTML Scraper (using HTML Agility Pack) that grabs all the different prices for each card, and then finds all the vendors that carry all the cards in the deck, totals the price of the cards from each vendor and sorts by price. That was really easy. The total prices ended up being near the total median price for all the cards.

I did notice that some of the individual cards ended up being much higher than the median price. That raises the question of splitting an order over multiple vendors, but only if enough savings could be made by splitting the order up to cover the additional shipping (each added vendor adds another shipping charge).

Logically it seems that the best price will probably only involve a few different vendors, but if the cards are expensive enough (and some are) then in theory ordering each card from a different vendor could still result in enough savings to justify all the extra shipping.

If you were going to tackle this how would you do it? Pure brute force figuring every possible combination of card / vendor combinations? A process that is more likely to be done in my lifetime would seem to involve a methodical series of estimates over a fixed number of iterations. I have a couple ideas, but am curious what others might suggest.

I am looking more for the algorithm than actual code. I am currently using .NET though, if that makes any difference.

Jace, the Mind Sculptor

like image 995
Jim McKeeth Avatar asked May 05 '11 22:05

Jim McKeeth


People also ask

What is the best way to find the value of sports cards?

The best way to see your cards value is to check previous sales data. As most cards are sold online these days, you can easily find the sales values from popular card sites.

Are decks of cards worth anything?

If you're wondering how much a card or deck of cards may be worth, there are several factors to consider. Some of the oldest, rarest examples can fetch hundreds or thousands of dollars, but most cards are worth less than that.

Is there an app for pricing baseball cards?

CollX (pronounced “collects”) answers the question every collector has: “What's it worth?” The app lets you scan any baseball, football, basketball, hockey, soccer, or wrestling card and instantly identify it and get the average market value.


2 Answers

I would just be greedy.

Assume that you are going to eat the shipping cost and buy from all vendors. Work out the absolute lowest price you get. Then for each vendor work out how much being able to buy some cards from them versus someone else saves you. Order the vendors by shipping - incremental savings.

Starting with the vendors who provide the least value, axe that vendor, redistribute their cards to the other vendors, and recalculate incremental savings. Wash, rinse, and repeat until your most marginal vendor is saving you money.

This should find a good solution but is not guaranteed to find the best solution. Finding the absolute best solution, though, seems likely to be NP-hard.

like image 82
btilly Avatar answered Oct 13 '22 19:10

btilly


This is isomorphic to the uncapacitated facility location problem.

  • card in the deck : client

  • vendor : possible facility location

  • vendor shipping rate : cost of opening a facility at a location

  • cost of a card with a particular vendor : "distance" from a client to a facility

Facility location is a well-studied problem in the combinatorial optimization literature.

like image 20
adlskf Avatar answered Oct 13 '22 20:10

adlskf