What happened in April? Here are the five big storylines.

1. Lots of home runs

2. Dogfight in the National League

3. Cody Bellinger and Christian Yelich

4. Defending champs play like chumps

5. Vladimir Guerrero Jr. reaches the bigs

But what about for your team? My April grades with best storyline and one key do-over for each team:

Jump to ...:

The high achievers | The C-class | Hey, at least you passed | Three who failed

The high achievers

Tampa Bay Rays: A+

Best storyline: How good does last July's Chris Archer trade with the Pirates look now? Tyler Glasnow is throwing strikes and dominating, and looks like a potential Cy Young contender after starting 5-0 with a 1.75 ERA in his first six starts. Austin Meadows was off to a .351/.422/.676 start in 20 games before landing on the IL because of a thumb injury.

Mulligan: Blake Snell signed a $50 million extension, so he can afford a proper interior decorator who would have never placed a granite stand right next to the shower that Snell might conceivably try to move and accidentally drop on his toe, breaking the toe and forcing him to miss a start.

St. Louis Cardinals: A

Best storyline: The re-emergence of Marcell Ozuna as a big threat has helped the Cardinals to first place despite playing one of the toughest April schedules. Ozuna was a disappointment last season, but he played through a bum shoulder that affected his output. He's healthy again and among the league leaders in home runs and RBIs. Also boosted by trade acquisition Paul Goldschmidt, the Cardinals now have the punch in the middle of the lineup they lacked last season.

Mulligan: The game plan against reigning MVP Christian Yelich, who has hit .389 with eight home runs and 19 RBIs in 10 games against the Cardinals.

Minnesota Twins: A

Best storyline: Dingers! The Twins homered 49 times in their first 25 games and led the majors in home-run rate and at-bats per home run through Sunday. They look like a lock to beat the franchise record for home runs of 225, set in 1963 -- the longest-standing team home run record. They've taken advantage of a soft schedule -- they're 10-0 against the Orioles, Royals and Tigers -- but that's the path to a division title. Beat up on the weaklings of the AL and hold your own against everyone else.

Mulligan: Everyone applauded the Marwin Gonzalez signing, but he has been helpless at the plate. Miguel Sano isn't expected to return until late May, but Gonzalez's struggles have opened the door for Sano to get a chance at third base.

Los Angeles Dodgers: A-

Best storyline: Cody Bellinger's opening month for the ages has made him the early leader in the MVP race. He has tied the records for most home runs (14) and most RBIs (37) before May 1. His ridiculous "on pace" numbers at the start of the week: .427, 76 HRs, 194 RBIs, 162 runs.

Mulligan: Free agent Joe Kelly signed a three-year, $25 million contract and was supposed to be the primary setup man to Kenley Jansen, but he has been serving up batting practice so far. Warning: Don't pay a guy based just on what he did in October.

Houston Astros: A-

Best storyline: Justin Verlander keeps rolling along as one of the best starters in the game at age 36 -- continuing to show why he's going to end up in Cooperstown one day. After finishing second in the Cy Young voting in 2016 and 2018, you know he'd love to go one spot higher in 2019 and become the oldest Cy Young winner since 42-year-old Roger Clemens in 2004.

Mulligan: The offense hasn't really kicked into gear yet, ranking in the middle of the AL in runs scored, but you do wonder if the Astros still need another left-handed bat. They signed Michael Brantley, who has been excellent, but their only other lefty bats are Josh Reddick and utility man Tony Kemp.

San Diego Padres: A-

Best storyline: The Padres decided not to screw around with the service time of Fernando Tatis Jr. or Chris Paddack, and both have lived up to their prospect hype -- or maybe even exceeded it in Paddack's case. Tatis has hit for average and power, played an excellent shortstop and run the bases with electrifying speed. What a talent. Paddack has merely been one of the best starters in the league.

How new stars are taking over San Diego With a $300 million star and MLB's top prospect, San Diego is home to a team arriving ahead of schedule. Alden Gonzalez

