CollectionsIQ turns the data you already have — ad performance, Shopify sales, and returns — into Shopify collections that stay current automatically. This page explains each part in detail. For a higher-level tour, see the product overview.
On this page
Overview Connecting platforms The data model Metrics & custom metrics Return-adjusted net ROAS The rule engine Hysteresis Attribution Insights & matching Feed integration Sync & reliability Data & privacyOverview
You define a rule — a condition or a nested group of conditions over your metrics — and CollectionsIQ keeps a Shopify collection populated with exactly the products that match, re-evaluated every day. Rules read from three data families: ad performance (Google & Meta), Shopify sales (orders, units, revenue), and returns (refunds and returned items). The same rule can mix all three.
The guiding principle throughout: store only raw, additive components and derive every ratio at evaluation time. Spend, impressions, revenue, refunded amounts and units are stored; ROAS, CPM, return rate and net ROAS are computed from sums when a rule runs. That keeps every number auditable and lets you define new metrics without re-collecting data.
Connecting platforms
From Integrations, connect Google Ads and Meta with read-only access (Google via OAuth, Meta via Facebook Login for Business requesting ads_read). CollectionsIQ never writes to your campaigns. For each platform you pick which ad account to use; Meta merchants can supply a Catalog ID so catalog product ids map cleanly to Shopify products.
Shopify sales and returns flow in automatically once the app has order access — orders and refunds are read into per-product aggregates and a returns ledger. Connecting takes a minute; metrics populate on the next sync (or immediately with Fetch now).
The data model
Two ideas keep the data trustworthy:
Additive components only
We store the raw building blocks per product, per day, per platform — impressions, clicks, spend, conversions, conversion value; and on the Shopify side units sold, gross sales, discounts, refunds, refunded units, orders. Derived metrics are computed from sums (e.g. blended CPM = Σ spend ÷ Σ impressions × 1000), never by averaging ratios.
Source isolation
Every row is tagged live (real synced data) or demo (synthetic data you can load to explore the app). They are kept strictly separate: rules evaluate on live data by default, and demo data can be deleted on its own without touching anything real. You can toggle between them on Insights.
Metrics & custom metrics
Every metric — built-in or your own — is a formula over the base components. Built-ins include CPM, CTR, CPC, ROAS, CVR (ad), net sales, AOV (Shopify), and combined metrics like True ROAS, CPA and margin after ad spend.
In the Metrics panel you can define custom metrics with a small formula language — the base-component names, the operators + − × ÷, and parentheses. For example:
Refund rate = refunded_units ÷ units_sold
Margin after ad spend = ( gross_sales − discounts − refunds − spend ) ÷ ( gross_sales − discounts − refunds )
Formulas are validated live as you type, only reference known components, and guard every division (a zero denominator yields "no value" rather than a misleading number). Once saved, a custom metric is usable in rules exactly like a built-in.
Return-adjusted net ROAS
This is the heart of solving the click-vs-buy paradox. A product's gross ROAS can look great while its kept revenue is poor, because a chunk of units come back. CollectionsIQ accounts for that.
The returns ledger
Refunds are read into an event-level ledger with two dates: the sale date (the cohort the order belongs to) and the refund date (when the money actually moved). Each refund line is classified — only genuine, restocked product returns count toward return rate; shipping refunds, discount adjustments and pre-fulfillment edits are separated out (this alone prevents return rates being overstated several-fold).
Two derivations
- Net-settled — subtract refunds by the day they settled. Honest and lagging; the right basis for removing a product.
- Net-predicted — discount revenue by a forecast return rate computed only from matured sales cohorts (cohorts old enough to have most of their returns in). A three-day-old product can't look falsely perfect. The right basis for promoting.
If a product doesn't have enough matured data for a reliable rate, CollectionsIQ falls back to its category's rate, then to treating it as gross — it never invents a rate from a thin sample. Both net derivations are available on the ROAS metric as a per-condition return treatment (gross, net-settled, net-predicted).
The rule engine
A rule is a match (ALL = AND, or ANY = OR) over a list of conditions and nested sub-groups. Each condition has:
- Metric — any built-in or custom metric.
- Operator & value —
<,≤,>,≥, between, or a ranking: top N / top N%. - Window — a rolling number of days.
- Platform scope (ad metrics) — all platforms, a subset, blended or "each must pass".
- Category scope — limit to a collection, product type, or tag.
- Guards — minimum spend / impressions / units so thin-data products are excluded.
- Return treatment & attribution scope — for the ROAS metric (see above & below).
Nested groups
Conditions and groups nest arbitrarily, so a rule reads the way you'd say it:
• True ROAS ≥ 3
• Match ANY of:
– Top 20 by units (30d)
– Blended CPM < $10
• NOT in collection "Clearance"
Before saving, preview shows the exact set of products the rule selects, so there are no surprises when it publishes.
Hysteresis (stability)
Collections that change every day churn your storefront and reset ad-platform learning. With hysteresis enabled, a product must pass the rule for several consecutive runs before it's added, and fail for several before it's removed — and you can use a fast test to promote (net-predicted) and an honest test to retain (net-settled). Small oscillations around a threshold no longer flap membership; only sustained changes move products in or out.
Attribution: ad-subject vs basket-rider
Dynamic ads frequently get credit for whatever else lands in the cart. CollectionsIQ resolves, per order, which product the click was actually for (the "ad-subject"), and tags each refund/line accordingly. An attribution scope of ad-subject only judges a product on the returns and revenue of its own ad clicks — so a hero isn't propped up by co-purchased "basket-riders" it didn't earn. Full basket counts everything.
Insights & product matching
The Insights tab shows per-product performance — impressions, clicks, spend, CPM, CTR, per-platform and blended ROAS, plus Shopify net sales as an independent column — with a live/demo toggle. Ad ids that don't automatically map to a Shopify product are listed under unmatched, where you can map them by hand with a typeahead (by name, SKU, or barcode); the mapping is remembered for future syncs.
Feed integration
CollectionsIQ outputs standard Shopify collections, so they drop straight into the feed management app you already use. Any tool that can target or split a feed by collection — DataFeedWatch, Feedonomics, Simprosys, Sales & Orders, and others that support smart collections — can build performance-segmented feeds from them:
- A "Top net-ROAS" collection → a high-priority shopping feed for scaling campaigns.
- An "Underperformers" collection → a feed exclusion or a separate low-bid campaign.
- Per-platform collections → channel-specific feeds.
Because CollectionsIQ keeps each collection's membership current daily, your feeds follow automatically — no manual list maintenance.
Sync & reliability
A durable, checkpointed pipeline runs every day per store: pull ad metrics, read Shopify sales & refunds, evaluate each rule (with hysteresis where enabled), then reconcile the Shopify collection — adding and removing only what changed. Re-runs are idempotent and safe. You can also trigger a sync on demand, and the app refreshes data in the background when you open it.
Data & privacy
CollectionsIQ stores aggregate per-product metrics, a refunds ledger keyed by Shopify refund ids (no customer identities), and encrypted access tokens. It does not store customer personal data, and it never writes to your ad campaigns. Read-only ad scopes are used for reporting only. See the CollectionsIQ privacy policy, the Terms, and Data deletion.