I use Beancount. Great community and an awesome web UI beancount-fava.
For my simple needs, this is the one I use.
I guess I could get around it by having "in flight" accounts that deduct the money from the originating account, but at that point it is basically quadruple entry accounting, which seems like an excellent way to make a complete mess of it.
- use your dates. Most people don't need to reconcile every day, and you can pick a day where there are no pending transactions, or few enough to be easily understood.
- use the bank dates. This happens automatically if you import converted bank data.
- use both dates. Eg, your date as the main transaction date, and (when helpful), the bank's date on the bank posting(s) only.
- there's also a primary/auxiliary date feature, but I think it's unnecessary
A simpler way might be to write to ledger and then from there upload to whatever "analysis" package I want
But ... The investment in time is huge and I don't want to find myself trapped. Any feedback on this or others ?
Personally I use Beancount because the BQL query language and the beancount-fava project. Just look at http://fava.pythonanywhere.com/income_statement/ and see it for yourself.