Razzball’s daily fantasy baseball tools – Streamonator, Hittertron, and DFSBot – are available by subscription in 2015. If you play in roto leagues with daily roster changes or Daily Fantasy Sports like DraftKings, these tools will rock your world. Please see our Subscriptions page for details – including how to get a free subscription by opening up a new Daily Fantasy Sports account. 

In my previous ‘hot hitter‘ post, I found that a hitter’s recent performance (measured as last 3 games and last 5 games) had no value in projecting next game performance once you account for the player’s known skill (as measured by Steamer Rest of Season projections) and the relevant gameday matchup info incorporated into our Hittertron/DFSBot (e.g., quality of opposing pitcher, handedness of opposing pitcher, park factors).

This post will cover whether recent performance by a starting pitcher helps improve the next start projections in our Streamonator and the pitching component of DFSBot.

I am not sure when ‘Last 3 Starts’ data became ubiquitous. It has been in the Probable Pitcher grid forever perched under the MLB standings in the newspaper. Why ‘last 3 games’ and not ‘last 4 games’ or ‘last 2 games’? Does the power of three hold sway outside of comedy and cubic measurement?

Here is an overview of my analysis to determine whether a pitcher’s last 3 starts measure a ‘streakiness’ that could improve our existing daily projections:

  • Create a starting pitcher data set for each start in 2014 where the pitcher had 3 previous starts in the prior 19 days (219 unique pitchers, 3,239 instances) .
  • Compile the pitcher’s stats for those 3 starts.
  • Compile the Streamonator projections for those 3 starts
    • Note: Our Streamonator projections use Steamer Rest of Season projections as a base and adjust based on projected opposing lineup + park factors + whether the start is home or away)
  • Determine the correlations between a pitcher’s ‘next start’ stats versus:  1) their Streamonator projections for that game, 2) their  ‘last 3 start’ stats , and 3) the difference between their Streamonator ‘last 3 start’ projections and their actual ‘last 3 start’ stats.
    • Re: #3, this helps separate ‘streakiness’ from ‘skill`.  If Kyle Kendrick throws three straight quality starts with a 1.50 ERA that is more surprising/meaningful than if Felix Hernandez does.
  • Determine if recent game performance provides additional predictive value by running a regression using Streamonator AND the ‘last 3 start’ stats and then comparing the resulting correlation with the Streamonator correlation.
Start #4 Correlations (r) Of Daily Stat Projections For Pitchers With 3 MLB Starts In Previous 19 Games (219 unique pitchers 3,239 instances)
Streamonator Prev 3 Starts Minus Streamonator Proj Previous 3 Starts Streamonator, Prev 3 Starts Minus Proj (regression on both variables) Improvement (+/-)
W 14.2 2.1 2.6 14.3 0.1
IP 23.3 6.9 18.0 25.8 2.5
H/9 14.9 0.3 2.7 14.9 0.0
K/9 36.2 9.5 25.3 36.6 0.5
BB/9 22.0 2.4 12.1 22.1 0.1
ERA (w/ ERA) 14.0 1.9 2.5 14.0 0.0
ERA (w/ FIP) 14.0 0.3 4.4 14.0 0.0
WHIP 17.3 0.5 4.6 17.3 0.0

The ‘Previous 3 Starts’ data has a slight correlation (outside of IP, K/9, and BB/9) with the next start’s results but these correlations were: 1) lower than Streamonator and 2) Aside from IP and K/9, provided virtually no improvement to the Streamonator data when combined via a regression analysis. The correlations are surprisingly weak for the standard ratios (ERA and WHIP). Last 3 start FIP provides a slight improvement in predicting next start ERA than using Last 3 Start ERA but it still provides almost zero percent improvement to the Streamonator results. Breaking out WHIP into H/9 and BB/9, it is clear that BB/9 is more predictive than H/9 (12.1 correlation vs 2.7) but it still adds almost nothing to the Streamonator projection.

