> ## Documentation Index
> Fetch the complete documentation index at: https://docs.garmentflow.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# FX Rates

> The workspace's exchange-rate table — where you enter the rate each managed currency converts to base at, and the snapshot every multi-currency document reads when it is created.

The **FX Rates** page is where your workspace records the exchange rate each
foreign currency converts to your
<Tooltip tip="The reporting currency your workspace reconciles every multi-currency figure to. Provisioned by the GarmentFlow team and shown read-only on Workspace settings.">[base currency](/admin/workspace-settings#company-info)</Tooltip>
at. Every multi-currency document the workspace creates afterwards — a
[quotation](/modules/quotations), an [order](/modules/orders), a vendor
invoice, an accounts-payable record, a PDF, a dashboard report — reads the
rate that was on this page **at the moment the document was created** and
keeps that figure for life.

## What it is

A single page under **Admin & configuration → FX Rates** with three regions:

* A **Current rates** card showing the latest rate the workspace has on file
  for each managed currency.
* A **Rate Entry** card where you enter a date and a rate for each managed
  currency you want to update.
* A **Rate History** table — the permanent log of every save the
  workspace has ever made.

A rate is **per currency, per date**, expressed as the amount of base
currency that one unit of the foreign currency converts to (for example,
`32.50` for `USD` means one US dollar converts to 32.50 of your base
currency). You enter the rate manually; the page does not pull from any
external feed.

## The snapshot principle

The most important rule on this page is what FX Rates is **not**: it is not
a live conversion service that updates the figures on existing documents.

Every multi-currency document the workspace creates — a quotation, an
order, a proforma invoice, a vendor invoice, an accounts-payable record,
a PDF export, a dashboard report — captures the workspace's current rate
**at its own create time** and keeps that figure on the document for the
rest of its life. Updating a rate on this page after the fact does
**not** rewrite the rate on any document that was already created. A
quotation written last Tuesday keeps last Tuesday's rate; the order it
converts to keeps the rate at its own create; the invoice that ships
against the order keeps the rate at *its* create.

So the rate on this page is the rate **the next document** will pick up.
It is not the rate the quotation, order, or invoice you opened earlier
in the week is using — to see those, open the document itself.

This is also why getting the rate on this page right *before* you create
the day's multi-currency documents matters more than catching a missed
update afterwards. Once a document is saved, its rate is the document's;
the table is no longer the source for it.

## Why it exists

A workspace operating in more than one currency needs one shared answer to
two questions: what rate are we using today, and what rate were we using
when this commitment was made? FX Rates answers the first; the snapshot
each document carries answers the second.

The split is deliberate. The commercial figures on a confirmed deal — the
deposit value the customer paid, the AP amount you owe the factory, the
margin the team negotiated against — were sized at the rate that was
current when the deal was struck. Revising the table later for a
business-as-usual rate change should not silently restate those numbers,
because the customer and the factory will not honour the revision; the
deal stands as it was struck. The snapshot is what protects the deal from
the rate keeping evolving underneath it.

## When it is used

* **At workspace start-up**, to record an opening rate for each currency
  you expect to trade in before the team begins creating quotations and
  orders.
* **Whenever the workspace's working rate changes** — typically the start
  of a new day, week, or month, per your team's policy — to refresh the
  rate the next batch of documents will pick up.
* **Before a one-off document in a currency that hasn't been quoted
  recently**, to enter today's rate so the new document captures it at
  create.
* **For reference**, when finance needs to read back the rate history of
  the workspace.

You reach the page from the sidebar under **Admin & configuration →
FX Rates**.

## Dependencies

* A workspace with its **base currency** set up — every rate on this page
  is expressed against that base. The base is set when the workspace is
  provisioned and shown read-only on
  [Workspace settings](/admin/workspace-settings#company-info); it cannot
  be changed from this page.

There are no upstream master records FX Rates depends on; the page is the
upstream master itself.

## What depends on it

Every multi-currency figure the workspace produces reads from the rate that
was on this page **at the moment the figure's document was created**:

* An [order](/modules/orders) captures its `FX rate` at create from this
  page, against the order's `Order date` (or today, when no order date is
  set). The order's reporting math uses that saved rate for the rest of
  the order's life. See [Order: FX rate field](/modules/orders#header-commercial-framing).
* A [quotation](/modules/quotations) captures the rate at create; a
  proforma invoice does the same when it is generated; a vendor invoice
  and an accounts-payable record do the same when they are recorded.
* The line totals on a [cost sheet](/modules/cost-sheet) are sized in the
  cost sheet's own currency; when finance rolls cost-sheet figures up to
  the base currency on a per-order analysis, the order's saved snapshot
  is the rate used.
* The PDF exports of any of the above carry the saved rate of the
  document that produced them.
* Dashboard reports and AP rollups across multiple documents read each
  document's saved snapshot, not the current rate on this page.

The detailed conversion behaviour — how the saved rate is applied to a vendor
invoice, how a realized gain or loss is recognised when a foreign-currency
invoice is settled at a different rate, and the re-stamp that runs when an
order's currency is changed — lives on
[Foreign exchange](/modules/foreign-exchange) alongside the Finance pages
that produce it.

## Managed currencies

The page surfaces a rate-entry row for each of the workspace's **managed
currencies**: `USD`, `EUR`, and `JPY` against your base currency. These
are the three the **Rate Entry** card lets you enter a rate for from this
page.

A workspace that trades in other currencies — for example, `GBP`, `VND`,
or `INR` — handles them today at the document level: the order's `FX
rate` field, the vendor invoice's rate, and the AP record's rate are
each enterable on the document, so a document in a currency that is not
on the managed list still captures a rate at create. The catalog on this
page does not yet hold those rates separately, so a new document in a
non-managed currency requires the team to enter the rate on the document
itself.

The managed list is set by the platform today, not configurable from
this page. It is also separate from the
[Currencies catalog](/admin/master-catalogs#currencies), which only governs the
billing-currency dropdown on the [vendor record](/admin/vendors#currency); the
two lists are maintained independently.

## Current rates

The **Current rates** card sits at the top of the page and shows, for each
managed currency, the most recent rate the workspace has on file plus the
date that rate was entered for.

The card is the quick read for the team — "the rate the next document
will pick up if it is created today" — and is also where finance confirms
that the day's working rate has actually been saved before letting the
team start raising documents.

## Rate Entry

The **Rate Entry** card is the editor.

To save new rates:

1. Pick a `Rate Date` — the date you want the rate to apply from. Defaults
   to today; you can backdate it (for example, to fill in yesterday's
   rate after the fact).
2. Enter a rate in the row for each managed currency you want to update.
   Leave a row blank to keep the existing rate for that currency
   unchanged.
3. Choose "Save Rates".
4. The **Confirm Rate Changes** dialog opens, listing every currency
   whose rate is changing with the old value on the left and the new
   value on the right. Read the list, then confirm.

If nothing was actually changed — you opened the editor, looked, and
closed without typing — the page refuses the save with a clear "no rates
were changed" message rather than silently writing an empty change.

Re-saving a rate for the same currency on the same `Rate Date` overwrites
the existing rate — that's how you correct a typo for today's rate without
leaving the wrong figure on file. Documents already created against the
prior figure keep their saved snapshot regardless (see
[The snapshot principle](#the-snapshot-principle)).

## Rate History

The **Rate History** table is the permanent log of every save the
workspace has ever made. Newest entries appear at the top; each row
records the currency, the rate date the save applied to, the rate that
was saved, who saved it, and when.

The history is the read-back for finance — "what rate were we using on
the day this document was created" — and the audit trail of who changed
what.

The table exports as a spreadsheet through the **Export Excel** button at
the head of the section. The download is the same history the page shows,
so you can hand a month's record to finance without copying rows by hand.

Rate History entries are not editable from the page. If a row has the
wrong figure, save a fresh entry for the same currency on the same `Rate
Date` to overwrite the current rate; the prior entry stays in the history
as the record that the correction was made.

## Business rules

1. **The rate is base currency per one unit of the foreign currency.** A
   saved rate of `32.50` for `USD` means one US dollar converts to 32.50
   of your base currency.
2. **Rates are entered manually.** The page is the editor; it does not
   pull from an external feed.
3. **One rate per currency per date.** Saving a fresh rate for a
   currency on a date the workspace already has on file overwrites the
   existing rate and writes a new entry in the history.
4. **A save with no changes is refused.** Opening the editor without
   typing anything and pressing **Save Rates** is rejected with "no
   rates were changed".
5. **A save with changes opens the Confirm Rate Changes dialog.** The
   dialog lists every currency whose rate is changing, with the old and
   new figures side by side. The save commits only after you confirm.
6. **The Rate History is a permanent record.** Every save writes a new
   history row; rows are not edited or deleted from the page.
7. **Updating a rate does not retroactively change any existing
   document.** Every multi-currency document captures the current rate at
   its own create time and keeps that figure. See
   [The snapshot principle](#the-snapshot-principle).
8. **The managed currencies are USD, EUR, and JPY against the
   workspace's base currency.** Other currencies are handled today
   through the per-document rate field on the order, invoice, or
   accounts-payable record.

## Best practices

* **Enter the day's rate before the team starts raising documents in
  that currency.** The rate on the page when a document is created is
  the rate the document keeps; an update later in the day does not
  rewrite the morning's documents.
* **Use a steady policy for when the workspace updates rates.** Most
  teams pick a cadence — start of day, start of week, or once per
  significant move — and stick to it. The Rate History is the audit
  trail of when the policy was followed.
* **Treat the Confirm Rate Changes dialog as the check.** The old → new
  side-by-side view catches a typo before it lands on the next
  document.
* **Read the Current Rates card before raising an unusual-currency
  document.** If the figure looks stale, refresh it before you create
  the document — the snapshot the document keeps is the figure that is
  current at create.
* **For a one-off document in a currency the managed list does not
  cover, enter the rate on the document itself.** The order, invoice,
  and accounts-payable record each carry their own rate field for
  exactly this case. The detailed conversion behaviour lives on the
  document.

## Related pages

* [Workspace settings](/admin/workspace-settings)
* [Setting up your tenant](/admin/setting-up-your-tenant)
* [Order](/modules/orders)
* [Cost Sheet](/modules/cost-sheet)
* [Finance](/modules/finance)
* [Foreign exchange](/modules/foreign-exchange)
