Currency (forex) gains and losses on transactions

  1. Does the new version of Tryton handle Currency (forex) gains and losses on transactions easier than before? Ideally, you want to be able to load a series of daily forex rates of reference between pairs of currencies, and the software automatically calculates the currency gains or losses on transaction, and logs the correct entries (debit or credit). This is far far and more efficient than having to calculate each gain or loss separately and then applying it manually. It’s a basic requirement that the likes of Sage, Quickbooks and Xero (and other apps, of course) handle very well. What about Tryton?

  2. Some transactions can be in a foreign currency, but the value in the reporting currency is determined at the time of the transaction, rather than by a standard forex rate of reference that is used for currency gains or losses in your accounts. For example, you buy a product in Euros and the online supplier automatically applies its conversion rate into your reporting currency (e.g., GBP) or you use a payment method that automatically pays in your currency (in this case, the payment provider – e.g., your bank) applies its own forex rate, which can be different from the rate that you use for calculating currency gains and losses? In such a case, you may want to book the purchase in foreign currency and then apply its price in your reporting currency as stated by the supplier, otherwise you may end up with differences of value arising from differences between the forex rate applied in your accounts and that used by the supplier. Being able to input the value in Euros and in GBP, and allowing the system to calculate the actual forex rate is far easier than having to calculate the forex rate manually in order to convert the price from foreign to reporting currency. Does Tryton do that?

This can be done automatically by a scheduled task.

I do not understand. For me there is no gain or lost on a single transaction.
But of course Tryton convert any amount that is in different currency than the company’s.

What is still missing is Update balance account in second currency (#12125) · Issues · Tryton / Tryton · GitLab.

Since Support paying invoice from statement with different currency (#12673) · Issues · Tryton / Tryton · GitLab it is possible to fill another amount in a second currency. So this will define the rate applied in accounting.

Well you must book the supplier invoice in the currency displayed on the invoice.
The statement will mark the invoice as paid if one of the amounts is given in the invoice currency correspond to the amount to pay of the invoice.

Hi Cedric,

Thanks for your message.

Currency exchange gains and losses are a basic of accounting when dealing with currencies other than the reporting currency. Fundamentally, it’s about recognising gains and losses arising from variations in forex rates between a trading currency and a reporting currency. It not only applies to sales and purchases, but also to other events such as hedging.

But, let’s focus on what is most likely to occur, which are gains and losses on trading transactions (sales and purchases of products or services).

Let me illustrate with a example for a company reporting in Euros and selling a product in GBP, paid in GBP, with 60-day payment terms. I’m simplifying matters, not accounting for prepayments (accruals or deferred revenue), and what to do at an inventory and cost of sales level.

a) 15 Jan.: The company issues an invoice to Client ABC for GBP 1,000; on that date, the forex rate GBP to Euro is GBP 1 = Euro 1.10. Therefore, the company expects GBP 1,000 on 15 March. In its accounts, it records Euro 1,100 in sales (credit sales in income statement) and Euro 1,100 in trade debtors (debit trade debtor Client ABC for Euro 1,100). [In fact, you may use 2 accounts for the trade debtor: One in GBP to reconcile invoices and payments in the same currency and another one in Euro to recognise the value of the debtor in Euro, which then flows into the balance sheet]. However, this is one level of complexity that doesn’t need to be covered at this stage.

b) 15 March: Client ABC pays the company Client GBP 1,000. Bank account in GBP is debited for GBP 1,000; on that date, the forex rate GBP to Euro is GBP 1 = Euro 1.15; converting to Euro means that the bank is effectively debited for Euro 1,150. So, GBP 1,000 is worth now Euro 1,150, instead of Euro 1,100. That means that the company must report an excess in revenue in Euros, since this is what it was paid. The gain of Euro 50 (Euro 1,150 minus Euro 1,100) is credited to the Other income (currency gain) on the Statement of Income. The trade debtor account of Euro 1,100 is credited for Euro 1,100. So, if you want to keep all the transactions flowing for this payment: Bank: Debit Euro 1,150; Trade debtor: Credit: 1,150; Debit: 50 (which means that it balances with the initial debit of Euro 1,100); move the Euro 50 to Other income, in order to recognise the currency gain: Credit: 50.

In accounting software such as Sage, this process is automated, which saves a lot of time.

VAT Treatment:

  • VAT is typically calculated based on the invoice amount in the currency of the transaction (e.g., Euros).
  • The VAT amount remains unaffected by exchange rate fluctuations.
  • When you convert the total invoice amount (including VAT) from the foreign currency to Euros, any exchange gains or losses do not impact the VAT amount.
  • Therefore, the VAT treatment remains consistent regardless of the exchange rate fluctuations.

I hope this helps to answer my question: Does Tryton do what I describe automatically or must it be done manually (which involves calculating manually the conversions and the gains or losses, and then making the accounting entries one by one … from experience, this is very laborious and prone to errors)?

P.S.: There’s always an issue of rounding errors in accounting systems and with banks, and the ability to overwrite the amount converted from one currency to another, in order to match invoices and payments to the cent (or penny), is essential (having to make manual adjustments for a few pennies, so that the accounts do not accumulate minute trailing errors, ends up costing more than the pennies they are worth if the IT system and processes are poorly designed or inflexible).

Yes since Unable to pay invoice in another currency (#11500) · Issues · Tryton / Tryton · GitLab.

You can force the reconciliation with a write-off.