Currency Flow Map
Complete guide to multi-currency handling in NetSuite - from transaction entry through revaluation and realized gains/losses.
Multi-Currency Overview
CURRENCY FLOW CONCEPT
═══════════════════════════════════════════════════════════════════════════════════════════════════
BASE CURRENCY: IDR (Indonesian Rupiah)
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ │
│ ALL GL ENTRIES IN BASE CURRENCY │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ FOREIGN CURRENCY EXCHANGE RATE BASE CURRENCY │ │
│ │ TRANSACTION (at transaction) GL ENTRY │ │
│ │ │ │
│ │ USD 10,000 × 15,800 IDR/USD = IDR 158,000,000 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ RATE CHANGES CREATES FX GAIN/LOSS │ │
│ │ │ │
│ │ Original: 15,800 Unrealized (open) Revaluation Entry │ │
│ │ Current: 16,000 Realized (settled) Payment Entry │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
Master Currency Flow Diagram
NETSUITE CURRENCY FLOW
═══════════════════════════════════════════════════════════════════════════════════════════════════
FOREIGN CURRENCY TRANSACTION
│
▼
┌─────────────────────────────────────────┐
│ │
│ EXCHANGE RATE LOOKUP │
│ (Transaction Date) │
│ │
│ Sources: │
│ • Automatic (provider) │
│ • Manual entry │
│ • Rate schedule │
│ │
└────────────────────┬────────────────────┘
│
▼
┌─────────────────────────────────────────┐
│ │
│ GL ENTRY CREATED │
│ (Base Currency) │
│ │
│ Foreign Amount × Rate = Base Amount │
│ │
└────────────────────┬────────────────────┘
│
┌────────────────────┼────────────────────┐
│ │ │
▼ │ ▼
┌───────────────────┐ │ ┌───────────────────┐
│ OPEN BALANCE │ │ │ SETTLED │
│ (A/R or A/P) │ │ │ (Payment) │
└─────────┬─────────┘ │ └─────────┬─────────┘
│ │ │
▼ │ ▼
┌───────────────────┐ │ ┌───────────────────┐
│ PERIOD END │ │ │ REALIZED │
│ REVALUATION │ │ │ GAIN/LOSS │
│ │ │ │ │
│ Unrealized │ │ │ Locked in at │
│ Gain/Loss │ │ │ payment │
└───────────────────┘ │ └───────────────────┘
│ │
│ │
└──────────────────────┘
│
▼
┌───────────────────┐
│ CONSOLIDATED │
│ REPORTS │
│ │
│ All in base │
│ currency │
└───────────────────┘
Transaction Currency Processing
Sales Transaction (Foreign Currency)
FOREIGN CURRENCY INVOICE
═══════════════════════════════════════════════════════════════════════════════
Scenario: Invoice to US customer in USD
Invoice Details:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Invoice #INV-001 │
│ Customer: ABC Corp (USA) │
│ Currency: USD │
│ Amount: USD 10,000 │
│ Date: January 15, 2024 │
│ Exchange Rate: 1 USD = 15,800 IDR │
└─────────────────────────────────────────────────────────────────────────────┘
GL Entry (in Base Currency - IDR):
┌────────────────────────────────────┬──────────────────┬──────────────────┐
│ Account │ Debit │ Credit │
├────────────────────────────────────┼──────────────────┼──────────────────┤
│ Accounts Receivable │ Rp 158,000,000 │ │
│ Sales Revenue │ │ Rp 158,000,000 │
└────────────────────────────────────┴──────────────────┴──────────────────┘
Transaction stores both:
• Foreign Amount: USD 10,000
• Base Amount: IDR 158,000,000
• Exchange Rate: 15,800
Purchase Transaction (Foreign Currency)
FOREIGN CURRENCY VENDOR BILL
═══════════════════════════════════════════════════════════════════════════════
Scenario: Bill from Singapore vendor in SGD
Bill Details:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Vendor Bill #VB-001 │
│ Vendor: XYZ Pte Ltd (Singapore) │
│ Currency: SGD │
│ Amount: SGD 5,000 │
│ Date: January 20, 2024 │
│ Exchange Rate: 1 SGD = 11,800 IDR │
└─────────────────────────────────────────────────────────────────────────────┘
GL Entry (in Base Currency - IDR):
┌────────────────────────────────────┬──────────────────┬──────────────────┐
│ Account │ Debit │ Credit │
├────────────────────────────────────┼──────────────────┼──────────────────┤
│ Inventory Asset │ Rp 59,000,000 │ │
│ Accounts Payable │ │ Rp 59,000,000 │
└────────────────────────────────────┴──────────────────┴──────────────────┘
Transaction stores:
• Foreign Amount: SGD 5,000
• Base Amount: IDR 59,000,000
• Exchange Rate: 11,800
Revaluation (Unrealized Gains/Losses)
Period-End Revaluation Process
CURRENCY REVALUATION FLOW
═══════════════════════════════════════════════════════════════════════════════
OPEN FOREIGN CURRENCY BALANCES
(A/R, A/P, Bank Accounts)
│
▼
┌───────────────────────┐
│ PERIOD-END │
│ REVALUATION │
│ │
│ Compare: │
│ • Book rate │
│ • Current rate │
└───────────┬───────────┘
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
Rate Increased Rate Same Rate Decreased
(currency stronger) (no change) (currency weaker)
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ A/R: Gain │ │ No Entry │ │ A/R: Loss │
│ A/P: Loss │ │ │ │ A/P: Gain │
└─────────────┘ └─────────────┘ └─────────────┘
Revaluation Example
A/R REVALUATION EXAMPLE
═══════════════════════════════════════════════════════════════════════════════
Open Invoice: USD 10,000
Original Rate (Jan 15): 1 USD = 15,800 IDR → Book Value: Rp 158,000,000
Period-End Rate (Jan 31): 1 USD = 16,000 IDR → Fair Value: Rp 160,000,000
Unrealized Gain: Rp 160,000,000 - Rp 158,000,000 = Rp 2,000,000
Revaluation Entry (January 31):
┌────────────────────────────────────┬──────────────────┬──────────────────┐
│ Account │ Debit │ Credit │
├────────────────────────────────────┼──────────────────┼──────────────────┤
│ Accounts Receivable │ Rp 2,000,000 │ │
│ Unrealized FX Gain │ │ Rp 2,000,000 │
└────────────────────────────────────┴──────────────────┴──────────────────┘
Balance Sheet After Revaluation:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Accounts Receivable (USD 10,000) │
│ ───────────────────────────────── │
│ │
│ Original Invoice Entry: Rp 158,000,000 │
│ Revaluation Adjustment: + Rp 2,000,000 │
│ Current Book Value: Rp 160,000,000 (= USD 10,000 × 16,000) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
A/P Revaluation Example
A/P REVALUATION EXAMPLE
═══════════════════════════════════════════════════════════════════════════════
Open Bill: SGD 5,000
Original Rate (Jan 20): 1 SGD = 11,800 IDR → Book Value: Rp 59,000,000
Period-End Rate (Jan 31): 1 SGD = 12,000 IDR → Fair Value: Rp 60,000,000
Unrealized Loss: Rp 60,000,000 - Rp 59,000,000 = Rp 1,000,000 (you owe more in IDR)
Revaluation Entry (January 31):
┌────────────────────────────────────┬──────────────────┬──────────────────┐
│ Account │ Debit │ Credit │
├────────────────────────────────────┼──────────────────┼──────────────────┤
│ Unrealized FX Loss │ Rp 1,000,000 │ │
│ Accounts Payable │ │ Rp 1,000,000 │
└────────────────────────────────────┴──────────────────┴──────────────────┘
Realized Gains/Losses
Payment Processing
REALIZED FX GAIN/LOSS AT PAYMENT
═══════════════════════════════════════════════════════════════════════════════
Scenario: Collecting USD invoice payment
Original Invoice (Jan 15):
USD 10,000 @ 15,800 = Rp 158,000,000 (A/R balance)
Payment Received (Feb 15):
USD 10,000 @ 16,000 = Rp 160,000,000 (cash received)
Realized Gain: Rp 160,000,000 - Rp 158,000,000 = Rp 2,000,000
Payment Entry:
┌────────────────────────────────────┬──────────────────┬──────────────────┐
│ Account │ Debit │ Credit │
├────────────────────────────────────┼──────────────────┼──────────────────┤
│ Bank Account (USD) │ Rp 160,000,000 │ │
│ Accounts Receivable │ │ Rp 158,000,000 │
│ Realized FX Gain │ │ Rp 2,000,000 │
└────────────────────────────────────┴──────────────────┴──────────────────┘
┌─────────────────────────────────────────┐
│ The Rp 2,000,000 gain is REALIZED │
│ because the transaction is complete. │
│ It will not change again. │
└─────────────────────────────────────────┘
Vendor Payment Example
REALIZED FX LOSS AT VENDOR PAYMENT
═══════════════════════════════════════════════════════════════════════════════
Original Bill (Jan 20):
SGD 5,000 @ 11,800 = Rp 59,000,000 (A/P balance)
Payment Made (Feb 20):
SGD 5,000 @ 12,200 = Rp 61,000,000 (cash paid)
Realized Loss: Rp 61,000,000 - Rp 59,000,000 = Rp 2,000,000 (you paid more)
Payment Entry:
┌────────────────────────────────────┬──────────────────┬──────────────────┐
│ Account │ Debit │ Credit │
├────────────────────────────────────┼──────────────────┼──────────────────┤
│ Accounts Payable │ Rp 59,000,000 │ │
│ Realized FX Loss │ Rp 2,000,000 │ │
│ Bank Account │ │ Rp 61,000,000 │
└────────────────────────────────────┴──────────────────┴──────────────────┘
Exchange Rate Management
Rate Sources
EXCHANGE RATE HIERARCHY
═══════════════════════════════════════════════════════════════════════════════
Priority Order (highest to lowest):
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ 1. TRANSACTION OVERRIDE │
│ └── User enters rate directly on transaction │
│ │
│ 2. CUSTOMER/VENDOR RATE │
│ └── Rate defined on entity record │
│ │
│ 3. RATE SCHEDULE │
│ └── Pre-defined rates for date ranges │
│ │
│ 4. AUTOMATIC RATE PROVIDER │
│ └── Daily rates from exchange rate provider │
│ (Thomson Reuters, Xignite, etc.) │
│ │
│ 5. CONSOLIDATED RATE │
│ └── Average/period-end rate for reporting │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Rate Types
| Rate Type | Purpose | When Used |
|---|---|---|
| Current | Daily spot rate | Transactions |
| Average | Period average | P&L translation |
| Historical | Rate at transaction date | Balance sheet items |
| Budget | Planned/forecast rates | Budgeting |
| Consolidated | Reporting rate | Consolidation |
Multi-Currency Reports
Currency-Specific Views
TRANSACTION CURRENCY VIEWS
═══════════════════════════════════════════════════════════════════════════════
Invoice #INV-001 can be viewed in:
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ TRANSACTION CURRENCY (USD) BASE CURRENCY (IDR) │
│ ────────────────────────── ────────────────── │
│ │
│ Invoice Amount: USD 10,000 Invoice Amount: Rp 158,000,000 │
│ Payment: USD 10,000 Payment: Rp 160,000,000 │
│ Balance: USD 0 Balance: Rp 0 │
│ FX Gain: Rp 2,000,000 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
For Consolidated Reporting:
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ SUBSIDIARY CURRENCY CONSOLIDATED (PARENT) CURRENCY │
│ ──────────────────── ──────────────────────────── │
│ │
│ Singapore Sub: SGD 100,000 Parent: Rp 1,180,000,000 │
│ US Sub: USD 50,000 Parent: Rp 790,000,000 │
│ Japan Sub: JPY 5,000,000 Parent: Rp 525,000,000 │
│ ─────────────────────── │
│ Consolidated: Rp 2,495,000,000 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
FX Gain/Loss Report
-- FX Transactions by Currency
SELECT
t.tranid,
t.trandate,
t.type,
t.currency,
t.exchangerate,
t.foreigntotal
FROM
transaction t
WHERE
t.currency IS NOT NULL
AND t.trandate >= '2024-01-01'
ORDER BY
t.trandate DESC
-- Account balances by currency (for FX exposure)
SELECT
a.acctnumber,
a.accountsearchdisplayname AS account_name,
a.accttype,
SUM(tal.amount) AS balance_base_currency,
SUM(tal.foreignamount) AS balance_foreign_currency
FROM
transactionaccountingline tal
JOIN
account a ON tal.account = a.id
JOIN
transaction t ON tal.transaction = t.id
WHERE
a.accttype IN ('AcctRec', 'AcctPay', 'Bank')
AND t.currency IS NOT NULL
GROUP BY
a.acctnumber,
a.accountsearchdisplayname,
a.accttype
FX Account Setup
Required Accounts
FX-RELATED ACCOUNTS
═══════════════════════════════════════════════════════════════════════════════
Income Statement Accounts:
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ Other Income: │
│ ├── 7100 Realized FX Gain │
│ └── 7110 Unrealized FX Gain │
│ │
│ Other Expense: │
│ ├── 8100 Realized FX Loss │
│ └── 8110 Unrealized FX Loss │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Alternative: Net FX Account:
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ Other Income/Expense: │
│ └── 7500 Foreign Exchange Gain/Loss (Net) │
│ │
│ (Single account - gains are credits, losses are debits) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Account Preferences
| Setting | Location | Purpose |
|---|---|---|
| Realized Gain/Loss | Setup > Accounting > Preferences | Default accounts |
| Unrealized Gain/Loss | Setup > Accounting > Preferences | Revaluation accounts |
| Rounding Gain/Loss | Setup > Accounting > Preferences | Minor differences |
Currency Scenarios
Triangulation
TRIANGULATION (Non-USD Cross Rates)
═══════════════════════════════════════════════════════════════════════════════
Scenario: EUR subsidiary buying from GBP vendor
Company Base: USD
Subsidiary Currency: EUR
Transaction Currency: GBP
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ Bill Amount: GBP 1,000 │
│ │
│ Triangulation through base currency (USD): │
│ │
│ GBP 1,000 × 1.27 (GBP/USD) = USD 1,270 │
│ USD 1,270 ÷ 1.10 (EUR/USD) = EUR 1,154.55 │
│ │
│ Result: Subsidiary books EUR 1,154.55 │
│ Consolidated books USD 1,270 │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Partial Payment
PARTIAL PAYMENT FX HANDLING
═══════════════════════════════════════════════════════════════════════════════
Invoice: EUR 10,000 @ 1.10 = $11,000
Partial Payment 1 (50%):
EUR 5,000 @ 1.12 = $5,600
Realized Gain: $5,600 - $5,500 = $100
Remaining Balance:
EUR 5,000 @ 1.10 = $5,500 (original rate)
Partial Payment 2 (remaining):
EUR 5,000 @ 1.08 = $5,400
Realized Loss: $5,400 - $5,500 = ($100)
Net FX Impact: $100 gain - $100 loss = $0
Best Practices
Setup
| Practice | Benefit |
|---|---|
| Enable automatic rates | Current exchange rates |
| Set rate tolerance | Prevent errors |
| Configure revaluation | Period-end accuracy |
| Map FX accounts | Clear gain/loss tracking |
Operations
| Practice | Benefit |
|---|---|
| Run monthly revaluation | Balance sheet accuracy |
| Review open FX positions | Risk management |
| Lock historical rates | Prevent changes |
| Document rate sources | Audit trail |
Reporting
| Practice | Benefit |
|---|---|
| Separate realized/unrealized | Clear P&L impact |
| Track by currency | Exposure visibility |
| Compare to budget rates | Variance analysis |
| Month-end reconciliation | Catch issues |
Next Steps
- GL Flow Map - All GL entries including FX
- Intercompany Flow - Cross-border IC transactions
- Cash Flow Map - Foreign currency cash