A Shopify store was scaling Facebook ads while refunds and discounts quietly ate the profit. This project put store numbers and ad numbers on one screen.
DTC STORE // SHOPIFY + META → LOOKER
REPEAT AOV: $88
The strip along the top shows sales, orders, refunds and ad return in one line.
The four panels show sales over time, top products, customer mix and ad campaigns.
Refunds and discounts sit right next to ad results, so nothing is hidden.
Ads Manager showed good returns, so the ads kept scaling. But Shopify showed rising refunds and discount codes cutting into profit — and the two reports were never side by side.
We joined the store data and the ad data into one dashboard. Now scaling decisions include the full picture: sales, refunds, discounts and margins.
Shopify and Meta Ads data are joined into one model. SQL builds the sales, product and margin views, and Looker Studio shows them as one four-panel dashboard with alerts.
Orders, products, discounts, refunds, customers.
Spend, purchases, campaign detail.
Gross→net bridge · product concentration · new-vs-returning.
The quad board: sales, products, customers, campaigns — plus deep-dive pages.
Refund-spike and discount-leak alerts to Slack.
Two more pages: the product table and the alerts page. Built in HTML with sample data.
DTC // THE CATALOGUE, BOOKS OPEN
| PRODUCT | REVENUE | UNITS | MARGIN | REFUND % | TREND |
|---|---|---|---|---|---|
| HERO ITEM | $24.0K | 338 | 41% | 1.4% | ▲ |
| BUNDLE | $17.2K | 190 | 36% | 1.9% | ▲ |
| CLASSIC | $11.1K | 204 | 33% | 2.2% | ▲ |
| MINI | $7.0K | 226 | 22% | 3.8% | ▼ |
AUTOMATION // MARGIN + REFUND RULES → SLACK
Refunds hit 3.8% (2× catalogue average), sized to fit issues. Size guide v2 queued.
Code stacking detected on 31 orders; margin impact $412. Suggest: single-use rule.
Shopify + Meta joined at 07:00. 6,884 orders reconciled. 0 errors.
Hero and Bundle carried revenue at 41% and 36% margin; Mini kept volume but leaked margin through fit-driven refunds.
Discount share held at 58% full-price — healthy — but VIP20 stacking needs the single-use rule before the next drop.
Refunds and discounts now appear next to ad returns, so scaling never hides the real cost.
The store knows which products carry the business and watches them closely.
Store and ads stopped having separate meetings about the same money.
NOTE: CLIENT DETAILS GENERALISED · ALL NUMBERS ARE SAMPLE DATA · DASHBOARDS ARE HTML RECREATIONS
If your ads look great but your profit doesn’t, this same setup can be built for your store.