Mulligan: Ian Kinsler looked like a solid veteran signing in the offseason, but he has hit .133 in the early going. Luis Urias was called up, but he hit .083 in 29 plate appearances and was sent back to the minors. Now pinch-hit specialist Greg Garcia might get a chance at second base.

New York Yankees: B+

Best storyline: The Yankees have overcome a rash of injuries to get off to a good start -- heck, it has been so bad that even the injury replacements are getting injured. They were fortunate to have a soft schedule in April -- they finished the month having played only four games against teams that currently have a winning record (three against Houston and one against Arizona). Still, the backups played well enough and Domingo German helped rescue the rotation.

Mulligan: Chad Green's April. Green was as good as any reliever in baseball the past two seasons (13-3, 2.18 ERA, 197 Ks in 144⅔ innings), but after giving up 14 runs and four home runs in 7⅔ innings and losing two games, he was dispatched to Scranton to figure things out.

Seattle Mariners: B+

Best storyline: Dingers! The Mariners hit at least one home run in their first 20 games -- a record for the start of a season -- and bashed their way to a 13-2 start. Reality has set in a bit since, but they've continued to slug away, especially Daniel Vogelbach with his early gaudy batting line of .310/462/.732.

Mulligan: In what was supposed to be a rebuilding year, two of Jerry Dipoto's rebuilding trades don't look good so far. He traded Mike Zunino for Mallex Smith to acquire a center fielder, but Smith has hit under .200 and, more troublesome, looked terrible in center field. It's certainly way too early to pin a final evaluation on Justus Sheffield and Erik Swanson, acquired in the James Paxton deal, but Sheffield's command issues remain a concern, and Swanson has been hit hard in his first three starts.

Arizona Diamondbacks: B+

Best storyline: Christian Walker is a 28-year-old journeyman-type first baseman who spent most of the past five years at Triple-A and entered the season with just 99 PAs over four major league seasons. He has hit like Paul Goldschmidt, however, and it hasn't been a fluke as he ranks in the top 10 in average exit velocity and hard-hit percentage.

Mulligan: Zack Godley wants a do-over, that's for sure. He's 1-2 with a 7.58 ERA through his first six starts, with 18 walks in 29.2 innings.

Philadelphia Phillies: B

Best storyline: Maikel Franco has thrived in the eighth spot in the batting order, adding an exclamation point to a lineup that is as deep as any in the majors. It's a tough lineup for pitchers to navigate, with Bryce Harper, Andrew McCutchen and Rhys Hoskins all among the league leaders in walks. You also get the feeling that there is more in the tank here than what we've seen so far.

Mulligan: What's wrong with Aaron Nola? After finishing third in the 2018 Cy Young voting, his usual command and swing-and-miss curveball haven't been there. He has given up two or more home runs in three starts already, after doing that only three times in 2018. He has pitched in a lot of cold weather, so maybe he'll regain his feel once the temperatures get warmer.

Toronto Blue Jays: B

Best storyline: Vladimir Guerrero Jr. is finally here. Aside from his arrival, here's another reason the Jays have a chance to be a sleeper playoff contender: The rotation has a 3.16 ERA through April, second best in the majors. In a season where so many starters are struggling early, maybe Toronto's rotation will be enough (although Matt Shoemaker was off to a good start and he was lost for the season after tearing his ACL).

Mulligan: Was it really necessary to give Randal Grichuk a $52 million contract extension? He's a nice enough player and now he has taken over center field after the Kevin Pillar trade, but he's still doing Randal Grichuk things: a few home runs, not enough walks, a few too many strikeouts.

Texas Rangers: B-

Best storyline: Hunter Pence has always been one of the most enjoyable players to watch with his unique style of play. He also hasn't been very good the past couple of seasons and is coming off a minus-0.9 WAR season with the Giants in 2018. But he's off to a good start at 36 in a part-time role, and though it's unlikely to continue, it's good to see him playing well in his hometown.

Mulligan: This one's for anyone who drafted Rougned Odor high in their fantasy leagues, thinking he had turned the corner after a strong second half in 2018 that included some semblance of plate discipline for the first time in his career. Alas, he's hitting .145 with one home run, a reminder that he's always going to be an inconsistent -- and frustrating -- player.

