It happens sometimes in the MLB, a guy does everything he can to earn an everyday job but never gets the opportunity. Case in point, Jeff Keppinger.
He's not a star in the making, but he is a solid contact hitter who can play a decent shortstop or second base. Keppinger has hit for average at every level of professional ball and has a career minor league line of .321/.374/.420 over parts of 6 seasons and more than 2100 at bats.
Keppinger seems to be a classic example of a player who is knocked for what he isn't rather than celebrated for what he is. Though he doesn't have much power, and walks infrequently, he has tremendous bat control and rarely strikes out. He can put the bat on the ball in just about any situation, and that ability has translated well in limited opportunities in the majors. In fact, entering 2008, his major league career line is .313/.371/.448 over parts of 4 seasons and about 430 at bats.
At the same time, he's 28 and has been traded three times.
Keppinger was a fourth round pick by the Pittsburgh Pirates in 2001 out of the University of Georgia. He wasn't a particularly sexy pick though he did homer twice off Mark Prior in one game of the 2001 College World Series.
Keppinger signed in August and made his pro debut in 2002 for Hickory in the Class A South Atlantic League. He put up a triple slash line of .276/.341/.404 and struck out just 33 times in 478 at bats. He made modest gains in 2002 for Lynchburg in the Advanced Class A Carolina League, but jumped his batting average up to .325.
He began the 2004 season in AA, playing for Altoona in the Eastern League. On July 30, he was traded with Kris Benson to the Mets for Jose Bautista, Ty Wigginton, and Matt Peterson. He was assigned to the Mets' AA team in the Eastern League but was promoted to AAA after just 14 games. He was promoted again to the Major League team after just six games at AAA, and posted a respectable line of .284/.317/.379 over 118 at-bats. His combined minor league line for 2004 was a sterling .339/.397/.417.
After the trade and the August call-up, Keppinger was on the prospect map, weighing in as the #12 prospect in the Mets' system according to the 2005 Baseball America Prospect Handbook. Still, he was given little chance to unseat Kaz Matsui at 2B. BA reported that the Mets wanted to try Keppinger at SS and 3B in spring training to see if he could help the team in a utility role. Whatever they were hoping to see didn't materialize, and Keppinger didn't play a major league game in 2005.
He did put up yet another respectable minor league line, hitting .337/.377/.455 for AAA Norfolk, considered to be a tough hitting environment. Unfortunately his season was over in mid-June when he was taken out on a hard slide trying to turn a double play and broke his kneecap. It was a very costly injury for Keppinger as both Kaz Matsui and his backup Miguel Cairo went out with injuries. Keppinger would have been promoted if healthy but the Mets turned instead to Anderson Hernandez, who acquitted himself well and in the process passed Keppinger in the organizational depth charts.
He returned to AAA in 2006 but was traded to Kansas City on July 19 for Ruben Gotay. Perhaps pressing, and understandably so, he hit just .267 in 60 at-bats for the Royals (though he hit .354 in 32 games for the Royals' AAA team). Presumably convinced they had a quad-A lifer on their hands, the Royals unloaded Keppinger to the Reds on January 10, 2007 for A-ball pitcher Russ Haltiwanger.
I mean no disrespect to Russ or any member of the Haltiwanger family, but I follow prospects pretty closely and I have never heard of Russ Haltiwanger. I'd rather have Jeff Keppinger and I'm fairly sure the Royals would, too. Here's a nice reminder that 60 at-bats isn't enough to properly evaluate a player.
Moving to a new organization, Keppinger once again started the season in the minors in 2007, hitting .367/.418/.471 for an 889 OPS over 240 at bats at AAA Louisville. Granted, at 27 he was old for the level but he had long since earned the chance to show what he could do over a few hundred at bats at the MLB level.
He got that opportunity when Alex Gonzalez was injured, and made the most of it, hitting .332/.400/.477 in 241 at-bats, with 5 HR and just 12 strikeouts against 24 walks.
Just to repeat: that's a batting average of .332. In the major leagues. Had he garnered enough at-bats to qualify, he would have tied for third in the National League batting race with Chase Utley, Edgar Renteria and Hanley Ramirez.
The performance is in the books, but the question remains: was it enough to secure a full-time gig? The Baseball Prospect 2008 annual notes the precarious situation: "Given Dusty Baker's affinity for the Neifis of the world, there's reason to worry that the label 'offensive shortstop' will doom Keppinger in his new manager's eyes."
Keppinger started the 2008 season as the Reds' starting SS, but no one can say right now what will happen when Alex Gonzalez returns to health. It sure looks like Keppinger wants to make the decision as difficult as possible on the Reds, as he's jumped out to a scorching start, with 2 HR, 1 SB and a .435 average in his first 6 games. A sample size that small shouldn't mean much, but you never know with Dusty Baker.
Jeff Keppinger is already 28 this year so he may be as good as he's going to be. That shouldn't doom him to the bench, but it may. Only one thing is certain and that is that Jeff Keppinger will hit, if given the chance.