Skip to content

How to reset target ROAS when your margin changes

When your margin moves, move the target with it. Annotate the change in Shopify and update Cost per item. Compare Gross profit by product before and after, then work out the new floor and target. Set it in Google Ads and Meta, and give both time to recalibrate.

By , Founder & CEOUpdated 8 min read

Run the numbers for your store: the free break-even ROAS calculator.

Usually in four moves. Record the cost change in Shopify and read the new margin in Gross profit by product. Work out the new floor and target. Then enter the target in Google Ads and Meta, and give both a week or two to recalibrate before you judge it.

Margins move more often than targets do. A supplier raises a price, a courier changes rates, a sale starts, and the target set in spring keeps running. This is the routine for moving the target with the margin. Every menu path comes from Shopify's, Google's and Meta's help pages as they read on 1 October 2026.

Step by step

  1. Mark the day the margin moved. Annotate it in Shopify, so the before and after show on your charts. Give the note a title, a start date and a category, such as Supplier change. The report needs time as its first dimension, and staff need the Reports permission. Menu path: Shopify admin > Analytics > Reports > (a report over time) > Annotations > (the icon beside it) > Save.
  2. Record the new cost the same day. Shopify keeps Cost per item as a fixed value. Profit reports only know the new cost from the moment you save it, and earlier sales keep the cost recorded when they sold. Menu path: Shopify admin > Products > (product) > Price section > Cost per item > Cost > Save.
  3. Compare the margin before and after. Open Gross profit by product for the weeks since the change. Click Compare to, then Comparison to past, and pick Previous period. Shopify works out gross margin on net sales, so discounts and refunds in either period show up too. Menu path: Shopify admin > Analytics > Reports > Category filter > Profit Margin > Gross profit by product.
  4. Bring in the costs outside the product. Shipping you pay, card fees and refunds come off each sale as well. If a courier rate changed, Profit margin by order sets the shipping customers paid against the shipping your store paid. Menu path: Shopify admin > Analytics > Reports > Category filter > Profit Margin > Profit margin by order.
  5. Work out the new floor and target. The floor is 1 divided by your margin after costs. The target is 1 divided by that margin minus the share of each sale you want to keep as profit. The break-even ROAS calculator shows the first sum. Menu path: none, this step is arithmetic.
  6. Enter the target in Google Ads, as a percentage. Google's own example of $5 in sales for each $1 spent goes in as 500%. Google says Target ROAS reacts to a new target quickly but may take time to calibrate around your conversion delay. To test first, Save as experiment runs the new target against the old one. Menu path: Campaigns icon > Campaigns > (campaign) > Settings > Bidding > Change bid strategy > Target ROAS > Save.
  7. Enter the goal in Meta. Meta's ROAS goal is a decimal: in Meta's example, a 110% return is a goal of 1.100. It sits in the ad set, under the Maximize value of conversions performance goal. With Advantage+ campaign budget, choose ROAS goal as the campaign's bid strategy first. Menu path: Ads Manager > (ad set) > Performance goal: Maximize value of conversions > ROAS goal.
  8. Treat a short sale as two changes. A seasonality adjustment tells Smart Bidding to expect a change in conversion rate during a promotion. Google says it suits events of 1 to 7 days. It adjusts conversion rate only, so the margin still needs its own target. Menu path: Tools icon > Budgets and bidding > Adjustments > Seasonal > plus button > Conversion rate > Save > Create seasonality adjustment.
  9. Judge it after one to two conversion cycles. Add Avg. Target ROAS next to Conv. value/cost, from the day of the change. Google describes that average as weighted by traffic across the targets you set in the period. For Meta, wait at least 7 days after any change and read weekly averages. Menu path: Campaigns > column icon > Performance > Avg. Target ROAS; Columns > Modify columns > Conversions > Conv. value/cost.

A worked example

For illustration, take one invented best seller, priced at €80 before VAT. Say the product costs €28 to make, and shipping, packing and card fees take €12 of each sale. Say the supplier then raises the cost to €36. Say you want each sale to keep 15% of its price as profit after the ads.