The C-class

Chicago Cubs: C+

Best storyline: Yes, that's Jason Heyward hitting .312/.433/.519 entering the week with five home runs and more walks than strikeouts. For all the crap that Heyward has taken from Cubs fans the past couple of seasons, the start must be extra gratifying. Is it for real? His exit velocity is up and so is his launch angle, so maybe these mechanical tweaks will actually stick.

Mulligan: Sorry, Yu Darvish was last year's mulligan (and don't write him off just yet). I do wonder if bringing back Addison Russell -- set to return soon from his suspension for domestic violence -- was not only a questionable moral decision, but unnecessary from a baseball standpoint, with Daniel Descalso and David Bote both playing well and Javier Baez obviously capable of handling shortstop.

Milwaukee Brewers: C+

Best storyline: Dingers! Especially Christian Yelich's dingers -- and he has a lot of them. Like Cody Bellinger, his 14 home runs before May 1 tie the all-time record. Like the Twins and Mariners, the Brewers began the week on pace for 300 home runs, even though Jesus Aguilar didn't hit his first one until Monday. They've also weathered a tough early schedule despite bad starts from Aguilar, Travis Shaw and Ryan Braun and some injuries in the bullpen. Brewers' Yelich on a historic tear How Christian Yelich became a future Hall of Famer in 400 plate appearances.

Sam Miller

Mulligan: Umm, maybe they should have signed a veteran starter? The Brewers got good work last year from a staff of journeyman-type starters, but began 2019 with three second-year pitchers in the rotation. Well, Corbin Burnes pitched his way back to Triple-A, Freddy Peralta is on the IL with a 7.13 ERA and Brandon Woodruff has been inconsistent. They just signed Gio Gonzalez to provide some help.

Detroit Tigers: C

Best storyline: Matt Boyd is putting everything together and is off to a 3.13 ERA with 48 strikeouts and only two home runs allowed in 37⅓ innings. He has the fifth-highest swing-and-miss rate among starters, suggesting he's developing ace-type stuff.

Mulligan: The entire offense. I mean, nobody expected the offense to be any good, but this is one pitiful lineup -- and the Tigers just struck out 20 times in one game against the White Sox. It hasn't helped that Nicholas Castellanos and Miguel Cabrera have combined for only three home runs.

Atlanta Braves: C

Best storyline: The emergence of young starters Max Fried (2.30 ERA in 31.1 innings) and Mike Soroka (1.62 ERA through three starts) gives the Braves a potential one-two dynamo at the top of the rotation -- helping to cover for the bad starts of Sean Newcomb and Kyle Wright that sent that pair back to Triple-A.

The rise of Ronald Acuña Jr. How soon could Ronald Acuña Jr. claim Best Player in Baseball title? Jeff Passan

Mulligan: Hello, Craig Kimbrel? No, the Braves couldn't have anticipated the season-ending injury to Arodys Vizcaino, the projected closer, but even before that injury there were concerns about this bullpen. Through Monday, the Braves' bullpen ranked 28th in the majors in win probability added -- they've led in 11 of their losses. But, hey, good to see Liberty Media stock going up in value.

New York Mets: C

Best storyline: Rookie first baseman Pete Alonso has showed off some of the best exit velocity and raw power in the game while becoming an instant cult hero in Queens.

Mulligan: The Mets are hanging around .500, but would be in even better shape if Jacob deGrom and Noah Syndergaard had pitched better, as they're a combined 3-6 with a 5.70 ERA. They should pitch better moving forward, but the same can't be said for Jason Vargas. It wasn't a good idea to count him as the fifth starter, let alone not to have a good backup plan in case he faltered.

Cleveland Indians: C

Best storyline: Trevor Bauer trash-talking the Astros after a game in which he walked six and struck out three (although escaped giving up only one run in eight innings and beat Gerrit Cole, his old UCLA teammate). Loathe him or dislike him, Bauer has obviously become one of the best pitchers in the league and enters May as the Cy Young favorite given the weak offenses in the AL Central, plus he's the rare starter who pitches relatively late into games on a regular basis.

