Ashley Verdant
Ashley Verdant Intelligence · Methodology

How AV Intelligence calculates.

Every formula behind every number on your dashboard. How we reconcile against Shopify, why our Net ROAS diverges from ad-platform numbers, and how cost of goods locks at the point of sale.

The big picture

AV Intelligence pulls every order from Shopify the moment it's placed and stores it against your store. Costs, refunds, and freight come from your products, your shipments, and Shopify's own refund records. We don't estimate or model anything. Every number on your dashboard traces back to a specific row in either Shopify or your AV Intelligence settings.

If a number ever looks wrong, click into it. Each KPI on the dashboard, marketing, and reports pages has an i button that shows the formula and a click-through to the underlying orders. Reconciliation should always be one click away.

Revenue

Formula: sum of net_revenue across non-cancelled orders in the selected window.

net_revenue = total_revenue − refunded_amount, where total_revenue is what Shopify reports as the order total (Order.total_price, inclusive of tax and shipping) and refunded_amount is the sum of successful refund transactions on that order. So our revenue is what the customer actually paid, net of what was refunded.

Reconcile against Shopify: Shopify Admin → Reports → Total sales report. The Total sales column over the same date range matches this number to the cent.

Profit (gross profit)

Formula: sum of gross_profit across non-cancelled orders.

gross_profit = net_revenue − (cost_of_goods − refunded_cogs) − shipping_cost − pick_pack_cost − other_costs. COGS is the sum of unit costs × quantity at the time the order shipped (locked at point-of-sale, see "Cost of goods" below). refunded_cogs reverses cost only when items were restocked (return / cancel / legacy_restock); items refunded as no_restock leave COGS in place because the brand still bore the cost.

Cost of goods (COGS)

Where it comes from: the Cost per item field on each Shopify variant. We pull it on every sync and store it as the variant's cost_price.

Lock at point-of-sale:when an order line first syncs, the unit cost is snapshotted onto the line. Subsequent re-syncs preserve that snapshot. If you raise a SKU's cost next month, only orders placed after the change use the new cost. Past orders stay locked at their shipped-at cost so historic profit doesn't shift retroactively.

Freight margin

Formula: sum of charged_to_customer − actual_cost across shipments in the window.

What the customer paid for shipping minus what your carrier charged you, captured automatically when a label is printed. Positive freight margin means customers covered shipping with a little left over. Negative means you're subsidising freight on average.

Refunds

Shopify's refund records flow into AV Intelligence on every sync. Per order we track three numbers: total refunded amount (what hit the customer's card), COGS reversed when items go back to stock, and the latest refund timestamp. Per line item, the same fields broken out per SKU so dead-stock velocity, SKU-level profitability, and the destination matrix all subtract returned units cleanly.

Net contribution & ROAS (Marketing)

Net contribution: sum of gross_profitfor orders attributed to a channel, minus the channel's ad spend in the window. The actual profit the channel generated after costs.

Net ROAS: net_contribution ÷ ad_spend. Above 1× = profitable; below = losing money.

Why our number differs from your ad platform: ad platforms report ROAS as revenue ÷ spend. Our Net ROAS uses profit (after refunds, COGS, and freight) ÷ spend. A campaign showing 4× ROAS in your ad platform's reporting might be 1.2× Net ROAS in AV Intelligence because most of the "revenue" is consumed by product cost, freight, and refunds. Our number is what you actually keep.

Multi-currency

stores.currencyis sourced from Shopify's shop record on connect and refreshed on every sync. For Markets-enabled stores selling in multiple presentment currencies, Shopify converts every value to your home currency in the API fields we read. Every revenue, cost, and profit number on your dashboard is already in your shop's home currency (NZD / AUD / USD). No conversion happens on our side.

Create accountTry the demo ↗