Thursday, July 29, 2010

Bidding Strategy - The Mechanics

So I've been lucky enough to receive all the classes I want in all the sections I want and it turns out that LBS doesn't use a "bidding" system per say (classes awarded based on listed "preference" - an ordinal system).

A few people were asking about how my bidding formula works and while it's hardly perfect, I figured I'd put up some of the details just for laughs (or a least as building blocks for someone who plans on taking this model to the next level). It uses only public information available to all students at the time of bidding.

In this model, each course bid is determined by three factors. The first is the inital base and most people will choose one of two initial bases: Last year's minimum bid or last year's median bid (depending on how competitive the class is).

After determining the appropriate bases for your five courses, the remaining points (“the Remainder”) can be divided amongst your courses to make your bids more competitive. But like all dilemmas in bidding, you want to assign just enough points so that you get the courses you want, but not so much that you jeopardize your chances of getting the other courses. So how do you do it?

I propose that the two major factors you should look at are what I call:
  1. The Ballot factor (anticipated) (x% of the Remainder, or “X-Factor”)
  2. The Historic factor (backward-looking) ([100% - x%] of the Remainder, or the “Y-Factor”)

Where x% is the weight of value of your Ballot factor versus your Historical factor (In other words: how much you believe your Ballot Factor represents real bidding behaviour versus historical).

Ballot Factor:

This factor accounts for the number of people who say they will take the course. A few notes:

  • People don’t always bid for the courses they ballot for
  • Use the numbers as guidance to see if the course is oversubscribed
  • Calculate the expected utilization capacity = total number of students balloting for any course in that section / total class capacity
  • Square the utilization capacity to create an “intensity factor”
  • Total all the factors and express each factor as a percentage of the total
  • Multiply the percentages by the X-Factor
  • The result is each individual courses’ Ballot Factor offset


  • 2 classes have a capacity of 40 people each
  • You have 200 points allocated to Ballot Factor
  • 20 people bid on Class A (fairly certain everyone who bids will get in… There is even a chance that a 0 point bid could win) has utilization 50% and Ballot “intensity factor” of .25
  • Class B has 60 bidders has utilization 150% (red flag: guarantee that not everyone will get in) and it’s “intensity factor” is 2.25.
  • Class A’s weight is .25/(.25+2.25) = 10%
  • Class B’s weight is 2.25 /(.25+2.25) = 90%
  • Class A’s Ballot factor offset is 10% * 200 points = 20 points (a non-zero bid with decent margin, you'll probably get in)
  • Class B’s Ballot factor offset is 90% * 200 points = 180 points (a strong bid, considering an average of 100)

This model tries to account for the fact that only very high bids will win the competative class, but you also don't want to low ball Class A incase a few stray bids appear from people who take the class last minute (obviously, the less people who originally bid on the class, the less you have to worry about dark horse bidders).

Note that it is 9x because at least 20 people are guaranteed to not get in the class. Classes that are oversubscribed will have intensity factors much higher than 1 with much heavier weights and undersubscribed much lower than 1 with much lower weights. This accounts for the premium on variation and intensity due to the number of bids in a competitive environment. Note that in this pure form, this is a best effort bidding mechanism with the scaling of points to consume all remaining points.

Historical Factor:

Another way to try to guess what the bidding will look like is to use the historical bidding as guidance for the variation of bids (were the bids tight or across a broad range?) One indicator of that is the minimum and median bid. If you make some HUGE assumptions, you can use these two points to create a normal curve with standard deviations. Since the mechanics of this are taught in stats in first quarter, I won’t bore my readers with a poor facsimile of Prof. Krass’ lecture.

Even if you don’t technically know the actual distribution of the curve, you can also use Chebyshev's inequality to position yourself within a certain percentile (also looking at the expected capacity utilization of the class based on your previous calculations). How? Here’s a hint (shown above): the bidding percentiles (% of students bidding that are not successful being admitted into the class) should be the same as the bid oversubscription capacity (again, huge assumptions) to provide the number of standard deviations. Combine this fact with the distance from the median to the minimum should provide a clue as to size of a standard deviation. Note that using this method, you may not (probably won't) have enough points to guarantee getting into the courses you want (unless like me, you probably have a surplus of points or are taking unpopular courses), but it is probably one of the best mechanical methods for balancing aggresive bidding with conserving points as well as building a view for what the bidding landscape looks like. In practical terms, at this point you can use a best effort model similar to the one shown above using the Y-Factor.

Also, I’ve deliberately left out methodology for mechanically scaling up courses based on your individual preferences (ie rating courses from 1 to 10 and incorporating that into your bidding strategy). Also, there are huge economic implications for bidding strategy considering that the involved parties do communicate with each other and affect the bidding levels of courses (ie Friends talk to each other about how they plan to bid). Signalling, game theory and strategy all come into play.

While not perfect, this model will give you some perspective into what a reasonable, very mechanically inclined bid would be. Admittedly, while I built this model, I did do some “emotional” adjustments to my bids (there was one course where I wanted to work with my friends on their team, so I wanted to be CERTAIN that I got the course). Like anything done on a computer, it’s just a tool.

Disclaimer: Like anything on this blog, this model does not guarantee any degree of success. This post is intended as a conversation / pensive reflection piece only. It is possible for you to use this model and not get ANY courses you want. For instance, it is physically impossible to get both Top Management Perspective AND Value Investing because both courses usually require exceptionally high bids. Note that by definition, there will be some people who don't get the courses they want. The more you want to be certain that you are in one course, the less certain that you will be in another (almost like the Heisenberg uncertainty principle). For better or worse, it is a zero-sum game.

Also, more importantly, I've been told that it's all a wash and at the end of the day, after the drop and add periods are over, most people get the courses they want anyways.

No comments: