Improving Future Statistics

While we can’t know the future, we can make educated guesses and projections about it. RotoValue does this by displaying projected stats (both my own projections, and for baseball, projections contributed from outside sources, Steamer, Marcel, and MORPS), and also by letting you choose prorated stats for the current year or the previous year.

When I first implemented prorated numbers, I simply divided a player’s current stats by the number of games his team had played, and then multiplied by the number of games in the season. If you were showing stats for less than the full season, I’d prorate to the number of games his team had scheduled over that time. That was a decent first-cut, but for players who missed much of the season so far, their prorated future numbers were too low. So, for example, Clayton Kershaw won his first start, pitching very well, but then went on the DL. Under my old model, since he pitched just one of the Dodgers’ 26 games so far, I’d prorate him to start just 1 out of every 26 games, or about 6 starts. His fantasy owners (not to mention the Dodgers) surely hope he pitches a lot more than that! Now, however, I’m tracking when players are actually on a team’s active roster, and using that information to better prorate statistics. Kershaw has made just 1 start, but since he was on the disabled list most of the time, I currently prorate him to make a total of 25 starts.

Simply prorating stats has another bias, though, one that also affects searches based on projected statistics. Now that the season is under way, players do get injured, and preseason projections did not reflect that information. Josh Hamilton tore a ligament in his thumb and is out for 6-8 weeks according to my injury reports. But the preseason projections for Hamilton don’t account for this new knowledge, but I now try to do that. I now compute a “target return” date for injured players, based on the data shown in the injury reports I receive. In Hamilton’s case, I’m adding 7 weeks to the April 9th date listed for his injury, and I set the target return to May 28th. So rather than showing Hamilton’s stats assuming he’ll play all the team’s remaining games, I prorate the projections as if he’ll only play from May 28th onward.HamiltonSearch
Here I’ve reduced the playing time for Hamilton, but kept his rate numbers the same as the original preseason Steamer projections:

This should better reflect the future value Hamilton might have to fantasy owners. So when you’re viewing projections in a Search page, or as part of a projected standings page, I’ll adjust projections based on a player’s target return from injury. The Player Detail page will continue to show the original projections as given to me by the source (or computed by me).

The target return date is used not only when showing projections, but also when showing prorated statistics. Where the injury report gives an estimate of the player’s return, I use that to get the target return date. If he’s on the disabled list, but without any other guidance, I use the first date he’s eligible to come off, unless that date is in the past, in which case I’ll arbitrarily say he’ll miss 10 more days. At this point I’m updating based on the injury reports themselves, and not other news stories about a player’s return. So while I’ve seen reports that Bryce Harper will be out until July, because the injury report currently just lists him on the 15-day DL, I’ve set his target return to May 11th, 15 days after he was put on the DL.

These enhancements are also used when I compute projected standings for a league, so those values should be improved overall.

One caveat, however: by ignoring time a player is not on the active roster for prorated stats, I do expose small sample size issues. Because he has made only one start so far, Kershaw prorates to have the 1.35 ERA and 0.900 WHIP he had in that one start, while Hamilton hit .444 in the 8 games he played before going on the DL. While the rate stats, are way overly optimistic, the cumulative totals are better than they would be if I simply assumed both players would only play a tiny fraction of the season, which is what the old prorating model did.

Numbers should never drive all your decisions in fantasy sports, but getting better numbers can better inform your decisions. And the projected and prorated statistics shown at RotoValue have just gotten better.

Posted in Fantasy Strategy, Projections, RotoValue | Comments Off on Improving Future Statistics

Throwing your Weight Around

Much of the point of RotoValue dollar values is that the parameters of your league are relevant to how you should value players. When you start 2 catchers per team, top catchers are worth more than if you start just 1. Many players that have value in deeper leagues aren’t worth owning in shallower ones. My pricing model implicitly takes this into consideration.

But the site can customize even more than that. For a long time, the site has let RotoValue Analyst customers manually override the category weights, and also select extra categories to display for your league. Under the Settings menu, they’ll see a choice “RotoValue & Display”:

RotoValue Analyst customers can choose their own categories, and weights.

So if, for example, you’ve traded away all your closers, you could give the Saves category a weight of 0, and the RotoValue prices for your league would adjust to reflect the fact that you no longer care about a category. Similarly if you have a seemingly insurmountable lead in a category, you could give it 0 weight, or if a category is very close, you could give it double, or even triple weight. This page lets you set the weights for the categories in any RotoValue calculations, helping you find free agents (or evaluate trades) that are more relevant to your team’s situation. You get to manually set whatever weights you want, or, by clicking on the Reset button at the bottom of that page, remove all custom settings, and revert to using the scoring weights for your league in price calculations.

