Multi-day/leg transaction

70 views
Skip to first unread message

Yogesh Thambidurai

unread,
Aug 20, 2025, 1:02:42 PMAug 20
to Beancount
Hi All,

I'm getting started using bean count and something that's throwing me off is keeping track of transactions over multiple days. 

An example might be dinner with a group of friends. On the day of, I might put my card down to pay. Over the next 1-2 days, my credit card would post, I'd receive bonus points, and my friends might send me a Zelle with their payments. This process would span 4-5 days. Ideally, the sum of this process would come out to zero and I could verify this with bean count, ensuring that all money is accounted for. I could also tag each posting with the actual date it happened, so I can double check with my printed statements. 

My issue with bean count as I've learned it so far is that transactions are limited to single days. I either need to sacrifice point-in-time accuracy to record all postings on a single day, or sacrifice easy verifiability and recording postings as separate transactions. Right now, I'm going with option two and linking together the separate transactions, as the docs seem to suggest. This is working okay right now, but I'm having to go through my links and manually verify them.

I did find this proposal for settlement dates, which would seem to be the solution I'm looking for. However, it's dated back 10 years and I don't think it's been actioned upon. 

Does anyone have advice to share on accounting for these drawn out transactions?

Thanks,
Yogesh

Timothy Jesionowski

unread,
Aug 20, 2025, 4:22:27 PMAug 20
to bean...@googlegroups.com
Using accounts receivable for your friends paying you back is the GAAP solution, so it's what you probably want to do over time. That's how I track my roommates contributions to rent and utilities.

Posting dates with credit cards though, you would essentially charge the initial expense to Liabilities:Bank:Credit-Card:Unposted, then transfer to Liabilities:Bank:Credit-Card:Posted the same day or a few days later. That's a lot of extra effort. This is where you gotta remember that bookkeeping is something you do because the numbers you get are useful, and there's (usually) nothing stopping you from making simplifying assumptions. In this case, what I do is charge the expense to Liabilities:Bank:Credit-Card on the transaction date and just assume that "posting" happens eventually.

You can do whatever you want here though. This is where accounting becomes more of an art and less of a science. I've even heard of people who don't import their credit card statements and just record the payments from their bank accounts as expenses. That's pretty extreme because you lose the ability to categorize your expenses and you lose the knowledge of when the dollars were spent, but so is insisting on modeling every finicky nuance of every transaction. 



Sincerely,
Timothy Jesionowski

--
You received this message because you are subscribed to the Google Groups "Beancount" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beancount+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/beancount/3bf5a7d9-0e8a-4168-a1dd-a49f9f87ccc5n%40googlegroups.com.

Red S

unread,
Aug 20, 2025, 5:06:32 PMAug 20
to Beancount

For the example case you posted, accounts receivable as the other poster said.

For a subset of cases where a set of transactions must add up to zero eventually, I wrote and use the zerosum plugin.

Red S

unread,
Aug 20, 2025, 5:10:27 PMAug 20
to Beancount

Also, I pasted your message into GPT with a “can you give them example beancount transactions for their use case?” at the end:

1) Dinner day (you front the whole bill; record your share as expense, friends as IOUs)

2025-08-01 * "Miya Sushi" "Group dinner" ^grp-dinner-2025-08-01 ; You can add real-world details on the txn or postings: ; auth_date: 2025-08-01 Expenses:Food:DiningOut 60.00 USD Assets:Receivable:Friends:Alice 60.00 USD Assets:Receivable:Friends:Bob 60.00 USD Assets:Receivable:Friends:Carol 60.00 USD Liabilities:CC:Chase -240.00 USD

2) Reimbursements arrive by Zelle on different days (clear the IOUs)

2025-08-03 * "Zelle from Alice" ^grp-dinner-2025-08-01 ; posted: 2025-08-03 Assets:Bank:Checking 60.00 USD Assets:Receivable:Friends:Alice -60.00 USD 2025-08-04 * "Zelle from Bob" ^grp-dinner-2025-08-01 Assets:Bank:Checking 60.00 USD Assets:Receivable:Friends:Bob -60.00 USD 2025-08-04 * "Zelle from Carol" ^grp-dinner-2025-08-01 Assets:Bank:Checking 60.00 USD Assets:Receivable:Friends:Carol -60.00 USD

It gave a much more comprehensive answer, you might want to check it out for yourself!




On Wednesday, August 20, 2025 at 10:02:42 AM UTC-7 yog...@gyoge.com wrote:

Brian Lalor

unread,
Aug 20, 2025, 7:06:34 PMAug 20
to bean...@googlegroups.com
Lots of good suggestions. For different transaction/posting dates I find Reds’ effective_date plugin fantastic. It seems like it might be the defacto solution to settlement dates. 
— 
Brian Lalor (he/him)

On Aug 20, 2025, at 1:02 PM, Yogesh Thambidurai <yog...@gyoge.com> wrote:

Hi All,
--
Reply all
Reply to author
Forward
0 new messages