← Research
Dealing desk28 July 202611 min

Revenue per million is four businesses reported as one number

Markup, commission, swap and risk result have different drivers, different volatilities and different signs. Dividing their sum by notional volume produces a figure that cannot tell you which one moved.

Revenue per million is the number every broker quotes and the number that explains least. It is four businesses with different drivers, different volatilities and different signs, divided by one denominator. When it moves, the figure itself cannot tell you which of the four moved, and the usual response is to attribute it to whichever one was discussed most recently.

Four revenue lines, one ratio

Blended revenue per millionRPM = ( markup + commission + swap + risk_result ) / ( notional_volume / 1,000,000 )
risk_result is the P&L on internalised flow. It is the only term that can be negative, and the only one that is not a function of volume.

Each term behaves differently enough that averaging them destroys the information you need.

  • Markup is close to linear in volume and stable per symbol. It is the base rate of the business and the only component you fully control.
  • Commission is linear by construction, set per lot or per million, and varies by account type rather than by market condition.
  • Swap is a function of holding time, not of volume. A client who trades a million and closes in an hour contributes zero swap; one who holds the same million for three weeks contributes materially. Dividing it by volume is a category error that the ratio forces on you.
  • Risk result is the P&L on flow you did not pass through. It is volatile, can be large in either direction, and its expected value depends on a classification decision rather than on activity.

Three of the four terms are fees. The fourth is a trading position. Reporting them as one rate per million describes a business nobody is running.

Mix shift looks exactly like price erosion

The most common misreading of a falling RPM is that pricing has deteriorated. Usually nothing has been repriced. The mix of volume has moved toward symbols or account types with a lower rate, and the blended figure has followed, because a blended ratio is a volume-weighted average of rates that were themselves unchanged.

How a flat book produces a falling number
  1. 01Markup per symbol unchangedno pricing decision taken
  2. 02Volume grows in majorstightest markup on the book
  3. 03Share of index CFDs fallshighest markup on the book
  4. 04Blended RPM fallsweighted average moves
  5. 05Read as price erosionwrong remedy applied
The remedy for mix is distribution and product. The remedy for erosion is pricing. Applying the second to the first widens spreads on the symbols that were already winning.

Separating the two is arithmetic, not judgement. Hold the previous period’s mix constant and recompute this period’s revenue at this period’s rates. The difference between that figure and the actual is mix. The remainder is rate. Any broker can run this decomposition and almost none do it monthly.

RPM decomposition, illustrative quarter over quarter
Markup rate+$2
Commission rate$0
Swap contribution−$4
Risk result−$21
Symbol mix−$9
Illustrative. Blended RPM fell $32. Pricing rose. The conversation that follows is entirely different once the bar chart exists.

The denominator is not innocent either

Notional volume is itself a mix of things that are not comparable. A million of EURUSD, a million of gold and a million notional of an index CFD carry different margin, different holding periods and different risk. Summing them into one denominator means the ratio moves whenever the composition of volume changes, independent of anything happening to revenue.

  • High-frequency scalping inflates notional volume with near-zero holding time, which depresses RPM while contributing normal markup per trade. The business is fine; the ratio is not.
  • A single large institutional or professional account can dominate the denominator and make the retail book invisible inside the blended figure.
  • Symbols priced per lot rather than per million convert into notional at a spot rate that itself moves, so the denominator drifts with the market.
Worked exampleTwo months, same blended RPM, different businesses
MarchApril
Notional volume$14.2bn$18.9bn
Markup$1,164,000$1,550,000
Commission$298,000$397,000
Swap$212,000$94,000
Risk result$186,000−$174,000
Total revenue$1,860,000$1,867,000
Blended RPM$131$99
RPM excluding risk result$118$108
Illustrative. Revenue is flat, fee income grew 12 percent, and the entire movement in the headline is one volatile term plus a fall in holding time.

Illustrative figures, chosen to show the mechanism. Your own numbers will differ.

Reporting it so it can be acted on

Split the position out of the fees

Report fee RPM and risk result as two lines that are never added together in a headline. Fee RPM is a pricing and mix number that the commercial side owns. Risk result is a position that the risk side owns. They have different owners, different time horizons and different acceptable variances, and combining them means neither owner can be held to anything.

Take swap out of the ratio entirely

Swap belongs to holding time. Report it per overnight lot, which is the unit it is actually earned in, and leave it out of any per million figure. That change alone removes most of the month to month noise in a book with meaningful carry.

Run the mix decomposition every month

  • Rate effect, mix effect and volume effect, per symbol group and per account type, on the same page as the headline.
  • The same decomposition per client segment, because a segment that is growing at a low rate is a distribution result and a segment that is repricing is a competitive one.
  • A flag when the top ten accounts exceed a set share of the denominator, which is the point at which the blended figure stops describing the retail book.

Every input for this sits in systems you already run: trade records for volume and markup, the rollover journal for swap, the book classification for risk result, and the account register for segment. They have to be joined per trade and kept joined as symbols and account types change. That is the work, and it is the reason the headline stays blended.

Written by the people who built the thing.

If you want to argue with any of the above, we would enjoy that. The same desk that wrote this runs the scoping calls.