Baseball needs a stat called 'Bases advanced'. The batter would get credit for each base that was advanced because of his plate appearance. It would count 1 for a sacrifice fly and 1 for a sacrifice bunt. It would count 3 for a single advancing a runner from 1st to 3rd. A baserunner (not the batter) gets 1 for every stolen base, as well as each base advanced on wild pitches and passed balls. With only a runner on first, a GIDP would be worth -1, since a base was lost. With runners on the corners, a GIDP with a run scoring is worth 0. Hitting into a triple play would be worth -2, assuming no run scored (which is possible if the 3rd out occurs in a run-down or something like that).
You'd get 10 bases for a grand slam, 8 for a double that knocks in 3 runs, 1 for a lead-off walk, and 4 for a bases-loaded walk. In that way, a bases-loaded walk equals a solo home run, as it should (think about it - both situations add 1 run to the scoreboard without changing the number of outs or the number of baserunners).
I believe that 'bases advanced' divided by all plate appearances would measure offensive efficiency better than any existing statistic. Feel free to go back and calculate it for Mattingly and Clark if you really care.