[GNC] Kind of a Philosophical Question about Transaction Dates
Jim DeLaHunt
list+gnucash at jdlh.com
Mon Mar 2 20:56:45 EST 2026
Tom:
Interesting question. And deeper that it may sound!
On 2026-03-02 17:00, Tom Route36 wrote:
> …Any transaction in GnuCash always involves at least two accounts.
> For example, when you make a payment to a credit card account you're
> debiting funds from your checking account, and crediting those funds
> to your credit card account. My question here is about how folks
> choose to enter the transaction dates in GnuCash.
> …If you use Feb. 27th, the transaction date differs from your next
> month's bank statement. But if you use March 2nd, the date differs
> from your next credit card statement.… I was just curious how other
> folks deal with these kinds of date differences.
Most transactions I enter into GnuCash are not instantaneous. They take
non-zero time, often more than a day, from when they start to when all
the settlement of all the parties is finished. There can be four days
from when an interbank transfer leaves my investment account to when it
arrives in my chequing account. There can be weeks between when I write
a paper cheque, to when the recipient deposits the cheque, to when my
bank takes the funds from my account. Different parties can report
different times when they participated in the transaction, for instance,
the moment when I wrote the cheque, the moment when the recipient
received the cheque, the moment when the recipient deposited the cheque,
the moment when the receiving bank requested funds from my bank, the
moment when my bank took the funds from my account.
Yet GnuCash's data model has room for only one time value per
transaction, and that time value is in increments of calendar days, no
finer.
Clearly what the GnuCash data model can store will be a simplification
of what actually happens in the transaction. I need to choose one moment
from the many moments when steps happened in the transaction. I need to
record that moment with day granularity.
I choose to record the date which is closest to my first action in the
transaction. For a credit card purchase, when I made the purchase. For a
cheque, when I write it. For funds I receive, when I deposit it. When my
bank credits me interest, when they say they credited it. I usually
choose to disregard how long the transaction takes to complete.
The purpose of my bookkeeping is to help me understand my financial
situation to the level that I need to understand it. The actual duration
of a transaction is often immaterial to my financial situation, so I
don't need to worry much about which date I choose to represent the many
moments of a transaction.
You can imagine a data model which includes a time value, to microsecond
accuracy, of every event that happens as part of a transaction. There
may be some bookkeepers which need that kind of data to be able to
understand their financial situation. GnuCash is not designed for them.
Best regards,
—Jim DeLaHunt\
More information about the gnucash-user
mailing list