2021 Seattle Mariners Top Prospects List - Table Contest Submission

2021 Seattle Mariners Top Prospects List

Authors: Mat Adams
Affiliations: Prospects Live

Abstract: A shiny app that displays a top prospect list for the Seattle Mariners, a Major League Baseball team. The app has two {reactable} table outputs. The default is a mobile device view, the other a desktop view, filterable by position. Expanding the row for a player presents a full scouting report with video (if available) in the mobile view.

Full Description: Our site, prospectslive dot com, specializes in content focused on Major League Baseball (MLB) prospects. Many of our posts are lists ranking the top prospects in baseball. Our biggest post of the year focuses on the Top 100 prospects and comes out annually in January. Prior to the Top 100 release we create top prospect lists for each MLB team. These posts combine to act as a comprehensive look at all MLB prospects, and in total rank 1300+ players across the 30 MLB teams.

This shiny application is one example of our team lists, specifically the top prospects for the Seattle Mariners. The main problem that we attempted to solve with this application was to make the list and player information user friendly on mobile devices, as that is where we receive the majority of our traffic. These were the elements that we needed to have:

  1. An easily digestible list of players where the user could quickly read through the list of players.
  2. A more traditional table view that listed out more player details such as age, highest level played and individual tool grades.
  3. An easy way to read through and toggle between full player scouting reports.
  4. A templated approach where a csv would populate all contents of the list and scouting reports (we are building 30 of these lists).

The reactable package was a perfect fit for our needs. For both the mobile and desktop tables, the row expansion that the package offers allowed us to house our scouting reports and player video at just a click away. The column width options allowed us to build a table that worked seamlessly on mobile devices.

An additional problem we encountered was that not all scouting reports look the same. For hitters, the scouting reports detailed hitting grades while the pitcher scouting reports detailed pitch grades and mechanics. The reactable "details" option allowed us to conditionally build elements into the UI. For example, if the blurb for mechanics was blank in our csv it would skip over that part of the report.

The only issue we've had (outside of shiny load quirks that are likely the fault of the author) is that the load time is fairly substantial. Thankfully this hasn't been a sticking point for users, but if anyone has suggestions to optimize the code for quicker load we are all ears! At this point we have just thrown more computing power at the problem.


Table Type: interactive-Shiny
Submission Type: Other
Table: https://www.prospectslive.com/lists/2020/11/8/seattle-mariners-2021-prospect-rankings
Repo: https://github.com/smadaplaysfantasy/TeamProspectBoard
RStudio Cloud:
DT package used:
gt package used:
reactable package used: true
flextable package used:
huxtable package used:
kableExtra package used:
Other packages: