Most ecommerce reporting answers a question nobody is really asking. Revenue is easy to measure, so it is what gets measured, and a store can spend a year watching a number go up while the amount of money it keeps goes down.

ORVX is built around the other number. It reads your orders, your product costs, your advertising spend and your operating expenses, and computes what the business actually earned — per product, per collection, per campaign, per customer and per month.

What "profit" means here, precisely

Vague definitions are how two dashboards end up disagreeing about one month, so ORVX states its ladder once and uses it everywhere:

The ORVX profit ladder Realized revenue delivered orders only, at the price paid − COGS delivered units × landed unit cost = Gross profit − Advertising Meta + Google + TikTok, as spent = Contribution after ads − Operating expenses the costs that exist whether or not you sell = Net profit

The first line is where most tools and ORVX part company. Realized revenue counts delivered orders only. An order that was placed, refunded or cancelled never becomes revenue, because it never became money. A store with a 20% return rate that reports on gross order value is overstating its top line by a fifth, and every margin computed from it inherits the error.

One engine, so two screens cannot disagree

Every figure above is produced by a single module. The dashboard, the reports, the product table, the alerts and the AI explanations all call the same functions — so gross margin on the Reports page and gross margin in a notification are not two implementations that happen to agree today.

This sounds like an implementation detail. It is the reason the numbers can be trusted at all: the common way for analytics to mislead is not a wrong formula, it is two formulas wearing one name.

What you can see once the data is connected

  • Profit by product and collection — after COGS, returns and allocated advertising, so the best seller and the best earner can be told apart.
  • Contribution after advertising — the money a campaign left behind, rather than the revenue it claimed.
  • Return rate and refund-to-revenue — measured separately, because units and money answer different questions.
  • Customer economics — repeat rate, revenue per customer and estimated acquisition cost, on one canonical customer identity.
  • Inventory position — velocity, days of stock and dead stock, reconciled against the storefront's own counts.

Where the data comes from

You connect Shopify and whichever ad accounts you run, and approve the permissions on each platform's own screen. ORVX reads products, orders, refunds and customers from Shopify, and campaign spend and performance from Meta, Google and TikTok.

Every one of those connections is read-only. There is no code path in ORVX that writes to a connected platform — it cannot change a budget, pause a campaign, edit an order or alter a product. When it recommends stopping something, you make that change yourself, in the platform.

Interpretation is generated. Arithmetic is not.

ORVX includes an AI layer, and it is deliberately confined. It receives figures the deterministic engine has already computed and explains what they mean for your business. It is never asked to calculate them, and it is never given a customer's name, phone number or email address — customer information reaching it is aggregated to counts.

A language model that invents a margin is worse than no analysis at all, so the boundary is enforced in the code rather than in a prompt.

Start with one month

The fastest way to know whether this is telling you something new is to connect a store and look at a single completed month: rank the catalogue by gross profit instead of revenue, and see how far the order changes. In most stores it changes a lot, and the products that move are the ones the business has been making decisions about with the wrong number.