Meta Ads Metrics: ROAS, MER, and Contribution
By The Bach.ai TeamUpdated August 27, 2026
For the surrounding account decisions, compare Meta Ads Bid Strategies: A Constraint-Led Decision and use MER Held but Platform-ROAS Cratered: Tracking or Real? as the next diagnostic.
In short
Choose the metric that matches the decision. Make that decision from attributed revenue, total revenue, paid spend, variable costs, and denominator audit, not a category benchmark, a vendor promise, or a diagnostic label.
Budget and bid controls change auction participation; revenue stage does not dictate the control. Read mature marginal contribution, cash exposure, delivery concentration, and inventory before changing spend.
Metrics — ROAS, MER, and Contribution: evidence boundary
| Evidence | System of record | Window | Required exception log |
|---|---|---|---|
| Attributed revenue | Frozen Meta Ads export under the recorded attribution setting | Declared cohort or observation window | Missing, late, excluded, or unmatched rows |
| Total revenue | Commerce order and refund ledger | Declared cohort or observation window | Missing, late, excluded, or unmatched rows |
| Paid spend | Meta and other paid-channel billing exports | Declared cohort or observation window | Missing, late, excluded, or unmatched rows |
| Variable costs | Product, fulfilment, shipping, payment, refund, and return ledgers | Declared cohort or observation window | Missing, late, excluded, or unmatched rows |
| Denominator audit | Versioned reconciliation query plus exception log | Declared cohort or observation window | Missing, late, excluded, or unmatched rows |
The worksheet is deliberately blank. Populate it with the operator’s records. A missing value remains missing; it cannot be replaced by a favorable benchmark.
Apply the attributed revenue record
Attributed revenue in this decision
For the decision to choose the metric that matches the decision, record attributed revenue before comparing periods or cells. Use the system that owns the record, state which rows qualify, select the timestamp that assigns each row to the window, and list the exceptions that remove a row. Explain how a change in attributed revenue would alter the branch—and which contrary evidence would leave the decision unchanged. An unavailable attributed revenue field stays unavailable rather than becoming a guessed benchmark.
Total revenue in this decision
For the decision to choose the metric that matches the decision, record total revenue before comparing periods or cells. Use the system that owns the record, state which rows qualify, select the timestamp that assigns each row to the window, and list the exceptions that remove a row. Explain how a change in total revenue would alter the branch—and which contrary evidence would leave the decision unchanged. An unavailable total revenue field stays unavailable rather than becoming a guessed benchmark.
Paid spend in this decision
For the decision to choose the metric that matches the decision, record paid spend before comparing periods or cells. Use the system that owns the record, state which rows qualify, select the timestamp that assigns each row to the window, and list the exceptions that remove a row. Explain how a change in paid spend would alter the branch—and which contrary evidence would leave the decision unchanged. An unavailable paid spend field stays unavailable rather than becoming a guessed benchmark.
Variable costs in this decision
For the decision to choose the metric that matches the decision, record variable costs before comparing periods or cells. Use the system that owns the record, state which rows qualify, select the timestamp that assigns each row to the window, and list the exceptions that remove a row. Explain how a change in variable costs would alter the branch—and which contrary evidence would leave the decision unchanged. An unavailable variable costs field stays unavailable rather than becoming a guessed benchmark.
Denominator audit in this decision
For the decision to choose the metric that matches the decision, record denominator audit before comparing periods or cells. Use the system that owns the record, state which rows qualify, select the timestamp that assigns each row to the window, and list the exceptions that remove a row. Explain how a change in denominator audit would alter the branch—and which contrary evidence would leave the decision unchanged. An unavailable denominator audit field stays unavailable rather than becoming a guessed benchmark.
Branching procedure for choose the metric that matches the decision
- Capture attributed revenue. Freeze its definition before the read, retain the raw extract, and note the evidence that would invalidate this step.
- Reconcile total revenue. Freeze its definition before the read, retain the raw extract, and note the evidence that would invalidate this step.
- Inspect paid spend. Freeze its definition before the read, retain the raw extract, and note the evidence that would invalidate this step.
- Declare variable costs. Freeze its definition before the read, retain the raw extract, and note the evidence that would invalidate this step.
- Segment denominator audit. Freeze its definition before the read, retain the raw extract, and note the evidence that would invalidate this step.
After those checks, write the proposed action and its leading alternative explanation side by side. The approver should be able to reject the action without losing the evidence record.
Filled decision matrix
| Decision | Use | Do not substitute |
|---|---|---|
| Diagnose platform-attributed revenue per Meta dollar | Paid ROAS | Total company revenue in the numerator |
| Read total paid-media dependence | MER | Meta spend alone in the denominator or the label “blended ROAS” |
| Price newly acquired customers | New-customer CAC | Orders, repeat customers, or platform “new” labels without first-party verification |
| Set a gross-margin-only floor | Break-even ROAS | A fully loaded profitability target |
| Allocate or hold spend | Post-return contribution | Platform-attributed revenue without costs and maturity |
Formulas used in this Metrics — ROAS, MER, and Contribution review
-
Paid ROAS = (Meta-attributed revenue) ÷ (Meta spend). Source/window: Meta attributed-outcome and spend exports using one recorded attribution setting and extraction window. Limitation: Meta Ads export under one recorded attribution setting and reporting window; it is not incremental return.
-
MER = (total recognized revenue) ÷ (total paid-media spend). Source/window: commerce recognized-revenue ledger plus all paid-channel spend ledgers for the same reporting period. Limitation: Commerce ledger plus every paid-channel spend ledger for the same period; never call MER blended ROAS.
-
New-customer CAC = (acquisition spend in the declared scope) ÷ (newly acquired customers in the same cohort, verified against first-party history). Source/window: the named first-party systems of record, reconciled for the exact eligible population and declared observation window. Limitation: Fix acquisition scope and cohort age before comparison.
-
Gross margin = (recognized revenue − COGS) ÷ (recognized revenue). Source/window: the named first-party systems of record, reconciled for the exact eligible population and declared observation window. Limitation: Use the commerce ledger for one matured period and express the result as a decimal.
-
Break-even ROAS = (1) ÷ (gross margin as a decimal). Source/window: Meta attributed-outcome and spend exports using one recorded attribution setting and extraction window. Limitation: This gross-margin floor excludes shipping, payment, fulfilment, refunds, returns, service, and fixed costs.
-
Post-return contribution per recognized order = (recognized revenue − COGS − fulfilment − shipping − payment fees − return costs − acquisition spend) ÷ (recognized orders in the matured cohort). Source/window: commerce orders, refunds, COGS, fulfilment, payment, and acquisition ledgers after the declared maturity window. Limitation: State whether recognized revenue is already net of refunds so refunds are not subtracted twice.
-
Gross margin = (recognized revenue − COGS) ÷ (recognized revenue). Use a decimal. Break-even ROAS = (1) ÷ (gross margin as a decimal). This gross-margin floor excludes other variable costs. MER is never called blended ROAS.
Filled six-field card for choose the metric that matches the decision
- Hypothesis: completing choose the metric that matches the decision changes the declared economic decision when its reconciled numerator or denominator crosses the reader’s frozen decision boundary; no crossing falsifies the action case.
- Controlled variables: hold total revenue, paid spend, variable costs, denominator audit fixed, along with attribution definitions and calendar treatment.
- Budget allocation: record
$0incremental media spend; log the engineering, analysis, and approval time used by this review. - Window: use the reader’s observed delivery and purchase lag plus the applicable cancellation and return-maturity window; assign no universal number of days.
- Primary metric: Paid ROAS using the explicit numerator and denominator above; the applicable matured contribution formula is the economic tie-breaker.
- Stop/read rule: stop for integrity, consent, policy, inventory, or cash risk; read only after the declared window matures.
- Inconclusive rule: report inconclusive when the eligible population, controlled comparison, source reconciliation, or maturity condition is absent.
Limits of this budget-bidding-scaling read
Pre-register the maximum exposure and rollback condition. A short favorable period is not enough when purchase or return windows remain open.
Attribution assigns credit under a method; incrementality estimates what changed because of exposure. A matched-period read is observational. Use a suitable controlled design for a causal claim and state interference, compliance, and statistical limitations.
Where Meta platform behavior matters, re-check the current Meta Business Tools Terms and linked product documentation before implementation; link accessed 2026-08-27. Use consented data, minimum necessary fields, restricted access, and documented deletion handling.
Can software help?
Bach.ai audits your connected Meta account against 100+ checks, ranks what it finds by estimated impact, and proposes specific fixes. It stays read-only until you approve a change, then executes the approved change on Meta; connected Google Ads data is used for intelligence only. Think of it as an automated audit layer that surfaces issues and proposed fixes for your review — not a replacement for your team’s judgment, and it does not generate your creative.
Common mistakes
- Reading attributed revenue without its declared source and window.
- Treating denominator audit as a causal verdict rather than one input to the decision.
- Changing eligibility or the primary denominator after seeing the result.
- Acting before purchase, cancellation, or return evidence has matured.
FAQ
What records belong in the Meta Ads Metrics: ROAS, MER, and Contribution review?
Begin with attributed revenue, total revenue, paid spend, variable costs, and denominator audit. Record the eligible population, owner, timestamps, exclusions, maturity window, and primary denominator so another operator can reproduce the read.
Which Meta Ads Metrics: ROAS, MER, and Contribution branch follows a failed attributed revenue check?
Stop the performance interpretation and repair or classify the failed record first. A missing or unreconciled attributed revenue input cannot support the choose the metric that matches the decision decision.
Can Meta Ads Metrics: ROAS, MER, and Contribution establish incremental revenue?
No. Paid ROAS is (Meta-attributed revenue) ÷ (Meta spend). Incrementality asks what changed because of exposure and needs a suitable comparison design.
When is the Meta Ads Metrics: ROAS, MER, and Contribution test inconclusive?
Use that label when attributed revenue cannot be reconciled, a required control changed, the eligible population misses the declared read condition, or the outcome window remains open.