Line (for illustration)Before the riseAfter the rise
Price before VAT€80€80
Product cost€28€36
Shipping, packing and card fees€12€12
Margin after costs50%40%
Floor: 1 divided by the margin2.0x2.5x
Target: 1 divided by (margin minus 15%)about 2.86x4.0x
Google Ads Target ROAS286%400%
Meta ROAS goal2.8574.000

In this worked example, the cost rose by a tenth of the price and the target rose by two fifths. The floor moved less than the target, because the profit you want now comes out of a smaller margin.

The after column matches one store's Break-even sheet: at a 40% margin, break-even ROAS is 2.5x, because 1 divided by 0.40 is 2.5. That row is arithmetic, and the export holds no spend, so it is not a ROAS anyone reached.

In this worked example, leaving 286% in place now keeps about 5% of each sale, not 15%. Expect the new target to cost volume. Google warns that a target set too high may limit your traffic. Meta says a ROAS goal may spend less than your full budget when the market is competitive. If spend dries up, the fix is the margin, through price or supplier, not a lower target.

Then give it time. In one store's export, journeys with 4 to 9 touches took 16.9 days to buy (Journeys sheet). If your buyers take that long, sales from clicks bought under the new target keep arriving for weeks. That is why Google asks for one to two conversion cycles before the next change.

What should I check when the numbers look wrong?

  • Gross profit by product still shows the old margin. Sales made before the change keep the cost recorded when they sold. Start the date range on the day of the change.
  • The margin fell and no cost changed. Discounts or refunds landed in the period, because Shopify's gross margin uses net sales. Look for a promotion or a run of returns in the same weeks.
  • Spend dropped after you raised the target. That is the target working: fewer auctions clear the higher bar. Choose between less volume and a better margin.
  • Avg. Target ROAS does not match what you typed. It blends every target that ran in the date range, weighted by traffic. Narrow the range to the days since the change.
  • The campaign shows Learning. Google shows that status while a bid strategy calibrates to a new objective. Leave it alone until it clears.
  • The sale ended and bids stayed keen. A seasonality adjustment ends by itself, and Google says no negative adjustment is needed afterwards. A target you changed for the sale does not reset, so put the full-price target back.

What to do this week

  1. Annotate your last margin change. In Shopify, open Analytics, then Reports, pick a report over time and add the change under Annotations. Pass: a marker shows on the chart at the right date. Fail: there is no Annotations option, because time is not the report's first dimension.
  2. Recompute one target from today's margin. Take your best seller's margin, take off your profit share and divide 1 by what is left. Pass: the new target sits above your floor. Fail: the margin is smaller than the profit you want, so no ROAS can deliver it until price or cost changes.
  3. Book the review before you change anything. Set the new target and goal, then put a review in your calendar. Look again after one to two conversion cycles, and no sooner than 7 days in Meta. Pass: actual ROAS sits near the new target and the campaign still spends. Fail: spend has dried up, so the auction cannot sell this product at that margin right now.

Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework

Sources, 1 October 2026: Annotations in your Shopify reports (Shopify Help Center); Profit reports (Shopify Help Center); Setting and comparing time ranges for your reports (Shopify Help Center); About Target ROAS bidding (Google Ads Help); Set up Target ROAS bidding for Shopping campaigns (Google Ads Help); About ROAS goal (Meta Business Help Center); About seasonality adjustments (Google Ads Help); Create a seasonality adjustment (Google Ads Help); Tips on measuring Smart Bidding performance (Google Ads Help)

Frequently asked questions

  • Does changing my target ROAS restart learning?
    It can. Google says an updated bid strategy may show a Learning status while it calibrates to the new objective. Meta asks you to wait at least 7 days after any adjustment before you re-evaluate. Change the target once, then leave it alone.
  • Should I lower my target ROAS when my costs fall?
    You can, because a better margin lowers your floor and the same profit then needs less ROAS. Google's help says that gradually lowering the target lets the strategy enter more auctions. Recompute the floor first, then lower the target in steps.
  • Where can I see the target a campaign actually used?
    In Google Ads, add the Avg. Target ROAS column from the Performance category of the Campaigns table. Google describes it as a traffic-weighted average of the targets you set over the date range, so after a change it blends old and new.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.