I re-ran the ERA correlation for cases where a pitcher’s ‘Last 3 Starts’ FIP was 1+ standard deviations from its Streamonator projections (1,054 instances). This isolated pitchers performing significantly better or worse than expected and might point to things like underlying injuries or improved health. Streamonator had only an 11.4 ERA correlation (worse than the 14 across all instances) but the previous 3 game FIP was only at 2.0. The difference between the Streamonator and Actual Last 3 Game FIP correlated at 0.7 and the combination of Streamonator + Last 3 Games FIP provided the same 11.4 correlation as Streamonator alone.

If I limit the test to only the best 100 Last 3 Start performances (vs projections) and the worst 100 Last 3 Start performances, the results are below. While the top 100 cases where a pitcher outperformed projections in the last 3 starts (aka the ‘hottest’ pitchers) produces a composite ERA 15% lower than the Streamonator projection, the worst 100 produced a composite ERA 10% lower than the projection. The fact both are higher shows that 1) Streamonator projections were a bit high across the board because Steamer projected for a higher run environment in 2014 (we saw the inverse in the hitter study) and 2) even the ‘hottest’ and ‘coldest’ pitchers bounced back to their expected projections.

Actual Streamonator  INDEX
Composite ERA of Top 100 best FIP in Last 3 Starts vs Projections 3.73 4.28 115
Composite ERA Top 100 worst FIP in Last 3 Starts vs Projections 3.77 4.17 110

The projection that benefited most by comparing last 3 start data vs. Streamonator was innings pitched. Admittedly, my estimated IP for pitchers last year was not very dynamic – it just used previous year’s IP average and adjusted slightly up/down depending on the projected rate stats (e.g., the higher the WHIP, the lower the IP). For instance, Justin Verlander’s projected IP in last year’s Streamonator only ranged from 6.4 to 6.7 IP. I will be incorporating these learnings for 2015.

K/9 also saw a slight boost by looking at the last 3 starts. I find this quite interesting. Is it a sign that pitchers exhibit some streakiness with K’s? Are pitchers with recent K success more likely to go for strikeouts than normal? In any case, the impact is very mild. The resulting formula suggests calculating K/9 as roughly 0.5 + 95%*SON K/9 + 11%*(Last 3 Start K/9 – SON K/9). Given the slight improvement in correlation (36.2% to 36.6%), I am not sure this is worth the trouble.

Below is an alternative view at K/9. I grouped pitchers based on how their actual last 3 start K/9 compared to their projected last 3 start K/9. So a pitcher who threw 12 K/9 in their last 3 starts and was projected for 6 K/9 would be at 200%. The results show a positive relationship between a pitcher’s K/9 performance vs expectations in their previous 3 starts and in their next start. After accounting for a baseline underestimation of K-rates (2% underestimation or .12 K/9), the difference in the highest segment is 0.39 K/9 (7.63-7.02-.12)

Actual Last 3 Start K/9 / Projected Last 3 Start K/9 # of Instances Average K/9 in next start Projected K/9 in next start Index Adjusted Index
All 3239 7.47 7.35 102 100
150+% 119 7.63 7.02 109 107
125-149% 460 7.80 7.40 105 104
100-125% 1035 7.64 7.49 102 100
75-100% 1147 7.40 7.36 100 99
50-75% 420 6.83 6.97 98 96
50% or less 58 7.44 7.35 101 100


As we found with hitters, a pitcher’s performance in their Last 3 Starts provides very little to no predictive value that is not already reflected in our Streamonator/DFSBot pitching projections. The two exceptions are innings pitched (which were overly static in 2014 and could benefit from in-season adjustments) and strikeouts (where last 3 start data provided a slight improvement).

