SportsLine

Daily MLB Free Picks: 2021 Expert Baseball Predictions & Betting Odds

July 3, 2021

Kevin Davis
MLB Expert
VegasInsider.com

MLB Best Bets for Saturday, July 3, 2021

Kevin Davis is locked and loaded with three selections for Saturday, July 3rd.

American League

  • Tampa Bay Rays at Toronto Blue Jays (MLB Network, 3:07 p.m. ET)
  • Boston Red Sox at Oakland Athletics (Fox, 7:15 p.m. ET)
  • Texas Rangers at Seattle Mariners (MLB Network, 10:10 p.m. ET)

Odds per BetMGM – Subject to Change

Tampa Bay Rays at Toronto Blue Jays

Best Bet: Toronto ML (-115)

Probable Pitchers (2021 Records)

  • Shane McClanahan LHP (3-2, 4.09 ERA)
  • Ross Stripling RHP (3-4, 4.27 ERA)

This weekend, the Toronto Blue Jays are hosting the Tampa Bay Rays in Buffalo in what should be a competitive AL East divisional matchup. Both teams are doing well this year as Tampa is in second place with a 47-35 record and Toronto has a 42-38 record.

Despite Tampa Bay being four games ahead of Toronto in the standings, there is parity between both teams. The Rays have a +65 run differential and the Jays have a +74 run differential. Despite having a better record than Toronto, on average Tampa Bay wins each game by fewer runs than Toronto.

Pitching for the Rays is LHP Shane McClanahan who has done decently this season as a rookie. Going into this season, McClanahan had only 18 1/3 innings of experience past Single-A.

This season with Tampa, McClanahan has a 4.09 ERA, and a high strikeout rate. Additionally, McClanahan has a 3.07 xFIP which shows that he should be allowing one fewer run per nine innings than he is currently allowing.

What is xFIP? xFIP is Expected Fielding Independent Pitching and it is a great “nerd stat” for measuring how many runs a pitcher should allow over nine innings independent of fielding and ballpark effects.

While McClanahan has done well this season, he has the misfortune of going against Toronto’s lineup. The Blue Jays average 5.13 runs per game which is the third most in MLB.

Additionally, the Blue Jays hitters have a 106 wRC+ against LHP’s which is the 5th best in the league. At “home” with a strong lineup, Toronto should win on Saturday.

What is wRC+? wRC+ is a “nerd stat” which measures how many runs a player creates against the league average. An average player has a wRC+ of 100, while a player like Mike Trout has a wRC+ of around 160.

Boston Red Sox at Oakland Athletics

Best Bet: Boston ML (+116)

Probable Pitchers (2021 Records)

  • Garrett Richards RHP (4-5, 4.96 ERA)
  • Cole Irvin LHP (6-7, 3.64 ERA)

One American League matchup this weekend with playoff ramifications is between the Boston Red Sox and the Oakland Athletics. Boston has a 52-31 record and are on track to win the AL East and 101 games. Oakland has a 48-36 record and are in second place in the AL West.

In a hotly contested and nationally televised game on Saturday night, Oakland is favored. However, according to my model the Red Sox should be narrow favorites.

Out of all thirty MLB teams, only the Houston Astros average more runs per game than the Boston Red Sox. The Sox average 5.18 runs per game which means that to beat them, you must quiet their bats. Pitching for the A’s is LHP Cole Irvin who appears to be decent after the A’s got him for virtually nothing this winter.

Irvin has a 3.64 ERA and is averaging nearly six innings per start. However, Irvin is averaging only 6.51 strikeouts per nine innings and has an xFIP of 4.65 which is more than a full run higher than his ERA.

For the second half of the season Irvin is a good regression candidate, and the Red Sox hitters have been strong against lefties. As +116 underdogs, the Red Sox are a good bet as they should be small favorites.

Texas Rangers at Seattle Mariners

Best Bet: Texas ML (+125)

Probable Pitchers (2021 Records)

  • Jordan Lyles RHP (3-5, 5.12 ERA)
  • Marco Gonzales LHP (1-4, 5.10 ERA)

This weekend the matchup that I am most excited about from a betting angle is between the Seattle Mariners and Texas Rangers. Seattle has a 43-39 record and are surprisingly competitive after playing half of their games. Texas has a 32-49 record and are in last place in the AL West.

Yet when you look more closely at both teams, there is more parity than their records indicate. That is why I backed the Rangers on Friday, and for Saturday’s game I am betting on them again.

One way to analyze how teams should play in the future is not in looking at their records, but in looking at if they have been lucky. The Mariners have a -42 run differential meaning they lose each game by an average of .51 runs. The Rangers have a -52 run differential meaning they lose each game by an average of .64 runs.

As a result, Seattle has a 36-46 Pythagorean record, while Texas has a 35-46 Pythagorean record. Based on how both teams have played, the Mariners are barely a better team than the Rangers.

What makes Saturday’s game hard to handicap is that both starting pitchers are equally mediocre. Rangers’ right-hander Jordan Lyles has a 5.12 ERA, and a 4.92 xFIP in 84 2/3 innings. Mariners’ southpaw Marco Gonzales owns a 1-4 record with a 5.10 ERA, and a 4.79 xFIP in 47 2/3 innings.

In my opinion what sets Lyles apart is that in his last two starts he pitched well. In his last start against Kansas City, Lyles tossed seven innings and only allowed one earned run.

In his previous start against Oakland, Lyles allowed only two earned runs in six innings of work. If Lyles can pitch that well against Seattle, then Texas should win outright as a +125 underdog.


