How do I calculate ROAS for a pet products store?
Use the usual formula, credited revenue divided by ad spend, but run it twice. Once on first orders, once on what those customers spend over the following months. Leave shipping and tax out, because heavy bags inflate the top line.
By Joris van Huët, Founder & CEOUpdated 5 min read
Run the numbers for your store: the free break-even ROAS calculator.
If you sell pet products, calculate ROAS the usual way: revenue credited to your ads divided by what they cost. Then run it twice, on first orders and on what those customers spend over the next months. Food, litter and treats come back on a schedule, so one order usually undercounts the ad.
If you sell pet products
If you sell food, litter, treats or flea treatments, the same customer may buy the same bag every few weeks. The first order is the audition; the money is in the refills. That splits your ROAS in two. An ad that wins a new food customer looks expensive on the first order and cheap a few months later. An ad shown to an existing customer looks brilliant, because they were about to reorder anyway. Beds, crates and toys work the other way: one purchase, then a long quiet spell.
Heavy products bend the revenue line as well. A big bag of kibble or litter is costly to ship. If you charge for shipping, Shopify's Total sales counts those charges, while Net sales leaves them out. Divide Total sales by spend and part of your ROAS is the courier's money.
What one store's data shows
One store's anonymised GA4 export, 1 January 2024 to 21 August 2026. It holds shares of revenue only: no ad spend, no order counts. Nothing in it says the store sells pet products, so read it as one store, not a benchmark for pet stores.
| What the export shows | Share of revenue | Source cell |
|---|---|---|
| Direct, in last click, first click and touched views | 57.7% | Channels sheet, Direct row |
| Journeys with 1 touch (0.5 days to buy) | 79.5% | Journeys sheet, 1 touch row |
| Journeys with 4 to 9 touches (16.9 days to buy) | 5.4% | Journeys sheet, 4 to 9 touches row |
In one store, Direct holds 57.7% of revenue in all three views (Channels sheet). Google defines Direct as a visit from a saved link or a typed address. A pet owner reordering from a bookmark looks exactly like that. So does any visit GA4 could not trace.
Journeys with one touch hold 79.5% of revenue and took 0.5 days to buy (Journeys sheet). If your own export looks like this, ask how much of that fast revenue is refills. Shopify's customer reports can answer that question; a paths export cannot.
Journeys with 4 to 9 touches hold 5.4% of revenue and took 16.9 days (Journeys sheet). If you sell a crate, a GPS collar or a pricey food trial, your first orders may look more like this row. Those are the sales where an ad has to work, and where a 7-day click window can miss it.
The export holds no spend and no customer history, so it gives no ROAS and cannot split first orders from refills.
What changes for a pet products store?
You calculate two figures instead of one. First-order ROAS divides new customers' first-order revenue by the spend that won them. Cohort ROAS divides what those same customers spent over the following months by that same spend. For a food or litter store, the second one decides whether the ad paid.
Shopify's Customer cohort analysis report groups customers by the date of their first order. It shows what each cohort spent on first orders, then in each month after. Put each month's new-customer spend next to its cohort row and you have both figures.
Shopify restarts the clock on every reorder. Its marketing reports treat the next referrer after an order as the first interaction for the next order. So in Shopify's first-interaction view, the ad that found the customer gets nothing for the second bag.
Keep the platforms' ROAS in its place. Meta counts a purchase within 1 or 7 days of a link click, even a refill that was already planned. A retargeting ad shown to a loyal customer can then collect credit for a bag they had already decided to buy. That is the high ROAS that deserves the most suspicion.
What to do this week
- Open the cohort view. In Shopify, go to Analytics, then Reports, filter the Category to Customers and open Customer cohort analysis. Pass: you can read first-order sales and the months after for each cohort. Fail: most cohorts show little after their first month, so judge ads on first-order ROAS for now.
- Measure how much of your revenue is refills. In the same Customers category, open New vs returning customers for the last quarter. Pass: you know the share of buyers who are returning, and you report retargeting ROAS with that in mind. Fail: you do not, and every ROAS you quote mixes winning customers with reminding them.
- Take shipping out of the top line. In Shopify, filter the Category to Sales and open Total sales over time. Use Net sales, not Total sales, as the revenue in your ROAS. Pass: your ROAS drops a little and still clears your break-even line. Fail: it falls below, so the shipping you charged was propping it up.
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: Marketing reports (Shopify Help Center); Customers reports (Shopify Help Center); Sales reports (Shopify Help Center); Default channel group (Google Analytics Help); About attribution models and attribution settings (Meta Business Help Center).
Related answers
Frequently asked questions
Should subscription renewals count in a pet store's ROAS?
Count them in cohort ROAS, not in first-order ROAS. A renewal is revenue the first ad helped start, but the renewal itself may not need an ad. If you sell through the Shopify Subscriptions app, the Subscription vs one-time sales report splits the two.How long should I wait before judging a pet food ad?
At least one refill cycle for the product it sold, so the cohort has had a chance to come back. You can judge the first order sooner, but treat that figure as a floor. If customers return, their value only shows from the second bag on.Do heavy items change how I calculate ROAS?
They change which revenue you should use. If you charge for shipping, Shopify's Total sales includes those charges, while Net sales leaves them out. Divide Net sales by spend, then count the shipping you pay as a cost when you work out break-even.
Go deeper: Causal attribution, explained.
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Keep reading
Terms in this article
- AnalyticsAnalytics is the systematic computational analysis of data. It reveals customer behavior and measures campaign performance.
- AttributionAttribution identifies user actions that contribute to a desired outcome and assigns value to each. It reveals which marketing touchpoints drive conversions.
- Attribution ModelAn Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
- Customer Lifetime Value (CLV)Customer Lifetime Value (CLV) predicts the net profit from a customer's entire future relationship. It identifies valuable customers and directs marketing spend toward long-term profitability.
- Google AdsGoogle Ads is an online advertising platform where advertisers bid to display ads, service offerings, and product listings.
- Google AnalyticsGoogle Analytics is a web analytics service that tracks and reports website traffic.
- Repeat Purchase RateRepeat Purchase Rate is the percentage of customers who have made more than one purchase. It indicates customer loyalty and satisfaction.
- RetargetingRetargeting is online advertising that targets users who have previously interacted with your website or content. Attribution analysis shows the causal role of retargeting in driving conversions and improving ad spend.