Sales attribution
"The popup made $2,000 this month" should mean something. Janus matches real Shopify orders to real signups two ways, inside a window you control: no pixel guesswork, no modeled numbers.
The two matches
| Match | How it works | Catches |
|---|---|---|
| Code match | An order used a discount code Janus issued. | The clean case, especially strong with unique codes, where one code = one signup. |
| Identity match | The checkout email or phone equals one captured by the popup, and the order landed within the attribution window of that signup. | Subscribers who bought without the code: full price, a later visit, a different device. |
Each order attributes once, to the campaign (and variant) that earned the signup. Orders flow in via Shopify webhooks as they're placed.
The attribution window
The window (how long after signup an order still counts) is applied at query time. Change the days input on the Attributed-sales card and history recalculates instantly under the new rule: compare a strict 7-day read with a generous 30-day one without touching your data.
Revenue basis
The Pre-discount / Post-discount toggle chooses which revenue you're looking at: what the order was worth before the popup's own discount came off, or what was actually charged. Post-discount is the conservative read; pre-discount is comparable with tools that report gross.
What attribution unlocks
- Attributed sales / orders: the headline dollars, on Home and Analytics.
- Purchase rate: signups that became buyers within the window.
- Attributed AOV and time-to-purchase (median + distribution; tells you whether codes get used in the same session or days later, which should shape your expiry).
- Per-variant revenue: A/B tests judged in dollars, not just opt-ins.
What Janus does not claim
- Orders from people who never gave the popup an email, phone or code, even if they saw it. No view-through inflation.
- Orders outside your window.
- The same order twice.
If a number here disagrees with another tool, check the window and the basis first; most gaps are definitions, not data.