automated transaction tips

46 views
Skip to first unread message

Tavis Ormandy

unread,
Aug 21, 2024, 11:36:03 AMAug 21
to ledge...@googlegroups.com
This trick saved me from a serious mistake this morning, so thought I
would mention it in case anyone else hadn't seen it!

The idea is to use automated transactions to check for common data entry
errors. For example, this check will make sure I don't accidentally
subtract from expenses:

; It's usually a typo to substract from Expenses, unless it's a refund.
= expr "amount < 0 and account =~ /^Expenses:/"
assert has_tag('refund')

Now you have to tag a transaction as a refund or you get an error, this
saved me a few times!

2024/08/01 * Store
Expenses:Groceries -$10 ; :refund:
Liabilities:Creditcard

Here are a few more I use to check for suspicious dates:

; If a transaction is still not cleared, that is odd.
= expr "pending and date < [30 days ago]"
assert cleared

; Check for suspicious future dates. This will break --now, so handle that.
= expr "date > [tomorrow] and !options.now"
assert pending

I also like all dividend payments to have the associated commodity
tagged, this way I can group them by commodity:

$ ledger bal --no-total --price --group-by "tag('dividend')" %dividend
FOO
$12.34 Assets:Brokerage
BAR
$56.78 Assets:Brokerage
BAZ
$90.12 Assets:Brokerage

That only works if I don't forget, so I make sure like this:

account Income:Dividend
assert all(amount < 0 or (has_tag('dividend') or !actual))

Now I have to do this, so ledger knows what commodity paid a dividend:

2024/01/01 Broker
Assets:Brokerage $123 ; dividend: FOO
Income:Dividend

I use a bunch more to check for consistency and sanity, but just some
quick examples :)

Tavis.

--
_o) $ lynx lock.cmpxchg8b.com
/\\ _o) _o) $ finger tav...@sdf.org
_\_V _( ) _( ) @taviso

John Wiegley

unread,
Aug 21, 2024, 12:46:21 PMAug 21
to Tavis Ormandy, ledge...@googlegroups.com
>>>>> "TO" == Tavis Ormandy <tav...@gmail.com> writes:

TO> I use a bunch more to check for consistency and sanity, but just some
TO> quick examples :)

These are awesome, thanks for sharing, Tavis!

John

Stanko Trček

unread,
Aug 21, 2024, 3:03:21 PMAug 21
to Ledger
Thank you, very useful.
Reply all
Reply to author
Forward
0 new messages