In 2009, the Seattle Mariners finished last in the American League in scoring.
In 2010, the Mariners finished last in scoring.
In 2011, the Mariners finished last in scoring.
In fairness to the M's, Safeco Field is a pitcher's park. But it's not that much of a pitcher's park. Their home explains some of the Mariners' inability to score runs, but not all or even most of it. The Mariners have failed to score runs largely because their hitters, as a group, have been pretty awful.
In 2012, the Mariners rank sixth in the American League in runs.
They've scored more runs than the Detroit Tigers! And also the Orioles, Indians, Rays, Twins, Angels, Royals, and Athletics. They've scored 55 runs in their last six games. Was getting Chone Figgins out of the lineup really all they needed, all this time?
Or maybe, just maybe, it's a mirage.
For one thing, the M's have scored only 12 more runs than the Rays, who rank 10th; five teams have scored between 230 runs (Tampa Bay) and 242 runs (Seattle). For another, the Mariners have actually played three or four more games than each of the teams right behind them, and it turns out the M's are actually 10th in the league in runs per game.
But wait! It gets worse!
The Mariners rank 13th in the league in both slugging and on-base percentage. But they're third in OPS with runners in scoring position and two outs, and third in OPS with the bases loaded. Which might be magic and might be skill, but probably is luck.
But wait! It gets better!
While the M's are 13th in the league in overall OPS, they're actually sixth in road OPS. They don't have any great hitters, but they have some good young hitters who might be great, and some plain young hitters who might be good: Justin Smoak, Dustin Ackley, Michael Saunders, Kyle Seager, and Jesus Montero.
That road OPS might be something of a mirage. But things really are getting better, hitting-wise.
Then again, they sort of had to.