To use the customized weights, though, you have to opt in, by going to the settings page and updating them. I’ve just added a checkbox at the top of the page, “Compute weights based on your team’s stats and standings?”. This can automate the process of determining weights for you. If you select this option, the code will look at projected standings for your league, as well as the players in the active lineup on your team, and it will see how close you are to other owners in each category. The closer you are to passing or being passed by other owners, the more weight I will give a category. And if you save with this box checked, the algorithm runs very early each morning, after the previous day’s games, to recompute new weights based on updated standings data (and lineup changes).

Highlight auto-computed weightsIn this case my team projects near the bottom in Stolen Bases, and, more importantly, far from most other teams, so the algorithm gives that category the least weight, but WHIP projects to be the closest category, so it gives the most weight there. These different weights will affect RotoValue price calculations, guiding me towards players who are more likely to help my team, not only in general, but in the particular context of my league and opponents. The weights are scaled relative to the original league’s weight, so SB is given only 62% of its normal weight, while WHIP is given 134% of its weight. If your league weights certain categories differently for scoring purposes, then these calculations take that into account.

These auto-generated weights will tune RotoValue price calculations not only to the specifics of your league’s scoring and roster sizes, but also to the particular situation of your team and its current active roster relative to others. This information can help you make better decisions about pickups, trades, or even whom to put in your active lineup, and help you win your league.

Read on to see the how much difference this can have, and also details of the algorithm’s implementation. Continue reading

Posted in Fantasy Strategy, RotoValue | Comments Off on Throwing your Weight Around

Statistics Correction

I’ve discovered and corrected a bug in my 2014 major league baseball statistics.

Last Monday’s Reds/Pirates game was suspended by rain that night, and then completed on Tuesday, followed by the regularly scheduled game. RotoValue saves the live statistics of games in progress, and later it replaces them with a summary from the official boxscore. Well, in this case, the official boxscore for the completion came on Tuesday, with the date of the game as Tuesday April 15th also. Even shares this confusion, as their scoreboard page shows that game for April 15th, not April 14th.

While the site properly shifted the boxscore data from April 14th to the 15th for that game, it did not adjust the year-to-date totals, and so it wound up counting the partial data from the 14th and the full data from the completion of the game on the 15th. So the net effect was that many Reds and Pirates players showed up with more statistics than they should have because that game was (mostly) double-counted. Win, loss, and save totals were unaffected, since the game had not been completed, but any stats compiled before the game was suspended Monday were double-counted.

I’ve reloaded the YTD totals for the full season from all the boxscores, correcting the data. And now RotoValue is again showing correct statistics for all games, and I apologize for any inconvenience this caused.


Posted in Corrections, RotoValue | Comments Off on Statistics Correction

One more benefit of FAAB: Easier Trading

In my post this morning forgot to mention another benefit of using FAAB: you can trade it! This encourages trading in multiple ways. First, trading FAAB can help balance out a trade offer. Sometimes you’re close to agreement, but think the current offer favors the other owner a little more. When you can trade FAAB, you can propose adding some FAAB to the deal, and then the negotiation becomes simply over how much FAAB to include. It’s a good way to make small deals happen that otherwise might not.

Say I have an extra middle infielder on my bench when your shortstop goes on the DL. Your bench doesn’t have anyone I’m interested in, and you don’t want to weaken your lineup by giving me an upgrade at some position. Perhaps I agree to take one of your bench players plus some FAAB – you get the short-term guy to fill a hole, and I get some potential future value.

Near the trading deadline, or when highly sought after free agents are new to a league, then owners who want to bid on the new player will often make trades to acquire more FAAB. Without FAAB there’s no incentive for such trades, nor is there a nicely divisible commodity (money) to try to balance out other deals. So using FAAB not only is a better way to allocate new talent in your league, it also helps make trading easier, too.

Needless to say, RotoValue supports including FAAB in trade offers, and indeed before the auction for George Springer we had two trades involving FAAB, as owners scrambled to increase their budgets. Indeed one trade was simply some FAAB for a player!

Posted in Auction, Fantasy Strategy, RotoValue | Comments Off on One more benefit of FAAB: Easier Trading

Free Agent Handling and FAAB

My two long-time baseball leagues, the Park Slope Rotisserie League, and the Ezra Stiles Rotisserie Association, both share the same free agent bidding/handling system, and I like it quite a bit.