Mulligan: Maybe the Indians should have listened to all those Corey Kluber trade offers this past winter. Kluber finished third in the Cy Young voting in 2018, but there were a few red flags in his numbers that suggested maybe he's starting the downward slope of his career. So far, he has struggled with his command, and the results have been a career-worst walk rate (more than double his 2018 rate) and his worst OPS allowed since his rookie season (200 points higher than last season).

Colorado Rockies: C

Best storyline: Signing Nolan Arenado to that eight-year, $260 million extension in spring training. Arenado got off to a slow start with no home runs in his first 15 games -- and, not by coincidence, the Rockies also started 3-12. Since then, however, Arenado has done Arenado things, and the Rockies have climbed back into the vicinity of .500

Mulligan: Ian Desmond in center field was never a good idea. Over the previous two seasons, his OPS+ ranked 197 out of 210 players with at least 800 plate appearances. He actually has been better than expected on defense so far (plus-1 defensive runs saved), but he hasn't hit and the Rockies offense isn't good enough to carry a center fielder hitting .196 with a .235 OBP.

Pittsburgh Pirates: C

Best storyline: As expected, the rotation has been very good while the offense has not -- with the exception of Josh Bell. A one-time top prospect, Bell hit 26 home runs in his first full season in 2017 but fell off to just 12 in 2018, producing a disappointing 0.8-WAR season. He's crushing so far, with a big 4 mph increase in average exit velocity and one memorable 474-foot home run. I'd written him off as a potential All-Star-type player, but maybe he does get to that level.

Mulligan: Not building a better bench. Gregory Polanco began the season on the IL (which the Pirates knew would happen), but Corey Dickerson has played only four games, and the injury to shortstop Erik Gonzalez forced the team to rush prospect Cole Tucker to the majors. This has meant too many plate appearances from the bench, which might waste one of the game's best rotations.

Chicago White Sox: C-

Best storyline: Tim Anderson is a player of the month candidate after hitting .375/.394/.615 with six home runs, 10 steals and 21 runs heading into Tuesday's game. He's riding a .435 BABIP that will obviously decline and he has drawn only two walks as he somehow has become even more aggressive at the plate. Maybe he's the rare athlete like Javier Baez who can produce despite poor plate discipline, but major regression appears likely.

Mulligan: Acquiring Manny Machado's pals. Brother-in-law Yonder Alonso is hitting .190 and best bud Jon Jay has yet to play because of injury. And Machado is having fun in San Diego.

Cincinnati Reds: C-

