The AI FX Exposure Monitoring Agent: How It Surfaces Currency Risk in Odoo and MYOB Acumatica
An AI FX exposure agent revalues open foreign-currency debtors and creditors in Odoo 20 or MYOB Acumatica at today's rate and drafts an alert a person reads.
By Josh Craig, Managing Director, Auboros · · Updated
Updated 19 October 2026: rebuilt to the current post format with a short answer, an At a glance agent spec, five question headings, a captioned who-does-what table and a fifth FAQ. The Odoo section now covers Odoo 20 (the rate services in the Enterprise source, the Unrealized Currency Gains/Losses report and its adjustment entry, scheduled agents and the MCP server), the MYOB section is rebuilt on the Revalue AR Accounts form reference and MYOB’s current AI page (AI Studio preview wording removed), the ATO and RBA rate guidance is quoted from the current pages, and the worked example figures were recomputed. Byline unchanged.
An AI FX exposure monitoring agent reads open foreign-currency receivables, payables and unbilled orders in Odoo or MYOB Acumatica, revalues them at the day’s published rate and drafts an alert when the unrealised gap crosses a threshold you set. It hedges nothing and posts nothing. As at 19 October 2026 neither platform ships that alert layer; both ship the period-end revaluation it sits between, and a person reads every alert.
At a glance
- Who it is for: finance managers, CFOs and owners of Australian importers, exporters and distributors who invoice or buy in USD, EUR, GBP or NZD on Odoo or MYOB Acumatica and only see the currency gap at month end.
- Problem it solves: the unrealised gap on open foreign-currency positions is visible in the ERP every day and nobody looks until the revaluation run, by which time the conversation with the bank is a post-mortem.
- Platforms: Odoo 20 Enterprise (multi-currency accounting, automatic rate updates, the Unrealized Currency Gains/Losses report) and MYOB Acumatica (Currency Management, Revalue AR Accounts and Revalue AP Accounts). Both revalue at period end; neither alerts between periods.
- Trigger: a scheduled run, weekly for most businesses and daily when a single currency position is large relative to monthly margin, plus an on-demand run before a bank or supplier conversation.
- Inputs read: open customer invoices and supplier bills in foreign currencies with their booked rates, confirmed sales and purchase orders not yet invoiced, the current rate table in the ERP, and the day’s rate from the source you nominate.
- Systems: the ERP’s read access (in Odoo 20, the built-in MCP server’s read-only tools or a scoped API key, or an Odoo agent summoned by a scheduled action; in MYOB Acumatica, the REST API under a role that reads AR, AP and currency rates and nothing else) and a model from your approved-tool list.
- What the agent drafts: a plain-English exposure summary, itemised by currency and by the ten largest positions, with the booked value, today’s value, the movement since the last run and which rate source it used.
- Approval gate: one. The finance manager reads the summary and decides whether anything happens next: a call to the bank, a word with a slow-paying debtor, early settlement of a bill, or nothing.
- Audit trail: each summary stores the rate, the rate source and the record IDs it read; any journal that follows is posted by a person through the ERP’s own revaluation tools, so the ledger history stays in the ERP.
- Typical cycle time: the run finishes in minutes; the finance manager spends ten to fifteen minutes on a weekly summary that used to be a month-end surprise.
- What it never does: post a revaluation or exchange difference journal, change a currency rate in the ERP, contact a customer or supplier, place or recommend a hedge, or state a tax position.
- Typical cost: a scoped pilot from $5,000 ex GST per our AI agents for ERP in Australia hub, as at 19 October 2026; model usage for a weekly read of a few hundred open documents is small, and the running costs post shows how to budget it per agent.
- Typical timeline: two read-only months beside the normal revaluation run, then the threshold and alert go live; the hub’s pattern is discovery 1 to 2 weeks, sandbox pilot 2 to 6 weeks, drafts-first go-live 1 to 2 weeks.
- Last verified: 19 October 2026 against the Odoo 20.0 multi-currency documentation and the Odoo 20 Enterprise source, MYOB’s Revalue AR Accounts form reference and AI page, the ATO’s foreign exchange rates page (updated 14 August 2026), the ATO’s forex gains and losses page and the RBA exchange rates page.
You invoice a US customer USD 800,000 and the rate on the day is 0.64, so your ERP books AUD 1,250,000. Six weeks later the Australian dollar has strengthened to 0.67. You will collect the same USD 800,000, but it now converts to about AUD 1,194,000, roughly $56,000 less than you budgeted. That gap was sitting in your ERP the whole time. Nobody looked.
That is what FX exposure monitoring is for. Not hedging, not forecasting the rate, not financial advice. Just: here are your open foreign-currency positions, here is what they are worth at today’s rate, here is what you booked, here is the difference. The ABS found about 12% of Australian businesses were using AI in 2024-25, released 25 June 2026, and this is one of the lower-risk places to start, because the agent reads a lot and changes nothing.
What does an AI FX exposure monitoring agent actually do?
An AI FX exposure monitoring agent is a program that reads every open foreign-currency position in your ERP, converts each one at the current rate from a source you nominate, compares that with the value at the booked rate, and drafts a summary when the gap crosses a threshold you set. In a drafts-first design it posts nothing, changes no rate and contacts nobody. A finance manager reads the summary and decides what, if anything, happens next. That is the design rule behind all of our AI agents for ERP in Australia, and here it is an easy rule to keep, because the agent’s whole job is arithmetic over data that already exists.
The reason it needs an agent rather than a report is the reading between the lines. A revaluation report gives you a number per account. The agent tells you that USD receivables moved 3% this week, that three invoices over 60 days old are most of the movement, and that the supplier bill due Friday has become cheaper to settle. That is the summary a finance manager wants on a Thursday morning, and nobody has time to assemble it by hand every week.
What do Odoo 20 and MYOB Acumatica already do about currency risk?
Start with what you already pay for, because both platforms do the accounting part well.
In Odoo 20, the multi-currency documentation describes rates that update automatically on a daily, weekly or monthly interval from a web service you choose, exchange differences posted on their own journal and accounts at payment time, and a dedicated Exchange Difference journal by default. The Enterprise accounting reports include an Unrealized Currency Gains/Losses report with an Adjustment Entry button; in the Odoo 20 Enterprise source the adjustment wizard posts to provision accounts and defaults its reversal date to the day after the report period, so the entry reverses itself and the next run starts clean. Two details matter for Australian companies. First, the rate services in the Odoo 20 Enterprise source are central banks and tax offices for about thirty countries, with the European Central Bank as the one available everywhere; the Reserve Bank of Australia is not on the list, so an Australian company on automatic updates is getting ECB reference rates (which include the Australian dollar) or entering rates by hand. Second, nothing in Odoo fires an alert when an open position drifts. Our Odoo multi-currency setup guide covers the configuration side.
What Odoo 20 does ship is the plumbing for the agent. Agents can now be summoned by automated and scheduled actions, so a weekly run inside Odoo is possible, with the limits we set out in the Odoo 20 scheduled agents post, and the built-in MCP server exposes read-only Search and Read group tools for an outside agent under one user’s permissions. Either route reads the same open invoices, bills and rate table.
In MYOB Acumatica, Currency Management stores each document in its transaction currency and in AUD. MYOB’s Revalue AR Accounts form reference (form CM505000) describes revaluation run for a period at the rate effective on the revaluation date, posting the difference to the unrealised gain or loss account set for the currency, with each run generating an auto-reversing batch and later runs in the same period adjusting the earlier result. Accounts payable has its matching Revalue AP Accounts form. The batches cannot be reversed, so a wrong rate is fixed by running again with the right one. MYOB’s AI page lists eight AI features as at 19 October 2026: an AI Assistant that answers plain-language questions about revenue, customers, invoices, inventory and financial performance, AI Automation for workflows that MYOB says is “best configured by power users or administrators”, AP Bill Entry, Expense Management, Anomaly Detection on spending and invoice patterns, Production Variance Anomaly Detection, a Cross-Sell Assistant and Auto Complete. None of them watches currency drift between revaluation runs. MYOB’s release notes for 2026 R1 describe the AI Assistant as answering from generic inquiries an administrator has exposed to it, which means you could ask it today’s open USD balance, but it will not come to you when the number moves. Our MYOB Acumatica guide for importers and exporters covers the multi-currency setup.
Both platforms, then, revalue at period end and record the realised difference at payment. The weekly look in between is the layer you add.
Which exchange rate should the agent use?
The honest answer is: the one your accountant signs off, recorded on every summary. Three sources come up.
The ATO’s foreign exchange rates page, updated 14 August 2026, says that since 1 January 2020 the ATO has used Reserve Bank of Australia rates for the monthly and year-end rates it publishes, points anyone needing daily rates to the RBA, and allows “any reasonable externally sourced exchange rate” for currencies it does not list. It also states the general rule that amounts are converted at the rate prevailing at the time of the transaction or at an average rate. The RBA exchange rates page publishes rates daily except on New South Wales public and bank holidays, and carries its own caution that the data “should not be relied upon for any regulatory or commercial purposes”. The third source is the rate table already inside your ERP, which on Odoo 20 is probably ECB reference rates and on MYOB Acumatica is whatever your rate type is fed by.
For a monitoring summary, consistency beats precision. Pick one source, have the agent record it on every run, and make the summary show the ERP’s own rate beside it so a stale rate table shows up as a gap of its own. We have seen more “FX problems” that were a rate table nobody updated since June than real market moves.
| Job | What the ERP does natively | What the agent adds | What the finance manager decides |
|---|---|---|---|
| Booking the position | Odoo 20 and MYOB Acumatica store the transaction currency, the booked rate and the AUD value on every invoice, bill and order | Nothing; it only reads these records | Nothing; the booking is done |
| Keeping rates current | Odoo 20 updates from a chosen service on a daily, weekly or monthly interval; MYOB Acumatica holds rates per rate type | Compares the ERP’s rate with the nominated external source and flags a stale table | Whether to update the ERP rate, and who does it |
| Period-end revaluation | Odoo’s Unrealized Currency Gains/Losses adjustment entry; MYOB’s Revalue AR and AP Accounts batches, auto-reversing | Nothing; it never posts | Running the revaluation in the ERP, as now |
| Watching the gap between periods | Neither platform alerts on drift | Revalues open positions on a schedule, applies the threshold, drafts the summary with the ten largest movers | Whether the number warrants a call to the bank, a debtor or a supplier |
| Realised difference at payment | Both post the exchange difference automatically when payment is matched | Notes in the next summary which positions closed and at what difference | Nothing; the ERP has done it |
| Tax treatment | Neither platform states a Division 775 position | Nothing; it reports the accounting gap only | Hand the realised figures to the tax adviser |
“A currency alert is only useful if someone trusts the number enough to act on it. So the agent shows its working every time: the rate it used, where the rate came from, and which invoices moved. The finance manager reads it in ten minutes on a Thursday and either rings the bank or doesn’t. That decision stays with a person, because it’s their money and their relationship.”
Josh Craig, Director, Auboros
What do AASB 121 and Division 775 mean for what the agent reports?
Two frameworks get conflated here, and the agent should only ever speak in the language of the first.
AASB 121 is the accounting standard. Foreign currency transactions are recorded at the rate on the transaction date, monetary items such as receivables, payables and cash are retranslated at the closing rate at each reporting date, and the differences go through profit or loss. That is exactly what the Odoo and MYOB revaluation tools do at period end, and it is the lens the agent’s summary uses between periods: an unrealised gap on open monetary positions, for managing risk and disclosure.
The tax rules are different. The ATO’s forex gains and losses page explains that the measures in Division 775 of the Income Tax Assessment Act 1997 bring gains and losses to account when they are realised, through one of five forex realisation events such as ceasing to have a right to receive foreign currency, and that this applies even when the amounts are never converted to Australian dollars. The movement the agent reports each week is not one of those events. Nothing the agent drafts is a tax position, and the summary should say so in a footer, because a plain-English number has a way of being copied into places it does not belong. Your tax adviser applies Division 775 to the realised figures.
One more obligation. Open receivables and payables carry customer and supplier names, and where those are sole traders they are personal information under the Australian Privacy Principles. Scope the agent’s read access to what the summary needs, and if its output feeds any decision about an individual, check it against the 10 December 2026 automated decision-making disclosure rule in our privacy policy guide for AI agents. For most FX summaries the answer is that no individual is affected, and writing that down in the agent register takes one line.
What does a Thursday morning run look like, approval gate included?
Picture a Queensland equipment importer that sells into the United States and buys from Europe. The agent runs at 7am on Thursdays, reads open positions through the ERP’s read access, and drafts this.
USD receivables: USD 800,000 open, booked at an average 0.64 for AUD 1,250,000. At today’s RBA rate of 0.67 they are worth about AUD 1,194,000, roughly $56,000 below book. Three invoices over 60 days old make up most of the position. EUR payables: EUR 200,000 open, booked at 0.59 for about AUD 339,000. At today’s 0.61 they cost about AUD 328,000 to settle, roughly $11,000 less than book. Net movement since last Thursday: about negative $45,000. Threshold of 2% on a single currency: breached on USD. The ERP’s USD rate table was last updated nine days ago. Rate source: RBA, 19 October 2026.
The finance manager reads it over coffee. She decides the three old USD invoices are the real problem and asks the credit controller to chase them, which is a job for the credit management agent rather than this one. She updates the USD rate in the ERP. She does not ring the bank, because the business is partly hedged by its EUR payables and the movement is inside what the board tolerates. Nothing was posted, no customer was contacted, and the whole decision took twelve minutes. That is the gate, and it is the design rather than a shortcoming: currency decisions that move tens of thousands of dollars belong to a person who can be asked why.
What goes wrong, and how do you start?
The first failure is a rate problem dressed up as a market move. If the ERP’s rate table is stale, the booked and current values are both wrong and the agent’s gap is fiction. That is why the summary shows the ERP’s rate beside the external one on every run. The second is double counting after a revaluation entry: once the month-end adjustment has posted, the open positions are already restated, so the agent must compare against the original booked rate on the document, not the account balance. The third is threshold noise. A 1% threshold on a currency that moves 1% most weeks trains everyone to ignore the email; start at 2% to 3% and a dollar floor, and tune from what people actually acted on. The fourth is scope creep, where someone asks the agent to “suggest a hedge”. Say no. The AI agent governance post explains why a drafts-first agent has a written list of what it never does.
Start read-only for two revaluation cycles. Let the agent draft its weekly summary while the accountant runs the period-end revaluation exactly as now, then compare the agent’s month-end gap with the posted adjustment. If they reconcile, you trust the arithmetic; if they don’t, you have found a rate table problem for free. On Odoo 20 the read-only start is simple because the MCP server’s default tools are read-only and the API key carries one user’s permissions. On MYOB Acumatica, create a role that can read AR, AP and currency rates and nothing else, and give the agent’s integration user that role. Then set the threshold, name the finance manager as the owner in the register, and leave the posting where it belongs.
Goes well with
- The AI virtual CFO agent: the weekly finance briefing that the FX summary usually becomes one section of once the business trusts it.
- The AI month-end close agent: how the period-end revaluation, and the agent’s reconciliation against it, fit into a tracked close checklist.
- Odoo multi-currency accounting in Australia: the rate services, journals and accounts the agent reads, and how to set them up before you monitor anything.
Only finding the currency gap at month end?
Auboros builds drafts-first FX exposure monitoring agents over Odoo and MYOB Acumatica from Brisbane, working with importers and exporters across Queensland and beyond. We’ll start with the revaluation tools your platform already ships and add the weekly alert only if your open positions are big enough to deserve one.
If your foreign-currency positions get looked at once a month and that once is too late, book a free consultation. If a monthly revaluation and a rate table someone actually updates would solve it, we’ll tell you that instead.
FAQ
Frequently asked questions
Does an AI FX exposure monitoring agent automatically hedge our currency positions?
No. The agent reads your open foreign-currency positions, calculates the current unrealised gap using the day's published exchange rate, and drafts an alert for your finance manager to review. Hedging decisions, including forward contracts, options or natural hedging through matched payables and receivables, are made by a person, usually with your bank or treasury adviser. The agent surfaces the exposure; it does not act on it.
What is the difference between unrealised FX exposure and a forex realisation event for Australian tax?
Unrealised FX exposure is the gap between the rate a transaction was booked at and the current rate, on a position that has not settled. Under Division 775 of the Income Tax Assessment Act 1997, the ATO brings forex gains and losses to account when they are realised through one of five forex realisation events, such as ceasing to have a right to receive foreign currency. The weekly movement the agent reports is not one of those events, and your tax adviser applies the rules to the realised figures.
Does Odoo 20 or MYOB Acumatica already alert you to currency exposure?
Not between periods. Odoo 20 updates rates on a schedule, posts exchange differences at payment and has an Unrealized Currency Gains/Losses report with an adjustment entry. MYOB Acumatica has Revalue AR Accounts and Revalue AP Accounts, run per period and auto-reversing. Neither sends an alert when an open position drifts past a threshold, and as at 19 October 2026 none of MYOB's eight listed AI features covers it. That weekly look is the layer an agent adds.
Which exchange rate should the agent use?
The one your accountant signs off, recorded on every summary. The ATO uses Reserve Bank of Australia rates for the monthly and year-end rates it publishes and points businesses to the RBA for daily rates, while allowing any reasonable externally sourced rate for currencies it does not list. The RBA's own page says its data should not be relied on for regulatory or commercial purposes, so treat it as a monitoring reference. Odoo 20's automatic rate services do not include the RBA; an Australian company on automatic updates is using European Central Bank reference rates.
How does AASB 121 affect what the FX exposure monitoring agent tracks?
AASB 121 requires monetary items such as receivables, payables and cash to be translated at the closing rate at each reporting date, with exchange differences recognised in profit or loss. The agent tracks the same open monetary items between reporting dates and reports their unrealised gap, which is the number your finance team wants before the period-end revaluation posts. It never posts the revaluation itself; that stays with your accountant in the ERP's own tools.