Shopshot's attribution model is deliberately simple. It does not model the customer journey across many touchpoints. It assigns acquisition cost using rules you can hold in your head, and it reports only what it can trace.
The core rule
New customer orders carry an acquisition cost. Where a channel can be identified, the order gets a channel-specific CAC (that channel's daily spend divided by its new customer orders). Otherwise it gets a blended CAC as a fallback.
Returning customer orders carry zero acquisition cost. You already paid to acquire that customer.
This is why, in Orders, a repeat purchase can look far more profitable than a first purchase of the same product. That difference is real.
CAC is sunk, and separate from order-level costs
Acquisition cost is reported on its own, not folded into the order-level cost of fulfilling an order (COGS, shipping, fees, fulfillment). In the order waterfall it sits below Gross profit and is marked as sunk, because ad spend does not come back if the order is refunded.
SKU-level marketing allocation
When marketing cost is pushed down to products, it is allocated by revenue share. Shopshot does not claim to know which ad sold which unit, so it uses a transparent split rather than a guess dressed up as precision.
Why Shopshot's numbers differ from the ad platforms
Actual ROAS uses last-click UTM attribution. Platform-reported ROAS is excluded, because ad platforms self-attribute and frequently claim the same conversion. Both MER and Blended ROAS use Net Sales as the numerator, keeping every marketing metric consistent with each other and with your P&L.
The Shopshot pixel and UTMs
Shopify captures UTMs at checkout, until it does not. Buy Now buttons, dynamic checkout, an ad click followed by a different product, and multi-session purchases all lose the original source, which is where most attribution breaks. The Shopshot pixel helps catch sales Shopify cannot attribute on its own. For cleaner campaign-level attribution, keep Google auto-tagging enabled and add UTM parameters in your Final URL suffix. See the Integrations article.
Common questions
Why is my Shopshot CAC higher than my platform's cost per acquisition? Because Shopshot divides real spend by real new-customer orders, without the platform's self-attributed conversion inflation.
A first order looks unprofitable. Is that a problem? Not necessarily. First orders carry full CAC, while later orders from that same customer carry none. The return on an acquisition shows up across the customer's orders over time.
