Skip to main content
Card class: HeroCategory: Ad Platform
Advertising Cost of Sales, primary profitability gauge. Replaces generic ROAS hero for Amazon Ads.

At a glance

Advertising Cost of Sales, the primary efficiency metric on Amazon. ad_spend ÷ attributed_sales, expressed as a percentage. The inverse of ROAS (ROAS = 100% ÷ ACOS), so a 25% ACOS = 4× ROAS and lower is better. Industry-healthy ACOS sits at 15-25%; above 30% means non-brand campaigns are losing money for most categories.
The formulaSUM(cost) ÷ SUM(attributedSales14d) × 100. Aggregated from the Sponsored Products / Brands / Display Reports API. ACOS expresses ad spend as a percentage of ad-attributed revenue.
Reports API endpointPOST /reporting/reports on Amazon Advertising API v3, with reportTypeId per ad type (spCampaigns for Sponsored Products, sbCampaigns for Sponsored Brands, sdCampaigns for Sponsored Display). DSP uses a separate Reports API. The card pulls cost, sales1d / sales7d / sales14d, purchases14d per campaign / ad-group / keyword.
ACOS vs ROAS framingSame data, different convention. ACOS = spend ÷ sales (inverse). ROAS = sales ÷ spend (direct). Amazon uses ACOS; Google Ads / Meta use ROAS. To convert: ROAS = 100% ÷ ACOS. So ACOS 25% = ROAS 4×; ACOS 50% = ROAS 2×; ACOS 100% = ROAS 1× (break-even on revenue, lossy on margin).
Attribution modelLast-click within Amazon ecosystem only. A click on a Sponsored Product ad attributes to that ad if the same shopper places an order on Amazon within the attribution window. No cross-channel visibility, the merchant’s DTC site is invisible to Amazon Ads.
Default attribution window14-day click for Sponsored Products / Brands / Display. DSP defaults to 14-day click + 14-day view. Window can be set to 1d, 7d, 14d, or 30d on the report request. The 14d default is what most reports show; 1d gives a tighter, more conservative ACOS read.
Brand vs non-brand keyword scopeCritical and reported separately when keywords are tagged. Branded ACOS commonly 5-8% (cheap defence on people who would buy anyway); non-branded ACOS 25-40% (real acquisition cost). The blended hero number hides this; cross to Branded vs Non-Branded Spend to split it.
Sponsored Products vs Brands vs Display vs DSPSP (search-result ads, bottom-funnel, tightest ACOS). SB (banner search ads, mid-funnel, looser ACOS but with halo on organic). SD (audience-driven product ads, retargeting + lookalikes). DSP (programmatic display + video, top-of-funnel. ACOS is not the right yardstick). Each ad type has its own report endpoint.
CurrencyAccount currency only (set per Amazon Advertising account, locked at marketplace creation). Multi-marketplace sellers run separate accounts per marketplace; this card is per-account, single-currency.
Amazon-only attribution gapIf a customer clicks an Amazon ad, leaves Amazon, then buys on the merchant’s DTC Shopify or BigCommerce site later, Amazon never sees the sale and the DTC platform never sees Amazon’s role. The two ecosystems are completely siloed. The merchant’s true ad-influenced revenue is higher than ACOS implies.
Time window30D vsP (default 30 days vs the prior 30 days). Amazon’s report-generation latency means today is provisional for ~24h.
Alert trigger>40% (warn) / >category benchmark (critical). Drives sentiment_key: roas (inverted internally so high ACOS = bad sentiment).
Rolesowner, marketing, finance

Calculation

Calculated automatically from your Amazon Ads data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A US home-goods seller running a mature Amazon catalog: Sponsored Products on branded + non-branded search, Sponsored Brands as awareness, and a Sponsored Display remarketing line. The 30-day window covers 14 Mar 26 to 12 Apr 26.
Campaign groupSpendAttributed sales (14d)ACOSEquivalent ROAS
SP, Branded Search (“our-brand pillow”)$2,800$56,0005.0%20.0×
SP, Non-branded (“memory foam pillow”)$14,200$43,80032.4%3.08×
SP, Auto Targeting$3,400$11,20030.4%3.29×
SB, Brand Awareness Banner$4,800$9,40051.1%1.96×
SD, Remarketing$1,600$5,80027.6%3.62×
Total (this card)$26,800$126,20021.2%4.71×
What’s interesting:
  1. Branded ACOS of 5% is “free money” but is not really acquisition. Those shoppers searched the merchant’s exact brand name; they were going to buy anyway. The $2,800 spend defends the slot from competitor-conquest ads. The 5% ACOS makes the blended hero look healthy and disguises a less-flattering non-branded number, agencies who quote a single ACOS number are nearly always quoting the blended figure. Always split using Branded vs Non-Branded Spend.
  2. Non-branded ACOS at 32% is right at the edge of profitability. Industry rule of thumb: target ACOS = gross margin × (1 - desired profit margin). A category with 60% gross margin can absorb up to ~40% ACOS at break-even. At 32%, the merchant is still profitable but has limited headroom; a 4-percentage-point rise on a competitor squeeze would tip the campaign loss-making.
  3. SB Awareness Banner’s 51% ACOS is misleading, top-of-funnel measurement against bottom-of-funnel intent. Sponsored Brands’ real value is the organic halo (the awareness boosts non-paid search rank and DTC site traffic, neither of which Amazon attributes back). Use Sponsored Brands Halo Effect before judging SB on ACOS alone.
  4. The blended 21% looks healthy but reflects $2,800 of cheap brand defence pulling the average down. Strip the branded line and the blended ACOS becomes 27.5% (ROAS 3.6×), much closer to the real cost of incremental sales.
  5. Prior 30D ACOS was 19.4%, so today’s 21.2% is a 1.8-percentage-point worsening, equivalent to ROAS dropping from 5.15× to 4.71×. Below the 40% warn threshold but worth investigating, the SP Auto Targeting campaign is drifting (30.4% this period vs 24% last period).
