It feels like there is something wrong with the report. I would expect the Accounts Receivable balance to be GHS 1,000, based on the spot exchange rate at the transaction date. I believe Manager should recognize the spot exchange rate for the initial measurement of the receivable, rather than treating the invoice exchange rate as merely informational.
The transaction level exchange rate is used only for that specific transaction. As in this case a sale of 100 USD is recorded at an exchange rate of 1USD=10 GHS, the sales account is credited with 1000 GHS.
However, foreign currency balances shown on the balance sheet are valued using the exchange rate defined under Settings > Currencies > Exchange Rates, not the original transaction rate.The reason is that the customer still owes you 100 USD, not 1000 GHS. Since there may be many outstanding foreign currency receivables and payables, the system uses a single current exchange rate to value all foreign currency balances consistently for financial reporting.
That makes sense, but it is technically inaccurate in terms of financial reporting.
The spot rate represents the fair value of the transaction, typically agreed upon by both parties. If the parties do not agree on a specific exchange rate and instead defer to volatile market conversion, it makes little sense to value the receivable or payable using an arbitrary invoice rate. However, when an exchange rate is explicitly stated on an invoice, it is usually the result of a mutual agreement to settle the transaction at that specific rate whether it be a locked rate or a hedged rate.
Because this agreement dictates the expected cash outflow, the asset or liability must be measured based on that contractual reality. Therefore, from the outset, the valuation should reflect the historical circumstances and the agreed-upon cash flows. In that sense, the amount recorded on the balance sheet should indeed represent the true, agreed-upon cash outflow for the transaction.
However, this requires a note of caution: âš ï¸ users should be careful not to misuse this function. It is best practice to update the exchange rate in the system daily and only use the invoice-level override when a rate has been contractually locked. Perhaps a warning notice should be displayed, such as:
Caution:This field should only be used for contractually agreed, locked, or hedged rates. For transactions subject to market fluctuations, please use the system-default daily rate to ensure accurate financial reporting and to prevent discrepancies in your foreign currency gain/loss entries."
Actually, I dont understand why would a foreign customer agree to settle an invoice at a specific exchange rate? If that’s the case, then it’s not really a foreign currency transaction then it is a base currency transaction. You could mention foreign amounts in the Description or some other fields.
Because a foreign customer won’t care about your local exchange rate.
However If they want to pay in foreign currency, then you can use a foreign currency bank or cash account without needing to use foreign currency on invoice.
However if you are after realized and unrealized gains/losses then thats something else. Already discussed. Currently i think a report can show that.
You are missing something. Both parties to a foreign currency transaction may want to lock in an exchange rate. You are assuming the recipient has a USD account and that the foreign currency is always the currency used, but that is not the case. For example, in my country, to control exchange rate depreciation, there was a time when opening foreign currency accounts was halted, and the use of credit and debit cards in foreign currency was also restricted, and this is likely still ongoing. You may bill to show the customer the value in the currency they understand, but it does not always mean you will be receiving the same currency.
For example, an American-based organization may owe you $100 as invoiced, but when it is time to pay, they may not necessarily pay you a hundred dollars. They may instruct their bank to transfer the GHS equivalent to you based on the market rate. The recipient with a GHS bank account may therefore receive the equivalent of $100 based on the prevailing rate at the time of settlement. This may mean the settler has to find more GHS to settle the $100 as a result of the change.
On the side, the seller in GHS may want to lock this in to prevent receiving less GHS compared to the time the invoice was issued based on prevailing market rate.
Actually i mean if exchange rate is locked then the invoice value is always equal to the currency to which the rate was locked to. for example in your above example if exchange rate is locked then customer has to pay 1000 GHS no matter what the exchange rate is at the time of payment right? So what i want to say is this is basically a GHS transaction not USD. However, for representation you may want to show the 100 Dollars in Description or a Custom Field maybe.
That is also not an issue. You can settle invoice of any currency having a bankorcashaccount of some other currency. There is a Currency Amount field where you can enter the amount equivalent to invoice currency.
Anyway i might be missing something but from what i understand this is not a bug. You may add it to ideas.
What you are missing is valuation. That particular transaction is to be valued using a rate different from the systems general exchange rate settings. It overrides the systems exchange rate entry.