One of the big questions in fantasy sports leagues is how should you allocate players who are new to the league? Many leagues use a waiver process, where teams ranked lower in the standings, or maybe teams that have gone longest without making a pickup, get priority. For high value players, this is unsatisfying, as plenty of owners will want the guy, but some arbitrary rule determines who will get him.

Some leagues simply have a first-come, first served policy, where whoever makes the pickup first gets the player. That rewards owners for paying close attention to news, or perhaps simply being able to pay attention, so I like this a little better than a waiver process, but it still doesn’t seem fair, and there can be a race to make a move in response to news. I still recall hearing about a trade that sent Lee Smith to the Cardinals in 1990 on the radio, and rushing to call our league commissioner while hoping he hadn’t heard of the move first. I was lucky enough to win Smith, who then saved 27 games for the Cardinals after the move.

Others use a FAAB (Free Agent Acquisition Budget) bidding process, where teams start with a fixed budget, and enter sealed bids, with the highest bid winning a player.

Our leagues use a hybrid of the latter two. These are Rotisserie scoring leagues, and lineup changes only take effect weekly. So we have a FAAB auction, scheduled to run at 6:00 AM EDT on the first day of the week. The highest bid on an unowned player in that auction wins him.

The problem with FAAB bidding as some sites process it, however, is that if you lose your bid(s), you might not get a new player to replace an injured player. Our leagues handle this situation by having a short window of first-come, first-served pickups, between the bidding deadline and the weekly move deadline. So if you need to make a pickup for your injured player, but you don’t win the FAAB auction on the guy you wanted, you can pick someone else, whom nobody else bid on, to replace your injured guy. You get the best of both worlds: competitive bidding for highly valued players, but flexibility to fill a slot with somebody no one else bothered to bid on, all before your weekly deadline! And while you still need to pay attention, you don’t have to stay plugged in 24/7 to transaction news.

Continue reading

Posted in Auction, RotoValue | Comments Off on Free Agent Handling and FAAB

RotoValue UserProfile and e-mail Settings

I’ve added a new switch to the UserProfile page at RotoValue. In addition to check boxes which let you control what transactions generate an automated e-mail, I’d added a box to control whether you show your e-mail address to other league members on team roster pages.

Here’s a view of the UserProfile page:

User Profile pageRotoValue can generate e-mail alerting you to league transactions. By default, you’ll get an e-mail about someone adding, cutting, or trading players, as well as e-mail about trade offers and any FAAB bids you may make. In addition, you can turn on e-mail alerting you to lineup changes, but that is, by default, disabled. You can turn off any or all of these by unchecking the relevant box on the UserProfile page.

The sitecan generate a daily e-mail to owners about their teams, including a boxscore of what the players did last night, and a list of any news stories on those players in the past 24 hours. This job usually runs at about 4:00 AM EDT. By default, you’d get both player stats and news, but you can opt out entirely, or ask to get only the boxscores from the above page.

If you’ve checked “Show e-mail to league members, then in addition to seeing your name under your team as an owner, league members viewing your roster, like this:

Roster page

People viewing the roster who are not league members will see neither your e-mail or your name – clicking on the image goes to the same page, but since most readers likely aren’t in that league, they won’t see my name or e-mail.

By default, the site will not show your e-mail at all, and it will only show the name from your profile to people with teams in the same league. So you’d have to opt in to let other league members see your e-mail.

Posted in RotoValue | Comments Off on RotoValue UserProfile and e-mail Settings

Minor League Data Now Available on RotoValue!

I’m happy to report that I’m now receiving minor league (and often foreign league) data from the Chadwick Baseball Bureau.

Subscribers to RotoValue Analyst now can see minor league, fall, winter, and many foreign league statistics on RotoValue Player Detail pages. So you now don’t need to go to some other site to find minor league data on rookies, recent call-ups, or, well, pretty much anybody. For example, here’s a page for young Blue Jays’ second baseman Ryan Goins:

RyanGoinsThe league’s level is in parentheses. In addition to the standard A, AA, and AAA classifications, here are some other levels you might see:
Fal – A fall league, like the Arizona Fall League

Fgn – A foreign league, like Korean Baseball Organization or the Australian Baseball League

FgW – A foreign winter league, like the Venezuelan Winter League

FRk – A foreign rookie league, like the Dominican Summer League

Ind – An independent league, like the Northern League or the Atlantic League

Jpn – A Japanese major league, like the Japan Central League

Rk – A rookie league, like the Appalachian League

People probably have seen Masahiro Tanaka’s Japanese stats, but now RotoValue Analyst subscribers can get this data, and more, directly on RotoValue player pages.

RotoValue Analyst is just $10, giving you access to customized pricing for any or all of your RotoValue leagues, in addition to spring training data, customized category weighting. You can by RotoValue Analyst at the RotoValue Store!


