Recently I ran across a problem with my deployed version of ottoneu: there was no programmatic limit for games played or innings pitched for any given fantasy team.
Let me back up.
Fantasy baseball games, in general, have limits around the number of games a team can ‘play’ at any given position. For example, if there are 162 games in a season, it doesn’t make much sense to allow an owner to manipulate his lineup enough to squeeze 170 games out of a given position. This might not be possible for all owners, and it doesn’t fit in with the idea of mapping fantasy baseball to real baseball. If the Yankees can’t go out on their off days and get extra games in with their backups, well, then, neither should your fantasy team that you’ve cleverly named after them.
Most games will run with limits along the lines of 162 games per lineup slot, which includes things like 162 games per OF spot (in our 5OF lineup, we have a 810 game limit at OF) as well as 162 games per special position (middle infielder, corner infielder, utility). Innings pitched can be a little bit more varied, but we went with the tried and true multiply 162*9 and add a few extra to get to a nice round number, so our limit is 1500IP.
So back to where I started – ottoneu did not have programmatic enforcement in place for when teams went over these limits. While this isn’t a gigantic problem with 12 owners, once you’re talking a game with leagues on the order of 100, then yes, we have a problem. I decided to tackle the problem last week, and immediately an interesting question arises: when does the inning limit kick in? Can you run right up to 1499.2 IP at the end of a day, and start 5 guys the next day and then the limit kicks in at the end? Should there be a rule put in place that says when you are within some arbitrary distance of the 1500 IP limit at the end of a day, you can’t play any more pitchers? Or the final option – add up stats until you hit 1500 IP, no matter if it is in the middle of a start or an appearance by a reliever or anything?
I kicked this question around with Geoff for a little bit, and we decided that first off, it made no sense to build any kind of lower buffer. A 1500 IP limit doesn’t mean “1495-1500”. We thought about calculating the inning count at the end of every day, but this solution again made a inning limit closer to “1500-1525” instead of the hard 1500IP cap that we wanted. So that leaves the last option.
The idea of these limits, like I said, is not only to put everyone on equal footing, but also to line up the game against real baseball. This last option, in which the live scoring script literally stops taking your statistics once you hit 1500IP, is the least connected to real baseball. If I’m at 1497.0 IP, and Jon Lester going on the last day of the season (I know, it would never happen), there’s a very real possibility that only half of his start will count towards my fantasy statistics. Cutting off starts in the middle divorces the idea that these player’s days line up perfectly with your team’s day.
We decided to go with this option, but where does that leave ottoneu? The first line of ottoneu’s constitution is as follows:
The intention of this league is to mimic the job of an actual general manager as closely as possible.
Clearly managing who plays and who doesn’t on a day to day level isn’t on a GM’s plate, but if we our goal is to reflect reality, this solution is actively hurting us. I don’t have any good answers here – one can go down the path of explaining the other ways ottoneu isn’t like real baseball, but I am not sure if that is a compelling defense of this solution. Clearly the alternatives we discussed were not better than what we decided on, but maybe there was something else I didn’t consider? I open it to the floor.
The best part of designing a game is that you get to run into interesting questions about the system you are building all the time. Of course, that is also the worst part.
Theoretically, if we really are trying to follow our constitution’s first line, instead of an innings limit you would just have a games started limit. Why not just say you get 162 games started? Clearly this leaves an issue with what to do around relievers though. You could take a sample from around the league of how many games on average each of the 7-8 relievers on a team plays in and extrapolate that for how many relief appearances a team should get. There are certainly some issues with that logic still, but it seems to be a better representation of how things actually work. The games started limit seems to be a no brainer though, no?
I think that does make a lot of sense.
Maybe we should keep track of how many IP have been used in those starts, and allow RPs to throw the difference between 1458 (162*9) and the IP used by starters.
Still have some issues with the cutoff itself (although less severe with guys who throw 1 inning at a time), but it seems fair if one team has guys that average 7 IP a start and another team has guys that average 6 IP.
Geoff touched upon why we can’t do a straight game count. We want teams to be on equal footing when comparing their numbers, and the number of games any given pitcher pitches is not the same as how much he pitches. Some guys go 5 innings, other guys go 8, some guys are closers, some guys are long relievers, etc. With the different uses and modern strategy around pitching, games alone are not a good enough measurement.
I also worry a little bit about Geoff’s proposal – while it does make a lot of sense, it creates 2 moving targets within one larger innings limit, and it might be a bit complicated for owners to track.
I actually like Geoff’s idea – and I think it is actually simpler than he made it sound. You are limited to 162 starts and 1500 IP. No need to say RP get the difference between 1500 (or 1458) and IP by starters or something. If I reach 1500 IP on Sept 1 with only 145 starts…I lose the option to get 17 more starts. If I reach 162 starts on Sept 1 with 1200 IP…I can only use relievers the rest of the way. Honestly, not sure that this is all that complicated.
So you illustrated it perfectly – it creates a second moving piece (number of starts) and it doesn’t solve our problem at all the way you have implemented it. Scenario: I have 1 start, 1497.0 IP on the last day of the season and I have 1 pitcher available to start. Result: my start will be interrupted halfway through. And I’ve created an entire second number to track, which by definition is added complication.
I like the direction this is going with looking at appearances, but I still don’t think we have come to a good conclusion on this.
I’ve been thinking for a while that there is something not entirely consistent with our league between hitting and pitching. Our position players are on a pure games limit, and this takes place no matter how many plate appearances they get in a game in which they appear. If Albert Pujols gets 9 PAs in a 20 inning game, this counts equally in terms of games played as a situation in which I leave Brian McCann in my lineup, and he doesn’t start the game but enters the game as a pinch-hitter in the 8th inning and gets 1 PA (and possibly as a situation where a guy enters as a defensive replacement but gets 0 PA – I’m unclear about this, though). Conversely, our pitching is purely the number of innings they pitch, it has absolutely nothing to do with how many games they appear in.
If we truly “want teams to be on equal footing when comparing their numbers”, then we should be imposing upper limits on the number of PAs at each position, and not the number of games played. But I don’t think we should do this. It all goes to the balance of our league. Part of being a successful fantasy manager is getting the maximum counting stats out of your players while maintaining solid rate stats. If your team has eight players on it who are lead-off hitters, you are going to almost certainly end up with significantly more PAs (and probably runs) than a team who has eight players on it that bat fifth. However, you are also almost certainly sacrificing HR, SLG, and possibly OBP for the opportunity to have more PAs. As manager, you get to decide what kind of players you want to have (to some extent, anyways) and the way our league is structured, there are inherent advantages and disadvantages to different strategies.
After thinking about this and reading other comments on this post, if you want to change anything about the limits (which I’m not sure is necessary), I think the most consistent thing (with the way our hitting is done) has to be jon’s suggestion, with both a games started limit AND a relief appearances limit. I think this most effectively does two things:
First, it rewards you for having SP who are good and pitch a lot of innings. Much like real baseball, a SP who pitches 230 IP of 3.30 ERA should be worth more than a SP who pitches 150 IP of 3.20 ERA. In our current format, you may actually be somewhat rewarded for having the latter, because you can fill in those 80 IP with two relievers whose stats will almost certainly be at least as good as 3.20 ERA. Right now, our league is very incentivized to have as many RP as possible, getting as many innings as possible. Maybe this is inevitable and maybe it’s not a problem, but providing limits on both SP and RP would be a good way to correct the imbalance that I think exists in our league between SP and RP value.
Second, it really gets more into the balancing that we should be doing as managers. With a limit on relief appearances, you can target different kinds of relievers. If you want more innings, you can get long relievers who might pitch multiple innings, but conversely there is probably a reason that they are long relievers and not closers or set-up men, so you are likely sacrificing ERA/WHIP. This is far more interesting than just searching for the guy with the best stats per inning.
I think the inning limit works fine (and I think cutting it off instantly at 1500 IP is absolutely the way you have to do it), but imposing limits on pitching appearances would also work fine, I think.
I think most realistic is not having any limits whatsoever. The only time you are really limited in terms of innings is when you’ve got a young arm you want to preserve, and the limits on games played per position don’t really have an analogy in real baseball.
I would take out both limits. Finding a player to play on Monday is somewhat analogous to resting your star and finding a super utility guy to play for him. You’ll still need your stars, and it might create an interesting and optional roster spot for that extra position player that can play off days. No limits on pitching means you get to play who you want and how, sorta like a major league team.
I know this would create a window for streaming and more effort-intensive playing, however, so innings limits have their uses. Also, teams are limited to their 162 game schedule on both sides of the ball, so using a limit can make sense to approximate the real life game. But like I showed above, their are aspects of the real-life game that would cross over without limits that wouldn’t be there with limits.
Yahoo does it at the end of the day, which means you can finagle some extra innings by pitching as many arms as you can that day. I’m sure that’s because it’s the easiest thing to do, programming-wise.
I kind of like Thad’s rec – you have 162 GS and X RP appearances (maybe 486, or 3 RP per game on average….we could actually find the data to back this up). Assuming 7 IP per start and 1 IP per relief appearance, the numbers above get us to 1616 IP total…so maybe its 2.5 RP per game and 405 RP appearances total. I guess the numbers aren’t important. But I do like the idea.
Of course the other option, which has not been discussed I don’t think, is that we have a rule in place in our constitution that a team failing to meet the IP floor is docked .1 points per IP under the minimum – and I believe we used to have the same rule in place for going over the ceiling. This way, the site will let you start as many guys as you want until you are actually over 1500 IP and count all stats from those games, but also dock you .1 pts per IP over 1500. This effectively gives people a small cushion (would let you get that Lester start if you needed) but prevents the “I am going to start 5 guys the last day to get to 1540 IP” strategy.
It would seem you could also program the site to actually cut off starts not just on a full day, but for a partial day, right? So if I start the evening with 1498 IP and use a starter in the 7 pm games, I should be blocked from using one in the 10 pm games as well…
Well I think our comments here have certainly re-affirmed the point Niv made in his post that there is no easy solution to this issue.
From what I can tell there are three considerations:
1) Keeps with the spirit of the league in trying to mimic real baseball
2) Is easy to implement
3) Minimizes disruption to the league
The current method of a firm cutoff at 1500 IP obviously meets #3, but falls short on #1 and #2. I do like the 162 game cutoff for starters (I think it meets all 3) – but I think that all the options mentioned for RPs do not meet either #1 or #3 (there is no RP appearance cap in real life, but tracking multiple moving parts is more difficult).
In fact, I think the outcome that comes closest to meeting all three is no limits at all (and I’m still admittedly a bit uncomfortable with this idea). It’s certainly the easiest to understand/implement, and like Eno said, it can be said to mimic real life insofar as if a guy can play today, then he can play today. As for the third point, I do think it might cause a bit of a run at plugging in guys with SP/RP eligibility (but we can make a corresponding rule that you need to play a guy at RP to get points when he is used as an RP – something I think I am in favor of regardless), but I don’t think some team going to 1600 IP just for the sake of more K’s is a horrible thing that would mess up the league (Thad got at this point a bit).