All metrics

What is net margin?

Net margin is what a campaign or flow message actually earned: the contribution margin attributed to it, minus what sending it cost. It is the messaging equivalent of true ROAS's numerator — margin, not revenue — taken one step further by netting off the channel's own cost, which for SMS is material.

Formula

net margin = attributed contribution margin − send cost

Worked example

A campaign is credited €2,400 of attributed revenue; the matched orders carry €820 of contribution margin once product costs, shipping and fees come out. Sending it cost €180 in SMS segments. Net margin: €640. On revenue alone the campaign looked three times better than it is — the ordering of revenue-ranked and net-margin-ranked campaign tables rarely matches, and the second ranking is the one to trust.

How Saldo Metrics computes it

The margin side is matched, not taken from the platform: message engagements are matched to customers by hashed email, and those customers' orders within the attribution window are credited to the engaged message — last touch, each order counted once. The real contribution margin of those orders becomes margin_attributed_base. When too few of the platform's claimed conversions can be matched to orders (below a 50% match rate), the row falls back to estimating margin as the org's blended margin ratio times attributed revenue — and records which happened: every row carries margin_method (order-join or ratio-fallback) and its match_rate, so estimated margin is distinguishable from measured margin. v_messaging_performance then subtracts the dual-stored EUR send_cost_base, and also serves the per-send version (net_margin_per_message).

Why it matters

Email and SMS attribution claims suffer the same inflation as ad-platform claims — generous windows, opens counted as influence. Anchoring margin in your actual order book, netting the send cost, and flagging estimated rows keeps the messaging channel comparable with paid channels on one honest basis; the messaging-vs-paid comparison is built on exactly this figure.

Common mistakes

  • Ranking campaigns by attributed revenue. High-revenue campaigns selling discounted or low-margin baskets sink once margin and send cost are netted.
  • Ignoring the provenance columns. A row with ratio-fallback margin is an estimate; a run of low match rates usually means hashed-email matching is failing (guest checkouts, list hygiene), which is fixable.
  • Reading flow-step net margin as incremental. The matched orders might have arrived without the message; incrementality needs a holdout, which this metric does not claim to be.

Where you see this in the app

Marketing → Messaging, as the net-margin column of the campaign table and in the messaging-vs-paid channel comparison.

Formula
attributed contribution margin − send cost
How Saldo Metrics computes it
canonical.v_messaging_performance

Last reviewed 2026-08-29