{"id":1483,"date":"2026-06-23T09:21:00","date_gmt":"2026-06-23T16:21:00","guid":{"rendered":"https:\/\/www.kenwalger.com\/blog\/?p=1483"},"modified":"2026-04-23T10:33:47","modified_gmt":"2026-04-23T17:33:47","slug":"sovereign-scout-mlb-pitching-stats-app","status":"publish","type":"post","link":"https:\/\/www.kenwalger.com\/blog\/python\/sovereign-scout-mlb-pitching-stats-app\/","title":{"rendered":"The Sovereign Scout: Tracking 2026 Pitching Performance"},"content":{"rendered":"<p>We are roughly six weeks into the 2026 MLB season, and the &#8220;small sample size&#8221; warnings are finally starting to wear off. While the league is buzzing about Jos\u00e9 Soriano\u2019s absurd 0.28 ERA in Anaheim or the rookie dominance of Parker Messick in Cleveland, I wanted a way to cut through the noise on my own terms.<\/p>\n<p>So, I built a quick web app: <a href=\"https:\/\/github.com\/kenwalger\/pitching-stats\">The Sovereign Scout<\/a>.<\/p>\n<h2>The Goal: Cutting Through the Statcast Fog<\/h2>\n<p>The idea was simple: I wanted a high-speed way to see which starting pitchers are actually commanding the zone and which are just getting lucky. Instead of clicking through endless cloud-based dashboards, I built a local ingestion engine that grabs Statcast data and runs the numbers on my own hardware.<\/p>\n<h2>What the Scout Sees Today (May 12, 2026)<\/h2>\n<p>Running the numbers this morning, a few things jump out that the standard box scores might be missing:<\/p>\n<ul>\n<li>The Workhorse Efficiency: While everyone is watching the strikeout leaders like Jacob Misiorowski (who is currently punching out 14+ per nine innings), the system is highlighting Max Fried. He\u2019s leading the league in innings pitched (33.1) with a WHIP of 0.81. That\u2019s &#8220;Sovereign&#8221; command\u2014efficient, repeatable, and dangerous.<\/li>\n<li>The Command Extremes: My app isn&#8217;t just looking for the &#8220;best&#8221;\u2014it&#8217;s looking for the &#8220;outliers.&#8221; Right now, it&#8217;s flagging Shota Imanaga for having the lowest WHIP in the league (0.72) despite not having the highest velocity. It\u2019s a masterclass in movement over muscle.<\/li>\n<li>The Red Flags: On the flip side, we\u2019re seeing a few veteran arms where the &#8220;late-inning fade&#8221; is starting to show up in the data earlier than usual.<\/li>\n<\/ul>\n<h2>Why Build Your Own?<\/h2>\n<p>You might ask why I didn&#8217;t just check a fantasy site. For me, it\u2019s about Data Agency. By building my own interface, I can weight the metrics I care about\u2014like spin-to-velocity correlation\u2014without having to wait for a third party to update their rankings.<\/p>\n<p>This is just a quick run of the data for now. I\u2019ll likely check back in later this summer to see how these early-season trends hold up once the &#8220;dog days&#8221; of July hit.<\/p>\n<p>Stay tuned\u2014and if you\u2019re a data geek, feel free to poke around <a href=\"https:\/\/github.com\/kenwalger\/pitching-stats\">the repo<\/a>. Alternatively, if you want a glimpse at the interface (rate limits apply) take a look at <a href=\"https:\/\/pitching-stats.onrender.com\/\">the website<\/a>.<\/p>\n<a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-facebook nolightbox\" data-provider=\"facebook\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Facebook\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F1483&amp;t=The%20Sovereign%20Scout%3A%20Tracking%202026%20Pitching%20Performance&amp;s=100&amp;p[url]=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F1483&amp;p[images][0]=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-content%2Fuploads%2F2026%2F04%2Fblog-of-ken-w.-alger-69ea356459290.png&amp;p[title]=The%20Sovereign%20Scout%3A%20Tracking%202026%20Pitching%20Performance\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"Facebook\" title=\"Share on Facebook\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/facebook.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-twitter nolightbox\" data-provider=\"twitter\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Twitter\" href=\"https:\/\/twitter.com\/intent\/tweet?url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F1483&amp;text=Hey%20check%20this%20out\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"twitter\" title=\"Share on Twitter\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/twitter.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-reddit nolightbox\" data-provider=\"reddit\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Reddit\" href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F1483&amp;title=The%20Sovereign%20Scout%3A%20Tracking%202026%20Pitching%20Performance\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"reddit\" title=\"Share on Reddit\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/reddit.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-linkedin nolightbox\" data-provider=\"linkedin\" target=\"_blank\" rel=\"nofollow\" title=\"Share on Linkedin\" href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&amp;url=https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F1483&amp;title=The%20Sovereign%20Scout%3A%20Tracking%202026%20Pitching%20Performance\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px;margin-right:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"linkedin\" title=\"Share on Linkedin\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/linkedin.png\" \/><\/a><a class=\"synved-social-button synved-social-button-share synved-social-size-48 synved-social-resolution-single synved-social-provider-mail nolightbox\" data-provider=\"mail\" rel=\"nofollow\" title=\"Share by email\" href=\"mailto:?subject=The%20Sovereign%20Scout%3A%20Tracking%202026%20Pitching%20Performance&amp;body=Hey%20check%20this%20out:%20https%3A%2F%2Fwww.kenwalger.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F1483\" style=\"font-size: 0px;width:48px;height:48px;margin:0;margin-bottom:5px\"><img loading=\"lazy\" decoding=\"async\" alt=\"mail\" title=\"Share by email\" class=\"synved-share-image synved-social-image synved-social-image-share\" width=\"48\" height=\"48\" style=\"display: inline;width:48px;height:48px;margin: 0;padding: 0;border: none;box-shadow: none\" src=\"https:\/\/www.kenwalger.com\/blog\/wp-content\/plugins\/social-media-feather\/synved-social\/image\/social\/regular\/96x96\/mail.png\" \/><\/a>","protected":false},"excerpt":{"rendered":"<p>We are roughly six weeks into the 2026 MLB season, and the &#8220;small sample size&#8221; warnings are finally starting to wear off. While the league is buzzing about Jos\u00e9 Soriano\u2019s absurd 0.28 ERA in Anaheim or the rookie dominance of Parker Messick in Cleveland, I wanted a way to cut through the noise on my &hellip; <a href=\"https:\/\/www.kenwalger.com\/blog\/python\/sovereign-scout-mlb-pitching-stats-app\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;The Sovereign Scout: Tracking 2026 Pitching Performance&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1515,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pmpro_default_level":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[7],"tags":[1401,1800,1803,1801,1802],"yst_prominent_words":[1209,1218,99,281,237,708],"class_list":["post-1483","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-data-visualization","tag-mlb-2026","tag-open-source","tag-pitching-stats","tag-streamlit","pmpro-has-access"],"jetpack_featured_media_url":"https:\/\/www.kenwalger.com\/blog\/wp-content\/uploads\/2026\/04\/blog-of-ken-w.-alger-69ea356459290.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8lx70-nV","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/1483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/comments?post=1483"}],"version-history":[{"count":2,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/1483\/revisions"}],"predecessor-version":[{"id":1485,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/posts\/1483\/revisions\/1485"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/media\/1515"}],"wp:attachment":[{"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/media?parent=1483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/categories?post=1483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/tags?post=1483"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.kenwalger.com\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=1483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}