Quick sanity tests:
  • ACOS down + sales up = healthy scaling on efficient inventory.
  • ACOS up + sales up = scaling beyond the efficient frontier (commonest cause of an alert).
  • ACOS flat + sales down = competitive pressure or seasonality, not your campaigns failing.
  • ACOS up sharply with no sales drop = a single high-spend campaign drifted; check ROAS by Campaign.
  • Branded ACOS rising = competitor conquest bidding has entered your auction.

Sibling cards merchants should reference together

CardWhy pair it with ACOS
Amazon Ads ROASThe same data expressed as a multiple instead of a percentage. Use whichever your team thinks in.
Amazon Ads Total SpendThe numerator. ACOS up + spend up means scaling, ACOS up + spend flat means efficiency loss.
Amazon Ads Total RevenueThe denominator. Plus a sanity check that the attributed-sales total looks right.
Amazon Ads TACOSTotal ACOS = spend ÷ (ad sales + organic sales). The strategic read; if TACOS is falling while ACOS is flat, ads are lifting the whole pie.
Branded vs Non-Branded SpendThe blended ACOS hides this split. Always look at the two separately before changing bids.
ROAS by CampaignThe drill-down. Headline ACOS hides per-campaign variance. Open this before making decisions.
Sponsored Brands Halo EffectSB ACOS looks bad but creates organic lift Amazon doesn’t credit. Open this before pausing SB.
Amazon Selling Partner Total SalesThe parent denominator. Ads-attributed sales should be a sub-set of this; the gap is organic.
Google Ads ROASThe cross-platform paid-acquisition comparison. Different ecosystems but useful for budget allocation across channels.
Shopify Total RevenueThe other half of the merchant’s revenue picture (DTC). Amazon Ads has zero visibility into this.

Reconciling against the vendor’s own dashboard

Where to look in Amazon Ads Console: Amazon Ads Console > Campaign Manager, the default Campaign Manager view shows ACOS in the column set per campaign. The total at the top of the table should match this card to within ~1%. Amazon Ads Console > Reports > Sponsored Products / Brands / Display is the report-builder view, useful for breaking ACOS by ad type. Choose a 30-day window and the same date range, the totals match. Amazon Ads Console > Recommendations. Amazon’s own optimisation suggestions. Useful as a sanity-check on what Amazon thinks the inefficiency is. Why our number may legitimately differ from Amazon Ads Console:
ReasonDirection of divergenceWhy it happens
Timezone. Amazon Advertising reports use PT (Pacific) regardless of your account location. Vortex IQ aligns to PT for Amazon Ads.None when both are PT-aligned.Amazon’s reporting backend is in Seattle.
Report-generation latency (1-3 hours). A new order in the last hour may not be in either side.Today’s ACOS is provisional for ~24h.Amazon batches report builds; the most recent hours catch up on the next refresh.
ACOS calculation timing. Sales attributed back to clicks within the 14-day window means today’s ACOS continues to adjust for 14 days as late conversions land.Today’s ACOS will improve over the next 14 days as more 14-day-window conversions get attributed back.Amazon re-attributes nightly; this card re-pulls every 4 hours.
API rate limits. Amazon Advertising API enforces ~2 requests/sec; large accounts may have stale partials during heavy refresh.Stale by up to 1 refresh cycle (~4h) in extreme cases.The pull is paginated and rate-limited.
Attribution window choice. If you compare a 7-day-window report against a 14-day-window report, ACOS will differ. This card uses the 14d default.This card may show lower ACOS than the Console’s 7d view.The wider window captures more sales against the same spend.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
amazon_sp.amzn_sp_total_salesAds-attributed sales ≤ Selling Partner Total Sales. The gap is organic.Amazon Ads attribution doesn’t include marketplace organic; Selling Partner reports the whole order. The two should reconcile within the date window once organic is subtracted.
google_ads.gads_roasNo relationship. Separate ecosystems.Don’t try to add the two; the audiences are mostly disjoint and the attribution windows are incompatible. Treat them as independent budget lines.
google_analytics.ga_revenue_by_channelAmazon traffic on the merchant DTC site shows in GA4 as referral source amazon.com. This is incremental DTC revenue that Amazon Ads does NOT see.The Amazon-only attribution gap. Customers who clicked Amazon, browsed, then bought on the DTC site are completely invisible to ACOS.
shopify.total_revenueNo relationship. Different sales channel entirely.Amazon Ads sales close on Amazon; Shopify sales close on the DTC site. Don’t compare.

