Measure what matters, down to the margin.
Define a conversion without touching code. Each metric tells you in advance what it can detect. Margin is computed on your real orders, with each product’s cost.
Read the transcript
What should you actually measure? A click becomes a metric without a line of code, and margin is calculated from your orders.
Define a conversion without code. A click on the page becomes a goal. Events your site already sends are suggested as metrics once they reach 5 visitors in 30 days.
Each metric shows what it can detect. The smallest effect visible in four weeks, next to the typical gain of your past tests (+3.7%). CUPED tightens the bars: up to 6% less variance.
Margin is calculated from your orders. Back-office orders, the cost of each product, and store fees: margin per visitor is calculated on the server, and your costs don’t go through the page.
A revenue winner can lose on margin. “Free returns highlighted”: +3.4% in revenue per visitor, but -8.9% in margin, range -12.5% to -5.1%.
These metrics are in the demo, no sign-up needed.
Metrics that show what they’re worth.
The visuals come from the demo store’s metric catalog: detectable effects and durations are computed by the engine from its traffic.
Define a conversion without touching code.
A click, a form submission, or a page visit is enough: point at the element on your page, and Probant counts the conversion. Events your site already sends with probant.track are suggested as metrics, with a prefilled form.
- Suggested from 5 distinct visitors in 30 days, up to six names
- A dismissed name doesn’t come back
- For a lead generation site, the conversion can come from your CRM, days later
- Site event
probant.track(…)Sent by your code, with an amount if needed - Click
Click on [data-cta]Point at the element on your page - Form
Form submission #devisCounted on submit - Page
Visit to /merci*A URL or a pattern
An event name sent by at least 5 visitors in 30 days that no metric tracks yet is suggested with a prefilled form.
Each metric tells you in advance what it can detect.
For each metric, Probant computes the smallest effect visible in four weeks, from the last 7 days of traffic. In the demo, two of the six decision metrics can see a typical store winner (+3.7%) within that time.
CUPED narrows ranges using each visitor’s history over the 14 days before their first exposure: up to 6% less variance in the demo, on “Add to cart”. Without history, the difference stays raw and the report says so.
| Metric | Without CUPED | With CUPED | Reading |
|---|---|---|---|
| Revenue per visitor | 4.6% | 4.5% | Slow |
| Conversion rate | 3.7% | 3.6% | Slow |
| Add to cart | 5.5% | 5.4% | Slow |
| Product click | 1.8% | 1.8% | Sensitive |
| Margin per visitor | 4.6% | 4.5% | Slow |
| Average order value | 2.7% | — | Sensitive |
| Return rate | 13.9% | — | Reliable guardrail |
| Page speed (LCP) | 0.93% | — | Reliable guardrail |
| JavaScript errors | 69.3% | — | Threshold finer than the measurement |
A test has one primary metric, secondary metrics, and guardrails.
The primary metric decides the test. Secondary metrics shed light on the result without creating false winners, because they are corrected together. Guardrails stop a test that harms something. Everything is chosen in the test plan and locked at launch.
- Rates, averages, and ratios, such as average order value
- Outliers capped at the chosen percentile (95th percentile, 99th percentile, and 99.9th percentile), so one unusual order can’t decide on its own
- Editing a metric after launch doesn’t change a running test
“No worse than” and “equivalent” can be decided too.
A redesign, a simplification, or a cost saving doesn’t need to win: it just needs to cost nothing. The test plan offers three objectives: “Do better”, “No worse than”, and “Equivalent”. The tolerated margin is chosen before launch (1%, 2%, 3%, 5%, and 10%), with no default value, and the duration follows from it. Such a test is read once, at the end, and doesn’t name a winner.
A retention metric counts visitors who return, or send an event, within a window after their exposure, up to day 90. As a primary metric, the window adds to the duration: for day 7 to day 14, 34 days instead of 20 days.
| Margin | No worse than | Equivalent |
|---|---|---|
| 2% | 454 days | 608 days |
| 3% | 202 days | 270 days |
| 5% | 73 days | 98 days |
| 10% | 19 days | 25 days |
Durations computed by the engine, on the demo’s mobile product page traffic.
Margin, computed on your orders.
A revenue winner can sell more while earning less. Probant matches orders to exposed visitors and computes margin on the server, with each product’s cost.
Orders come from your back office.
Orders arrive through Shopify webhooks or the orders API, with their line items, refunds, and returns. Product costs are read from Shopify every night, imported as CSV, or sent with each line item. Payment and shipping fees are set once for the workspace.
- Cost as of the order date: a price increase doesn’t rewrite the past
- Neither cost nor margin goes through the script or the page
- Without a connected back office, the page can send the purchase’s line items: Probant derives a gross margin, before returns
Refunds deducted; an item returned to stock no longer counts in the cost.
No margin verdict without known costs.
Margin is shown only if at least 90% of matched revenue has a known cost, in a single currency. Below that, the report explains why and lists the products without a cost that weigh the most. In the demo, 96.7% of revenue is covered.
A revenue winner can lose on margin.
The Margin screen replays your stopped tests, up to the 12 most recent, with the same rules. In the demo, “Free returns highlighted” gained +3.4% in revenue per visitor; the margin per visitor difference was -8.9% (range -12.5% to -5.1%). The discounts sold more while earning less.
- three revenue winners out of six replayed tests
- one loser on margin, one with no margin conclusion
- Margin per visitor can also be a test’s primary metric
| Test | Revenue | Margin | Reading |
|---|---|---|---|
| Countdown timer on flash sales | +0.5% | -12.0% | Loses on margin |
| Free shipping from €60 | +5.8% | 0.0% | Wins on revenue, margin not conclusive |
| Free returns highlighted | +3.4% | -8.9% | Wins on revenue, loses on margin |
| Shipping costs shown on the product page | +2.1% | +4.1% | Wins on revenue and margin |
| Complementary products in the cart | +3.1% | +2.5% | Nothing settled |
| Strikethrough prices in red | -3.4% | -6.0% | Loses on margin |
In detail.
- Sources
- Event sent by the site, click, form submission, page visit, back-office orders, CRM conversions, Stripe subscriptions.
- Per test
- One primary metric, up to eight secondary metrics and five guardrails, locked at launch.
- Corrections
- Secondary metrics corrected together with the Holm method; ratios with the delta method, the visitor remaining the randomized unit.
- CUPED
- History of the same metric over the 14 days before the visitor’s first exposure.
- Retention
- A window from day N to day M after exposure, up to day 90.
- Internal traffic
- Up to 50 IP address ranges filtered out on receipt. No address is kept.
- Costs
- Shopify (nightly and on demand), CSV of up to 20,000 rows, or cost sent with each line item. One invalid value rejects the whole file.
- Fees
- Payment rate and fixed amount, shipping cost per order. Empty by default, so nothing is made up.
Frequently asked questions.
Do I need a developer to measure a conversion?
Not for a click, a form, or a page: the goal is set in Probant, on your page. For a value only your code knows, such as an amount, one probant.track line is enough.
What happens without product costs?
Nothing is estimated. The screens say that no cost is known and tests are judged on revenue. Margin appears as soon as costs cover enough revenue.
What about a lead generation or subscription site?
A qualified or signed lead can come from your CRM days after the visit, and a subscription is tracked in Stripe: net revenue, retention, cohort tracking. The dedicated pages cover both.
Learn more.
Next: Reports
See this feature in the demo, on the screen this page describes, or move on to the next one.
- Open demo, no sign-up
- Free to start, no overage charges
- Database and compute in Amsterdam, with Scaleway