Posted in Major League Baseball, RotoValue | Comments Off on Minor League Data Now Available on RotoValue!

Another 2014 Projection Update…

I’ve done another forecast run, incorporating new injury information, like the recent UCL tear for David Hernandez, which unfortunately probably will end his season, and drops the Diamondbacks down a notch in my team totals.

In addition, I’ve been tweaking how I deal with players with very limited MLB data. Now I will consider current year spring training numbers for players with very little MLB experience, in addition to that tiny MLB experience. Alas, I still don’t have minor league numbers to toss into the soup!

The driver for this was what I felt was a very overly optimistic projection for James Paxton, who was showing up at nearly 200 innings. Interestingly, adding this year’s minor league stats to the 24 innings he had last season did little to change his rate stats; indeed Paxton’s FIP actually went down by adding the spring numbers. But his innings dropped a lot based on a more recent run. Why? Because the Mariners have named fellow rookie lefty Roenis Elias as their #4 starter, and the latest depth chart no longer includes Hisashi Iwakuma, who is likely to start the year on the DL. Iwakuma still projects to over 150 IP in my model, but adding a new starter to the mix sops up a lot of the extra innings the model was giving to Paxton before. Indeed newcomer Elias has pitched even better this spring than Paxton. Both are potential sleeper candidates based on their current roles.

Continue reading

Posted in Major League Baseball, Projections, Sabermetrics | Comments Off on Another 2014 Projection Update…

2014 MLB Projections Update

I’ve updated my 2014 MLB projections, incorporating more recent injury and depth chart information into my playing time estimates.

Of course, since the season is two games old for the Dodgers and Diamondbacks, this isn’t entirely “fair” – usually I’d want preseason forecasts to be entirely preseason. But with a full week before other games, I also don’t want to ignore more recent news for owners who have yet to draft. So I’ve settled on a compromise: I’m keeping my original projections visible on the site, but I’ve renamed them from RotoValue to RV Pre-Australia. Those numbers were my last run before any games started.

But I’ve rerun the numbers again, and am giving these newer number the label “RotoValue”.  I avoided doing any injury updates affecting Dodgers or Diamondbacks, but did incorporate adjustments for other players (like young Rangers’ infielder Jurickson Profar, who is now expected to miss 10-12 weeks). Profar is a good example of this, as on his profile page you can compare these projections. His rate stats don’t change, but where I had projected Profar for 415 AB, I now project just 162.

Here’s an updated standings projection (links to team projections):

AL East Won Lost RS RA
Rays 88 74 710 651
Red Sox 86 76 734 687
Yankees 82 80 687 679
Blue Jays 82 80 732 724
Orioles 78 84 704 730
AL Central Won Lost RS RA
Tigers 92 70 743 653
Indians 79 83 704 718
White Sox 76 86 669 708
Royals 76 86 676 717
Twins 67 95 643 759
AL West Won Lost RS RA
Athletics 87 75 722 670
Angels 86 76 724 685
Mariners 85 77 694 663
Rangers 84 78 726 702
Astros 76 86 674 720
NL East Won Lost RS RA
Nationals 91 71 703 620
Braves 85 77 699 666
Marlins 79 83 641 662
Phillies 76 86 642 686
Mets 75 87 656 707
NL Central Won Lost RS RA
Cardinals 91 71 722 640
Reds 86 76 695 651
Brewers 82 80 697 690
Pirates 78 84 657 685
Cubs 67 95 596 715
NL West Won Lost RS RA
Dodgers 87 75 676 626
Giants 80 82 635 645
Diamondbacks 78 84 668 696
Rockies 77 85 693 729
Padres 76 86 635 674

These are largely the same as my previous projections. Now the Mariners slide to 3rd in the AL West, which still projects as the closest race, with four teams separated by three games, but the Tigers, Cardinals, and Nationals still project to have the most wins, while the Cubs and Twins project to have the fewest.

Posted in AL, Major League Baseball, NL, Projections | Comments Off on 2014 MLB Projections Update

Going 9 Expert Draft

Last night I took part in the Going 9 Experts League draft. We started late (11:00 PM EDT), but the event was fast and fun. We drafted a total of 300 players in under 140 minutes, so it went much faster than my auctions do.

The league is a 5×5 12-team mixed league, drafting a total roster of 25 players per team, with 20 active players and a 5 person bench. I tracked the draft on my site, and the full configuration is here. Continue reading

Posted in Draft, Fantasy Strategy, Major League Baseball, Projections, RotoValue | Comments Off on Going 9 Expert Draft