← Back

How RAD got Shopify, ads, returns, and ops into one model

Commerce, paid media, returns, and ops each had their own extract — until they ingested into one ecommerce model.

Model
Ecommerce
Commerce
Shopify
Marketing
Several channels
Returns
Ingested
Ops
Ingested

Meet RAD

RAD sells performance and lifestyle through Shopify. The store was not the only system with a say in the numbers. Paid lived in the ad platforms, returns in their own feed, ops in theirs. A question about the business meant lining those up by hand.

The challenge

The sources never met

Shopify could tell you what sold. It could not, on its own, tell you what the ads cost, what came back, or what ops did with the order. Those feeds existed. They did not ingest into one model, so contribution and the shop never quite sat on the same grain.

Not “another Shopify extract.” Build the ecommerce model that actually takes in Shopify, the marketing channels, returns, and ops.

The solution

Shopify went in first: the order, the product, the customer. Then the marketing channels, so paid was not a separate file you joined in a spreadsheet. Returns and ops came onto the same grain, so a refund or a fulfilment miss belonged to the order it came from. I built it as one ecommerce model, not four extracts that get reconciled after the fact.

  • Land Shopify as the commerce spine — orders, products, customers
  • Bring in the marketing channels so spend sits next to the order
  • Fold returns and ops into the same model, so a refund or a warehouse miss is not a side file

Shopify, several marketing channels, returns, and ops — one model.

The results

  • Shopify in the model as the commerce spine
  • Several marketing channels ingested
  • Returns data on the same grain as the order
  • Ops data in the same model
  • One ecommerce model instead of four extracts

A question about the business could be asked once, against one model.

Shopify, ads, returns, and ops landed in the same place. The model was what they ran on.