Known limitations / merchant FAQs

ACOS vs ROAS, which one should I use? Same data, different convention. ACOS (spend ÷ sales) is what Amazon uses; ROAS (sales ÷ spend) is what Google Ads / Meta use. Convert with ROAS = 100% ÷ ACOS. So 25% ACOS = 4× ROAS. Use the one your team already thinks in; the underlying number is identical. Most Amazon-native sellers think in ACOS; cross-channel marketers prefer ROAS for comparability. Why is my Branded ACOS 5% but my non-branded ACOS 35%? Brand-keyword shoppers searched for your exact name; they were going to buy anyway. The 5% spend defends the slot from competitor-conquest ads but isn’t really acquisition cost. Non-branded keywords compete in the open auction against everyone in your category, so the cost-per-sale is realistically 4-6× higher. A blended hero ACOS is therefore not directly actionable, always split using Branded vs Non-Branded Spend. Agencies who quote a single ACOS number are nearly always quoting the branded-inflated blend. My Sponsored Brands ACOS is 50%, should I pause SB? Probably not. SB ads are mid-funnel awareness placements; the real value is the organic halo (your brand awareness boosts non-paid search rank and external traffic). Amazon doesn’t credit any of that back into the SB ACOS, so the metric undercounts SB’s true contribution. Open Sponsored Brands Halo Effect before deciding. As a rule of thumb, judge SB on new-to-brand sales rather than ACOS. Why doesn’t my Amazon Ads ACOS reconcile with my Google Ads ROAS? Different ecosystems. Amazon Ads only sees clicks-to-purchases inside Amazon; Google Ads only sees clicks on Google properties. The two audiences barely overlap (Amazon shoppers are bottom-funnel intent; Google PMax/Search audiences are broader). Don’t try to add the two budgets and divide into total revenue, the result is meaningless. Treat them as separate channels with separate ACOS/ROAS targets. What changed when Amazon updated the attribution window? The default click attribution window is 14 days for Sponsored Products / Brands / Display. If you re-pull historical reports, you’ll see ACOS shift slightly because Amazon may re-attribute late conversions. The card uses 14d default; switching the report request to 7d will tighten ACOS (lower attributed sales for the same spend, so higher ACOS). Settings live on each report request, not at account level. I sell on US, UK, and DE marketplaces, why are these reported separately? Each marketplace is a separate Amazon Advertising account with its own currency. ACOS is not aggregable across them in any meaningful way; an exchange-rate-converted total is mathematically suspect because the attributed_sales were transacted in local currency. Run one Vortex IQ connector per marketplace; compare ACOS in local currency. Can I trust today’s ACOS? Less than 30-day rolling. Amazon’s attribution is continuous, sales attributed to today’s clicks will keep landing for the next 14 days. Today’s ACOS is provisional and will improve over the next two weeks as late conversions roll in. Don’t restructure campaigns based on a single day’s ACOS; the 7-day rolling is the actionable read. DSP vs Sponsored, do they share the same ACOS? No. DSP (Demand-Side Platform, programmatic display + video) reports through a separate Reports API and uses 14-day-click + 14-day-view attribution by default. DSP ACOS often looks worse than Sponsored ACOS because DSP runs top-of-funnel awareness; ACOS is not the right yardstick for DSP. Use DSP vs Sponsored Spend Mix for the strategic split, and judge DSP on reach and new-to-brand share. How do I set my target ACOS? The merchant playbook: target_ACOS ≤ gross_margin × (1 - desired_profit_margin). So if gross margin is 60% and you want 10% net profit on the marketed line, target ACOS is 60% × 0.90 = 54%. If gross_margin × (1 - target_ACOS) > break-even, scale. A category with 60% gross margin is profitable at any ACOS below ~50%; below 25% you have headroom to scale spend until ACOS rises to that level.

Tracked live in Vortex IQ Nerve Centre

ACOS is one of hundreds of KPI pulses Vortex IQ tracks across Amazon Ads and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.