The Rangers have fared well of late as they continue their series at Seattle on Saturday. (AP)

Best Bet Tracker

  • Toronto ML (-115)
  • Boston ML (+116)
  • Texas ML (+125)

Free Picks – Year to Date Record: 94-95-1, +10.87 Units, +6.3% ROI

Who is KD and how does he handicap his MLB Best Bets?

My MLB handicapping model is based on the baseball Pythagorean theorem where you can predict a team’s winning percentage based on how many runs they score and allow over the course of the season.

I make projections on how many runs each player scores or allows for how that team’s projected roster for that day would do over the course of a full season.

Once I have a projected winning percentage for both teams, I have a formula I use to determine each team’s probability of winning.

For example, I calculate what percentage of games a .500 team wins against a .400 win team.

Follow him on Twitter at @BoogieDownPicks

Daily Newsletter – Sign Up Today!

Sign up to get daily betting columns and advice delivered directly to your inbox.

https://img06.en25.com/i/livevalidation_standalone.compressed.js<![CDATA[function handleFormSubmit(ele) { var submitButton = ele.querySelector('input[type=submit]'); var spinner = document.createElement('span'); spinner.setAttribute('class', 'loader'); submitButton.setAttribute('disabled', true); submitButton.style.cursor = 'wait'; submitButton.parentNode.appendChild(spinner); return true; } function resetSubmitButton(e){ var submitButtons = e.target.form.getElementsByClassName('submit-button'); for(var i=0;i<submitButtons.length;i++){ submitButtons[i].disabled = false; } } function addChangeHandler(elements){ for(var i=0; i<elements.length; i++){ elements[i].addEventListener('change', resetSubmitButton); } } var form = document.getElementById('form270'); addChangeHandler(form.getElementsByTagName('input')); addChangeHandler(form.getElementsByTagName('select')); addChangeHandler(form.getElementsByTagName('textarea')); var nodes = document.querySelectorAll('#form270 input[data-subscription]'); if (nodes) { for (var i = 0, len = nodes.length; i < len; i++) { var status = nodes[i].dataset ? nodes[i].dataset.subscription : nodes[i].getAttribute('data-subscription'); if(status ==='true') { nodes[i].checked = true; } } }; var nodes = document.querySelectorAll('#form270 select[data-value]'); if (nodes) { for (var i = 0; i < nodes.length; i++) { var node = nodes[i]; var selectedValue = node.dataset ? node.dataset.value : node.getAttribute('data-value'); if (selectedValue) { for (var j = 0; j < node.options.length; j++) { if(node.options[j].value === selectedValue) { node.options[j].selected = 'selected'; break; } } } } } this.getParentElement = function(list) { return list[list.length-1].parentElement}; var dom0 = document.querySelector('#form270 #fe1869'); var fe1869 = new LiveValidation(dom0, { validMessage: “”, onlyOnBlur: false, wait: 300} ); fe1869.add(Validate.Presence, { failureMessage:”This field is required”} ); fe1869.add(Validate.Format, { pattern: /^([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})$/i, failureMessage: “A valid email address is required”} ); var dom1 = document.querySelector('#form270 #fe1870'); var fe1870 = new LiveValidation(dom1, { validMessage: “”, onlyOnBlur: false, wait: 300} ); fe1870.add(Validate.Custom, { against: function(value) { return !value.match(/(telnet|ftp|https?)://(?:[a-z0-9][a-z0-9-]{0,61}[a-z0-9].|[a-z0-9].)+[a-z]{2,63}/i); } , failureMessage: “Value must not contain any URL's”} ); fe1870.add(Validate.Custom, { against: function(value) { return !value.match(/(]+)>)/ig); } , failureMessage: “Value must not contain any HTML”} ); fe1870.add(Validate.Length, { tooShortMessage:”Invalid length for field value”, tooLongMessage: “Invalid length for field value”, minimum: 0, maximum: 35} ); fe1870.add(Validate.Presence, { failureMessage:”This field is required”} ); var dom2 = document.querySelector(‘#form270 #fe1871’); var fe1871 = new LiveValidation(dom2, { validMessage: “”, onlyOnBlur: false, wait: 300} ); fe1871.add(Validate.Custom, { against: function(value) { return !value.match(/(telnet|ftp|https?)://(?:[a-z0-9][a-z0-9-]{0,61}[a-z0-9].|[a-z0-9].)+[a-z]{2,63}/i); } , failureMessage: “Value must not contain any URL’s”} ); fe1871.add(Validate.Custom, { against: function(value) { return !value.match(/(]+)>)/ig); } , failureMessage: “Value must not contain any HTML”} ); fe1871.add(Validate.Length, { tooShortMessage:”Invalid length for field value”, tooLongMessage: “Invalid length for field value”, minimum: 0, maximum: 35} ); fe1871.add(Validate.Presence, { failureMessage:”This field is required”} ); var dom3 = document.querySelector(‘#form270 #fe1872’); var fe1872 = new LiveValidation(dom3, { validMessage: “”, onlyOnBlur: false, wait: 300} ); fe1872.add(Validate.Presence, { failureMessage:”This field is required”} ); ]]>

   corner graphic

Advertisement

Source

Sportsbook
Welcome to SportsBook-Live.com. Please register to our site, As more States become Available for Online Gambling, We will automatically upgrade your status from Subscriber to Player. Please note we are not affilliated in any way with ESPN, CBS Sports, Home depot or CitiBank GameDay Programs. https://sportsbook-live.com
https://sportsbook-live.com