As with the hitter analysis, any projection system that ‘learns something new’ on stats like ERA and WHIP from a pitcher’s last 3 starts is either starting from an imperfect projection base, making bad gameday adjustments, and/or is making a false claim.

  1. Red says:

    Interesting. I expected this result for hitters but not for pitchers. Are the last 3 starts incorporated at all in the ROS Streamonater/DFSBot projections?

    • @Red: No, I am not using Last 3 start data yet. I will leverage recent starts for a pitcher’s estimated IP per GS. The only other stat where there’s a benefit is K/9 and the impact is small enough that it’s likely not worth the trouble.

  2. Goose! says:

    Two things (I also posted these on their respective pages but I figured it couldn’t hurt to also comment on your post)

    1) On the weekly hittertron, If I input my hitters names thusly”Yasmani Grandal|Albert Pujols|Kolten Wong|Todd Frazier|Danny Santana|Brett Lawrie|Lucas Duda|Mike Trout|Corey Dickerson|Matt Holliday|Lorenzo Cain|Juan Lagares|Jose Iglesias” It does not show only those hitters for me, but rather appears to still show the entire list.

    2) How do we put “Travis d’Arnaud” into the name box on the hitter tron in a way that only he will show up? His last name appears to bork it.

    Thanks for your help! You guys rock!

    • @Goose!: Regarding #1, I just tried it and it filtered the results. Maybe try again?

      Regarding #2, try this: Travis d’Arnaud. it’s a slightly different apostrophe character. you can replicate by copying his name directly from the results.

      • Goose! says:

        @Rudy Gamble: Those have done the trick! Thanks again!

        • @Goose!: Nice, I’d say I’m on a comment streak but I’d need Grey-like samples for it to have statistical relevance.

  3. Charles says:

    I remember an early post dismissing BvP data due to small sample sizes. What is a large enough sample size? 20 ABs? 30? 50? At some point the data has to be predictive, right? Just curious if the data was available or built in to any of the models.

  4. TarmanGotHim says:

    Arrieta is a dirty, dirty man.

  5. Jake from State Farm says:

    Hey Rudy. Great article as always. I like to tinker with my lineup and looking up the last seven day stats used to be One of my methods. And I swear I usually got burned when taking out someone from my starting lineup. Your last two articles confirmed that. Many thanks. I have a question regarding spending auction dollars. I have a feeling you have written an article on this already but what are your thoughts on spending a large chunk of your budget on the top tier players. I’m in a few keeper leagues with 10-12 keepers and a $260 budget. As most people I try to keep the cheapest players so I have a lot of auction Monopoly money to spend. Do you think it’s more advantageous to sit out the first round or two where the top tier players go, but usually at a huge percentage of your budget or is my team better off with say Miguel Cabrera at $55? I usually wait a bit for most teams to spend their money and beast the middle rounds. One injury to that high priced guy and your screwed. But is the production worth the cost/risk? Thank you again…

    • @Jake from State Farm: Thanks. I go in w/ my auction $ calculations and I generally stick with them. If stars are going at my prices, I’ll grab a couple. If not, I tend to stockpile depth. In keeper leagues, you need to recalculate the auction prices to take discounted keeper prices into account. But I’d still stick w/ the same strategy of getting guys only at my price target. If you do miss out on the ‘stars’, though, best to be aggressive in the middle third of the draft as that’s where quality players are often going at discounted rates.

  6. MGL says:

    This is a little nitty, but correlations are not typically expressed as “percentages.” If anything, r^2 could be, but certainly not “r”. I assume your correlations are r and not r^2 but maybe not.

    • @MGL: Yes, all correlations are r vs r^2. Remove the %s from the post.

      • MGL says:

        @Rudy Gamble: Sorry, I probably should not have said anything, but correlations are 0-1, so you want to express them as a fraction. Expressing them as percentages was fine, since anyone would know what you mean. But if you remove the percentage, you want to move the decimal 2 places.

  7. Blue says:

    I have a hunch, and its just a hunch, that three-start sequences in the beginning of the season might have some information that three-start sequences later in the season don’t. But maybe that is taken care of the in the Steamer rest-of-season forecast.

    • @Blue: the first 3 starts aren’t weighted any more than any other 3 starts. from a scouting perspective, the first 3 starts would carry more weight because it’s more likely a pitcher’s approach will have changed vs the past, velocity changes, etc. I didn’t isolate first 3 starts vs. any other starts for this exercise so I can’t say if this hunch is true or not.

  8. RotoLance

    RotoLance says:

    Rudy, off topic but do the RCL owned % numbers on the player pages mean anything? How often are they updated?

    • @RotoLance: They do mean something. Right now, they are still based on RCL rosters from about opening day. Should have an update on Monday.

  9. Tom says:

    I love the Razzball tools, but I have a question and a couple of suggestions. The question is when I am trying to decided to pick up a hitter for the next 4 days (H2H Daily league OBP but no SB) can I just add the $ values together for each day and compare to get the best hitter over the next 4 days? I have an immediate need as an example. Beltran plays 4 games: $14.5, 16.3, 16.3, 30.6 but Fowler only plays 3: $24.5, 26.3, 23.4. The totals are about the same (but Beltran has some PT risk I think). I don’t have any bench hitters to fill in. Who do I pick up?

    Suggestions to make this tool even more powerful:

    Allow for any range of dates within the next 2 weeks (or for however long you project) to be specified.

    Allow for some flexibility in $ calculation for leagues that have different settings. I’m certain OBP leagues are very popular and just allowing for this change would be huge.

    • @Tom: Thanks. We’re working now on adding in flexibliity for league format. Multi-day is too much work. Daily and weekly is all we’re doing for now.

      It’s a good question whether you can just add up the $. I think it’s fine as you are, in effect, treating an off day as $0. I would TOTALLY go with Fowler as he’s in Coors. While that’s the reason his $ are high to begin with, you get the added bonus of a player facing an old team.

      • Tom says:

        @Rudy Gamble: Thanks Rudy! Maybe you’ll get to the multi day request later this year? H2H daily leagues would love it & it would be very useful for any league to find sort term Dl/injury replacements. I used to be a programmer back in the day. Seems like it would just be a matter of letting the use specify a range of dates, add up the numbers & recalculate rate states for that range and then use your current interface to search the new data set. My guess is that coding this in Java is harder than FORTRAN or COBOL :) Yes, I am that old.

        • @Tom: It is less about building functionality that lets users choose a time range – it’s more the database querying to handle all the variations. I’m already anxious trying to figure out how to handle allowing various category combinations. Time frame would be a whole other variable.

          The $ calculation varies in complexity depending on the report. It’s more complex for longer time frames because I’m dynamically determining league rosters, league stat averages, and then calculating the Point Share totals (aka SGPs). For shorter time frames (like Hittertron), I’m not doing that since it would distort values too much (e.g., hitters/pitchers this past Sunday would have been worth a gazillion)

          If this is just handled via an average, then it’s pretty straightforward. But this is a lower priority than allowing, say, Hittertron users in OBP leagues to adjust the $ from the default 5×5. So just setting your expectations…

          • Tom says:

            @Rudy Gamble: Wow! I had no idea that was all going on behind the curtain. Thanks for taking the time to explain.

          • Tom says:

            @Tom: @Rudy Gamble: Will your OBP league flexibility extent to more than just hittertron? For example, ROS $ calculations?

            • yes, the plan would be for the player raters + streamonator + hittertron. we do have 12 team 5×5 obp and 6×6 obp already available

              • Tom says:

                @Rudy Gamble: Have 10 teams. I assume # of teams in league is 1 of the variables you’re working on, right?

  10. F-Her in the Puig says:

    Yo Rudy!

    Where’s the subscription page and why didn’t you link to it?! You’re paid conversion rate just went down…just kidding, I’m gonna buy a sub anyway.

    • It wasn’t linked in the header? razzball.com/subscriptions

      • F-Her in the Puig says:

        @Rudy Gamble: It was…missed that the first time around…

  11. Johnny says:

    This is awesome! I am happily a subscriber of SON for the season.. I commented in the hitting post asking if there would be one on pitching and BAM!

    Since W’s are such a big (and unpredictable) factor, have you ever done an analysis on SON’s predictions vs. outcomes? I would be curious to see the % of time a team won at each SON W value. There should obviously be a correlation between the higher the W number at % of time the time won, but curious how strong the correlation is.

    Thanks again!

  12. Jac says:

    I know that “Next Week Hitter Projections” are only updated on Mondays and Fridays. Is this why the maximum games any player plays next week is still 6? Will it be updated by noon pacific time today?

    • Jac says:

      @Jac: I don’t mean to be a pest, but is the “Next Week Hitter Projections” going to be updated soon? Still seeing a max of 6 games for anyone and 8 teams play 7 games. Not sure what’s going on.

      • Hmm will dig into it tonight – must be an issue with Sunday pitchers

Comments are closed.