Skip to content

Reports, cost and export

What does a new customer cost me, and what is left?

The “Commerce & products” area in the portal shows new-customer cost, margin ROAS, average order value, repeat purchase rate and a product report. The campaign filter only narrows the product report: the metrics above it always cover all campaigns. They appear as soon as your shop sends the matching figures; without them the metric in question stays empty. The overview and the “Attribution” page show the margin ROAS per channel and per campaign.

How do I see new-customer cost and contribution margin, and which products did a campaign sell?

ROAS on revenue answers the wrong question. Two campaigns with the same ROAS can be worth very different amounts: one brings back customers who would have come anyway, the other brings new ones. One sells goods at a 60 percent margin, the other at 12.

The four metrics

MetricHow it is calculatedWhat you need it for
New-customer costAd spend divided by attributed orders from new customersWhat a new customer costs, not what an order costs
Margin ROASAttributed contribution margin divided by ad spendWhether anything is left after the cost of goods
Average order valueRevenue after refunds divided by the number of ordersWhether a campaign brings larger or smaller baskets
Repeat purchase rateShare of people with more than one order in the periodWhether a high new-customer price pays off over time

What your shop has to send

  • newCustomer: whether this was the customer’s first order. Without it Metrunio derives the answer from its own measurements and labels it “measured” rather than “from the shop”. That is the weaker statement: we do not know the time before the first measurement. A subscription renewal is never a new-customer order, not even a measured one: it counts as an order by an existing customer.
  • Measured means the person’s first purchase in time, not the first one to arrive. If an earlier purchase arrives later, for example as a catch-up through the Server API, or Metrunio recognises two identifiers as the same person, their later purchases become orders by an existing customer. This does not apply to a purchase already reported to an ad platform or skipped by a new-customers-only destination because of the customer type. It stays as it was reported, in your reports too, so that report and platform say the same. Metrunio never changes what your shop sent.
  • netValue and costOfGoods: net value and cost of goods. Only both together yield a contribution margin; if one is missing the field stays empty rather than reporting revenue as margin.
  • items: the cart line items. The product report exists only with them.

Note

The article “How do I send cart, new customers and margin from my shop?” shows the call in detail.

Why a metric stays empty

Above the contribution margin you see what share of orders it rests on. Two things can reduce it: an order carried no net value or no cost of goods, or a partial refund did not state which part of it was goods. In the second case the share is not extrapolated; the order is removed from the total and counted instead. A margin that rests 40 percent on extrapolated portions would be worse than one that says what it rests on.

Contribution margin per channel and per campaign

The channel table of the overview and the breakdown by channel or campaign under “Attribution” have a “Margin ROAS” column: the row’s attributed contribution margin divided by its ad spend. Below 1.0, the attributed orders leave less after cost of goods than the ads cost. The figure is attributed, like the ROAS next to it. It does not say whether the orders would have happened without the ads.

If only some of a row’s orders carry the cost of goods, the figure shows below it what percentage of orders it comes from. The costs are those of the whole row, the margin only that of these orders, so with low coverage the figure is too low. Nothing is extrapolated. If the cost of goods is missing for all orders in the row or its costs are missing, no value is shown, only the reason. When you narrow to leads there is no cost of goods and the column is left out. In the CSV export, contribution margin, margin ROAS and coverage are the last three columns; scripts find them in the read API under /v1/data/breakdown, and the assistant in the “breakdown” tool.

The product report: measured, attributed per campaign

With “All campaigns” it is measured: it shows what was sold, not which campaign sold it. You can group by product, variant, category or brand. Fully refunded orders drop out; a partial refund does not reduce the line items, because it rarely says which position came back.

If you pick a campaign under “Campaign” above the table, it becomes an attribution: you then see the line items from orders this campaign was involved in, weighted by its share in the chosen model. Across all campaigns together this adds up to the whole revenue again.

Note

The campaign filter only applies to the product report. New-customer cost, contribution margin and the other metrics above it stay the figures for all campaigns. You see a campaign’s attributed contribution margin per product in the table. The assistant under “Ask your data” returns the same with the “commerce” tool, and so does your own AI tool through the MCP server.

Caution

Orders in foreign currencies are converted into your currency using the European Central Bank reference rate of the order date; you set that currency in the settings. A reference rate is not the rate your payment provider settled at. For orders without a rate the amounts are missing from the totals. They are still counted, and the page names how many.

Last reviewed on 17 Oct 2026

In the customer portal

Go to commerce & products

Also asked

  • See new-customer cost
  • CAC for new customers
  • ROAS on margin
  • Contribution margin per campaign
  • Why do the metrics not change when I pick a campaign?
  • Average order value
  • Measure repeat purchase rate
  • Which products sell
  • Which products did a campaign sell?
  • Why is a purchase no longer a new customer afterwards?

Related articles

  • When has a new customer paid for themselves?

    How do I read the cohorts under “Commerce & products” for repeat purchases, margin per customer and payback?

    Under “Commerce & products”, the customer cohorts group customers by the month of their first measured purchase. For each following month they show how many bought again and how much contribution margin per customer has accumulated; “Paid back” names the first month in which that amount reached the new-customer cost of the first-purchase month.

  • How do I send cart, new customers and margin from my shop?

    How do I pass line items, the net value, the cost of goods and whether it was a new customer?

    On checkout, tracker.conversion(…) and the Server Events API also accept newCustomer, the breakdown of the order value (netValue, taxValue, shippingValue, discountValue, costOfGoods) and the cart line items (items). All fields are optional; without them Metrunio measures as before. With them you get new-customer cost, contribution margin and product-level reporting.

  • Which metrics exist and how are they calculated?

    How are ROAS, CPA and conversion rate derived?

    Metrics come from measured quantities and, where attribution is involved, from the chosen model. Cost-based metrics require ad spend to have been imported or synced.

  • How do I import ad spend from a CSV?

    How do I get my media cost into Metrunio?

    Under “Data connections”, in the “Receive costs” section, four routes sit side by side: connect an ad account, import a CSV file, connect a shared sheet that Metrunio reads every day, or enter single days by hand. The CSV import maps rows to a campaign and a day and can be withdrawn as a whole; a template is available for download.

  • How do the attribution models calculate?

    Which models exist and how do they distribute the share?

    There are seven models: six distribute a conversion by a fixed, disclosed rule, and the seventh reads the rule from your own paths. If a model finds matching touchpoints, it distributes the conversion’s full value across them; if it finds none, the conversion stays “unattributed” and is shown separately. Attributed and unattributed together add up to all conversions it calculates.

  • How does Metrunio count subscription renewals?

    How do I mark subscription renewals, and which channel are they attributed to?

    You report a renewal as a purchase with the subscription ID (subscription_id) and the flag subscription_renewal; Metrunio marks renewals from Stripe itself. It counts in measured revenue, appears separately in the reports and receives the shares of the first order of the same subscription, because it has no ad contact of its own. Without a known first order or without consent, it stays unattributed with a reason.

See what your data tells you.

Look around in the demo first. Your own account is currently available by invitation only.

Open the demoRequest access