Glossary
The vocabulary, defined and taught
Every term Profitscaler uses, in plain language.
Net revenue
What the customer paid, before costs
Net revenue is the order total excluding VAT, also defined as the sum of all sold products prices after VAT and discounts. Whether your store sends revenue including or excluding VAT is a setting in Profitscaler, and getting it wrong shifts every figure downstream.
GM1
Gross margin after cost of goods
GM1 is gross margin after cost of goods: net revenue minus what the goods cost, with supplier rebates netted off, expressed as a share of net revenue.
GM1 is the rung that answers whether buying and pricing are working. Purchase price changes and discounting show up here, while shipping, payment fees and handling do not, which is what separates a sourcing problem from a fulfilment one.
GM2
Gross margin after all order costs
GM2 is gross margin after all order costs: GM1 minus shipping, payment fees and handling. When Profitscaler says profit margin, this is the number we mean.
There are multiple levels to gross margin rather than one because they answer different questions, and a store needs them all. A store can hold GM1 steady while GM2 falls. A single "margin" figure hides exactly which one.
GP2
Gross profit after order costs, in money rather than percent
GP2 is the gross profit of one line item after every order-level cost has been allocated to it, in money rather than percent. An order's profit is the sum of its lines' GP2 and never a separate calculation, which is why the order report and the SKU report reconcile exactly, down to the last cent.
GP3
Profit after advertising
GP3 is profit after advertising: order GP2 minus the ad cost of acquiring the order. It is measurable in total or across traffic channels, and not directly attributable to individual SKUs.
GP3 is the rung where a profitable order can still be a loss-making sale. Ad cost cannot be attributed to a line item, so this is the point at which the ladder stops being a per-product number and becomes a channel or account one.
Projected GM2
Tomorrow's product margin, predicted today
Projected GM2 is a forward-looking estimate of an item's GM2, projected per item in real time. Prices and discounts move daily, so a margin measured yesterday is not automatically today's margin. The projection is the figure that campaign segmentation can safely act on, and it is why the projected-margin feed exists at all.
ROAS
Return on ad spend
ROAS, return on ad spend, is revenue divided by ad cost. It is the standard metric, and the blind spot Profitscaler exists for: it counts every unit of revenue the same, so a discounted low-margin order and a full-price high-margin one look identical to your bidding. Bidding algorithms try to maximise your revenue (and your ad spend) as long as it keeps hitting the target ROAS.
POAS
Profit on ad spend
POAS is profit divided by ad cost, the category's answer to what ROAS cannot see: the same ratio computed on what an order actually earned rather than what it invoiced.
Bidding on profit directly is right for some stores and wrong for others, which is why Profitscaler measures profit whether or not you choose to bid on it.
COGS
Cost of goods sold
COGS is the cost of goods sold: what a unit costs you, per SKU. Profitscaler reads it from your product feed on a daily sync, which makes the feed the one place cost prices have to live. Our calculation assumes this value excludes VAT.
Every rung above GM1 inherits the accuracy of this one number. That is why coverage, meaning how much of the catalogue has a real cost price behind it, matters more than any single margin figure the app shows you.
Stated margin
A margin you declare, instead of uploaded COGS
A stated margin is a margin you declare per brand or category when a feed carries no cost prices, and Profitscaler works the cost back from it. Many retailers don't have COGS in a product feed, but nearly all know that one brand runs about 33% and another about 45%.
It's not as accurate as exact COGS numbers, but it's far better than nothing and a good starting point.
Fallback margin
The estimate for products you cannot price at all
A fallback margin is the margin applied to SKUs your cost data does not cover, so an unknown product gets a sensible estimate instead of a fake 100% margin. Profitscaler shows you the coverage before you commit: how many SKUs can be priced and which cannot. A catalogue that mostly falls back is getting an estimate, and we would rather tell you that than sell you the number.
Extra costs
Your own costs, charged where they are actually incurred
Extra costs are costs you add yourself, per order, per item or per row. Per-item and per-row costs are charged directly to the line they belong to; order-level costs are allocated across lines by net-revenue share, with the last line absorbing the rounding remainder so the lines still sum to the order.
Most often used for pick and pack fees or fulfilment labour costs.
Allocation is what keeps the costs on the line item rather than at the order. A pick and pack fee left at order level would make every per-SKU profit figure incomplete, and the SKU report would stop reconciling with the order report.
Kickback / Rebate
Money your supplier gives back, shown as "supplier rebates" in the app
A kickback, shown as a supplier rebate in the app, is a per-unit rebate from a supplier, added back to the line it belongs to. Kickbacks sit inside GM1 rather than below it, because a rebate reduces what the goods cost rather than paying for fulfilment. Ignoring them understates margin on exactly the products where a supplier deal is what makes advertising viable.
Server-side GTM container
A Google Tag Manager container that runs on a server
A server-side GTM container is a Google Tag Manager container that runs on a server instead of in the visitor's browser. It is the one thing Profitscaler cannot work without: it turns a purchase into a server-to-server request carrying line items, which is what makes the profit value calculation possible at all.
Who hosts it is your choice and changes nothing: Taggrs, Stape, Google Cloud Run, or one you run yourself.
Conversion value
The number your bidding tries to maximise
Conversion value is the value a tag sends alongside a conversion event, and the number Google Ads Smart Bidding treats as the thing to optimise toward. Send revenue and you buy revenue, send profit and you instead buy profit.
Profitscaler sends profit as the conversion value in a profit conversion. Negative values are floored at 1, because Google Ads rejects negatives outright and a zero would be counted as a real conversion carrying no value.
Margin buckets
Your product feed, grouped by margin
Margin buckets are custom labels on a supplementary feed that group products into margin bands, so ad campaigns can bid based on product margin.
Commonly using GM1 (margin after COGS) as basis. Profitscaler supports using projected GM2 as basis instead.
Parallel run
Both numbers, on the same orders, before anything changes
A parallel run is profit tracking running beside your existing revenue tracking, on the same orders, so you can see what the honest figure looks like before anything bids on it.
Sometimes the right answer after a parallel run is not to switch, and to fix the feed instead.
Report key
The key on an export URL, separate from every other key you hold
A report key is the key carried on a CSV export URL, and each export URL carries its own. That is what lets you hand a reporting tool a URL without handing it anything else. Keys are per account and per purpose, and you can rotate any of them yourself in minutes.
Anyone who can open a document containing that URL can read that store's aggregates, which is why it is separate from the key your container uses and why rotation is self-service.
Custom labels
Product feed attribute used for segmenting products
Custom labels are a product feed attribute supported by most ad platforms, commonly used to segment products into separate ad campaigns.
The label carries no meaning to the ad platform. It is an arbitrary string you define, which is what makes it as usable for margin bands as it is for season or stock level.
