The balance is totally useless for anything like this, as you've seen.
This is useful to me since for my savings account, I will rarely send money out. And when I do and there is a new return address, I will just add that address to my spreadsheet. I wish the client will let me specify a return address and not just create a new one, but that's another topic.
If you would provide the getsentbyaddress or getbalancebyaddress, I can make the spreadsheet use those APIs. Otherwise, html scraping is the best way.