FX-spread model
Valura's main India margin. How the spread arises, how it's booked, and how it's measured.
The economics
When a customer converts INR to USD through GlomoPay, the FX rate they get includes a small spread over the mid-market rate. Valura earns the spread.
For a ₹1,00,000 remittance:
- Customer receives, say,
$1,176.47(implicit rate ~₹85 / $1). - Mid-market at the same moment is, say,
₹84.50 / $1. - Valura's realised margin is the USD-equivalent of the difference — around
$6.98on the example above.
The customer sees ONE rate on their receipt. Valura's margin is the delta between that rate and mid.
Two accounting models
The ledger supports both — the choice is a finance policy decision.
Model A — flat-bps assumption. Post a flat "USD × configured bps" accrual per remittance regardless of the actual rate. Simple, predictable, but wrong at the tail of the distribution.
Model B — realised measurement. Compute the actual margin per remittance and report it. No accrual booked — the revenue lands when GlomoPay pays Valura the merchant settlement.
The /v1/india/fx-margin report shows both side-by-side, plus the drift:
- Assumed — what the accrual booked (if any).
- Realised — what actually happened, based on the customer's rate vs the live mid.
- Drift — realised − assumed.
Where it lands on the trial balance
When Model A is active (assumed bps > 0), each paid GlomoPay order fires:
- Debit
1300 GlomoPay FX Receivable(what GlomoPay owes Valura) - Credit
4030 FX Spread Revenue(Valura's income)
When GlomoPay pays out the merchant batch, a settlement posting clears
1300 to 1010 (Valura's own USD bank).
Where it lands when the assumption is off
If GLOMOPAY_FX_SPREAD_BPS = 0 (the current default), no accrual fires.
4030 stays at zero on the trial balance. The realised margin lives entirely
on the reporting side — visible on the FX Margin page, not booked to
revenue.
To turn on the accrual, set the config to a positive number. To leave the policy as "recognise revenue only at settlement", leave it at 0.
Impact on P&L
- Model A + accurate bps → revenue tracks close to reality; small drift.
- Model A + inaccurate bps → revenue overstated or understated; drift on the FX Margin report shows how much.
- Model B (bps = 0) → revenue booked only at settlement, no drift, but monthly P&L may be lumpy.
The FX Margin report gives finance the numbers to decide.