Skip to main content

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.98 on 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.