Best storyline: Luis Castillo entered 2018 with a lot of helium and then posted a 5.49 ERA in the first half. He was very good in the second half, however, including a 1.09 ERA in September, and he arguably has been the best pitcher in the majors in April, going 3-1 with a 1.45 ERA and giving up just two home runs in 43⅓ innings. In fact, the entire Cincinnati rotation has been solid, including Sonny Gray, who has been excellent after a bad first outing (although he hasn't won because of poor run support).

Mulligan: Agreeing to take on Matt Kemp as part of the Yasiel Puig/Alex Wood trade. Kemp hit .200 with 19 strikeouts and one walk before landing on the IL. Given his poor defense, he's probably not even worth a roster spot once he returns. In fact, the Reds might want a mulligan on that entire trade. Puig hasn't hit yet and Wood hasn't pitched because of back issues.

Oakland Athletics: C-

Best storyline: Matt Chapman is proving that he's a superstar. His defense is obviously spectacular and he continues to improve at the plate, hitting for power and average while also cutting way down on his strikeouts (he has more walks than whiffs). He finished seventh in the MVP voting last year; he's going to finish higher this season.

Mulligan: The one move the A's made in the rotation was to bring back Mike Fiers. Oops. While he had a 3.56 ERA in 2018, he also gave up 32 home runs and had a 4.75 FIP. Signs pointed to major regression and he has a 7.03 ERA so far.

Hey, at least you passed

Los Angeles Angels: D+

Best storyline: Well, Mike Trout is still awesome.

Mulligan: The Angels gave Matt Harvey a one-year, $11 million contract relatively early in the offseason. That ended up being a slight overpay given the way the market developed. That's not even the issue, however, as Harvey has a 6.54 ERA through six starts. He simply lacks the weapons to put batters away like he did earlier in his career, and his strikeout rate has fallen from 24.9 percent in 2015 (which was still post-Tommy John surgery) to 15.1 percent. Out of 98 qualified starters, he ranks 95th in strikeout rate.

Washington Nationals: D

Best storyline: Well, not the bullpen. Anthony Rendon is earning himself a huge payday in free agency with his monster start.

Mulligan: So, about that Trevor Rosenthal signing ... the problem with the Nationals' bullpen goes much deeper than Rosenthal. Outside of closer Sean Doolittle, there were obvious concerns about the rest of the pen. Rosenthal, coming off an injury, and Kyle Barraclough, who completely fell apart in the second half with the Marlins last year, were the big additions but hardly sure things to set up Doolittle. Mike Rizzo has always had trouble building deep bullpens, and so far this one (5.95 ERA entering Wednesday, 29th in win probability added) has been a disaster.

San Francisco Giants: D

Best storyline: The bullpen is very good, which means the Giants will eventually play a significant role in determining who makes the playoffs -- as in, which NL East team trades for Will Smith?

Mulligan: The Giants already pulled a mulligan on outfielders Connor Joe and Michael Reed, who started the first two games of the season and are already off the 40-man roster.

Kansas City Royals: D

Best storyline: What's weird is the Royals actually have several good storylines despite the awful start. Adalberto Mondesi is one of the most exciting players in the league, Hunter Dozier leads the AL in OPS, Terrance Gore is hitting .438! But Alex Gordon's turn-back-the-clock start is a nice reminder that he was one of the best all-around players in the league from 2011 to 2014, when he averaged 6.1 WAR per season.

2019 MLB Draft Coverage From the names to know to the teams positioned to grab a star, get ready for the 2019 MLB draft. Complete draft coverage

Mulligan: I'm not exactly sure why Chris Owings continues to get so much playing time. Arizona kept him around as a semi-regular for years because of his versatility, but he has never hit much, especially on the road (.608 career OPS). Owings has already sucked up over 100 PAs with poor results.

The three who failed

Miami Marlins: F

Best storyline: Caleb Smith is really good, and it's not a fluke. He has 37 K's in 29 innings and has held batters to a .167 average. He's seventh among starters in swing-and-miss rate (teammate Trevor Richards is eighth) and is fifth in strikeouts, sandwiched between Max Scherzer and Carlos Carrasco. His changeup is one of the best in the game and his slider has turned into a wipeout weapon.

Mulligan: At one point in the offseason or spring training, I mentioned that it was weird the Marlins were handing a job to Peter O'Brien considering he hit .191 in the minors in 2017 and .216 in 2018 with a zillion strikeouts. Somebody on Twitter tried to defend O'Brien. Well, he played nine games, hit .111, struck out a zillion times and is back in Triple-A.

Baltimore Orioles: F

Best storyline: Chris Davis got a hit ... then a home run ... then two more home runs! That was pretty cool, but we have to go with Trey Mancini, who is raking with a .355 average and 17 extra-base hits heading into Tuesday and might actually give the Orioles a legitimate All-Star candidate.

MLB Power Rankings The debut of Vladimir Guerrero Jr. and Gary Sanchez's return helped remix this week's rankings from No. 1 on down. Power Rankings

Mulligan: Dingers! The Orioles gave up 73 home runs in their first 30 games, an incredible pace of 394 over 162 games. The rotation has giving up 39 home runs in just 136⅓ innings.

Boston Red Sox: F-

Best storyline: None, really. Look, relative to expectations, the Red Sox have obviously been the biggest disappointment. It's not just that they're off to a slow start, it's that they've played poorly in all phases of the game. On the bright side, they're almost certain to win at least one Chris Sale start before the season ends.

Mulligan: Taking it easy on the starters in spring training was the cautious approach and maybe the correct one -- but easing into the regular season might be a reason the rotation (other than David Price) has fared so poorly.