2023 Results and Lessons Learned
First, I know no one, and I mean absolutely no one besides myself cares how I performed this year. While I needed to do a final inventory of my teams, the following should be more of a guideline on how fantasy managers should evaluate their season. First, try to find any systemic holes in a strategy. Second, make a list of what worked and what didn’t work for you.
I always look back on my season and really try to figure out what went right and wrong. Over the season’s last few weeks, I was disappointed in my season with many of my teams out of contention and the few in contention were just scraping by. In the end, I turned a nice profit thanks to winning my NFBC Super, but overall I was disappointed with my performance. Here is a look at those teams.
I will start with my draft and hold teams. I had five of them and here are their category standings.
R | HR | RBI | SB | AVG | W | K | SV | ERA | WHIP | Total | |
---|---|---|---|---|---|---|---|---|---|---|---|
League 1 | 15 | 14 | 12 | 7 | 8 | 6 | 12 | 7 | 9 | 9 | 99 |
League 2 | 7 | 10 | 7 | 3 | 5 | 11 | 14 | 5 | 10 | 13 | 85 |
League 3 | 15 | 14 | 15 | 11 | 11 | 9.5 | 11 | 3 | 8 | 4 | 101.5 |
League 4 | 14.5 | 15 | 13 | 1 | 3 | 8 | 11 | 11 | 13 | 11 | 100.5 |
League 5 | 6 | 9 | 10 | 7 | 6 | 7 | 11 | 7 | 12 | 9 | 84 |
Average | 11.5 | 12.4 | 11.4 | 5.8 | 6.6 | 8.3 | 11.8 | 6.6 | 10.4 | 9.2 | 94 |
Hitter Total | 47.7 | Pitcher Total | 46.3 |
None of the leagues were horrible, but none of them cashed. I struggled in four categories, AVG, SB, Wins, and Saves.
- AVG: I struggled on several teams with both Muncy and Schwarber. Teams can handle one regular AVG sink but not two.
- SB: I focus on good hitters and miss on rabbits. While I got steals from the first few rounds, I need to keep pounding them for at least a middle-of-the-pack finish.
- Wins: This is an issue here and with my FAAB teams. Expect an article or a chapter in The Process looking at this problem a little deeper.
- Saves: In a previous league breakdown of my draft-and-holds I wrote: “At least two earlier closers.” Did I get two early closers, nope and I paid for it. While I might hit pay dirt with later options, the two-early method gives me a better chance of cashing.
Now onto the re-draft/FAAB leagues. First here are my results from my 12-team leagues.
Rank | R | HR | RBI | SB | AVG | Hitting | K | W | SV | ERA | WHIP | Pitching | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Team 1 | 4 | 10 | 8 | 8 | 8 | 1 | 35 | 10 | 5.5 | 7 | 8 | 8 | 38.5 |
Team 2 | 4 | 12 | 7 | 8 | 4 | 8 | 39 | 10 | 8 | 8 | 12 | 9 | 47 |
Team 3 | 1 | 11 | 11 | 9 | 3 | 2 | 36 | 10 | 8.5 | 10 | 12 | 10 | 50.5 |
Team 4 | 8 | 9 | 9 | 5 | 7 | 1 | 31 | 12 | 7 | 1 | 7 | 7 | 34 |
Average | 4.3 | 10.5 | 8.8 | 7.5 | 5.5 | 3.0 | 35.3 | 10.5 | 7.3 | 6.5 | 9.8 | 8.5 | 42.5 |
And my 15’s.
Rank | R | HR | RBI | SB | AVG | Hitting | K | W | SV | ERA | WHIP | Pitching | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Team 1 | 2 | 13 | 15 | 15 | 8 | 2 | 53 | 12 | 9 | 7 | 12 | 9 | 49 |
Team 2 | 3 | 14 | 10 | 9 | 14 | 14 | 61 | 13 | 1.5 | 11 | 13 | 12 | 50.5 |
Team 3 | 1 | 15 | 13 | 13 | 13 | 13 | 67 | 11 | 9.5 | 10 | 14 | 6 | 50.5 |
Team 4 | 3 | 8 | 10 | 12 | 4 | 13 | 47 | 14 | 5 | 14 | 14 | 12 | 59 |
Team 5 | 4 | 14 | 13 | 15 | 8 | 15 | 65 | 13 | 3 | 3 | 5 | 7 | 31 |
Team 6 | 5 | 7 | 6 | 5 | 11 | 5 | 34 | 14 | 13 | 8 | 13 | 12 | 60 |
Average | 3.0 | 11.8 | 11.2 | 11.5 | 9.7 | 10.3 | 54.5 | 12.8 | 6.8 | 8.8 | 11.8 | 9.7 | 50.0 |
Overall Trends
- On the 12’s, it seemed like I didn’t care one bit about AVG. Team 1’s (both formats) were drafted early and I’m not sure what I was doing. I think I need to just limit the sinks and hopefully, the problem will correct itself.
- Stolen bases seemed to be hit-or-miss depending on if I got one of the top guys (Acuna, Hoerner). I wonder if there are going to be more tiers in stolen bases going forward. Either teams hit on one or two of that season’s top dozen guys or they are just playing catchup.
- Wins were another issue and I’m not sure why with my strikeouts, ERA, and WHIP all being decent. I plan on looking into this subject at a later date. I wonder if I rostered too many good pitchers on bad teams.
Now, I’d like to look at my approach for two teams that struggled early on and I tried to turn them around.
Week | League Rank | Overall Rank (770 teams) | Offense | Pitching | Total | Change | League Rank | Overall Rank (2460 teams) | Offense | Pitching | Total | Change | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 10 | 518 | 48 | 23 | 71 | 12 | 2437 | 15 | 15 | 30 | |||
2 | 5 | 159 | 65 | 30.5 | 95.5 | 24.5 | 12 | 2452 | 16 | 10 | 26 | -4 | |
3 | 7 | 325 | 66 | 18.5 | 84.5 | -11 | 12 | 2453 | 10 | 16 | 26 | 0 | |
4 | 8 | 321 | 70 | 16.5 | 86.5 | 2 | 12 | 2400 | 22 | 14.5 | 36.5 | 10.5 | |
5 | 8 | 305 | 65 | 19 | 84 | -2.5 | 10 | 2252 | 31 | 18.5 | 49.5 | 13 | |
6 | 10 | 330 | 63 | 21 | 84 | 0 | 12 | 2280 | 28 | 15 | 43 | -6.5 | |
7 | 10 | 362 | 59 | 21 | 80 | -4 | 7 | 2109 | 30 | 25.5 | 55.5 | 12.5 | |
8 | 10 | 422 | 59 | 17 | 76 | -4 | 6 | 1720 | 37.5 | 24 | 61.5 | 6 | |
9 | 11 | 479 | 56.5 | 15.5 | 72 | -4 | 10 | 2067 | 28.5 | 20 | 48.5 | -13 | |
10 | 9 | 468 | 56 | 16.5 | 72.5 | 0.5 | 10 | 2052 | 26 | 23 | 49 | 0.5 | |
11 | 8 | 414 | 61.5 | 15.5 | 77 | 4.5 | 9 | 2038 | 29 | 21 | 50 | 1 | |
12 | 9 | 394 | 62 | 17 | 79 | 2 | 10 | 2065 | 30 | 20.5 | 50.5 | 0.5 | |
13 | 5 | 305 | 65 | 19 | 84 | 5 | 7 | 1748 | 29 | 30 | 59 | 8.5 | |
14 | 5 | 230 | 65 | 23 | 88 | 4 | 9 | 1786 | 25 | 30 | 55 | -4 | |
15 | 5 | 219 | 65 | 23.5 | 88.5 | 0.5 | 10 | 2025 | 21.5 | 27.5 | 49 | -6 | |
16 | 4 | 225 | 65 | 23 | 88 | -0.5 | 7 | 1860 | 26 | 32 | 58 | 9 | |
17 | 5 | 222 | 63.5 | 25 | 88.5 | 0.5 | 11 | 2045 | 25.5 | 23 | 48.5 | -9.5 | |
18 | 4 | 221 | 65 | 25 | 90 | 1.5 | 6 | 1806 | 32 | 29 | 61 | 12.5 | |
19 | 4 | 206 | 68 | 24 | 92 | 2 | 6 | 1665 | 31.5 | 29 | 60.5 | -0.5 | |
20 | 6 | 192 | 64 | 26.5 | 90.5 | -1.5 | 6 | 1482 | 30.5 | 34.5 | 65 | 4.5 | |
21 | 4 | 186 | 65 | 30 | 95 | 4.5 | 5 | 1396 | 28.5 | 39 | 67.5 | 2.5 | |
22 | 4 | 161 | 64.5 | 30 | 94.5 | -0.5 | 5 | 1549 | 29 | 35.5 | 64.5 | -3 | |
23 | 4 | 107 | 65 | 38 | 103 | 8.5 | 5 | 1339 | 28 | 37 | 65 | 0.5 | |
24 | 3 | 88 | 64 | 43 | 107 | 4 | 4 | 1141 | 33.5 | 37.5 | 71 | 6 | |
25 | 3 | 70 | 65 | 46 | 111 | 4 | 4 | 1138 | 33 | 39.5 | 72.5 | 1.5 | |
26 | 2 | 63 | 64 | 50 | 114 | 3 | 4 | 1098 | 33.5 | 38 | 71.5 | -1 | |
27 | 3 | 54 | 61 | 50.5 | 111.5 | -2.5 | 4 | 1091 | 35 | 38.5 | 73.5 | 2 |
Both teams were nearly left for dead and I was able to cash with one. Here are some insights on trying to make up a lot of ground.
- In the second one, I held Rodon until he went on the IL the second time in early August (week 19). I was able to make steady progress forward with a liberated roster spot. Before that, I was bouncing around between sixth and tenth place. While I might hold guys when ahead and/or in deeper leagues, the key to getting ahead in 12’s is to stream like mad to make up ground, especially when I start the season just a few spots from the last place in the overall. Dead spots can be a drag. If a player can’t help me in a week or two, they probably need to go if not an elite talent.
- In the second league, I needed help everywhere and there was no room for the Samad Taylors of the world. He’s at most a one-category guy and I was hoping for lighting in the bottle. Steals are important, but not as important as getting a well-rounded player, even if just for that week.
- It’s nice in the overall contests to see if you are making progress against everyone. Sometimes teams stall in a single league. In the first league, I was buried at the bottom of ERA and WHIP and was showing no league improvement. But from the 11th week on, the team was slowing climbing in the overall so I knew I was making correct decisions. This was important from week 16 on. While in 4th place in the league, I was 23 points out of third place. The grind can be tough but worth it.
- Similar to the last lesson, improvement might not be linear. I didn’t really turn it on until the last month with a 8.5-point jump in week 23.
- Don’t spend all your FAAB at once. While top talent is needed, a buried team will need multiple moves to get ahead and will need at least 2% of the team’s budget each week to stream.
Besides how I might approach my teams in 2024, here are some overall rules I’ve implemented during the season that I found useful.
New Rules
- Never again will I play in a deep-only league. I don’t find them fun at all and someone is supposed to break both my knees if I agree to one again.
- Remember my old rules (e.g. two closers in draft and hold leagues). If it ain’t broke, don’t fix it.
- If I need to make up ground, I should jettison the dead weight (e.g. Rodon). Win the next two weeks.
- Be careful of guys with pluses and minuses. Even if a player has several pluses (e.g. dual position and no shift with Jazz) the negatives can outweigh (he’s always broke).
- I want to save $15 (of a $1000 budget) for the last two weeks of the season, especially if ahead in the standings. At this point, having $2 vs. $1 is huge for winning tiebreakers. Also, I needed more moves to drop and add players who were dead-weight on my roster. I’m sure I can spend fewer dollars in the weeks before, but I need the money to get the guys I need when it really counts. There is nothing wrong with a $5 week.
- I backed off my hard stance of completely ignoring platoon power bats (Rooker and Suwinski). It sucks knowing they are sitting a third of the time but it’s tough to pass on 20 to 30 HR. Also, they don’t drag down a team’s AVG or OBP like when facing the same handedness of pitcher.
- Senga rule. In one of my leagues, I was hit with injuries (Judge, Jazz, Alonso, Woodruff, Swanson) all at once. I needed all the hitting help I could find, so I had two extra bats on my bench. Also at the time, Kodai Senga was killing my WHIP (1.44, 5.62 BB/9) even with his 3.75 ERA. I dropped Senga and he went on to have a 2.57 ERA and 1.10 over the rest of the season. The key here is to know my hitters will be back and it’s fine to not max out my hitting in order to drop a high-strikeout pitcher who was probably still getting used to a new baseball. The manager who added Senga kept reminding me and even began to send fables on Senga’s greatness.
Besides some rules, here are some changes to my process that worked.
Good Ideas
- Cutting down on the number of leagues. I didn’t miss any of them and may even cut a couple more.
- PressReader: Another source of news that’s not Twitter, MLB.com, or The Athletic. Be different than the crowd in order to have an above average team.
- Pre-FAAB Notes: I filled out this sheet before beginning my weekly FAAB. Usually, I end up looking up the info anyway, so it’s nice to already process it.
- Steamer Hitter Comps: I created a worksheet** that compares prospect hitter projections to major leaguers. I found it worked great this season. Here is one for Matt McLain that pointed to a guy who should be rostered in all formats.
- Plate Appearances (playing time) from the last X days. I used two sets. One of the last 10 days (guys with a job) and one of the last 3 days (guys who might be getting a role) from here. I tried to achieve two goals with these lists. First, they use plate appearance instead of the standard at-bats thereby a better representation of the times a player comes to the plate (and not on host sites). Second, I like to stay off the standard seven and 14-day increments that that main hosting sites use to hopefully find a player or two who fell through the cracks.
- AAA StatCast Info: I lived off Sam Wirth’s AAA StatCast page for analyzing pitchers who got promoted or guys who got demoted to work on “things”.
Stuff that didn’t work
- Looking ahead at the schedule three to four weeks. Just so many changes occur that mess up my plans that I’m focusing on the next two weeks and nothing more.
- Unbalanced draft, especially with hitters. I thought some guys were going to see an AVG boost with no shift, but didn’t. Also, I just didn’t deal with steals in some instances. Both were unknowns coming into the season, but they were unknowns for everyone and I failed to address them while others did.
- Underperforming in 12-team leagues. Historically, I found I performed better in 12’s but this season, it was the 15’s with better results. I’m not sure if it is a one-year blip or a change in my style.
- I need to try to limit my exposure to old and/or hurt starters, especially with the core of my team. I had too much Rodon, Scherzer, Verlander, and Bieber. I need guys to contribute as much as possible.
Well, that’s a wrap on my 2023 season. The only big to-do for me is to figure out why I constantly struggled for Wins.
** I’ve been asked how to make these comps tables so here is a quick outline. I’ve created how-to’s with spreadsheets before and I just ended up doing all the work for some people who just refused to learn. I’m going to get people to the water and bait the hook, but after that, everyone is on their own.
The basic theory is to convert all the stats that a person wants to compare to positive Z-scores (standard deviations) and then all those values into an overall value. Here is a screenshot of the one I use for the above comps.
- First, find the data for the comps. In this example, Steamer600(ROS) Hitter projections.
- The second might be the most painful step. Selecting a player from a list must be done and identical names cause issues. I created a new column combining (CONCATENATE) the name and MLBAMID. The combination might not need to be done if there is no chance for repeat names. Create a dropdown (Google creating dropdowns for Sheets, Excel, etc … I have to do this search every time) from the combined names and IDs. Use XLOOKUP to populate that player’s stats that are going to be compared.
- Next, I find the Standard Deviation for all the selected categories. After the first player listed, find the absolute value of the selected player to the player in that row and divide by the Standard Deviation (red box at the top). It is called a Z-score. Do the step for each stat and player (use that good old $ to lock in a row or column).
- Finally, add all the Z-scores together and then promote that column from smallest to largest. I use the Table feature under Inset->Chart in Google Sheets to get an easy-to-read downloadable option (image in the middle of the article).
Jeff, one of the authors of the fantasy baseball guide,The Process, writes for RotoGraphs, The Hardball Times, Rotowire, Baseball America, and BaseballHQ. He has been nominated for two SABR Analytics Research Award for Contemporary Analysis and won it in 2013 in tandem with Bill Petti. He has won four FSWA Awards including on for his Mining the News series. He's won Tout Wars three times, LABR twice, and got his first NFBC Main Event win in 2021. Follow him on Twitter @jeffwzimmerman.
I think it was you that said something during the year to the effect that you’re not churning your roster enough if you don’t regret any cuts. That helped me this year. I had a few I regretted, like Jose Berrios, but they were far outweighed by the positives I got from cutting guys that would have continued dragging down my rosters and the gains I got from pickups. That was my lesson learned, so thanks for that. Or not if I’m remembering wrong who said that.
l have said that a few times. Getting over the regret of a bad drop is one of the best ways to move forward as a player.
I play mostly ottoneu so bad cut decisions hurt double, but my philosophy is if I make more good moves than bad, the more moves I make the better.
I swear managers can be great at this game if they are right at a 55% rate and then compound the shit out of that 55%.