I have been asked what the rules should be for keeper leagues. I have heard others ask how do you do it. Simply, it is no different than the parameters you set in the various public leagues (Yahoo!, CBS Sports, ESPN, etc).
The key difference is establishing the rules around the number of keepers each team will be allowed to have at the draft. But before deciding that, the league must come to terms with another factor - do you want to draft from a player pool that will never have every single player available to every team ever again?
Very simply, Brewers 3B Ryan Braun is never going to be available at the draft. Nor will any other player who unexpectedly breaksout during the season. With the fantasy baseball industry built around every player being available at every draft, are you prepared to be on the outside of the general fantasy information-providing public?
If so, then you will need to decide how many keepers each team can have and for how long those kept players can be kept. In snake draft leagues, should each team be able to keep any player at the round they were taken and forfeit that round's selection in every subsequent draft that the player is retained? If so, for how long can the player be protected?
In an auction draft, the questions are similar except the players are retained at his auction salary. Again, how long will those players be kept at those salaries?
My suggestion would be to place some sort of time limit on keeping players at a certain draft value. The simplest rule would be to allow those players to be kept for "x" number of seasons. Three is a safe place to begin. "Then shalt thou count to three, no more, no less. Three shall be the number thou shalt count, and the number of the counting shall be three. Four shalt thou not count, neither count thou two, excepting that thou then proceed to three. Five is right out. Once the number three, being the third number, be reached, then lobbest thou thy Holy Hand Grenade of Antioch towards thy foe, who, being naughty in my sight, shall snuff it."
Once that is settled, you need to decide whether that can be extended by increasing the cost to the team willing to protect the player longer. This would be the option of extending the player's contract status beyond the five er...three seasons. Typically, this would involve adding $5 for every year beyond the stated limit. A long-term contract in a snake draft league would entail increasing the draft pick lost.
The consequences of keeper leagues are two fold. The first has already been touched upon. There will be players who rarely see the draft table because they were in-season call-ups and their salary makes them extremely under-priced players like Ryan Braun.
A slightly more relevant example is Ryan Howard. I had him as a minor league draft pick prior to the 2005 season. He was recalled with a $5 salary in 2005 and won the ROY. The next season he was $5 and won the MVP. I then signed him for two more seasons for an additional $10 and have him through the 2009 season. Are you ready for this - the superstar player who isn't available to be drafted until his sixth season in the league?
The second related issue will be draft inflation. As lucky as I feel having a 50-HR hitter at 20-HR hitter prices, every other team in the league also has players like this. As a result, draft inflation is sky-high for the remaining players. Are you prepared to pay $40 for Justin Morneau when every piece of public fantasy information has him tagged as a $22 player?
If you accept these two consequences, then I highly recommend keeper league formats. Personally, I couldn't think of playing any other way.