It can be software as well.
You can use the BetterBatteryStats app to see if any apps prevent the phone from sleeping or do other inefficient things.
Since I got the phone 1,5y ago I once or twice also had that the reported battery level was not in sync with the actual battery level. That was...