The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.
Every number in Live Product Insights is computed from the definitions on this
page. When a metric and a marketing description ever disagree, this page wins.
Merchants can rely on these definitions; developers and support teams can use
them to interpret any value the app shows.
Distinct sessions that sent a valid heartbeat within the active window. Default 60 seconds, configurable from 10 to 600 seconds. Sessions drop out as soon as heartbeats stop.
Product views
Count of valid product-view events. Refreshes and repeat visits are deduplicated per session and product within the view dedupe window — default 30 minutes, configurable from 5 to 1,440 minutes.
Currently viewed
Products with at least one active viewer right now.
Active viewers and views are never mixed. A shopper who keeps a product page
open for ten minutes is one active viewer and — thanks to dedupe — one view.
Orders come from Shopify webhooks. Test orders are excluded unless the store
opts in, and cancelled orders are always excluded from every order, revenue,
and conversion metric.
An order is attributed to a product only when all of these hold:
The order arrived with a cart token.
The cart token matches a session that added products to its cart.
Those cart additions fall inside the attribution window before the
order was created — default 7 days, configurable from 1 to 30 days.
Orders with no matching token are still counted as orders, but they are
labelled not attributable. Orders ingested by the background catalog sync
carry no cart token, so they are never attributed — attribution is always
webhook-driven.
Live Product Insights never shows a causation claim, a projected number, or a
placeholder count. Three rules follow from the definitions above:
The storefront counter hides instead of showing zero. A “0 people
viewing” badge would imply the page is being watched and found wanting — so
nothing renders until a real viewer is present.
Cart activity is never presented as orders. The two numbers measure
different things and are never swapped.
Metrics that depend on attribution are hidden or labelled when the tracking
method cannot support them, rather than filled in with an estimate.
See Settings for the configurable windows, and
Privacy for how events are collected and consented.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Live Product Insights","description":"Live product activity and sales insights for Shopify — real counts, honest metrics, no fake scarcity.","colors":{"primary":"#008060"},"logo":"https://mintcdn.com/topten/RYorU_YaDtH_LRy1/images/logo.svg?fit=max\u0026auto=format\u0026n=RYorU_YaDtH_LRy1\u0026q=85\u0026s=e5979e116134ec06728313ae91c856ce","favicon":"https://mintcdn.com/topten/RYorU_YaDtH_LRy1/images/favicon.png?fit=max\u0026auto=format\u0026n=RYorU_YaDtH_LRy1\u0026q=85\u0026s=1764b9b9892d462d8c21a363056311c0","styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"topten","hasAudioNarration":false,"actualSubdomain":"topten","customDomains":[],"gitSource":{"type":"github","owner":"mdhemalakanda","repo":"product-customer-view-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6adac96b320b7bc38b223056","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Architecture","count":6},{"language":"default","tag":"Development","count":4},{"language":"default","tag":"Guides","count":4},{"language":"default","tag":"Getting Started","count":3},{"language":"default","tag":"Reference","count":3},{"language":"default","tag":"Troubleshooting","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"measurement","slug":"/measurement","pageMetadata":{"title":"Measurement \u0026 definitions","description":"The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.","href":"/measurement"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Every number in Live Product Insights is computed from the definitions on this\npage. When a metric and a marketing description ever disagree, this page wins.\nMerchants can rely on these definitions; developers and support teams can use\nthem to interpret any value the app shows.`}),`\n`,_jsx(Heading,{level:`2`,id:`live-activity-metrics`,children:`Live activity metrics`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Metric`}),_jsx(_components.th,{children:`Definition`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Active viewers`}),_jsxs(_components.td,{children:[`Distinct sessions that sent a valid heartbeat within the `,_jsx(_components.strong,{children:`active window`}),`. Default 60 seconds, configurable from 10 to 600 seconds. Sessions drop out as soon as heartbeats stop.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Product views`}),_jsxs(_components.td,{children:[`Count of valid product-view events. Refreshes and repeat visits are deduplicated per session and product within the `,_jsx(_components.strong,{children:`view dedupe window`}),` — default 30 minutes, configurable from 5 to 1,440 minutes.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Currently viewed`}),_jsx(_components.td,{children:`Products with at least one active viewer right now.`})]})]})]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Active viewers and views are never mixed. A shopper who keeps a product page\nopen for ten minutes is one active viewer and — thanks to dedupe — one view.`})}),`\n`,_jsx(Heading,{level:`2`,id:`cart-metrics`,children:`Cart metrics`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Metric`}),_jsx(_components.th,{children:`Definition`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Add-to-cart events`}),_jsx(_components.td,{children:`Count of cart-add events. A distinct-session variant shows how many different sessions added the product.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`View-to-cart event rate`}),_jsxs(_components.td,{children:[`Add-to-cart events ÷ product-view events in the same window. This is an `,_jsx(_components.strong,{children:`event rate`}),`, not a visitor conversion rate.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cart removals`}),_jsx(_components.td,{children:`Counted only where the storefront reliably exposes the event; removals that happen after checkout begins are not observable.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Net additions`}),_jsx(_components.td,{children:`Additions minus removals in the window.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`purchase-metrics`,children:`Purchase metrics`}),`\n`,_jsx(Heading,{level:`3`,id:`orders`,children:`Orders`}),`\n`,_jsx(_components.p,{children:`Orders come from Shopify webhooks. Test orders are excluded unless the store\nopts in, and cancelled orders are always excluded from every order, revenue,\nand conversion metric.`}),`\n`,_jsx(Heading,{level:`3`,id:`attribution`,children:`Attribution`}),`\n`,_jsxs(_components.p,{children:[`An order is `,_jsx(_components.strong,{children:`attributed`}),` to a product only when all of these hold:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`The order arrived with a cart token.`}),`\n`,_jsx(_components.li,{children:`The cart token matches a session that added products to its cart.`}),`\n`,_jsxs(_components.li,{children:[`Those cart additions fall inside the `,_jsx(_components.strong,{children:`attribution window`}),` before the\norder was created — default 7 days, configurable from 1 to 30 days.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Orders with no matching token are still counted as orders, but they are\nlabelled `,_jsx(_components.strong,{children:`not attributable`}),`. Orders ingested by the background catalog sync\ncarry no cart token, so they are never attributed — attribution is always\nwebhook-driven.`]}),`\n`,_jsx(Heading,{level:`3`,id:`derived-purchase-metrics`,children:`Derived purchase metrics`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Metric`}),_jsx(_components.th,{children:`Formula`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Product conversion`}),_jsx(_components.td,{children:`Attributed orders ÷ distinct view sessions. Shown only when attribution is supported in the window.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Cart-to-order rate`}),_jsx(_components.td,{children:`Attributed orders ÷ distinct sessions that added to cart.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Revenue`}),_jsx(_components.td,{children:`Line price × quantity − line discounts, excluding tax and shipping, minus refunds prorated per unit. Cancelled orders reversed.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Average order value`}),_jsx(_components.td,{children:`Revenue ÷ qualifying orders, store-wide.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`trending-and-comparison-rules`,children:`Trending and comparison rules`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Comparisons always use `,_jsx(_components.strong,{children:`equal-length periods`}),`: this week against the\nprevious seven days, never a partial period.`]}),`\n`,_jsx(_components.li,{children:`A percentage change is only reported when the baseline is above zero;\notherwise the value is shown as new rather than as an infinite percentage.`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Trending`}),` requires at least 10 views in the previous period and growth of\n30% or more.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Declining`}),` requires at least 10 views in the previous period and a drop of\n30% or more.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Rising interest`}),` requires growth of 30% or more in views `,_jsx(_components.em,{children:`or`}),` cart\nadditions.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`internal-thresholds-reference`,children:`Internal thresholds reference`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Threshold`}),_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Where it applies`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Trend minimum baseline`}),_jsx(_components.td,{children:`10 prior-period views`}),_jsx(_components.td,{children:`Trending, declining, rising`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Trend bands`}),_jsx(_components.td,{children:`±30%`}),_jsx(_components.td,{children:`Trending up, declining, rising interest`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Product pair co-view minimum`}),_jsx(_components.td,{children:`5 shared sessions`}),_jsx(_components.td,{children:`Frequently viewed together`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`High views, low cart`}),_jsx(_components.td,{children:`≥50 views and add rate ≤50% of store rate`}),_jsx(_components.td,{children:`Insights and opportunity detection`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`High cart, low purchase`}),_jsx(_components.td,{children:`≥10 cart sessions and ≤50% of store cart-to-order rate`}),_jsx(_components.td,{children:`Insights and opportunity detection`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Low stock`}),_jsx(_components.td,{children:`Merchant threshold (default 10 units)`}),_jsx(_components.td,{children:`Low-stock and restock insights`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Restock lead time`}),_jsx(_components.td,{children:`Merchant-set supplier days`}),_jsx(_components.td,{children:`Restock urgency insights`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Sales velocity window`}),_jsx(_components.td,{children:`Rolling 7 days`}),_jsx(_components.td,{children:`Products page velocity column`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`New product`}),_jsx(_components.td,{children:`Created within the last 30 days`}),_jsx(_components.td,{children:`New product performance`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Hourly heatmap minimum`}),_jsx(_components.td,{children:`24 hour-buckets of data`}),_jsx(_components.td,{children:`Best time to promote`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`why-the-app-never-guesses`,children:`Why the app never guesses`}),`\n`,_jsx(_components.p,{children:`Live Product Insights never shows a causation claim, a projected number, or a\nplaceholder count. Three rules follow from the definitions above:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The storefront counter `,_jsx(_components.strong,{children:`hides instead of showing zero`}),`. A “0 people\nviewing” badge would imply the page is being watched and found wanting — so\nnothing renders until a real viewer is present.`]}),`\n`,_jsx(_components.li,{children:`Cart activity is never presented as orders. The two numbers measure\ndifferent things and are never swapped.`}),`\n`,_jsx(_components.li,{children:`Metrics that depend on attribution are hidden or labelled when the tracking\nmethod cannot support them, rather than filled in with an estimate.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/settings`,children:`Settings`}),` for the configurable windows, and\n`,_jsx(_components.a,{href:`/privacy`,children:`Privacy`}),` for how events are collected and consented.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Measurement \u0026 definitions","description":"The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.","href":"/measurement"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Live activity metrics","slug":"live-activity-metrics","depth":2,"children":[]},{"title":"Cart metrics","slug":"cart-metrics","depth":2,"children":[]},{"title":"Purchase metrics","slug":"purchase-metrics","depth":2,"children":[{"title":"Orders","slug":"orders","depth":3,"children":[]},{"title":"Attribution","slug":"attribution","depth":3,"children":[]},{"title":"Derived purchase metrics","slug":"derived-purchase-metrics","depth":3,"children":[]}]},{"title":"Trending and comparison rules","slug":"trending-and-comparison-rules","depth":2,"children":[]},{"title":"Internal thresholds reference","slug":"internal-thresholds-reference","depth":2,"children":[]},{"title":"Why the app never guesses","slug":"why-the-app-never-guesses","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"topten","siteName":"Live Product Insights","title":"Measurement \u0026 definitions - Live Product Insights","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-22T18:29:09.040Z","originalFileLocation":"measurement.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Live Product Insights\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Measurement \u0026amp; definitions - Live Product Insights\">\u003cmeta data-mint-head property=\"og:description\" content=\"The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Live Product Insights\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://topten.mintlify.app/measurement\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://topten.mintlify.site/_mintlify/api/og/v2?division=Reference\u0026amp;title=Measurement+%26+definitions\u0026amp;description=The+exact+definition+behind+every+metric+in+Live+Product+Insights+%E2%80%94+active+viewers%2C+product+views%2C+cart+activity%2C+attribution%2C+conversion%2C+revenue%2C+and+trending\u0026amp;theme=2bb2eb631da658962f925cfe\u0026amp;signature=61f82a491af678d6742493ef96edd635a55bc7162e5ab2ba66d5992d916db152\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Measurement \u0026amp; definitions - Live Product Insights\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://topten.mintlify.site/_mintlify/api/og/v2?division=Reference\u0026amp;title=Measurement+%26+definitions\u0026amp;description=The+exact+definition+behind+every+metric+in+Live+Product+Insights+%E2%80%94+active+viewers%2C+product+views%2C+cart+activity%2C+attribution%2C+conversion%2C+revenue%2C+and+trending\u0026amp;theme=2bb2eb631da658962f925cfe\u0026amp;signature=61f82a491af678d6742493ef96edd635a55bc7162e5ab2ba66d5992d916db152\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/topten/Ni_hjIw28SzJyjuC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Live Product Insights\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#008060\">\u003clink data-mint-head rel=\"canonical\" href=\"https://topten.mintlify.app/measurement\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/measurement.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://topten.mintlify.app/#organization\",\"name\":\"Live Product Insights\",\"url\":\"https://topten.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/topten/RYorU_YaDtH_LRy1/images/logo.svg?fit=max\u0026auto=format\u0026n=RYorU_YaDtH_LRy1\u0026q=85\u0026s=e5979e116134ec06728313ae91c856ce\"}},{\"@type\":\"WebSite\",\"@id\":\"https://topten.mintlify.app#website\",\"name\":\"Live Product Insights\",\"url\":\"https://topten.mintlify.app\",\"publisher\":{\"@id\":\"https://topten.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://topten.mintlify.app/measurement#webpage\",\"url\":\"https://topten.mintlify.app/measurement\",\"name\":\"Measurement \u0026 definitions\",\"description\":\"The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.\",\"dateModified\":\"2026-10-22T18:29:09.040Z\",\"isPartOf\":{\"@id\":\"https://topten.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://topten.mintlify.app/measurement#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://topten.mintlify.app/measurement#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reference\",\"item\":\"https://topten.mintlify.app/settings\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Measurement \u0026 definitions\",\"item\":\"https://topten.mintlify.app/measurement\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://topten.mintlify.app/measurement#article\",\"headline\":\"Measurement \u0026 definitions\",\"name\":\"Measurement \u0026 definitions\",\"description\":\"The exact definition behind every metric in Live Product Insights — active viewers, product views, cart activity, attribution, conversion, revenue, and trending rules.\",\"url\":\"https://topten.mintlify.app/measurement\",\"mainEntityOfPage\":{\"@id\":\"https://topten.mintlify.app/measurement#webpage\"},\"dateModified\":\"2026-10-22T18:29:09.040Z\",\"publisher\":{\"@id\":\"https://topten.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://topten.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Live Product Insights\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Live Product Insights\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/measurement.md","siteName":"Live Product Insights","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"Installation","href":"/getting-started/installation"},{"title":"Theme setup","href":"/getting-started/theme-setup"},{"title":"First data","href":"/getting-started/first-data"}]},{"group":"Guides","pages":[{"title":"Dashboard","href":"/guides/dashboard"},{"title":"Products","href":"/guides/products"},{"title":"Trends","href":"/guides/trends"},{"title":"Insights","href":"/guides/insights"}]},{"group":"Reference","pages":[{"title":"Settings reference","description":"Every setting in Live Product Insights — location, allowed range, default value, and effect.","href":"/settings"},{"title":"Measurement \u0026 definitions","href":"/measurement"},{"title":"Privacy \u0026 data handling","description":"What Live Product Insights collects, what it never collects, how visitor consent gates collection, and how data is retained and deleted.","href":"/privacy"}]},{"group":"Troubleshooting","pages":[{"title":"Troubleshooting","href":"/troubleshooting"}]},{"group":"Architecture","pages":[{"title":"Architecture Overview","href":"/architecture/overview"},{"title":"Storefront Tracker","href":"/architecture/storefront-tracker"},{"title":"App Proxy API","href":"/architecture/app-proxy-api"},{"title":"Webhooks","href":"/architecture/webhooks"},{"title":"Data Model","href":"/architecture/data-model"},{"title":"Background Jobs","href":"/architecture/background-jobs"}]},{"group":"Development","pages":[{"title":"Local Development","href":"/development/local-development"},{"title":"Testing","href":"/development/testing"},{"title":"Deployment","href":"/development/deployment"},{"title":"Security","href":"/development/security"}]}]},"basePath":"","title":"Measurement \u0026 definitions - Live Product Insights","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}