Shopify Analytics is very good at what it was built for: it tells you what sold, to whom, through which channel, and for how much. What it does not know is what each of those units cost you to buy, what you spent advertising them, what came back, and what the business pays for every month whether it sells anything or not.
Those four gaps are the difference between revenue and profit, and they are what ORVX fills.
What connecting Shopify gives ORVX
The connection uses three read scopes and nothing else:
read_products— products, variants and collections, so costs can be attached at the level you actually buy stock.read_orders— orders, line items and refunds, so revenue can be counted on delivery rather than on checkout.read_customers— enough to recognise a returning buyer whose orders would otherwise look like several different people.
There is no write scope, because there is nothing to write. ORVX cannot edit an order, change a price, adjust inventory or touch your storefront. It reads, and it computes.
The number Shopify cannot show you
Shopify reports an order the moment it is placed. That is correct for a storefront and wrong for a profit figure, because a meaningful share of those orders will be refunded or cancelled and never become money.
Shopify total sales every order placed, less discounts
ORVX realized revenue delivered orders only, at the price paid
The gap is your return and cancellation rate,
and every margin built on the first number inherits it.
On a store returning 20% of units, a 35% gross margin computed against placed orders is nearer 28% against delivered ones. That is not a rounding difference. It is the difference between a product worth scaling and a product worth dropping.
Product costs, at the level you actually buy
Cost is entered per product and, where it differs, per variant — because a size run rarely costs the same across every size, and a catalogue-level average quietly moves profit from one SKU to another. Where a variant has no cost of its own, the product's cost applies, so partial cost data still produces usable numbers instead of blanks.
Then the parts Shopify never sees
- Advertising. Meta, Google and TikTok spend, read from the ad accounts you connect, set against the margins the products actually earn.
- Operating expenses. The costs that exist whether or not you sell — so net profit is a real number and not gross profit under another name.
- Returns. Unit return rate and refund-to-revenue, per product and per collection.
- Customers. Repeat rate and revenue per customer on one canonical identity, rather than one row per phone number.
Multi-currency, without silent conversion
Every money figure carries the store's own currency and never crosses one. ORVX does not convert behind your back and then present the result as though it were native — a converted total that does not say it was converted is a number that will eventually be quoted as fact.
What setup actually involves
Connect Shopify, approve the read permissions on Shopify's own screen, and let the first sync import your order history. Add product costs — that is the part that takes real effort, and it is the part that makes everything else true. Connect ad accounts if you run paid traffic. Then look at a completed month.
If you already suspect that one of your best sellers is not paying for itself, that is usually the first thing this shows you.