We Added Minor League Level to THE BOARD!
We’ve added a column on THE BOARD called “Current Level” displaying the most recent minor league level the prospect has played at or has been transacted to.
The process of programmatically determining a prospect’s current level is slightly less straight forward than it might seem. For example, Vladimir Guerrero Jr. is currently a Blue Jays non-roster invitee, so his Minor League Baseball stat page has him listed as Blue Jay, but he hasn’t played a MLB game.
To mitigate problems like this, we are using a combination of our game logs and MLB’s transaction list, along with some logic to determine the prospect’s level. Here’s the summary of the logic:
- If the prospect hasn’t played in the majors, he cannot have the majors as his level.
- We look at the most recent minor and major league games the player has played and find the game with the most recent date.
- We look at the most recent transaction MLB has listed.
- We compare the transaction and last game to determine which is more recent and use that for level, with consideration of the MLB debut.
This logic will prevent prospect non-roster invitees in Spring Training from displaying as being at the major league level. The transaction and game log approach will provide some robustness against any errant transaction data. Since this is programmatic, there isn’t any judgement on whether an assignment is temporary, like a rehab stint would be.
If you notice any errors, there could be a delay because the data processing runs overnight, but if it persists, please let us know.
I build things here.

Thank you! This sounds a lot more complicated than I would have thought, but the way you have it done will avoid problems that could be caused by rehab assignments or temporary use as an emergency replacement.
So I noticed that if you go back to previous years’ lists that the level listed as where they are now. (For example, Guerrero is listed as AAA on the 2017 list.) I realize how difficult to program what you have was, and I appreciate all of the work that has been put into the BOARD. However, would it possible to put a lock on their 2018 level, once prospects get promoted this year? For example, (once the Blue Jays gain their extra year of control) Guerrero on the 2019 list will now say MLB, but on the 2018 list he will still be listed as AAA. Of course, retroactively doing anything for 2017 is out of the question, but for the future. Love the effort being put into all of this!
That’s not a bad idea, though it would have to be another stat column called like List Level.
This is amazing! I was literally just wishing for this last night as I was doing some prospecting in the lists.
Would it now be possible to add “level” as a filter?
Yep! That’s on my to do list for this.
That’s awesome..Thank you again.
Looks like Paddack is listed in R even though he pitched in AA last season.
Good catch. That might be picking up the AZL stint. I’ll try to correct that.
On his player page, beneath his name, it also says (R) as his level. Is that pulling from the same source?
Yeah, same source.
Is risk an indication of the difference in floor vs ceiling?
Yeah, Eric and Kiley use risk to communicate variance of possible outcomes.