Google sheets, track my income across the top horizontally (I usually enter it every month or so, going through my bank account to catch all income-related deposits), have it calculate 10% of each month's income. Then that whole row (the 10% row) gets added together and sent to a single cell, titled "maaser owed."
Then I have a column with all the donations I give, and that's added to a cell next to the "owed" cell, titled, "Maaser given." It's set up to combine the 2 for a 3rd cell, "current balance."