How to track multi currency transactions when prices vary by bank

61 views
Skip to first unread message

Paulo Phagula

unread,
Jul 19, 2019, 6:37:19 AM7/19/19
to Ledger
Hi,

I'd like to know how I should go about tracking transactions with multiple currencies in ledger. To give more context, let me explain my situation.

I live in Mozambique so all of my transactions are made in MT (MZM), I use some services like Dropbox and Netflix which are paid in USD. I buy books on Amazon UK and thus have payments done in GBP. I travel to South Africa to buy some stuff in ZAR.
For each transaction made typically the bank will send me a notification telling me how much I paid in MT and the equivalent in the forex currency.

Even though Mozambique's central bank publishes rates all of these currencies, I find I cannot use commodity pricing (P) entries in my ledger because in the end of the day each bank has a different exchange rate, and on the same day I can make 2 forex payments in the same currency using two different banks.

How should I go about booking these transactions?

Thanks

Martin Michlmayr

unread,
Jul 19, 2019, 6:43:42 AM7/19/19
to ledge...@googlegroups.com
* Paulo Phagula <paulo....@gmail.com> [2019-07-19 03:37]:
> Even though Mozambique's central bank publishes rates all of these
> currencies, I find I cannot use commodity pricing (P) entries in my ledger
> because in the end of the day each bank has a different exchange rate, and
> on the same day I can make 2 forex payments in the same currency using two
> different banks.
>
> How should I go about booking these transactions?

If you use a credit or debit card and you get different rates, I would
use:

2019-07-10 * Shop
Expenses:Foo 1 ZAR @ 4.44 MZM
Assets:Bank1 -4.44 MZM

2019-07-10 * Shop
Expenses:Foo 1 ZAR @ 4.40 MZM
Assets:Bank2 -4.40 MZM

(@ to use an exchange rate; @@ for the total value)

--
Martin Michlmayr
https://www.cyrius.com/

o1bigtenor

unread,
Jul 19, 2019, 8:34:53 AM7/19/19
to ledge...@googlegroups.com
Greetings

I do not use your base currency but I do also use multiple currencies.
For my purposes I use a system that goes like this.

some date some weird payee
; booked as $142.34 usd @ 1.372563 base currency
Expense: blahblah: myexpensecode numberinmybasecurrency
Expense: blahblah2: expensecode2
numberinmybasecurrency
Expense: tax: expensecode3
numberinmybasecurrency
Asset: creditcard1: assetcode
numberinmybasecurrency

my system requires more computational effort (need to calculate every
number in the home currency) but also allows me to track every part of
the expense accurately.
Yes this is a nuisance when there are 8 items in the transaction but
then my system allows me the granularity to follow lots of detail.
This way every transaction can have its own exchange rate. I am
finding that credit cards have different rates at different times as
well so I am not trying to use one exchange rate as a basis for all
transactions for the day.

When I travel and exchange an amount of the base currency into the
foreign currency in cash I treat that transaction as above.
Then when I use the foreign cash to purchase I use my system (above)
and a FX info service (usually Oanda) to find an exchange rate.
This isn't necessarily accurate (as Oanda reports use a different
system for reporting (its more a mid level rate than a retail rate
(and there are lots of those)) but that inaccuracy isn't going to show
until amounts in 4 figures or more are used.
HTH

John Wiegley

unread,
Jul 19, 2019, 7:02:15 PM7/19/19
to Martin Michlmayr, ledge...@googlegroups.com
>>>>> "MM" == Martin Michlmayr <t...@cyrius.com> writes:

You might also want to use fixed prices, like 1 ZAR {=4.40 MZM}, which will
prevent the value from being adjust toward the last market price seen for that
day in certain reports.

2019-07-10 * Shop
Expenses:Foo 1 ZAR {=4.44 MZM}
Assets:Bank1 -4.44 MZM

John

Paulo Phagula

unread,
Jul 22, 2019, 1:14:30 AM7/22/19
to ledge...@googlegroups.com, Martin Michlmayr
Thanks all. I'll go with the @@ solution. 

How do I mark the thread as resolved?



--

---
You received this message because you are subscribed to the Google Groups "Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ledger-cli+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ledger-cli/m2y30teii3.fsf%40newartisans.com.

Pranesh Prakash

unread,
Jul 25, 2019, 12:05:45 PM7/25/19
to Ledger
One other option, just for others browsing this thread in the future, is to use trading accounts, as outlined here:

The benefits is that this approach works in any software: GnuCash, hledger, ledger, beancount, etc., and even paper book-keeping, and leads to accurate accounting (as convincingly demonstrated by Peter Selinger).

The downside is that you lose the ability to have software-specific automation (like auto-calculation of cost-basis, etc., meaning something like "--cost" won't work).

On Monday, 22 July 2019 10:44:30 UTC+5:30, Paulo Phagula wrote:
Thanks all. I'll go with the @@ solution. 

How do I mark the thread as resolved?



On Sat, Jul 20, 2019, 01:02 John Wiegley <jwie...@gmail.com> wrote:
>>>>> "MM" == Martin Michlmayr <t...@cyrius.com> writes:

You might also want to use fixed prices, like 1 ZAR {=4.40 MZM}, which will
prevent the value from being adjust toward the last market price seen for that
day in certain reports.

    2019-07-10 * Shop
        Expenses:Foo               1 ZAR {=4.44 MZM}
        Assets:Bank1                      -4.44 MZM

John

--

---
You received this message because you are subscribed to the Google Groups "Ledger" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ledge...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages