[{"data":1,"prerenderedAt":2496},["ShallowReactive",2],{"site-chrome-en":3,"resource-money-calculators\u002Froas-truth":902},{"header":4,"footer":78,"siteSettings":342,"fields":518},{"id":5,"logoHref":6,"nav":7,"signIn":65,"secondaryCta":68,"primaryCta":71,"menuLabel":74,"updatedAt":75,"createdAt":76,"globalType":77},1,"\u002F",[8,13,18,23,60],{"id":9,"label":10,"href":11,"children":12},"6ab3da06c46d8dcdda81f5eb","Why Trackian?","\u002F#features",[],{"id":14,"label":15,"href":16,"children":17},"6ab3da06c46d8dcdda81f5ec","Pricing","\u002Fpricing\u002F",[],{"id":19,"label":20,"href":21,"children":22},"6ab3da06c46d8dcdda81f5ed","FAQ","\u002Ffaq\u002F",[],{"id":24,"label":25,"href":26,"children":27},"6ab3da06c46d8dcdda81f5f2","Resources","#",[28,32,36,40,44,48,52,56],{"id":29,"label":30,"href":31},"6acf951e9e446caf0f92ef43","Free tools and guides","\u002Fresources\u002F",{"id":33,"label":34,"href":35},"6ad0d078c5d300c7eb1472f3","AI demo","\u002Fevents-demo\u002F",{"id":37,"label":38,"href":39},"6ac66c8c24b35e889d69ee3c","Platform Status Monitor","https:\u002F\u002Fstatus.trackian.com\u002F",{"id":41,"label":42,"href":43},"6ac66c8c24b35e889d69ee3d","Trackian Help Center","https:\u002F\u002Fhelp.trackian.com\u002Fhc\u002Fhelp-center",{"id":45,"label":46,"href":47},"6ab3da06c46d8dcdda81f5ee","Trackian Insights & News","\u002Finsights\u002F",{"id":49,"label":50,"href":51},"6ab3da06c46d8dcdda81f5ef","Client Case Studies","\u002Fmarketing-intelligence-client-case-studies\u002F",{"id":53,"label":54,"href":55},"6ab3da06c46d8dcdda81f5f0","About us","\u002Fabout\u002F",{"id":57,"label":58,"href":59},"6ab3da06c46d8dcdda81f5f1","Careers","\u002Fcareers\u002F",{"id":61,"label":62,"href":63,"children":64},"6ab3da06c46d8dcdda81f5f3","Contacts","\u002Fcontacts\u002F",[],{"label":66,"href":67},"Sign in","https:\u002F\u002Ftrackian.app\u002Flogin",{"label":69,"href":70},"Book a Demo","\u002Fbook-demo\u002F",{"label":72,"href":73},"Start for FREE","https:\u002F\u002Ftrackian.app\u002Fregister","Open menu","2026-10-15T13:09:12.962Z","2026-09-23T13:54:14.420Z","header",{"id":5,"about":79,"columns":80,"newsletter":251,"copyright":312,"legalLinks":313,"updatedAt":339,"createdAt":340,"globalType":341},"At Trackian, we unify and analyze marketing data, so businesses can navigate complexity with clarity.",[81,132,186],{"id":82,"groups":83},"6ab3da06c46d8dcdda81f5fe",[84,108],{"id":85,"title":86,"links":87},"6ab3da06c46d8dcdda81f5f8","Use Cases",[88,93,98,103],{"id":89,"link":90},"6ab3da06c46d8dcdda81f5f4",{"label":91,"href":92},"E-commerce Growth","\u002Fuse-cases\u002Fecommerce-growth\u002F",{"id":94,"link":95},"6ab3da06c46d8dcdda81f5f5",{"label":96,"href":97},"Marketing Agency","\u002Fuse-cases\u002Fmarketing-agencies\u002F",{"id":99,"link":100},"6ab3da06c46d8dcdda81f5f6",{"label":101,"href":102},"Brands Lead-gen & B2B","\u002Fuse-cases\u002Flead-gen-b2b\u002F",{"id":104,"link":105},"6ab3da06c46d8dcdda81f5f7",{"label":106,"href":107},"Enterprise Expansion","\u002Fuse-cases\u002Fenterprise-expansion\u002F",{"id":109,"title":110,"links":111},"6ab3da06c46d8dcdda81f5fd","For Roles like",[112,117,122,127],{"id":113,"link":114},"6ab3da06c46d8dcdda81f5f9",{"label":115,"href":116},"Brand Founders","\u002Froles\u002Fbrand-founders\u002F",{"id":118,"link":119},"6ab3da06c46d8dcdda81f5fa",{"label":120,"href":121},"Marketing Leaders","\u002Froles\u002Fmarketing-leaders\u002F",{"id":123,"link":124},"6ab3da06c46d8dcdda81f5fb",{"label":125,"href":126},"Performance Experts","\u002Froles\u002Fperformance-experts\u002F",{"id":128,"link":129},"6ab3da06c46d8dcdda81f5fc",{"label":130,"href":131},"Marketing Data Analysts","\u002Froles\u002Fmarketing-data-analysts\u002F",{"id":133,"groups":134},"6ab3da06c46d8dcdda81f60a",[135],{"id":136,"title":137,"links":138},"6ab3da06c46d8dcdda81f609","Trackian Features",[139,144,149,154,159,164,169,174,178,182],{"id":140,"link":141},"6ab3da06c46d8dcdda81f5ff",{"label":142,"href":143},"Data Integration Sources","\u002Fintegrations\u002F",{"id":145,"link":146},"6ab3da06c46d8dcdda81f600",{"label":147,"href":148},"Landing Page Health Monitor","\u002Ffeatures\u002Flanding-page-health-monitor\u002F",{"id":150,"link":151},"6ab3da06c46d8dcdda81f601",{"label":152,"href":153},"Data Anomalies Detection","\u002Ffeatures\u002Fanomaly-detection\u002F",{"id":155,"link":156},"6ab3da06c46d8dcdda81f602",{"label":157,"href":158},"Business Opportunity Finder","\u002Ffeatures\u002Fopportunity-finder\u002F",{"id":160,"link":161},"6ab3da06c46d8dcdda81f603",{"label":162,"href":163},"Marketing Daily Brief","\u002Ffeatures\u002Fmarketing-daily-brief\u002F",{"id":165,"link":166},"6ab3da06c46d8dcdda81f604",{"label":167,"href":168},"AI MCP tools & API access","\u002Ffeatures\u002Fai-mcp-api\u002F",{"id":170,"link":171},"6ab3da06c46d8dcdda81f605",{"label":172,"href":173},"Additional Services","\u002Fservices\u002F",{"id":175,"link":176},"6ab3da06c46d8dcdda81f606",{"label":177,"href":16},"Trackian Pricing",{"id":179,"link":180},"6ab3da06c46d8dcdda81f607",{"label":181,"href":21},"Frequently Asked Questions",{"id":183,"link":184},"6ab3da06c46d8dcdda81f608",{"label":185,"href":51},"Client Testimonials",{"id":187,"groups":188},"6ab3da06c46d8dcdda81f615",[189,208,232],{"id":190,"title":191,"links":192},"6ab3da06c46d8dcdda81f60f","Help & Support",[193,196,200,204],{"id":194,"link":195},"6ab3da06c46d8dcdda81f60b",{"label":38,"href":39},{"id":197,"link":198},"6ab3da06c46d8dcdda81f60c",{"label":199,"href":43},"Technical Support",{"id":201,"link":202},"6ab3da06c46d8dcdda81f60d",{"label":203,"href":43},"Knowledge Base",{"id":205,"link":206},"6ab3da06c46d8dcdda81f60e",{"label":207,"href":63},"Contact Us",{"id":209,"title":210,"links":211},"6ab3da06c46d8dcdda81f614","Company Resources",[212,215,219,223,227],{"id":213,"link":214},"6acf951e9e446caf0f92ef44",{"label":30,"href":31},{"id":216,"link":217},"6ab3da06c46d8dcdda81f610",{"label":218,"href":55},"About Trackian",{"id":220,"link":221},"6ab3da06c46d8dcdda81f611",{"label":222,"href":47},"Trackian Blog & News",{"id":224,"link":225},"6ab3da06c46d8dcdda81f612",{"label":226,"href":59},"Your Career in Trackian",{"id":228,"link":229},"6ab3da06c46d8dcdda81f613",{"label":230,"href":231},"Affiliate & Reseller Program","\u002Faffiliate-reseller-program\u002F",{"id":233,"title":234,"links":235},"6ab3fa0f456178c9ec754921","Follow us",[236,241,246],{"id":237,"link":238},"6ab3fa0f456178c9ec75491e",{"label":239,"href":240},"LinkedIn","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Ftrackiancom\u002F",{"id":242,"link":243},"6ab3fa0f456178c9ec75491f",{"label":244,"href":245},"Facebook","https:\u002F\u002Fwww.facebook.com\u002Ftrackiancom",{"id":247,"link":248},"6ab3fa0f456178c9ec754920",{"label":249,"href":250},"X","https:\u002F\u002Ftwitter.com\u002Ftrackiancom",{"formId":252,"title":254,"placeholder":305,"submitLabel":306,"submittingLabel":307,"successMessage":308,"invalidEmailMessage":309,"failureMessage":310,"privacyNote":311},{"id":253,"title":254,"fields":255,"submitButtonLabel":268,"confirmationType":269,"confirmationMessage":270,"redirect":283,"emails":284,"kind":302,"updatedAt":303,"createdAt":304},2,"Newsletter",[256,262],{"id":257,"name":258,"label":259,"width":260,"required":261,"blockName":260,"blockType":258},"6ab3da06c46d8dcdda81f5e1","email","Email",null,true,{"id":263,"name":264,"label":265,"width":260,"defaultValue":260,"required":266,"blockName":260,"blockType":267},"6ab3da06c46d8dcdda81f5e2","website","Website",false,"text","Subscribe","message",{"root":271},{"type":272,"format":273,"indent":274,"version":5,"children":275,"direction":282},"root","",0,[276],{"type":277,"format":273,"indent":274,"version":5,"children":278,"direction":282},"paragraph",[279],{"type":267,"format":274,"style":273,"mode":280,"detail":274,"version":5,"text":281},"normal","Subscribed — welcome aboard.","ltr",{"url":260},[285],{"id":286,"emailTo":287,"cc":260,"bcc":260,"replyTo":288,"emailFrom":289,"subject":290,"message":291},"6ab3da06c46d8dcdda81f5e3","marketing@trackian.com","{{email}}","newsletter@trackian.com","New newsletter signup",{"root":292},{"type":272,"format":273,"indent":274,"version":5,"children":293,"direction":282},[294,298],{"type":277,"format":273,"indent":274,"version":5,"children":295,"direction":282},[296],{"type":267,"format":274,"style":273,"mode":280,"detail":274,"version":5,"text":297},"New newsletter signup: {{email}}",{"type":277,"format":273,"indent":274,"version":5,"children":299,"direction":282},[300],{"type":267,"format":274,"style":273,"mode":280,"detail":274,"version":5,"text":301},"{{*:table}}","newsletter","2026-09-23T18:27:04.130Z","2026-09-23T13:54:14.300Z","Enter your e-mail address...","Subscribe Now","Subscribing…","You're subscribed. Check your inbox to confirm.","Enter a valid email address, e.g. name@company.com.","Couldn't subscribe right now. Please try again in a minute.","Your email is secure with us and we won't send you any spam.","Trackian® Copyright 2026 © All Rights Reserved",[314,319,324,329,334],{"id":315,"link":316},"6ab3da06c46d8dcdda81f616",{"label":317,"href":318},"Sitemap","\u002Fwebsite-sitemap\u002F",{"id":320,"link":321},"6ab3da06c46d8dcdda81f617",{"label":322,"href":323},"Terms & Conditions","\u002Fprivacy-center\u002Fterms-and-conditions\u002F",{"id":325,"link":326},"6ab3da06c46d8dcdda81f618",{"label":327,"href":328},"Privacy Policy","\u002Fprivacy-center\u002Fprivacy-policy\u002F",{"id":330,"link":331},"6ab3da06c46d8dcdda81f619",{"label":332,"href":333},"Cookie Policy","\u002Fprivacy-center\u002Fcookie-policy\u002F",{"id":335,"link":336},"6ab3da06c46d8dcdda81f61a",{"label":337,"href":338},"Accessibility Policy","\u002Faccessibility-statement\u002F","2026-10-14T14:43:42.900Z","2026-09-23T13:54:14.470Z","footer",{"id":5,"gtmContainerId":343,"recaptchaSiteKey":344,"consent":345,"defaultMeta":350,"formMessages":353,"ui":360,"integrations":407,"siteLocales":482,"updatedAt":515,"createdAt":516,"globalType":517},"GTM-NQT76P65","6Lc_ks0rAAAAAFrQGfMbWZRrXIUBhP9GxLqcK7Kx",{"message":346,"policyLink":347,"acceptLabel":348,"essentialLabel":349},"We use cookies to measure how the site is used. You can accept analytics cookies or continue with essential cookies only.",{"label":332,"href":333},"Accept all","Essential only",{"title":351,"description":352,"image":260},"Trackian: Marketing Intelligence","Trackian turns your marketing and business data into ranked daily actions.",{"requiredField":354,"invalidEmail":309,"requestFailed":355,"submitting":356,"success":357,"recaptchaNotice":358,"recaptchaPrivacy":327,"recaptchaTerms":359},"This field is required.","Couldn't send right now. Please try again in a minute.","Sending…","Thanks, we'll be in touch shortly.","This site is protected by reCAPTCHA and the Google {privacy} and {terms} apply.","Terms of Service",{"backToInsights":361,"backToCareers":362,"onThisPage":363,"tableOfContentsLabel":364,"searchTriggerLabel":365,"searchPlaceholder":366,"searchLabel":367,"searchTitle":368,"searchNoResults":369,"searchNoResultsHint":370,"searchEmptyHint":371,"searchUnavailable":372,"searchGroupPages":373,"searchGroupInsights":374,"searchGroupCaseStudies":375,"searchGroupIntegrations":376,"searchGroupHelp":377,"searchRecentLabel":378,"searchSuggestedLabel":379,"searchClearRecent":380,"searchClearLabel":381,"searchKeyboardHint":382,"readMore":383,"readCaseStudy":384,"viewRole":385,"noOpenRoles":386,"readingTime":387,"relatedInsights":388,"share":389,"copyLink":390,"copied":391,"caseStudyChallenge":392,"caseStudySolution":393,"caseStudyResults":394,"applyNow":395,"applicationsClosed":396,"closedBadge":397,"jobDepartmentLabel":398,"jobLocationLabel":399,"jobTypeLabel":400,"jobSalaryLabel":401,"jobHiringManagerLabel":402,"jobDeadlineLabel":403,"honeypotLabel":404,"formSubmitting":356,"cookieConsentLabel":405,"localeNoticeMessage":406},"← Back to Insights","← Back to Careers","On this page","Table of contents","Search Trackian.com…","Search pages, insights, case studies…","Search","Search Trackian","No results for \"{query}\"","Try a different search term.","Start typing to search pages, insights and case studies.","Search is unavailable right now. Please try again later.","Pages","Insights","Case Studies","Integrations","Help center","Recent","Suggested","Clear recent","Clear search","to search","Read More","Read case study","View role","No open roles right now. Check back soon or follow us for updates.","{minutes} min read","Related Insights","Share","Copy link","Copied!","Challenge","Solution","Results","Apply now","Applications closed","Closed","Department","Location","Type","Salary","Hiring Manager","Deadline","Leave this field empty","Cookie consent","This document is available in English only.",{"railAria":408,"collectionsHeading":409,"allApps":410,"collectionEssentials":411,"collectionNew":412,"collectionSoon":413,"categoriesHeading":414,"categoryAll":415,"filtersHeading":416,"facetAvailability":417,"facetAccess":418,"availabilityAvailable":419,"availabilityAlpha":420,"availabilityBeta":421,"availabilityComingSoon":413,"accessRead":422,"accessDual":423,"resetFilters":424,"searchPlaceholder":425,"searchLabel":426,"sortLabel":427,"sortRecommended":428,"sortName":429,"sortNewest":430,"viewing":431,"showMore":432,"filtersButton":416,"filtersHint":433,"done":434,"chipsFilters":416,"chipsRemove":435,"chipsResetSort":436,"chipsClearAll":437,"dismiss":438,"emptyTitle":439,"emptyBody":440,"clearFilters":441,"connect":442,"comingSoon":413,"newTag":412,"agentOnly":443,"backToStore":444,"overview":445,"whatIs":446,"whatItDoes":447,"relatedApps":448,"factType":400,"factSetup":449,"factAgent":450,"factCategory":451,"factAdded":452,"typeInternal":453,"typeExternal":454,"setupOauth":455,"setupKey":456,"setupManual":457,"builtByTrackian":458,"builtByVendor":459,"powerBlended":460,"powerDashboards":461,"powerSentinel":462,"powerMcp":463,"powerMessaging":464,"powerExternal1":465,"powerExternal2":466,"powerExternal3":467,"screenshotOpen":468,"screenshotPrev":469,"screenshotNext":470,"screenshotGoTo":471,"screenshotAlt":472,"screenshotCounter":473,"ctaTitle":474,"ctaBody":475,"ctaBodyExternal":476,"ctaConnect":477,"ctaNewcomer":478,"ctaStartFree":479,"metaTitle":480,"metaDescriptionFallback":481},"Browse apps","Collections","All apps","Essentials","New","Coming soon","Categories","All","Filters","Availability","AI agent access","Available","Alpha","Beta","Read only","Dual layer","Reset filters","Search apps…","Search apps","Sort","Recommended","A to Z","Newest","Viewing {shown} of {total} apps","Show {n} more","Changes apply as you tick.","Done","Remove filter","Reset sort","Clear all","Dismiss","No platforms match your filter","Try clearing the search or picking a different filter.","Clear filters","Connect","Agent only","All Platforms","Overview","What is {name}?","What does it do?","Related apps","Setup","AI agent","Category","Added","Full analysis","Agent only (Beta)","Log in with the vendor","API key","Plugin, module or store keys","Built by Trackian","Built by {name} · connected through Trackian","Daily metrics blended with GA4 and your store on one timeline","Dashboards and KPI targets for every metric","Sentinel patterns and nightly findings","Read access for your AI agent through Trackian's MCP","Sentinel alerts and reports delivered to your channel","Every endpoint the {name} API exposes, read only","Fresh data on every call, nothing cached or modelled","Ask your AI agent in plain language, it picks the endpoint","Open screenshot {n} full size","Previous screenshot","Next screenshot","Go to screenshot {n}","{name} screenshot {n}","{n} of {total}","Connect {name} to Trackian","Trackian lines its data up with the rest of your stack and watches it every night.","Your AI assistant reads it through Trackian's MCP, next to everything else you connect.","Connect {name}","New to Trackian?","Start for free","{name} integration | Trackian","Connect {name} to Trackian and see its data next to the rest of your marketing stack.",[483,487,491,495,499,503,507,511],{"id":484,"code":485,"label":486},"6ab3da06c46d8dcdda81f61b","en","English",{"id":488,"code":489,"label":490},"6ab3da06c46d8dcdda81f61c","bg","Български",{"id":492,"code":493,"label":494},"6ab3da06c46d8dcdda81f61d","de","Deutsch",{"id":496,"code":497,"label":498},"6ab3da06c46d8dcdda81f61e","el","Ελληνικά",{"id":500,"code":501,"label":502},"6ab3da06c46d8dcdda81f61f","es","Español",{"id":504,"code":505,"label":506},"6ab3da06c46d8dcdda81f620","it","Italiano",{"id":508,"code":509,"label":510},"6ab3da06c46d8dcdda81f621","pl","Polski",{"id":512,"code":513,"label":514},"6ab3da06c46d8dcdda81f622","ro","Română","2026-10-14T10:59:48.664Z","2026-09-23T13:54:14.554Z","siteSettings",{"collections":519,"globals":729},{"pages":520,"posts":657,"caseStudies":665,"jobs":677,"testimonials":684,"faqs":690,"plans":697,"redirects":715,"search":720,"payload-locked-documents":725},{"text":521,"richText":651,"relations":653},[522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650],"title","layout.hero.badge","layout.hero.title","layout.hero.lead","layout.hero.primaryCta.label","layout.hero.secondaryCta.label","layout.hero.alerts.*.title","layout.hero.alerts.*.ago","layout.hero.alerts.*.body","layout.logoMarquee.label","layout.audienceSplit.title","layout.audienceSplit.lead","layout.audienceSplit.cards.*.eyebrow","layout.audienceSplit.cards.*.body","layout.audienceSplit.cards.*.link.label","layout.featureBento.eyebrow","layout.featureBento.title","layout.featureBento.lead","layout.featureBento.tiles.*.title","layout.featureBento.tiles.*.body","layout.integrationHub.title","layout.integrationHub.cta.label","layout.tabbedFeature.title","layout.tabbedFeature.lead","layout.tabbedFeature.tabs.*.title","layout.tabbedFeature.tabs.*.body","layout.tabbedFeature.tabs.*.caption","layout.tabbedFeature.cta.label","layout.statFeature.title","layout.statFeature.body","layout.statFeature.chips.*.text","layout.serviceGrid.eyebrow","layout.serviceGrid.title","layout.serviceGrid.lead","layout.serviceGrid.note","layout.serviceGrid.cta.label","layout.serviceGrid.services.*.title","layout.serviceGrid.services.*.body","layout.testimonialGrid.title","layout.ctaBand.title","layout.ctaBand.lead","layout.ctaBand.primaryCta.label","layout.ctaBand.secondaryCta.label","layout.ctaBand.cards.*.title","layout.ctaBand.cards.*.body","layout.ctaBand.steps.*.title","layout.ctaBand.steps.*.body","layout.ctaBand.steps.*.links.*.label","layout.ctaBand.steps.*.note","layout.pricingHero.title","layout.pricingHero.lead","layout.pricingHero.billingLabels.monthly","layout.pricingHero.billingLabels.annual","layout.pricingHero.billingLabels.save","layout.pricingHero.footnotes.vat","layout.pricingHero.footnotes.payments","layout.pricingHero.segments.*.tabLabel","layout.pricingHero.segments.*.title","layout.pricingHero.segments.*.body","layout.pricingHero.segments.*.comparison.eyebrow","layout.pricingHero.segments.*.comparison.title","layout.pricingHero.segments.*.comparison.expandLabel","layout.pricingHero.segments.*.comparison.collapseLabel","layout.pricingHero.segments.*.comparison.srLabels.included","layout.pricingHero.segments.*.comparison.srLabels.notIncluded","layout.pricingHero.segments.*.comparison.columns.*.note","layout.pricingHero.segments.*.comparison.rows.*.label","layout.pricingHero.segments.*.comparison.rows.*.hint","layout.pricingHero.segments.*.comparison.rows.*.cells.*.value","layout.faq.title","layout.faq.help","layout.form.intro","layout.postList.title","layout.postList.lead","layout.caseStudyList.title","layout.caseStudyList.lead","layout.jobList.title","layout.jobList.lead","layout.notFound.title","layout.notFound.body","layout.notFound.primaryCta.label","layout.notFound.links.*.link.label","layout.notFound.searchPlaceholder","layout.htmlSitemap.title","layout.htmlSitemap.lead","layout.htmlSitemap.groupLabels.pages","layout.htmlSitemap.groupLabels.insights","layout.htmlSitemap.groupLabels.caseStudies","layout.htmlSitemap.groupLabels.careers","layout.htmlSitemap.groupLabels.legal","layout.splitShowcase.title","layout.splitShowcase.lead","layout.splitShowcase.rows.*.title","layout.splitShowcase.rows.*.body","layout.splitShowcase.rows.*.chips.*.text","layout.screenshotStage.title","layout.screenshotStage.lead","layout.screenshotStage.hotspots.*.label","layout.screenshotStage.hotspots.*.body","layout.steps.title","layout.steps.lead","layout.steps.steps.*.title","layout.steps.steps.*.body","layout.bigQuote.quote","layout.bigQuote.role","layout.metricsBand.title","layout.metricsBand.lead","layout.metricsBand.metrics.*.label","layout.comparisonSplit.title","layout.comparisonSplit.lead","layout.comparisonSplit.withoutTrackian.label","layout.comparisonSplit.withoutTrackian.items.*.text","layout.comparisonSplit.withTrackian.label","layout.comparisonSplit.withTrackian.items.*.text","layout.logoWall.title","layout.heroSplit.badge","layout.heroSplit.title","layout.heroSplit.lead","layout.heroSplit.primaryCta.label","layout.heroSplit.secondaryCta.label","layout.heroSplit.chips.*.text","layout.heroSplit.note","layout.connectorStore.title","layout.connectorStore.lead","layout.resourceLibrary.heading","layout.resourceLibrary.featuredHeading","layout.resourceLibrary.intro","meta.title","meta.description",[652],"layout.richText.content",{"layout.testimonialGrid.testimonials":654,"layout.pricingHero.segments.*.plans":655,"layout.pricingHero.segments.*.comparison.columns.*.plan":655,"layout.faq.items":656},"testimonials","plans","faqs",{"text":658,"richText":662,"relations":664},[522,659,660,661,649,650],"excerpt","category","author.title",[663],"content",{},{"text":666,"richText":672,"relations":676},[667,668,669,670,671,649,650],"clientTitle","resultHeadline","stats.*.label","quote.text","quote.title",[673,674,675],"challenge","solution","results",{},{"text":678,"richText":682,"relations":683},[522,679,680,681,649,650],"location","type","department",[663],{},{"text":685,"richText":688,"relations":689},[686,687],"quote","ratingLabel",[],{},{"text":691,"richText":695,"relations":696},[692,693,694],"question","answer","tags.*.tag",[],{},{"text":698,"richText":713,"relations":714},[699,700,701,702,703,704,705,706,707,708,709,710,711,712],"name","featuredLabel","customLabel","customNote.monthly","customNote.annual","billedMonthlyNote","billedAnnuallyNote","perMonthLabel","idealForLabel","idealFor","highlights.*.text","guarantee","cta.monthly.label","cta.annual.label",[],{},{"text":716,"richText":717,"relations":718},[],[],{"to.reference":719},"posts",{"text":721,"richText":722,"relations":723},[],[],{"doc":724},"caseStudies",{"text":726,"richText":727,"relations":728},[],[],{"document":655},{"header":730,"footer":740,"siteSettings":757},{"text":731,"richText":738,"relations":739},[732,733,734,735,736,737],"nav.*.label","nav.*.children.*.label","signIn.label","secondaryCta.label","primaryCta.label","menuLabel",[],{},{"text":741,"richText":755,"relations":756},[742,743,744,745,746,747,748,749,750,751,752,753,754],"about","columns.*.groups.*.title","columns.*.groups.*.links.*.link.label","newsletter.title","newsletter.placeholder","newsletter.submitLabel","newsletter.submittingLabel","newsletter.successMessage","newsletter.invalidEmailMessage","newsletter.failureMessage","newsletter.privacyNote","copyright","legalLinks.*.link.label",[],{},{"text":758,"richText":900,"relations":901},[759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899],"consent.message","consent.policyLink.label","consent.acceptLabel","consent.essentialLabel","defaultMeta.title","defaultMeta.description","formMessages.requiredField","formMessages.invalidEmail","formMessages.requestFailed","formMessages.submitting","formMessages.success","formMessages.recaptchaNotice","formMessages.recaptchaPrivacy","formMessages.recaptchaTerms","ui.backToInsights","ui.backToCareers","ui.onThisPage","ui.tableOfContentsLabel","ui.searchTriggerLabel","ui.searchPlaceholder","ui.searchLabel","ui.searchTitle","ui.searchNoResults","ui.searchNoResultsHint","ui.searchEmptyHint","ui.searchUnavailable","ui.searchGroupPages","ui.searchGroupInsights","ui.searchGroupCaseStudies","ui.searchGroupIntegrations","ui.searchGroupHelp","ui.searchRecentLabel","ui.searchSuggestedLabel","ui.searchClearRecent","ui.searchClearLabel","ui.searchKeyboardHint","ui.readMore","ui.readCaseStudy","ui.viewRole","ui.noOpenRoles","ui.readingTime","ui.relatedInsights","ui.share","ui.copyLink","ui.copied","ui.caseStudyChallenge","ui.caseStudySolution","ui.caseStudyResults","ui.applyNow","ui.applicationsClosed","ui.closedBadge","ui.jobDepartmentLabel","ui.jobLocationLabel","ui.jobTypeLabel","ui.jobSalaryLabel","ui.jobHiringManagerLabel","ui.jobDeadlineLabel","ui.honeypotLabel","ui.formSubmitting","ui.cookieConsentLabel","ui.localeNoticeMessage","integrations.railAria","integrations.collectionsHeading","integrations.allApps","integrations.collectionEssentials","integrations.collectionNew","integrations.collectionSoon","integrations.categoriesHeading","integrations.categoryAll","integrations.filtersHeading","integrations.facetAvailability","integrations.facetAccess","integrations.availabilityAvailable","integrations.availabilityAlpha","integrations.availabilityBeta","integrations.availabilityComingSoon","integrations.accessRead","integrations.accessDual","integrations.resetFilters","integrations.searchPlaceholder","integrations.searchLabel","integrations.sortLabel","integrations.sortRecommended","integrations.sortName","integrations.sortNewest","integrations.viewing","integrations.showMore","integrations.filtersButton","integrations.filtersHint","integrations.done","integrations.chipsFilters","integrations.chipsRemove","integrations.chipsResetSort","integrations.chipsClearAll","integrations.dismiss","integrations.emptyTitle","integrations.emptyBody","integrations.clearFilters","integrations.connect","integrations.comingSoon","integrations.newTag","integrations.agentOnly","integrations.backToStore","integrations.overview","integrations.whatIs","integrations.whatItDoes","integrations.relatedApps","integrations.factType","integrations.factSetup","integrations.factAgent","integrations.factCategory","integrations.factAdded","integrations.typeInternal","integrations.typeExternal","integrations.setupOauth","integrations.setupKey","integrations.setupManual","integrations.builtByTrackian","integrations.builtByVendor","integrations.powerBlended","integrations.powerDashboards","integrations.powerSentinel","integrations.powerMcp","integrations.powerMessaging","integrations.powerExternal1","integrations.powerExternal2","integrations.powerExternal3","integrations.screenshotOpen","integrations.screenshotPrev","integrations.screenshotNext","integrations.screenshotGoTo","integrations.screenshotAlt","integrations.screenshotCounter","integrations.ctaTitle","integrations.ctaBody","integrations.ctaBodyExternal","integrations.ctaConnect","integrations.ctaNewcomer","integrations.ctaStartFree","integrations.metaTitle","integrations.metaDescriptionFallback",[],{},{"resource":903,"doors":2495,"libraryTitle":25},{"path":904,"href":905,"itemNumber":906,"track":907,"typeLabel":908,"format":-1,"length":909,"effort":910,"hasSkill":266,"platforms":911,"cards":915,"slug":995,"edition":996,"level":997,"parentPath":995,"gate":998,"cta":999,"title":918,"shortTitle":918,"button":1000,"hero":1001,"heroArt":1006,"flatCover":-1,"whatYouGet":1011,"who":1013,"inside":1016,"faq":1018,"layout":1019,"formId":1020,"picker":-1,"sheetsCopyUrl":-1,"thankYou":1021,"seo":1024,"check":-1,"toolKind":1025,"tool":1026,"calculatorId":1370},"money-calculators\u002Froas-truth","\u002Fresources\u002Fmoney-calculators\u002Froas-truth\u002F","23","shop","Calculator","About 2 minutes","quick",[912,913,914],"meta","gads","tiktok",[916],{"cardId":917,"track":907,"title":918,"sub":919,"description":920,"punchline":921,"sortOrder":922,"featured":266,"featuredOrder":-1,"coverArt":923,"cover":928,"stage":992,"platforms":994},"23-roas-truth","ROAS Truth Calculator","What ROAS is your shop really getting?","Online calculator: enter spend and revenue to compare the ROAS platforms report with what your store actually took in.","at least 16% higher",16,{"src":924,"alt":925,"width":926,"height":926,"srcset":927},"/media/23-roas-truth-cover-art.f86c8b1b.webp","Cover art for ROAS Truth Calculator",1200,"/media/23-roas-truth-cover-art.f86c8b1b-400x400.webp 400w, /media/23-roas-truth-cover-art.f86c8b1b-900x900.webp 900w, /media/23-roas-truth-cover-art.f86c8b1b.webp 1200w",{"x0":929,"y0":930,"x1":931,"y1":932,"chip_right":933,"chip_top":934,"note":935,"loop":940,"y2":945,"outline":946,"person":990,"tone":991},0.0625,0.15380859375,0.92,0.33681640625,0.03125,0.04150390625,[936,937,938,939],0.115234375,0.8359375,0.328125,0.876953125,[941,942,943,944],0.060546875,0.7265625,0.255859375,0.841796875,0.3638085937500002,[947,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988],[948,949],0.1538,0.93,[951,949],0.1638,[953,949],0.1738,[955,949],0.1838,[957,949],0.1938,[959,949],0.2038,[961,949],0.2138,[963,949],0.2238,[965,949],0.2338,[967,949],0.2438,[969,949],0.2538,[971,949],0.2638,[973,949],0.2738,[975,949],0.2838,[977,949],0.2938,[979,949],0.3038,[981,949],0.3138,[983,949],0.3238,[985,949],0.3338,[987,949],0.3438,[989,949],0.3538,"R","dark",{"kind":993},"scene",[912,913,914],"money-calculators","roas-truth","edition","result-first","check","Use the calculator",[1002],{"variant":1003,"sub":919,"hook":1004,"lead":1005},"default","What's Your Real ROAS?","One month of numbers, answer in about 2 minutes. See the ROAS your ad platforms claim next to what your store actually took in.",{"src":1007,"alt":1008,"width":1009,"height":1009,"srcset":1010},"/media/23-roas-truth-hero-art.24e3ede2.webp","Illustration for ROAS Truth Calculator",1600,"/media/23-roas-truth-hero-art.24e3ede2-400x400.webp 400w, /media/23-roas-truth-hero-art.24e3ede2-900x900.webp 900w, /media/23-roas-truth-hero-art.24e3ede2-1600x1600.webp 1600w",{"shop":1012,"leads":1012},[],{"forList":1014,"notForList":1015,"photoShop":-1,"photoLeads":-1},[],[],{"intro":-1,"note":-1,"pages":1017},[],[],[],5,{"startHeading":-1,"whereToStartShop":-1,"whereToStartLeads":-1,"step2":1022,"related":1023},[],[],{"title":-1,"description":-1,"image":-1},"calculator",{"meta":1027,"shared":1041,"calculators":1368},{"id":995,"item":1028,"title":1029,"content_version":1030,"language":485,"status":1031,"reference_implementation":1032,"principle":1033,"privacy_build_requirement":1034,"urls":1035,"segment":1039,"period":1040},23,"Money Calculators: ROAS Truth Calculator and Junk-Lead Cost Calculator","2026-10-09","Content and logic only. No styling. A later step builds the pages.","logic.py (tested by test_logic.py). The page build must reproduce logic.py's outputs for the test cases.","The answer is shown on the page with no email gate. Email is asked only to give the result as a PDF (instant download on the thank-you screen; no emails are sent at launch), with no marketing box on the form (the opt-in is offered on the thank-you view, LAUNCH-BLOCKS 9.5). The calculators do arithmetic on the visitor's numbers; they never measure, connect to or check anything.","All calculation runs in the browser. Typed numbers are not sent to any server, analytics tool or log unless the visitor requests the PDF. No session replay or heatmap tool runs on the calculator pages.",{"item":1036,"roas_truth":1037,"junk_lead_cost":1038},"https:\u002F\u002Ftrackian.com\u002Fresources\u002Fmoney-calculators","https:\u002F\u002Ftrackian.com\u002Fresources\u002Fmoney-calculators\u002Froas-truth","https:\u002F\u002Ftrackian.com\u002Fresources\u002Fmoney-calculators\u002Fjunk-lead-cost","?v=shop opens the ROAS Truth Calculator and ?v=leads the Junk-Lead Cost Calculator on the item page; visitors can switch. The edition URLs open their calculator directly.","One full month. No period selector: the helper text asks for one full month, and the spend band assumes it.",{"currencies":1042,"number_input":1049,"rounding":1057,"limits":1069,"free_mail_domains":1076,"email_pattern":1106,"lead_scoring":1107,"events":1237,"copy":1279,"thank_you_routes":1336,"forward_email":1354},{"default":1043,"symbols":1044,"format_rule":1048},"EUR",{"EUR":1045,"GBP":1046,"USD":1047},"€","£","$","If the currency has a symbol, prefix it with no space (€12,340). Otherwise prefix the code and a space (CHF 12,340). Labels only: never convert.",{"accepts":1050,"separator_rules":1051,"known_ambiguity":1055,"blank":1056},"Digits with optional thousands separators and one decimal separator. Spaces, apostrophes, currency symbols, currency codes and % signs are ignored. A Unicode minus (−) counts as a minus sign.",[1052,1053,1054],"Both ',' and '.' present: the one that appears last is the decimal separator; the other is a thousands separator.","Only one kind present, more than once: it is a thousands separator (1.234.567 or 1,234,567).","Only one kind present, once: if exactly 3 digits follow it and the part before it is not 0, it is a thousands separator (12,500 or 12.500 = 12500). Otherwise it is the decimal separator (12,5 or 45.50 or 0,500).","'1.234' and '1,234' are read as 1234. Visitors who mean 1.234 rarely exist for these money and count fields. The build can avoid the question with numeric inputs and locale-aware formatting.","Empty or whitespace = not entered (null). Not the same as 0.",{"method":1058,"compute":1059,"displays":1060,"bands":1068},"Round half away from zero, on the decimal value as written (Python: Decimal(repr(x)).quantize(..., ROUND_HALF_UP)). JavaScript equivalent: sign(x) * Number(Math.round(Number(Math.abs(x) + 'e' + dp)) + 'e-' + dp). Do not use toFixed or Math.round(x * 100) \u002F 100.","Calculate everything on unrounded values. Round only for display and band selection. Write percentages as (a * 100) \u002F b, not (a \u002F b) * 100.",{"money_0dp":1061,"money_2dp":1062,"ratio_2dp":1063,"pct_0dp":1064,"count_0dp":1065,"count_1dp":1066,"count_input":1067},"Totals: whole currency units with thousands separators (€12,340).","Per-unit amounts (cost per lead, cost per real lead, cost per order, '€4.27 for every €1'): 2 decimals (€41.67).","ROAS and gap ratio: 2 decimals, no unit (4.27; 1.60).","Percentages: whole number with % (105%). A value above 0 that rounds to 0 shows as 'under 1%'. Exactly 0 shows 0%.","Estimated counts: whole number, preceded by 'about' in copy (about 38 orders).","Qualified-lead equivalents: 1 decimal (about 3.2).","Counts the visitor typed are echoed as typed (reported leads keep their decimals, up to 2).","Bands are chosen on the displayed (rounded) value, so the number shown and the wording never contradict each other.",{"max_money":1070,"max_count":1071,"small_spend_below":1072,"high_roas_from":1072,"refund_high_above":1073,"junk_high_above":1074,"small_counts_below":1075},100000000,10000000,100,60,90,10,[1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105],"gmail.com","googlemail.com","outlook.com","hotmail.com","live.com","msn.com","yahoo.com","ymail.com","icloud.com","me.com","aol.com","proton.me","protonmail.com","gmx.de","gmx.net","gmx.com","web.de","mail.com","yandex.com","zoho.com","abv.bg","seznam.cz","wp.pl","o2.pl","libero.it","orange.fr","laposte.net","free.fr","t-online.de","^[^@\\s]+@[^@\\s]+\\.[^@\\s]{2,}$",{"version":1108,"applies_only_if":1109,"pdf_form":1110,"spend_band":1147,"email_type":1160,"points":1161,"points_map":1214,"cannot_fire":1220,"routing":1221,"storage":1234,"alerts":1235,"conversions":1236},"v2 (LAUNCH-BLOCKS s.9.1, accepted 9 Oct 2026)","A valid email address is submitted for the PDF. Without an email nothing is stored, nothing leaves the browser and no lead score is calculated.",{"fields":1111,"button_key":1144,"privacy_key":1145,"why_here":1146},[1112,1115,1127,1136],{"id":258,"type":258,"required":261,"label_key":1113,"helper_key":1114},"shared.email.label","shared.email.helper",{"id":1116,"type":1117,"required":1118,"show_when":1119,"label_key":1120,"helper_key":1121,"options":1122},"spend_band","select","when currency != 'EUR'","currency != 'EUR'","shared.email.spend_band.label","shared.email.spend_band.helper",[1123,1124,1125,1126],"under_2k","2k_5k","5k_15k","15k_plus",{"id":1128,"type":1129,"required":261,"label_key":1130,"options":1131},"role","radio","shared.email.role.label",[1132,1133,1134,1135],"owner","marketing_lead","agency","other",{"id":1137,"type":1129,"required":261,"scored":266,"ask_after":1128,"label_key":1138,"helper_key":1139,"options":1140},"timing","shared.email.timing.label","shared.email.timing.helper",[1141,1142,1143],"this_month","this_quarter","exploring","shared.email.button","shared.email.privacy","Calculators have no question flow before the result, and the lead score only exists once an email is given, so role and the timing question sit in the PDF form (one tap each). Nothing is sent before the visitor presses the button.",{"source":1148,"bands":1149,"assumes":1158,"never_before_email":1159},"EUR: derived from spend (shop: total spend after the per-platform sum). Other currencies: asked directly in the PDF form (shared.email.spend_band.*); amounts are never converted.",[1150,1152,1154,1156],{"id":1123,"rule":1151},"spend \u003C 2000",{"id":1124,"rule":1153},"2000 \u003C= spend \u003C 5000",{"id":1125,"rule":1155},"5000 \u003C= spend \u003C 15000",{"id":1126,"rule":1157},"spend >= 15000","The period entered is one full month, as the helper text asks. No period selector.","The spend band is never sent anywhere before the email is submitted, and never pushed to the dataLayer.","work | free, from the domain, using shared.free_mail_domains. Never block a free-mail address.",[1162,1166,1169,1173,1177,1180,1183,1186,1189,1193,1196,1199,1202,1205,1208,1211],{"signal":1163,"points":1164,"field":1165},"Spend under €2k",-20,"spend_band = under_2k",{"signal":1167,"points":1075,"field":1168},"Spend €2k-5k","spend_band = 2k_5k",{"signal":1170,"points":1171,"field":1172},"Spend €5k-15k",20,"spend_band = 5k_15k",{"signal":1174,"points":1175,"field":1176},"Spend €15k+",30,"spend_band = 15k_plus",{"signal":1178,"points":1075,"field":1179},"Work email","email_type = work",{"signal":1181,"points":1164,"field":1182},"Free-mail address","email_type = free",{"signal":1184,"points":1075,"field":1185},"Lead-gen with 50+ real leads a month","track = leadgen AND volume_band in (50_199, 200_plus)",{"signal":1187,"points":1171,"field":1188},"Result band: most room to improve (lowest-band row)","band_row = 1",{"signal":1190,"points":1191,"field":1192},"Result band: second-band row",15,"band_row = 2",{"signal":1194,"points":1075,"field":1195},"Result band: third-band row","band_row = 3",{"signal":1197,"points":1020,"field":1198},"Result band: top-band row","band_row = 4",{"signal":1200,"points":1075,"field":1201},"Owner\u002Ffounder or marketing lead","role in (owner, marketing_lead)",{"signal":1203,"points":1020,"field":1204},"Agency or freelancer","role = agency",{"signal":1206,"points":1191,"field":1207},"Wants it sorted this month","timing = this_month",{"signal":1209,"points":1020,"field":1210},"This quarter","timing = this_quarter",{"signal":1212,"points":274,"field":1213},"Just exploring","timing = exploring",{"spend_band":1215,"email_type":1216,"leadgen_volume_50_plus":1075,"band_row":1217,"role":1218,"timing":1219},{"under_2k":1164,"2k_5k":1075,"5k_15k":1171,"15k_plus":1175},{"work":1075,"free":1164},{"1":1171,"2":1191,"3":1075,"4":1020},{"owner":1075,"marketing_lead":1075,"agency":1020,"other":274},{"this_month":1191,"this_quarter":1020,"exploring":274},"Shop platform and ERP (+10) are not asked (as in item 14), so erp never triggers the High route.",[1222,1226,1230],{"route":1223,"rule":1224,"what_happens":1225},"high","spend_band = 15k_plus OR lead_score >= 70 (erp is not collected)","Alert to sales@trackian.com and the Slack channel. The thank-you screen offers the specialist calendar (this is where the specialist box for €15k+ spend lives: after the email, never on the result screen). A person follows up within one working day.",{"route":1227,"rule":1228,"what_happens":1229},"medium","lead_score 30-69","Nurture, the same as Low: results download only, and the thank-you screen shows the same text as the Low route (no specialist review, no written findings). Nurture emails later, and only with marketing consent. Unlike Low, the lead fires the ad-platform conversion (with consent). Medium = nurture (owner, 11 Oct 2026).",{"route":1231,"rule":1232,"what_happens":1233},"low","lead_score under 30","Results download only. Nurture emails later, and only with marketing consent.","Stored in Trackian's own database (the PDF form posts to our server), never before the PDF request: calculator_id, track, all inputs as typed, all outputs (unrounded and displayed), band, band_row, warnings, spend_band (and whether it was derived or asked), volume_band, role, timing, email, email_type, marketing_consent + timestamp + exact checkbox wording, lead_score, route, UTM parameters and click IDs from the landing URL (if consent allows).","High route: alert to sales@trackian.com and the Slack channel (webhook to come).","Ad-platform conversions (Meta, Google Ads) fire only on calculator_email_submit with lead_tier high or medium, and only with consent. lead_tier = the route.",{"rule":1238,"list":1239,"conversions":1278},"Never push the email address, any typed number, the spend band or any other personal data to the dataLayer. Push band ids and lead_tier only. All tags must respect the site's consent banner.",[1240,1246,1250,1258,1263,1269,1273],{"event":1241,"when":1242,"params":1243},"calculator_view","Calculator page view",{"calculator_id":1244,"variant":1245},"roas_truth | junk_lead_cost","shop | leads | default",{"event":1247,"when":1248,"params":1249},"calculator_start","First input is changed",{"calculator_id":1244,"calculator_version":1030},{"event":1251,"when":1252,"params":1253},"calculator_result","A result is shown (also on recalculation, max once per 10 seconds)",{"calculator_id":273,"calculator_version":273,"band":1254,"spend_mode":1255,"real_source":1256,"optional_used":1257},"band id, e.g. over or serious","shop only: total | per_platform","lead-gen only: counted | junk_share","comma list of optional fields filled, e.g. paid_share,aov",{"event":1259,"when":1260,"params":1261},"calculator_error","Calculate pressed with blocking errors",{"calculator_id":273,"error_codes":1262},"comma list, e.g. store_zero",{"event":1264,"when":1265,"params":1266},"calculator_email_submit","PDF request accepted",{"calculator_id":273,"band":273,"lead_tier":1267,"marketing_consent":1268},"high | medium | low","true | false",{"event":1270,"when":1271,"params":1272},"calculator_pdf_download","The results PDF download starts",{"calculator_id":273,"band":273},{"event":1274,"when":1275,"params":1276},"calculator_cta_click","Any CTA or link click on the result screen",{"calculator_id":273,"band":273,"cta_id":1277},"check_24h | next_step | forward_email","Map calculator_email_submit with lead_tier high or medium (and consent) to the ad-platform lead conversion. Low-tier submissions are not sent to ad platforms.",{"shared.meta_line":1280,"shared.not_a_measurement":1281,"shared.currency.label":1282,"shared.currency.helper":1283,"shared.button.calculate":1284,"shared.button.reset":1285,"shared.results.title":1286,"shared.error.not_a_number":1287,"shared.error.negative":1288,"shared.error.too_large_money":1289,"shared.error.too_large_count":1290,"shared.error.pct_range":1291,"shared.error.spend_missing":1292,"shared.error.spend_zero":1293,"shared.error.bad_option":1294,"shared.warning.small_spend":1295,"shared.email.heading":1296,"shared.email.text":1297,"shared.email.label":1298,"shared.email.helper":1299,"shared.email.first_name.label":1300,"shared.email.site_url.label":1301,"shared.email.site_url.placeholder":1302,"shared.email.site_url.helper":1303,"shared.email.phone.label":1304,"shared.email.site_url.error":1305,"shared.email.phone.error":1306,"shared.email.button":1307,"shared.email.privacy":1308,"shared.email.success":1309,"shared.email.error":1310,"shared.pdf.inputs_title":1311,"shared.pdf.results_title":1312,"shared.pdf.checks_title":1313,"shared.pdf.explainer_title":1314,"shared.pdf.next_title":1315,"shared.pdf.footer":1316,"shared.not_calculable":1317,"shared.band_note":1318,"shared.email.spend_band.label":1319,"shared.email.spend_band.helper":1320,"shared.email.spend_band.option.under_2k":1321,"shared.email.spend_band.option.2k_5k":1322,"shared.email.spend_band.option.5k_15k":1323,"shared.email.spend_band.option.15k_plus":1324,"shared.email.role.label":1325,"shared.email.role.option.owner":1326,"shared.email.role.option.marketing_lead":1327,"shared.email.role.option.agency":1203,"shared.email.role.option.other":1328,"shared.email.timing.label":1329,"shared.email.timing.helper":1330,"shared.email.timing.option.this_month":1331,"shared.email.timing.option.this_quarter":1209,"shared.email.timing.option.exploring":1212,"shared.email.error.choice":1332,"shared.cta.step3_title":1333,"shared.cta.footnote":1334,"shared.forward.link_label":1335},"About 2 minutes · Answer shown on this page · No email needed to see it","This calculator does arithmetic on the numbers you type in. It doesn't connect to your ad accounts or your store, and it doesn't check your tracking.","Currency","For labels only. Nothing is converted, so enter every amount in the same currency.","Show my numbers","Start again","Your numbers","Enter a number, for example 12500 or 12,500.","This can't be below zero.","That's more than {max_money}. Check for an extra zero.","That's more than {max_count}. Check for an extra zero.","Enter a percentage from 0 to 100.","Enter your ad spend for the period.","Ad spend needs to be above zero. These figures divide by spend, so with no spend there's nothing to calculate.","Choose one of the options.","Your ad spend is small, so these figures can swing a lot from a few orders or leads.","Want this as a PDF?","Get this result as a PDF with your numbers, the three checks and the short explainer, so you can keep it or share it with whoever runs your ads. Fill in four quick fields and the download starts straight away.","Email address","A work email is best if you'd like a specialist to look at it, but any address works.","First name","Your website","yourcompany.com","Filled in from your work email. Agencies: type your client's site.","Phone (optional)","That website address doesn't look right. Please check it and try again.","That phone number doesn't look right. Please check it and try again.","Get my results PDF","Your result is calculated on this page, and we only receive your numbers if you ask for the PDF. We use your email to give you your results and to follow up about them. Marketing emails only if you ask for them. We count anonymous use of this page (for example, which result range came up), never the numbers themselves. Privacy policy: https:\u002F\u002Ftrackian.com\u002Fprivacy-center\u002Fprivacy-policy\u002F","Your results are downloading. If it didn't start, use the download link below.","Enter a valid email address, for example name@company.com.","The numbers you entered","Your results","What to check first","Why these numbers differ","Your next steps","Calculated on {date} from the numbers you entered. This is arithmetic, not a measurement or an audit of your tracking or ad accounts. Made by Trackian, a marketing brain for your business. Edition: October 2026. https:\u002F\u002Ftrackian.com\u002Fresources\u002Fmoney-calculators · Privacy policy: https:\u002F\u002Ftrackian.com\u002Fprivacy-center\u002Fprivacy-policy\u002F","Can't be calculated from these numbers","Our rules of thumb, not industry benchmarks.","Roughly what do you spend on ads a month, in euros?","We ask because amounts in other currencies aren't converted. A rough range is fine.","Under €2,000","€2,000-5,000","€5,000-15,000","Over €15,000","Which best describes you?","Owner or founder","Marketing lead","Other","When do you want this sorted?","It helps us point you to the right next step.","This month","Pick one of the options.","Step 3 - get your numbers checked in 24 hours, free.","Delivered by people, not scripts. Not sure you can trust your numbers, or the people reporting them? This is the second opinion.","Forward this to your boss",{"high":1337,"medium":1347,"low":1351,"note":1353},{"when":1338,"headline":1339,"body":1340,"button":1341,"url":1342,"url_by_segment":1343,"url_rule":1346},"spend_band == '15k_plus' OR lead_score >= 70","Your results are downloading. Want to go through them with a specialist?","Pick a time that suits you. A Trackian specialist will look at your answers before the call.","Book a call","https:\u002F\u002Ftidycal.com\u002Fteam\u002Ftrackian\u002Fmeet",{"agency":1344,"shop":1345,"leadgen":1345},"https:\u002F\u002Ftidycal.com\u002Fteam\u002Ftrackian\u002Fmeet-agency","https:\u002F\u002Ftidycal.com\u002Fteam\u002Ftrackian\u002Fmeet-brands","role == agency -> url_by_segment.agency; otherwise url_by_segment[track] (shop or lead-gen); if the segment is unknown -> url (generic)",{"when":1348,"headline":1349,"body":1350},"lead_score >= 30","Your results are downloading.","If it didn't start, use the download link below. Next: {next_step_short}: {next_step_url}",{"when":1352,"headline":1349,"body":1350},"else","erp is not collected, so the High route fires on spend or lead score. The result screen always shows the one CTA; routing only changes the thank-you screen and the follow-up. Medium = nurture (owner, 11 Oct 2026): the Medium route starts at lead score 30 (it was 40) and shows the same thank-you text as Low, with no specialist review; only High offers the call.",{"link_label_key":1355,"delivery":1356,"subject":1357,"body":1358,"fill":1359},"shared.forward.link_label","mailto: the visitor sends it from their own inbox; Trackian sends nothing, and the numbers never leave the browser. Filled only from the visitor's own numbers.","Our {tool_name} result: {result_short}","Hi,\n\nI ran our numbers through Trackian's free {tool_name} (about 2 minutes, one month of our own figures).\n\nResult: \"{result_headline}\" (It's arithmetic on the figures I typed in, not an audit of our tracking.)\nThe first thing it says to check: {first_check}\nWhat it means for us: {meaning}.\n\nTrackian offers a free check: a specialist compares what our tracking recorded with our real {orders_or_leads} and tells us within 24 hours what's missing and why. I'd like to do it this month: {check_url}\n\nFull results: {item_url}",{"tool_name":1360,"result_short":1361,"result_headline":1362,"first_check":1363,"meaning":1364,"orders_or_leads":1365,"check_url":1366,"item_url":1367},"roas.title \u002F lead.title","roas.forward.subject \u002F lead.forward.subject.counted or .estimated","the band headline as shown","the title of the band's first check","roas.forward.meaning (+ roas.forward.excess) \u002F lead.forward.meaning.* (+ lead.forward.waste)","orders (shop) \u002F leads (lead-gen)","the calculator's check_24h url","meta.urls for the calculator",{"roas_truth":1369,"junk_lead_cost":2051},{"id":1370,"track":907,"title_key":1371,"page":1372,"inputs":1411,"formulas":1542,"bands":1624,"band_detail":1669,"checks":1715,"result_layout":1740,"warnings":1751,"platform_notes":1776,"ctas":1789,"explainer_keys":1801,"pdf":1812,"lead_scoring":1828,"copy":1839,"visuals":1998,"next_step":2044},"roas_truth","roas.title",{"headline_key":1373,"subheadline_key":1374,"meta_line_key":1375,"small_print_key":1376,"before_you_start_key":1377,"steps":1378},"roas.headline","roas.subheadline","shared.meta_line","shared.not_a_measurement","roas.before_you_start",[1379,1389,1397,1401,1405],{"title_key":1380,"fields":1381},"roas.step1.title",[1382,1383,1384,1385,1386,1387,1388],"currency","spend_mode","spend_total","spend_google","spend_meta","spend_tiktok","spend_other",{"title_key":1390,"helper_key":1391,"fields":1392},"roas.step2.title","roas.step2.helper",[1393,1394,1395,1396],"revenue_google","revenue_meta","revenue_tiktok","revenue_other",{"title_key":1398,"fields":1399},"roas.step3.title",[1400],"store_revenue",{"title_key":1402,"fields":1403},"roas.step4.title",[1404],"paid_share",{"title_key":1406,"collapsed":261,"fields":1407},"roas.optional.title",[1408,1409,1410],"aov","refund_rate","store_basis",[1412,1429,1442,1454,1463,1467,1471,1475,1481,1485,1489,1493,1501,1510,1517,1524],{"id":1382,"type":1413,"required":266,"default":1043,"label_key":1414,"helper_key":1415,"options":1416,"validation":1427},"select_or_text","shared.currency.label","shared.currency.helper",[1043,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426],"GBP","CHF","PLN","CZK","HUF","RON","SEK","DKK","NOK","USD",[1428],"Any 3-letter code or short label up to 10 characters is accepted as a label. No conversion is ever done.",{"id":1383,"type":1430,"required":266,"default":1431,"label_key":1432,"pdf_label_key":1433,"options":1434,"validation":1440},"choice","total","roas.field.spend_mode.label","roas.field.spend_mode.pdf_label",[1435,1437],{"id":1431,"label_key":1436},"roas.field.spend_mode.option.total",{"id":1438,"label_key":1439},"per_platform","roas.field.spend_mode.option.per_platform",[1441],"Must be 'total' or 'per_platform' (error shared.error.bad_option).",{"id":1384,"type":1443,"required":1444,"label_key":1445,"helper_key":1446,"placeholder_key":1447,"show_when":1448,"step":5,"validation":1449},"money","when spend_mode == 'total'","roas.field.spend_total.label","roas.field.spend_total.helper","roas.field.spend_total.placeholder","spend_mode == 'total'",[1450,1451,1452,1453],"blank -> shared.error.spend_missing","0 -> shared.error.spend_zero","\u003C 0 -> shared.error.negative","> max_money -> shared.error.too_large_money",{"id":1385,"type":1443,"required":266,"label_key":1455,"helper_key":1456,"show_when":1457,"group":1458,"validation":1459},"roas.field.spend_google.label","roas.field.spend_google.helper","spend_mode == 'per_platform'","spend",[1460,1452,1453,1461,1462],"blank = not entered (counts as 0 in the total)","all four blank -> shared.error.spend_missing (shown on the group)","sum == 0 -> shared.error.spend_zero (shown on the group)",{"id":1386,"type":1443,"required":266,"label_key":1464,"helper_key":1465,"show_when":1457,"group":1458,"validation":1466},"roas.field.spend_meta.label","roas.field.spend_meta.helper",[1460,1452,1453,1461,1462],{"id":1387,"type":1443,"required":266,"label_key":1468,"helper_key":1469,"show_when":1457,"group":1458,"validation":1470},"roas.field.spend_tiktok.label","roas.field.spend_tiktok.helper",[1460,1452,1453,1461,1462],{"id":1388,"type":1443,"required":266,"label_key":1472,"helper_key":1473,"show_when":1457,"group":1458,"validation":1474},"roas.field.spend_other.label","roas.field.spend_other.helper",[1460,1452,1453,1461,1462],{"id":1393,"type":1443,"required":266,"label_key":1476,"helper_key":1477,"group":1478,"validation":1479},"roas.field.revenue_google.label","roas.field.revenue_google.helper","platform_revenue",[1460,1452,1453,1480],"all four blank -> roas.error.platform_revenue_missing (shown on the group)",{"id":1394,"type":1443,"required":266,"label_key":1482,"helper_key":1483,"group":1478,"validation":1484},"roas.field.revenue_meta.label","roas.field.revenue_meta.helper",[1460,1452,1453,1480],{"id":1395,"type":1443,"required":266,"label_key":1486,"helper_key":1487,"group":1478,"validation":1488},"roas.field.revenue_tiktok.label","roas.field.revenue_tiktok.helper",[1460,1452,1453,1480],{"id":1396,"type":1443,"required":266,"label_key":1490,"helper_key":1491,"group":1478,"validation":1492},"roas.field.revenue_other.label","roas.field.revenue_other.helper",[1460,1452,1453,1480],{"id":1400,"type":1443,"required":261,"label_key":1494,"helper_key":1495,"placeholder_key":1496,"validation":1497},"roas.field.store_revenue.label","roas.field.store_revenue.helper","roas.field.store_revenue.placeholder",[1498,1499,1500,1453],"blank -> roas.error.store_missing","\u003C 0 -> roas.error.store_negative","0 -> roas.error.store_zero",{"id":1404,"type":1502,"required":266,"label_key":1503,"helper_key":1504,"placeholder_key":1505,"unit":1506,"validation":1507},"percent","roas.field.paid_share.label","roas.field.paid_share.helper","roas.field.paid_share.placeholder","%",[1508,1509],"outside 0-100 -> shared.error.pct_range","0 -> accepted, warning roas.warning.paid_share_zero, paid-estimate outputs skipped",{"id":1408,"type":1443,"required":266,"label_key":1511,"helper_key":1512,"placeholder_key":1513,"validation":1514},"roas.field.aov.label","roas.field.aov.helper","roas.field.aov.placeholder",[1515,1452,1453,1516],"0 -> roas.error.aov_zero","> store_revenue -> warning roas.warning.aov_above_store",{"id":1409,"type":1502,"required":266,"label_key":1518,"helper_key":1519,"placeholder_key":1520,"unit":1506,"validation":1521},"roas.field.refund_rate.label","roas.field.refund_rate.helper","roas.field.refund_rate.placeholder",[1522,1523],"\u003C 0 or >= 100 -> roas.error.refund_range","> 60 -> warning roas.warning.refund_high",{"id":1410,"type":1430,"required":266,"default":1525,"show_when":1526,"label_key":1527,"pdf_label_key":1528,"helper_key":1529,"options":1530,"validation":1539},"not_sure","refund_rate is entered","roas.field.store_basis.label","roas.field.store_basis.pdf_label","roas.field.store_basis.helper",[1531,1534,1537],{"id":1532,"label_key":1533},"yes","roas.field.store_basis.option.yes",{"id":1535,"label_key":1536},"no","roas.field.store_basis.option.no",{"id":1525,"label_key":1538},"roas.field.store_basis.option.not_sure",[1540,1541],"Unknown value -> shared.error.bad_option","yes or not_sure with a refund rate -> store revenue used as entered; not_sure adds warning roas.warning.refund_basis_assumed",[1543,1546,1550,1553,1557,1561,1565,1568,1572,1576,1579,1584,1588,1592,1595,1599,1603,1607,1610,1613,1616,1619,1622],{"id":1458,"expr":1544,"notes":1545},"spend_mode == 'per_platform' ? (n(spend_google) + n(spend_meta) + n(spend_tiktok) + n(spend_other)) : spend_total","n(x) = x if entered, else 0.",{"id":1547,"expr":1548,"notes":1549},"claimed","n(revenue_google) + n(revenue_meta) + n(revenue_tiktok) + n(revenue_other)","Sum of platform-reported revenue, as reported.",{"id":1551,"expr":1552},"r","refund_rate entered ? refund_rate \u002F 100 : null",{"id":1554,"expr":1555,"notes":1556},"claimed_basis","r != null ? claimed * (100 - refund_rate) \u002F 100 : claimed","Platforms' revenue on a like-for-like basis with store net sales.",{"id":1558,"expr":1559,"notes":1560},"store_basis_revenue","(r != null && store_basis == 'no') ? store_revenue * (100 - refund_rate) \u002F 100 : store_revenue","Store revenue after refunds. Used for every store-supported figure.",{"id":1562,"expr":1563,"display":1564},"reported_roas","claimed \u002F spend","ratio_2dp",{"id":1566,"expr":1567,"display":1564},"reported_roas_after_refunds","r != null ? claimed_basis \u002F spend : null",{"id":1569,"expr":1570,"display":1564,"notes":1571},"blended_roas","store_basis_revenue \u002F spend","Store-supported ROAS (blended, also called MER).",{"id":1573,"expr":1574,"display":1575},"paid_revenue_estimate","(paid_share entered && paid_share > 0) ? store_basis_revenue * paid_share \u002F 100 : null","money_0dp",{"id":1577,"expr":1578,"display":1564},"paid_adjusted_roas","paid_revenue_estimate != null ? paid_revenue_estimate \u002F spend : null",{"id":1580,"expr":1581,"display":1582,"notes":1583},"over_claim_pct","claimed_basis * 100 \u002F store_basis_revenue","pct_0dp","Banded. Equals claimed * 100 \u002F store_revenue when no refund rate is entered.",{"id":1585,"expr":1586,"display":1582,"notes":1587},"over_claim_pct_raw","claimed * 100 \u002F store_revenue","Shown as 'Before allowing for refunds' only when a refund rate is entered.",{"id":1589,"expr":1590,"display":1582,"notes":1591},"overstatement_pct","max(0, over_claim_pct - 100)","Reported ROAS ÷ store-supported ROAS - 1, by arithmetic (same spend in both).",{"id":1593,"expr":1594,"display":1575},"excess_claimed","max(0, claimed_basis - store_basis_revenue)",{"id":1596,"expr":1597,"display":1598},"excess_orders","(aov entered && excess_claimed > 0) ? excess_claimed \u002F aov : null","count_0dp",{"id":1600,"expr":1601,"display":1598,"notes":1602},"estimated_orders","aov entered ? store_revenue \u002F aov : null","Used for volume_band and cost per order.",{"id":1604,"expr":1605,"display":1606},"blended_cost_per_order","estimated_orders ? spend \u002F estimated_orders : null","money_2dp",{"id":1608,"expr":1609,"display":1582},"claim_vs_paid_pct","paid_revenue_estimate != null ? claimed_basis * 100 \u002F paid_revenue_estimate : null",{"id":1611,"expr":1612,"display":1575},"claim_minus_paid","paid_revenue_estimate != null ? max(0, claimed_basis - paid_revenue_estimate) : null",{"id":1614,"expr":1615,"display":1564},"platform_roas[p]","spend_mode == 'per_platform' && n(spend_p) > 0 ? n(revenue_p) \u002F spend_p : null",{"id":1617,"expr":1618,"display":1582},"platform_claim_pct[p]","revenue_p entered ? revenue_p * (r != null ? (100 - refund_rate) \u002F 100 : 1) * 100 \u002F store_basis_revenue : null",{"id":1620,"expr":1562,"display":1606,"notes":1621},"reported_per_unit","Shown as money: 'for every €1 ... €4.27'.",{"id":1623,"expr":1569,"display":1606},"blended_per_unit",{"over_claim":1625,"paid_estimate":1648,"blended":1661},{"value":1626,"special_first":1627,"bands":1631,"note":1647},"round_half_up(over_claim_pct, 0)",[1628],{"id":1629,"when":1630},"none","claimed == 0",[1632,1634,1636,1639,1642,1645],{"id":1231,"upper":1633,"upper_inclusive":266},80,{"id":1635,"upper":1072,"upper_inclusive":261},"tight",{"id":1637,"upper":1638,"upper_inclusive":261},"slightly_over",120,{"id":1640,"upper":1641,"upper_inclusive":261},"over",150,{"id":1643,"upper":1644,"upper_inclusive":261},"heavy",500,{"id":1646,"upper":260},"implausible","Starting points (our rules of thumb), not industry benchmarks; the page says so next to the band headline (shared.band_note). Evaluated on the displayed (rounded) whole percentage so the number and the wording never disagree. The over band starts above 120% (Defaults #34): up to 120%, VAT and shipping alone can explain the gap, so 101-120% gets its own band with the VAT\u002Fshipping check first.",{"value":1649,"bands":1650},"round_half_up(claim_vs_paid_pct, 0)",[1651,1654,1658],{"id":1652,"upper":1074,"upper_inclusive":266,"copy_key":1653},"below","roas.paid.below",{"id":1655,"upper":1656,"upper_inclusive":261,"copy_key":1657},"match",110,"roas.paid.match",{"id":1659,"upper":260,"copy_key":1660},"above","roas.paid.above",{"value":1662,"bands":1663},"round_half_up(blended_roas, 2)",[1664,1667],{"id":1665,"upper":5,"upper_inclusive":266,"copy_key":1666},"below_one","roas.blended.below_one",{"id":280,"upper":260,"copy_key":1668},"roas.blended.normal",{"none":1670,"low":1678,"tight":1686,"slightly_over":1694,"over":1699,"heavy":1704,"implausible":1709},{"checks":1671,"headline_key":1675,"body_key":1676,"own_numbers_key":1677,"band_row":5},[1672,1673,1674],"tracking_reaches","primary_conversion","same_accounts","roas.band.none.headline","roas.band.none.body","roas.own.none",{"checks":1679,"headline_key":1682,"body_key":1683,"own_numbers_key":1684,"band_row":1685},[1680,1672,1681],"estimate","like_for_like","roas.band.low.headline","roas.band.low.body","roas.own.low",4,{"checks":1687,"headline_key":1690,"body_key":1691,"own_numbers_key":1692,"band_row":1693},[1688,1681,1689],"overlap","dup_tags","roas.band.tight.headline","roas.band.tight.body","roas.own.tight",3,{"checks":1695,"headline_key":1696,"body_key":1697,"own_numbers_key":1698,"band_row":1693},[1681,1688,1689],"roas.band.slightly_over.headline","roas.band.slightly_over.body","roas.own.slightly_over",{"checks":1700,"headline_key":1701,"body_key":1702,"own_numbers_key":1703,"band_row":253},[1681,1689,1688],"roas.band.over.headline","roas.band.over.body","roas.own.over",{"checks":1705,"headline_key":1706,"body_key":1707,"own_numbers_key":1708,"band_row":5},[1689,1688,1681],"roas.band.heavy.headline","roas.band.heavy.body","roas.own.heavy",{"checks":1710,"headline_key":1712,"body_key":1713,"own_numbers_key":1714,"band_row":5},[1711,1689,1688],"inputs","roas.band.implausible.headline","roas.band.implausible.body","roas.own.implausible",{"dup_tags":1716,"overlap":1719,"like_for_like":1722,"tracking_reaches":1725,"estimate":1728,"primary_conversion":1731,"same_accounts":1734,"inputs":1737},{"title_key":1717,"text_key":1718},"roas.check.dup_tags.title","roas.check.dup_tags.text",{"title_key":1720,"text_key":1721},"roas.check.overlap.title","roas.check.overlap.text",{"title_key":1723,"text_key":1724},"roas.check.like_for_like.title","roas.check.like_for_like.text",{"title_key":1726,"text_key":1727},"roas.check.tracking_reaches.title","roas.check.tracking_reaches.text",{"title_key":1729,"text_key":1730},"roas.check.estimate.title","roas.check.estimate.text",{"title_key":1732,"text_key":1733},"roas.check.primary_conversion.title","roas.check.primary_conversion.text",{"title_key":1735,"text_key":1736},"roas.check.same_accounts.title","roas.check.same_accounts.text",{"title_key":1738,"text_key":1739},"roas.check.inputs.title","roas.check.inputs.text",[1741,1742,1743,1744,1745,1746,1747,1748,1749,1750],"1. Band headline (roas.band.\u003Cid>.headline), with shared.band_note next to it","2. Summary: roas.summary.main + roas.summary.paid (if paid estimate) + refund note (roas.note.refund_applied or roas.note.refund_applied_store, if refund rate)","3. Key figures: reported ROAS, store-supported ROAS, paid-estimate ROAS (if any), platforms' claim as % of store revenue (+ 'before allowing for refunds' line if refund rate), claimed beyond store revenue (+ in orders, if AOV), ad spend per store order (if AOV), reported ROAS after refunds (if refund rate). Each with its definition behind an info toggle.","4. Band body (roas.band.\u003Cid>.body), then roas.summary.plain, then the paid-estimate sentence (if any), then the blended sentence","5. By platform table (if any platform revenue entered), with platform notes underneath","6. Warnings (non-blocking), in a quiet box","7. What to check first: the band's 3 checks","8. Why these numbers differ (explainer)","9. Step 1 of 3 (roas.step1), step 2 text link (next_step), then the one CTA: shared.cta.step3_title, roas.cta.check.text, the band's own-numbers line (band_detail[band].own_numbers_key), the button (roas.cta.check.label), shared.cta.footnote. Under it, the 'Forward this to your boss' text link (forward_email).","10. PDF form (shared.lead_scoring.pdf_form). No specialist box on the result screen: it lives on the High thank-you route.",[1752,1756,1760,1764,1768,1772],{"id":1753,"when":1754,"copy_key":1755},"small_spend","spend \u003C limits.small_spend_below","shared.warning.small_spend",{"id":1757,"when":1758,"copy_key":1759},"high_roas","round_half_up(reported_roas,2) >= limits.high_roas_from || round_half_up(blended_roas,2) >= limits.high_roas_from","roas.warning.high_roas",{"id":1761,"when":1762,"copy_key":1763},"refund_high","refund_rate > limits.refund_high_above","roas.warning.refund_high",{"id":1765,"when":1766,"copy_key":1767},"refund_basis_assumed","refund_rate entered && store_basis in (null, 'not_sure')","roas.warning.refund_basis_assumed",{"id":1769,"when":1770,"copy_key":1771},"paid_share_zero","paid_share == 0","roas.warning.paid_share_zero",{"id":1773,"when":1774,"copy_key":1775},"aov_above_store","aov > store_revenue","roas.warning.aov_above_store",[1777,1781,1785],{"id":1778,"when":1779,"copy_key":1780},"single_over","round_half_up(platform_claim_pct[p], 0) > 100","roas.platform_note.single_over",{"id":1782,"when":1783,"copy_key":1784},"spend_no_revenue","spend_mode == 'per_platform' && spend_p > 0 && (revenue_p blank || revenue_p == 0)","roas.platform_note.spend_no_revenue",{"id":1786,"when":1787,"copy_key":1788},"revenue_no_spend","spend_mode == 'per_platform' && revenue_p > 0 && (spend_p blank || spend_p == 0)","roas.platform_note.revenue_no_spend",[1790],{"id":1791,"order":5,"type":1792,"title_key":1793,"text_key":1794,"own_numbers":1795,"label_key":1796,"subtext_key":1797,"footnote_key":1798,"url":1799,"show_when":1800},"check_24h","primary","shared.cta.step3_title","roas.cta.check.text","band_detail[band].own_numbers_key","roas.cta.check.label","roas.cta.check.subtext","shared.cta.footnote","https:\u002F\u002Ftrackian.com\u002Fmissing-orders-check","always",[1802,1803,1804,1805,1806,1807,1808,1809,1810,1811],"roas.explainer.title","roas.explainer.intro","roas.explainer.p1","roas.explainer.p2","roas.explainer.p3","roas.explainer.p4","roas.explainer.p5","roas.explainer.p6","roas.explainer.why_100","roas.explainer.link",{"title_key":1813,"email_subject_key":1814,"email_body_key":1815,"sections":1816,"delivery":1827},"roas.pdf.title","roas.pdf.email_subject","roas.pdf.email_body",[1817,1818,1819,1820,1821,1822,1823,1824,1825,1826],"Title + 'Calculated on {date}'","shared.pdf.inputs_title: every field the visitor filled, as typed, with currency","shared.pdf.results_title: same key figures, definitions printed in full (not toggles)","Band headline and body, summary sentences, paid-estimate and blended sentences, refund note","By platform table and platform notes (if any)","Warnings (if any)","shared.pdf.checks_title: the 3 checks, title and text","shared.pdf.explainer_title: the full explainer with the link","shared.pdf.next_title: the step 1 of 3 line, step 2 (2027 budget planner, with URL), then the 24-hour check (Missing Orders Check) with its own-numbers line and URL","shared.pdf.footer","Download on the thank-you screen. No emails are sent at launch; email_subject_key and email_body_key are kept for when email delivery starts.",{"track":907,"volume_band":1829,"not_collected":1830,"band_rows":1833,"band_rows_why":1838},"From estimated_orders (store_revenue ÷ aov, rounded): under_100 (\u003C 100), 100_499, 500_1999, 2000_plus. null when no AOV. Not scored for shops (no shop volume signal in v2).",[1831,1832],"platform","erp",{"1 (+20)":1834,"2 (+15)":1835,"3 (+10)":1836,"4 (+5)":1837},[1629,1643,1646],[1640],[1635,1637],[1231],"Row 1 = most room to improve: no sales reaching any platform, or claims far beyond the store. Row 4 = platforms claim less than the store took in.",{"roas.title":918,"roas.headline":919,"roas.subheadline":1840,"roas.before_you_start":1841,"roas.step1.title":1842,"roas.step2.title":1843,"roas.step2.helper":1844,"roas.step3.title":1845,"roas.step4.title":1846,"roas.optional.title":1847,"roas.field.spend_mode.label":1848,"roas.field.spend_mode.pdf_label":1849,"roas.field.spend_mode.option.total":1850,"roas.field.spend_mode.option.per_platform":1851,"roas.field.spend_total.label":1852,"roas.field.spend_total.helper":1853,"roas.field.spend_total.placeholder":1854,"roas.field.spend_google.label":1855,"roas.field.spend_google.helper":1856,"roas.field.spend_meta.label":1857,"roas.field.spend_meta.helper":1858,"roas.field.spend_tiktok.label":1859,"roas.field.spend_tiktok.helper":1860,"roas.field.spend_other.label":1861,"roas.field.spend_other.helper":1862,"roas.field.revenue_google.label":1863,"roas.field.revenue_google.helper":1864,"roas.field.revenue_meta.label":1865,"roas.field.revenue_meta.helper":1866,"roas.field.revenue_tiktok.label":1867,"roas.field.revenue_tiktok.helper":1868,"roas.field.revenue_other.label":1869,"roas.field.revenue_other.helper":1870,"roas.field.store_revenue.label":1871,"roas.field.store_revenue.helper":1872,"roas.field.store_revenue.placeholder":1873,"roas.field.paid_share.label":1874,"roas.field.paid_share.helper":1875,"roas.field.paid_share.placeholder":1876,"roas.field.aov.label":1877,"roas.field.aov.helper":1878,"roas.field.aov.placeholder":1879,"roas.field.refund_rate.label":1880,"roas.field.refund_rate.helper":1881,"roas.field.refund_rate.placeholder":1882,"roas.field.store_basis.label":1883,"roas.field.store_basis.pdf_label":1884,"roas.field.store_basis.helper":1885,"roas.field.store_basis.option.yes":1886,"roas.field.store_basis.option.no":1887,"roas.field.store_basis.option.not_sure":1888,"roas.error.platform_revenue_missing":1889,"roas.error.store_missing":1890,"roas.error.store_zero":1891,"roas.error.store_negative":1892,"roas.error.refund_range":1893,"roas.error.aov_zero":1894,"roas.out.reported_roas.label":1895,"roas.out.reported_roas.definition":1896,"roas.out.reported_roas_after_refunds.label":1897,"roas.out.reported_roas_after_refunds.definition":1898,"roas.out.blended_roas.label":1899,"roas.out.blended_roas.definition":1900,"roas.out.paid_adjusted_roas.label":1901,"roas.out.paid_adjusted_roas.definition":1902,"roas.out.over_claim.label":1903,"roas.out.over_claim.definition":1904,"roas.out.over_claim_before_refunds.label":1905,"roas.out.excess_claimed.label":1906,"roas.out.excess_claimed.definition":1907,"roas.out.excess_orders.label":1908,"roas.out.blended_cost_per_order.label":1909,"roas.out.blended_cost_per_order.definition":1910,"roas.out.platform_table.title":1911,"roas.out.platform_table.col.platform":1912,"roas.out.platform_table.col.spend":1913,"roas.out.platform_table.col.revenue":1914,"roas.out.platform_table.col.roas":1895,"roas.out.platform_table.col.claim":1915,"roas.platform.google":1916,"roas.platform.meta":1917,"roas.platform.tiktok":1918,"roas.platform.other":1328,"roas.summary.main":1919,"roas.summary.paid":1920,"roas.summary.plain":1921,"roas.note.refund_applied":1922,"roas.note.refund_applied_store":1923,"roas.note.refund_suffix":1924,"roas.note.excess_orders_suffix":1925,"roas.band.none.headline":1926,"roas.band.none.body":1927,"roas.band.low.headline":1928,"roas.band.low.body":1929,"roas.band.tight.headline":1930,"roas.band.tight.body":1931,"roas.band.over.headline":1932,"roas.band.over.body":1933,"roas.band.heavy.headline":1934,"roas.band.heavy.body":1935,"roas.band.implausible.headline":1936,"roas.band.implausible.body":1937,"roas.paid.below":1938,"roas.paid.match":1939,"roas.paid.above":1940,"roas.blended.below_one":1941,"roas.blended.normal":1942,"roas.platform_note.single_over":1943,"roas.platform_note.spend_no_revenue":1944,"roas.platform_note.revenue_no_spend":1945,"roas.warning.high_roas":1946,"roas.warning.refund_high":1947,"roas.warning.refund_basis_assumed":1948,"roas.warning.paid_share_zero":1949,"roas.warning.aov_above_store":1950,"roas.check.dup_tags.title":1951,"roas.check.dup_tags.text":1952,"roas.check.overlap.title":1953,"roas.check.overlap.text":1954,"roas.check.like_for_like.title":1955,"roas.check.like_for_like.text":1956,"roas.check.tracking_reaches.title":1957,"roas.check.tracking_reaches.text":1958,"roas.check.estimate.title":1959,"roas.check.estimate.text":1960,"roas.check.primary_conversion.title":1961,"roas.check.primary_conversion.text":1962,"roas.check.same_accounts.title":1963,"roas.check.same_accounts.text":1964,"roas.check.inputs.title":1965,"roas.check.inputs.text":1966,"roas.explainer.title":1314,"roas.explainer.intro":1967,"roas.explainer.p1":1968,"roas.explainer.p2":1969,"roas.explainer.p3":1970,"roas.explainer.p4":1971,"roas.explainer.p5":1972,"roas.explainer.p6":1973,"roas.explainer.why_100":1974,"roas.explainer.link":1975,"roas.pdf.title":1976,"roas.pdf.email_subject":1977,"roas.pdf.email_body":1978,"roas.band.slightly_over.headline":1979,"roas.band.slightly_over.body":1980,"roas.step1":1981,"roas.next_step.label":1982,"roas.next_step.short":1983,"roas.next_step.why":1984,"roas.cta.check.label":1985,"roas.cta.check.text":1986,"roas.cta.check.subtext":1987,"roas.own.none":1988,"roas.own.low":1989,"roas.own.tight":1990,"roas.own.slightly_over":1991,"roas.own.over":1992,"roas.own.heavy":1993,"roas.own.implausible":1994,"roas.forward.subject":1995,"roas.forward.meaning":1996,"roas.forward.excess":1997},"One month of numbers, answer in about 2 minutes. See what your ad platforms claim next to what your store actually took in.","Use the same dates for every number: one full month, ideally one that ended at least 7 days ago, so late conversions have mostly arrived. Use one currency throughout.","1. What you spent on ads","2. What your ad platforms say they earned","Enter what each platform says its ads earned in the same dates. Leave a platform blank if you don't advertise there. 0 is a valid answer.","3. What your store actually took in","4. How much of that you think came from ads","Optional: sharpen the answer","How do you want to enter ad spend?","Ad spend entered","One total for all platforms","Split by platform (adds ROAS per platform)","Ad spend for the period, all platforms","Everything you spent on ads in these dates: Google Ads, Meta, TikTok and any others. Ad spend only, not agency or software fees.","Example: 8,000","Google Ads spend","Google Ads: Campaigns, total of the Cost column for these dates.","Meta spend","Meta Ads Manager: total of Amount spent for these dates.","TikTok spend","TikTok Ads Manager: total cost for these dates.","Other platforms' spend","Microsoft Advertising, Pinterest, ChatGPT ads or anything else, added together. Leave blank if none.","Revenue Google Ads reports","The Conv. value column for the same dates. Use Conv. value, not All conv. value: that one adds view-through and secondary conversions.","Revenue Meta reports","Ads Manager: Purchases conversion value for the same dates, with the attribution setting you normally use.","Revenue TikTok reports","TikTok Ads Manager: the purchase value column for the same dates.","Revenue other platforms report","What any other platforms say their ads earned, added together. Leave blank if none.","Store revenue for the same dates","From your shop admin, not from GA4 or an ad platform. We suggest net sales: sales after discounts and returns, before tax and shipping (Shopify calls this Net sales). Whatever you pick, use the same definition every time you check.","Example: 52,000","Share of store revenue you think comes from paid ads (optional)","Your own estimate, as a percentage. Picture switching every ad off: what would still come in from returning customers, email, organic search and direct visits? The rest is your paid share. If you have no idea, leave it blank.","Example: 60","Average order value (optional)","Store revenue divided by number of orders, from your shop admin. Lets us turn a gap in money into a number of orders.","Example: 65","Refund and return rate (optional)","The share of revenue you refund, as a percentage. Ad platforms only hear about refunds if your setup reports them back, so their revenue usually stays at checkout value.","Example: 8","Is your store revenue figure already after refunds and returns?","Store revenue after refunds and returns","Only matters if you enter a refund rate. Shopify's Net sales is already after returns.","Yes, it's after refunds","No, it's before refunds","Not sure","Enter what at least one platform reports. 0 is fine.","Enter what your store took in for the same dates.","Your store revenue is 0, so there's nothing to compare the platforms with. Check the dates, or pick a period with sales.","Store revenue below zero usually means refunds outweighed sales in this period. Pick a longer period, or enter sales before refunds and add your refund rate below.","Enter a percentage from 0 up to 99.","Average order value needs to be above zero. Or leave it blank.","Reported ROAS","What your ad platforms claim: the revenue they report, added together, divided by your ad spend.","Reported ROAS after refunds","The same, with your refund rate taken off the platforms' revenue.","Store-supported ROAS (blended)","Everything your store took in, divided by everything you spent on ads. It includes sales that would have happened without ads, so it isn't the return of the ads alone: think of it as a ceiling. But no platform can inflate it, because the revenue comes from your store and every order is counted once. Some people call it MER (marketing efficiency ratio).","Store-supported ROAS on your paid estimate","The part of your store revenue you think came from paid ads, divided by ad spend. Only as good as your estimate.","Platforms' claim as % of store revenue","The revenue your platforms report, added together, as a share of what your store actually took in. Above 100% means the platforms together claim more sales than your store had, so double counting is likely.","Before allowing for refunds","Claimed beyond your store revenue","How much more the platforms claim, together, than your store took in. 0 when they claim less.","In orders (estimate)","Ad spend per store order (estimate)","Ad spend divided by your estimated number of orders (store revenue ÷ average order value). Every order counts, from ads or not.","By platform","Platform","Spend","Revenue it reports","Its claim as % of store revenue","Google Ads","Meta","TikTok","Your platforms report a ROAS of {reported_roas}. Your store supports {blended_roas} across all sales.","On your own estimate of paid sales, it's {paid_adjusted_roas}.","In plain words: for every {one_unit} you spent on ads, the platforms say they brought in {reported_per_unit}. Your store took in {blended_per_unit} in total, from ads and everything else.","Allowing for {refund_rate} refunds on the platforms' revenue.","Allowing for {refund_rate} refunds on the platforms' revenue and on your store revenue, which you said is before refunds."," (after allowing for {refund_rate} refunds)",", or about {excess_orders} orders at your average order value","Your platforms report no revenue at all","On {spend} of ad spend, none of your platforms report a single sale. If these ads are meant to sell, purchase tracking is probably not reaching the platforms, and their bidding is working without the one signal it needs. Fix that before you judge any campaign.","Your platforms claim less than your store took in","Together they claim {over_claim_pct} of your store revenue{refund_suffix}. Your store can support that: the rest can come from returning customers, email, organic search and direct visits. It can also mean some sales never reach the platforms, so check that before you cut a budget that looks weak.","Your platforms claim almost all of your store revenue","Together they claim {over_claim_pct} of your store revenue{refund_suffix}. That only adds up if nearly every sale came from an ad. If you also sell to returning customers, through email or from organic search, some of those sales are probably being claimed by the platforms too.","Your platforms claim more sales than your store had","Together they claim {over_claim_pct} of your store revenue{refund_suffix}: {excess_claimed} more than your store took in{excess_orders_suffix}. First check that both figures include the same things, such as VAT and shipping. If they do, two or more platforms are crediting themselves with the same orders, or one is counting some orders twice. Either way, your reported ROAS is at least {overstatement_pct} higher than anything your store can back up.","Your platforms claim far more than your store took in","Together they claim {over_claim_pct} of your store revenue{refund_suffix}: {excess_claimed} more than your store took in{excess_orders_suffix}. Different revenue definitions can't explain a gap this size on their own. Several platforms are crediting themselves with the same orders, or a purchase tag is firing more than once. Budget decisions based on reported ROAS are resting on sales that never happened.","Check your numbers first","Your platforms claim {over_claim_pct} of your store revenue. Heavy double counting can do that, but a typing slip is more likely: an extra zero, a different date range, or two currencies. Check the figures above. If they're right, treat every platform's revenue figure as unreliable until the tracking has been checked.","Compared with your own estimate: the platforms claim {claim_vs_paid_pct} of the {paid_revenue_estimate} you think ads brought in. Either your estimate is generous, or some sales from ads aren't reaching the platforms.","Compared with your own estimate: the platforms claim {claim_vs_paid_pct} of the {paid_revenue_estimate} you think ads brought in. That's close to what you'd expect.","Compared with your own estimate: the platforms claim {claim_vs_paid_pct} of the {paid_revenue_estimate} you think ads brought in. That's {claim_minus_paid} more than you believe ads delivered.","Your store took in less than you spent on ads in this period: {blended_per_unit} for every {one_unit} of ads, across all sales.","Whether {blended_roas} is enough depends on your margins: it's revenue, not profit.","{platform} alone claims {platform_claim_pct} of your store revenue. One platform claiming more than every sale you had points to that platform counting some sales twice, or counting ad views as sales.","{platform} reports no revenue on {platform_spend} of spend. If it runs sales campaigns, check that purchases reach it. We counted its revenue as 0.","{platform} reports {platform_revenue} of revenue, but you entered no spend for it. Check the dates and accounts. Its revenue is included in the total claim; its own ROAS can't be calculated.","A ROAS of 100 or more is very unusual. Check for an extra zero or a different date range.","A refund rate above 60% is unusual. Check it's a share of revenue, not a number of orders.","We assumed your store revenue is already after refunds. If it isn't, choose \"No, it's before refunds\" above.","You entered 0% from paid ads, so we skipped the figures based on your estimate.","Your average order value is higher than your store revenue. Check both figures.","Is any platform counting the same order twice?","Place one test order and check it shows up once in each platform. Common causes: two purchase tags (a shop app and a Tag Manager tag), the thank-you page firing again when it's reloaded, and Meta's pixel plus Conversions API sending the same purchase without a matching event ID.","Are several platforms claiming the same orders?","Each platform only sees its own ads, so a customer who clicked a Google ad and saw a Meta ad can be counted by both. Credit for ad views makes this worse. Compare platform conversions with your real orders day by day in the free Missing Orders sheet.","Are you comparing like with like?","Same dates, same time zone, same currency. Does the platform value include VAT and shipping while your store figure doesn't? Are refunds, cancelled orders or test orders in one figure but not the other?","Are purchases reaching every platform?","Place a test order and check it appears in each platform's events or diagnostics. A platform that never hears about sales reports a low ROAS, and its bidding learns from the wrong signals.","Does the claim match your own sense of it?","If you think most sales come from ads but the platforms claim far less, suspect missing tracking before weak ads. If you think few sales come from ads, the platform figures may be closer to right than they look.","Is the purchase counted in the main column?","In Google Ads, only primary conversion actions appear in Conv. value, so check your purchase action is set as primary. In Meta, check your campaigns use the purchase event from the right pixel or dataset.","Same accounts, same dates?","Make sure spend and revenue come from the same ad accounts and the same date range. A missing account or a mismatched range can produce a zero.","Check the figures you entered","Look for an extra zero, a different date range or a different currency in one of the figures.","Your ad platforms and your store count sales differently. None of them is lying on purpose, but their numbers can't simply be added up.","Each platform only sees its own ads. If a customer clicks a Google ad, later sees a Meta ad and then buys, both can count the whole sale. Nobody removes the duplicate across platforms.","The windows differ. Google Ads counts a sale up to 30 days after a click unless you change it. Meta's window depends on the attribution setting chosen in your Ads Manager, so check yours. TikTok lets you choose up to 28 days after a click and up to 7 days after a view. A longer window means more credit.","The dates differ. Google Ads' standard columns put a sale on the date of the ad interaction (usually the click), not the day of the order, so a month in Google Ads isn't quite the same sales as the same month in your shop.","The revenue differs. Platforms record whatever value your tags send at checkout, often with VAT and shipping included, and they rarely hear about refunds. Your store's net sales take those out.","Your store counts everything. Store revenue includes sales that had nothing to do with ads. That's why store-supported ROAS is a ceiling for your ads, not their exact return.","Even Meta says so: announcing its March 2026 change to what counts as a click, it said differences in click definitions \"can lead to inconsistency\" between Ads Manager and third-party tools.","Why the 100% line matters: whatever the reasons above, on a like-for-like basis your platforms can't have earned more than your store took in. If their claims add up to more, some sales are being counted more than once.","Read more: Why Your Numbers Never Agree https:\u002F\u002Ftrackian.com\u002Fresources\u002Fwhy-numbers-never-agree","Your ROAS Truth result","Your ROAS Truth result (PDF)","Here's the result you asked for, with the numbers you entered on {date}, what they mean and what to check first. It's arithmetic on your numbers, not a check of your tracking. If you'd like a person to look at the gap, reply to this email.","Your platforms claim a little more than your store took in","Together they claim {over_claim_pct} of your store revenue{refund_suffix}: {excess_claimed} more than your store took in{excess_orders_suffix}. A gap this size can come from definitions alone: platforms usually record the checkout value with VAT and shipping included, while net sales leave both out. Check that first. If both figures include the same things, some orders are being claimed by more than one platform or counted twice, and your reported ROAS is at least {overstatement_pct} higher than anything your store can back up.","You've done step 1 of 3: what your platforms claim, next to what your store took in.","Step 2 of 3: plan 2027 on numbers you trust with the free 2027 budget planner","plan 2027 on numbers you trust with the free 2027 budget planner","It discounts each channel's reported ROAS by how far you trust its tracking, checks the platforms' claims against your store revenue, then plans 2027 month by month.","Get my free Missing Orders Check","The Missing Orders Check compares what your tracking recorded with your real orders. A Trackian specialist tells you within 24 hours what's missing, why, and what to fix first. It's free; we ask a few short questions first to make sure it's a fit.","A Trackian specialist compares what your tracking recorded with your real orders and tells you within 24 hours what's missing, why, and what to fix first. Free - we ask a few short questions first to make sure it's a fit.","You spent {spend} on ads, and none of your platforms report a sale. Missing purchase tracking is the usual cause - that's what the check confirms or rules out.","Your platforms claim {over_claim_pct} of your store revenue. Some of the rest may be sales your tracking never reported - that's what the check confirms or rules out.","Your platforms claim {over_claim_pct} of your store revenue, which leaves almost nothing for returning customers, email or organic search. Some of it is probably claimed twice - that's what the check confirms or rules out.","Your platforms claim {excess_claimed} more than your store took in{excess_orders_suffix}. VAT and shipping can explain part of that, double counting the rest - that's what the check confirms or rules out.","Your platforms claim {excess_claimed} more than your store took in{excess_orders_suffix}, so your reported ROAS is at least {overstatement_pct} higher than your store can back up - that's what the check confirms or rules out.","Your platforms claim {excess_claimed} more than your store took in{excess_orders_suffix}: sales that never happened, steering your budget. That's what the check confirms or rules out.","Your platforms claim {over_claim_pct} of your store revenue. If your figures are right, every platform's revenue figure is suspect - that's what the check confirms or rules out.","platforms claim {over_claim_pct} of our store revenue","our platforms report a ROAS of {reported_roas}, but our store supports {blended_roas} across all sales. Together they claim {over_claim_pct} of our store revenue",", {excess_claimed} more than the store took in",[1999,2007,2015,2022,2031,2038],{"id":2000,"type":2001,"placement":2002,"title":2003,"shows":2004,"caption":2005,"alt":2006},"V1","PHOTO","intro","A shop owner with one month of numbers","welcome visual for the ROAS Truth Calculator - an online shop owner at a desk in a small European studio stockroom in daylight, shelves of boxed stock behind, a laptop open beside a printed monthly sales summary, pen in hand, comparing two figures; the screen is angled away and the paper soft-focused so no text or numbers can be read; calm and unhurried; no logos or brand marks, no real or named people","One month of your own numbers. The answer shows on this page.","A shop owner at a desk in a small stockroom compares a printed monthly sales summary with a laptop.",{"id":2008,"type":2009,"placement":2010,"title":2011,"shows":2012,"caption":2013,"alt":2014},"V2","DIAGRAM","before:revenue_google","Two figures for the same month","small, at the start of step 2. Two columns joined by a band labelled 'same dates, one full month, one currency'. Left, 'What your ad platforms say they earned': Google Ads, Meta, TikTok and other platforms, each with its own revenue figure, added together into 'the platforms' claim'. Right, 'What your store actually took in': your shop admin -> store revenue, with the suggested definition 'net sales: after discounts and returns, before tax and shipping'. Under the right column, a crossed-out tag: 'not GA4, not an ad platform'. The one point: the calculator puts the platforms' claim next to your store's own figure","Step 2 is what the platforms claim. Step 3 is what your store took in.","Diagram of the two figures the calculator compares for the same month: the revenue Google Ads, Meta, TikTok and other platforms say they earned, added together, and store revenue from your shop admin rather than GA4 or an ad platform.",{"id":2016,"type":2009,"placement":2017,"title":2018,"shows":2019,"caption":2020,"alt":2021},"V3","before:paid_share","Picture switching every ad off","small, above the paid share field in step 4. One horizontal bar for your store revenue, split in two. Left part, 'Would still come in': returning customers, email, organic search, direct visits. Right part, 'The rest: your paid share', marked 'example: 60%'. The one point: the paid share is your own estimate of what the ads bring in on top of everything else","Your own estimate. If you have no idea, leave it blank.","A bar of store revenue split into what would still come in with every ad switched off, from returning customers, email, organic search and direct visits, and the rest, your paid share, 60% in this example.",{"id":2023,"type":2024,"placement":2025,"dynamic":261,"title":2026,"shows":2027,"data":2028,"caption":2029,"alt":2030},"V4","CHART","result","Your reported ROAS and the ROAS your store supports","on the result screen, under the summary. Horizontal bars on one ROAS scale from 0, each labelled with its value and, under it, the division that produced it. 'Reported ROAS': the platforms' claim ÷ ad spend. 'Reported ROAS after refunds', only if a refund rate was entered: the claim less that rate ÷ ad spend. 'Store-supported ROAS', highlighted: store revenue (after refunds, if you said your figure is before them) ÷ ad spend. 'On your paid estimate', only if a paid share above 0 was entered: store revenue × paid share ÷ ad spend. Static mockup, example values from worked example A: reported 7.56 = €60,500 ÷ €8,000; store-supported 6.50 = €52,000 ÷ €8,000; paid estimate 3.90 = €52,000 × 60% ÷ €8,000. The one point: the ROAS your platforms report, next to the ROAS your own store revenue supports","dynamic - the visitor's own ad spend, platform revenue figures and store revenue, and the calculator's outputs reported_roas = claimed ÷ spend, reported_roas_after_refunds = claimed_basis ÷ spend (only with a refund rate), blended_roas = store_basis_revenue ÷ spend and paid_adjusted_roas = paid_revenue_estimate ÷ spend (only with a paid share above 0), shown exactly as the page shows them (ratios to 2 decimals, amounts in the visitor's currency label). No average, benchmark or target line","Both divide by the same ad spend, so the difference comes from revenue alone.","Bar chart of your own ROAS figures: the reported ROAS your ad platforms claim next to the ROAS your store revenue supports, each with the division behind it.",{"id":2032,"type":2024,"placement":2025,"dynamic":261,"title":2033,"shows":2034,"data":2035,"caption":2036,"alt":2037},"V5","What the platforms claim, next to what your store took in","on the result screen, with the band text. Two vertical bars in money. Left, 'Platforms' claim': stacked by platform (Google Ads, Meta, TikTok, Other; only those with a figure), after the refund rate if one was entered. Right, 'Store revenue' (after refunds, if you said your figure is before them). A dashed line level with the top of the store bar reads '100% of your store revenue'. Above the left bar, the claim as a share of store revenue. If the claim is higher, the part above the line is shaded and labelled 'Claimed beyond your store revenue' with the amount and, if an average order value was entered, 'about N orders'. A platform that alone claims more than 100% shows its own share on its segment. With no revenue reported, the left bar is empty and reads 0%. Very large claims get a broken bar so the store bar stays readable. Static mockup, example values from worked example A: Google Ads €31,000 + Meta €29,500 = €60,500, 116% of €52,000; €8,500 beyond it, about 131 orders at €65. The one point: on a like-for-like basis the platforms can't have earned more than your store took in","dynamic - the visitor's own revenue_google, revenue_meta, revenue_tiktok and revenue_other, each reduced by the refund rate if one was entered (claimed_basis, platform_claim_pct), against store_basis_revenue; labels over_claim_pct, excess_claimed and excess_orders = excess_claimed ÷ aov, exactly as the page shows them, plus over_claim_pct_raw as a small 'Before allowing for refunds' note when a refund rate was entered. The only line drawn is 100% of the visitor's own store revenue: no band thresholds, averages or benchmarks","The line is everything your store took in. A claim above it is counted twice, or counted differently.","Bar chart comparing the revenue your ad platforms claim, stacked by platform, with your store revenue, marked by a 100% line; any claim above the line is labelled with its amount.",{"id":2039,"type":2009,"placement":2025,"title":2040,"shows":2041,"caption":2042,"alt":2043},"V6","One order, two claims","on the result screen, beside the explainer's first point. A customer path from left to right: 'clicks a Google ad' -> 'later sees a Meta ad' -> 'buys: 1 order'. Below, three tallies: 'Your store: 1 order', 'Google Ads: 1 sale', 'Meta: 1 sale'. A bracket joins the two platform tallies: 'added up: 2 sales claimed for 1 order'. The one point: each platform only sees its own ads, and nobody removes the duplicate across platforms","Each platform can count the whole sale. Your store counts it once.","Diagram of a customer who clicks a Google ad, later sees a Meta ad and buys once: the store records one order, while Google Ads and Meta can each count the sale, so together they claim two.",{"step1_key":2045,"label_key":2046,"why_key":2047,"short_key":2048,"url":2049,"type":2050},"roas.step1","roas.next_step.label","roas.next_step.why","roas.next_step.short","https:\u002F\u002Ftrackian.com\u002Fresources\u002F2027-budget-planner\u002Fshop","text_link",{"id":2052,"track":2053,"title_key":2054,"page":2055,"inputs":2065,"formulas":2121,"bands":2152,"band_detail":2184,"checks":2240,"result_layout":2268,"warnings":2277,"ctas":2291,"explainer_keys":2297,"pdf":2306,"lead_scoring":2317,"copy":2327,"visuals":2448,"next_step":2489},"junk_lead_cost","leadgen","lead.title",{"headline_key":2056,"subheadline_key":2057,"meta_line_key":1375,"small_print_key":1376,"before_you_start_key":2058,"field_order":2059},"lead.headline","lead.subheadline","lead.before_you_start",[1382,1458,2060,2061,2062,2063,2064],"reported","real_leads","real_leads_scope","junk_share","value_per_lead",[2066,2068,2073,2083,2092,2106,2114],{"id":1382,"type":1413,"required":266,"default":1043,"label_key":1414,"helper_key":1415,"options":2067},[1043,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426],{"id":1458,"type":1443,"required":261,"label_key":2069,"helper_key":2070,"placeholder_key":2071,"validation":2072},"lead.field.spend.label","lead.field.spend.helper","lead.field.spend.placeholder",[1450,1451,1452,1453],{"id":2060,"type":2074,"required":261,"label_key":2075,"helper_key":2076,"placeholder_key":2077,"step":2078,"validation":2079},"count_decimal","lead.field.reported.label","lead.field.reported.helper","lead.field.reported.placeholder",0.01,[2080,1452,2081,2082],"blank -> lead.error.reported_missing","> max_count -> shared.error.too_large_count","decimals allowed (fractional conversions)",{"id":2061,"type":2084,"required":2085,"label_key":2086,"helper_key":2087,"placeholder_key":2088,"step":5,"validation":2089},"count_whole","one of real_leads or junk_share","lead.field.real_leads.label","lead.field.real_leads.helper","lead.field.real_leads.placeholder",[2090,1452,2081,2091],"not a whole number -> lead.error.real_not_whole","real_leads and junk_share both blank -> lead.error.real_or_junk_missing",{"id":2062,"type":1430,"required":266,"default":2093,"show_when":2094,"label_key":2095,"pdf_label_key":2096,"helper_key":2097,"options":2098,"validation":2104},"all","real_leads is entered","lead.field.real_leads_scope.label","lead.field.real_leads_scope.pdf_label","lead.field.real_leads_scope.helper",[2099,2102],{"id":2100,"label_key":2101},"paid","lead.field.real_leads_scope.option.paid",{"id":2093,"label_key":2103},"lead.field.real_leads_scope.option.all",[1540,2105],"Default 'all' is the cautious reading (money figure becomes a lower limit).",{"id":2063,"type":1502,"required":2085,"label_key":2107,"pdf_label_key":2108,"helper_key":2109,"placeholder_key":2110,"unit":1506,"validation":2111},"lead.field.junk_share.label","lead.field.junk_share.pdf_label","lead.field.junk_share.helper","lead.field.junk_share.placeholder",[1508,2112,2113],"> 90 and \u003C 100 -> warning lead.warning.junk_high","ignored when real_leads is entered (warning lead.warning.both_given)",{"id":2064,"type":1443,"required":266,"label_key":2115,"pdf_label_key":2116,"helper_key":2117,"placeholder_key":2118,"validation":2119},"lead.field.value_per_lead.label","lead.field.value_per_lead.pdf_label","lead.field.value_per_lead.helper","lead.field.value_per_lead.placeholder",[2120,1452,1453],"0 -> lead.error.value_zero",[2122,2125,2129,2132,2135,2138,2141,2145,2148],{"id":2123,"expr":2124},"real_source","real_leads entered ? 'counted' : 'junk_share'",{"id":2126,"expr":2127,"notes":2128},"real","real_source == 'counted' ? real_leads : reported * (100 - junk_share) \u002F 100","Estimated real leads are not rounded for the maths; shown rounded with 'about'.",{"id":2130,"expr":2131,"display":1606},"reported_cpl","reported > 0 ? spend \u002F reported : null",{"id":2133,"expr":2134,"display":1606},"cost_per_real_lead","real > 0 ? spend \u002F real : null",{"id":2136,"expr":2137,"display":1564},"gap_ratio","real > 0 ? reported \u002F real : null",{"id":2139,"expr":2140,"display":1582},"real_share_pct","reported > 0 ? real * 100 \u002F reported : null",{"id":2142,"expr":2143,"display":1575,"notes":2144},"spend_on_not_real","reported > 0 ? spend * max(0, reported - real) \u002F reported : null","Same as spend × (1 - real ÷ reported), floored at 0, and the same as (reported - real) × reported cost per lead (the Missing Leads sheet's formula). Equals spend when real = 0. With a junk share it equals spend × junk_share \u002F 100.",{"id":2146,"expr":2147,"display":1606},"extra_cost_per_lead","(reported_cpl != null && cost_per_real_lead != null) ? max(0, cost_per_real_lead - reported_cpl) : null",{"id":2149,"expr":2150,"display":2151},"qualified_equiv","(value_per_lead entered && spend_on_not_real > 0) ? spend_on_not_real \u002F value_per_lead : null","count_1dp",{"gap":2153},{"value":2154,"special_first":2155,"bands":2171,"note":2183},"round_half_up(gap_ratio, 2)",[2156,2159,2162,2165,2168],{"id":2157,"when":2158},"nothing","reported == 0 && real == 0",{"id":2160,"when":2161},"no_reported","reported == 0 && real > 0",{"id":2163,"when":2164},"no_real","real == 0 && reported > 0",{"id":2166,"when":2167},"under_all","round_half_up(gap_ratio, 2) \u003C 1.00 && real_source == 'counted' && real_leads_scope != 'paid'",{"id":2169,"when":2170},"under_paid","round_half_up(gap_ratio, 2) \u003C 1.00 && real_source == 'counted' && real_leads_scope == 'paid'",[2172,2175,2177,2179,2181],{"id":2173,"upper":2174,"upper_inclusive":261},"close",1.1,{"id":999,"upper":2176,"upper_inclusive":261},1.5,{"id":2178,"upper":1693,"upper_inclusive":261},"serious",{"id":2180,"upper":1075,"upper_inclusive":261},"severe",{"id":2182,"upper":260},"extreme","Starting points (our rules of thumb), not industry benchmarks; the page says so next to the band headline (shared.band_note). A gap ratio below 1.00 can't come from the junk-share path (junk share >= 0), so the 'under' bands need a counted real-lead figure. Evaluated on the displayed (rounded) ratio.",{"nothing":2185,"no_reported":2192,"no_real":2198,"under_all":2205,"under_paid":2211,"close":2217,"check":2223,"serious":2227,"severe":2231,"extreme":2235},{"checks":2186,"headline_key":2189,"body_key":2190,"own_numbers_key":2191,"band_row":1685},[2187,2188,1711],"form_test","delivery","lead.band.nothing.headline","lead.band.nothing.body","lead.own.nothing",{"checks":2193,"headline_key":2195,"body_key":2196,"own_numbers_key":2197,"band_row":5},[2187,2194,1711],"untracked","lead.band.no_reported.headline","lead.band.no_reported.body","lead.own.no_reported",{"checks":2199,"headline_key":2202,"body_key":2203,"own_numbers_key":2204,"band_row":5},[2200,2188,2201],"spam","double","lead.band.no_real.headline","lead.band.no_real.body","lead.own.no_real",{"checks":2206,"headline_key":2208,"body_key":2209,"own_numbers_key":2210,"band_row":1685},[2207,2194,2187],"scope","lead.band.under_all.headline","lead.band.under_all.body","lead.own.under_all",{"checks":2212,"headline_key":2214,"body_key":2215,"own_numbers_key":2216,"band_row":1693},[2194,2187,2213],"lead_forms","lead.band.under_paid.headline","lead.band.under_paid.body","lead.own.under_paid",{"checks":2218,"headline_key":2219,"body_key":2220,"own_numbers_key":2221,"own_numbers_key_no_waste":2222,"band_row":1685},[2187,2213,2200],"lead.band.close.headline","lead.band.close.body","lead.own.waste","lead.own.matched",{"checks":2224,"headline_key":2225,"body_key":2226,"own_numbers_key":2221,"band_row":1693},[2200,2201,2213],"lead.band.check.headline","lead.band.check.body",{"checks":2228,"headline_key":2229,"body_key":2230,"own_numbers_key":2221,"band_row":253},[2200,2201,1688],"lead.band.serious.headline","lead.band.serious.body",{"checks":2232,"headline_key":2233,"body_key":2234,"own_numbers_key":2221,"band_row":5},[2200,2201,1688],"lead.band.severe.headline","lead.band.severe.body",{"checks":2236,"headline_key":2237,"body_key":2238,"own_numbers_key":2239,"band_row":5},[1711,2200,2201],"lead.band.extreme.headline","lead.band.extreme.body","lead.own.extreme",{"spam":2241,"double":2244,"overlap":2247,"lead_forms":2250,"untracked":2253,"form_test":2256,"scope":2259,"delivery":2262,"inputs":2265},{"title_key":2242,"text_key":2243},"lead.check.spam.title","lead.check.spam.text",{"title_key":2245,"text_key":2246},"lead.check.double.title","lead.check.double.text",{"title_key":2248,"text_key":2249},"lead.check.overlap.title","lead.check.overlap.text",{"title_key":2251,"text_key":2252},"lead.check.lead_forms.title","lead.check.lead_forms.text",{"title_key":2254,"text_key":2255},"lead.check.untracked.title","lead.check.untracked.text",{"title_key":2257,"text_key":2258},"lead.check.form_test.title","lead.check.form_test.text",{"title_key":2260,"text_key":2261},"lead.check.scope.title","lead.check.scope.text",{"title_key":2263,"text_key":2264},"lead.check.delivery.title","lead.check.delivery.text",{"title_key":2266,"text_key":2267},"lead.check.inputs.title","lead.check.inputs.text",[2269,2270,2271,2272,2273,2274,1747,2275,2276,1750],"1. Band headline (lead.band.\u003Cid>.headline), with shared.band_note next to it","2. Summary: lead.summary.counted or lead.summary.estimated (skip when reported or real is 0)","3. Key figures: reported cost per lead, cost per real lead, gap ratio, real leads as % of reported, spend on leads that aren't real (estimate), extra cost per real lead; estimated real leads if junk-share path. Definitions behind info toggles. When real leads exceed reported leads (under_all, under_paid), spend on leads that aren't real and extra cost per real lead show shared.not_calculable, never 0.","4. Band body, then lead.summary.spend_on_not_real (when spend_on_not_real > 0 and the band body doesn't already state it, i.e. only in the close band), then lead.note.lower_limit_all (counted, scope all) or lead.note.lower_limit_junk (junk-share path) and lead.note.how_estimate_works whenever spend_on_not_real > 0","5. Value sentences (if value_per_lead): lead.value.equivalent (when spend_on_not_real > 0), then lead.value.cost_above or lead.value.cost_below (when cost per real lead exists)","6. Warnings","8. Why these numbers differ","9. Step 1 of 3 (lead.step1), step 2 text link (next_step), then the one CTA: shared.cta.step3_title, lead.cta.check.text, the band's own-numbers line (band_detail[band].own_numbers_key; lead.own.matched in the close band when the spend on leads that aren't real shows as 0), the button (lead.cta.check.label), shared.cta.footnote. Under it, the 'Forward this to your boss' text link (forward_email).",[2278,2279,2283,2287],{"id":1753,"when":1754,"copy_key":1755},{"id":2280,"when":2281,"copy_key":2282},"both_given","real_leads entered && junk_share entered","lead.warning.both_given",{"id":2284,"when":2285,"copy_key":2286},"small_counts","(reported > 0 && reported \u003C limits.small_counts_below) || (real > 0 && real \u003C limits.small_counts_below)","lead.warning.small_counts",{"id":2288,"when":2289,"copy_key":2290},"junk_high","real_source == 'junk_share' && junk_share > limits.junk_high_above && junk_share \u003C 100","lead.warning.junk_high",[2292],{"id":1791,"order":5,"type":1792,"title_key":1793,"text_key":2293,"own_numbers":1795,"label_key":2294,"subtext_key":2295,"footnote_key":1798,"url":2296,"show_when":1800},"lead.cta.check.text","lead.cta.check.label","lead.cta.check.subtext","https:\u002F\u002Ftrackian.com\u002Fmissing-leads-check",[2298,2299,2300,2301,2302,2303,2304,2305],"lead.explainer.title","lead.explainer.intro","lead.explainer.p1","lead.explainer.p2","lead.explainer.p3","lead.explainer.p4","lead.explainer.p5","lead.explainer.link",{"title_key":2307,"email_subject_key":2308,"email_body_key":2309,"sections":2310,"delivery":1827},"lead.pdf.title","lead.pdf.email_subject","lead.pdf.email_body",[1817,2311,2312,2313,1822,2314,2315,2316,1826],"shared.pdf.inputs_title: every field filled, as typed","shared.pdf.results_title: key figures with definitions in full","Band headline and body, summary, spend-on-not-real sentence with its notes, value sentences","shared.pdf.checks_title: the 3 checks","shared.pdf.explainer_title: full explainer with link","shared.pdf.next_title: the step 1 of 3 line, step 2 (2027 budget planner, with URL), then the 24-hour check (Missing Leads Check) with its own-numbers line and URL",{"track":2053,"volume_band":2318,"not_collected":2319,"band_rows":2321,"band_rows_why":2326},"From real leads (counted, or estimated and rounded): under_20 (\u003C 20), 20_49, 50_199, 200_plus. Feeds the '+10 for lead-gen with 50+ leads a month' signal.",[2320],"lead_type",{"1 (+20)":2322,"2 (+15)":2323,"3 (+10)":2324,"4 (+5)":2325},[2163,2160,2180,2182],[2178],[999,2169],[2173,2166,2157],"Row 1 = most room to improve: no real leads, no reported leads, or a gap above 3:1. Row 4 = a small gap, or nothing the numbers can judge.",{"lead.title":2328,"lead.headline":2329,"lead.subheadline":2330,"lead.before_you_start":2331,"lead.field.spend.label":2332,"lead.field.spend.helper":2333,"lead.field.spend.placeholder":2334,"lead.field.reported.label":2335,"lead.field.reported.helper":2336,"lead.field.reported.placeholder":2337,"lead.field.real_leads.label":2338,"lead.field.real_leads.helper":2339,"lead.field.real_leads.placeholder":2340,"lead.field.real_leads_scope.label":2341,"lead.field.real_leads_scope.pdf_label":2342,"lead.field.real_leads_scope.option.paid":2343,"lead.field.real_leads_scope.option.all":2344,"lead.field.real_leads_scope.helper":2345,"lead.field.junk_share.label":2346,"lead.field.junk_share.pdf_label":2347,"lead.field.junk_share.helper":2348,"lead.field.junk_share.placeholder":2349,"lead.field.value_per_lead.label":2350,"lead.field.value_per_lead.pdf_label":2351,"lead.field.value_per_lead.helper":2352,"lead.field.value_per_lead.placeholder":2353,"lead.error.reported_missing":2354,"lead.error.real_or_junk_missing":2355,"lead.error.real_not_whole":2356,"lead.error.value_zero":2357,"lead.out.reported_cpl.label":2358,"lead.out.reported_cpl.definition":2359,"lead.out.cost_per_real_lead.label":2360,"lead.out.cost_per_real_lead.definition":2361,"lead.out.gap_ratio.label":2362,"lead.out.gap_ratio.definition":2363,"lead.out.real_share.label":2364,"lead.out.spend_on_not_real.label":2365,"lead.out.spend_on_not_real.definition":2366,"lead.out.extra_cost_per_lead.label":2367,"lead.out.extra_cost_per_lead.definition":2368,"lead.out.estimated_real_leads.label":2369,"lead.summary.counted":2370,"lead.summary.estimated":2371,"lead.summary.spend_on_not_real":2372,"lead.note.lower_limit_all":2373,"lead.note.lower_limit_junk":2374,"lead.note.how_estimate_works":2375,"lead.band.nothing.headline":2376,"lead.band.nothing.body":2377,"lead.band.no_reported.headline":2378,"lead.band.no_reported.body":2379,"lead.band.no_real.headline":2380,"lead.band.no_real.body":2381,"lead.band.under_all.headline":2382,"lead.band.under_all.body":2383,"lead.band.under_paid.headline":2384,"lead.band.under_paid.body":2385,"lead.band.close.headline":2386,"lead.band.close.body":2387,"lead.band.check.headline":2388,"lead.band.check.body":2389,"lead.band.serious.headline":2390,"lead.band.serious.body":2391,"lead.band.severe.headline":2392,"lead.band.severe.body":2393,"lead.band.extreme.headline":1936,"lead.band.extreme.body":2394,"lead.value.equivalent":2395,"lead.value.cost_above":2396,"lead.value.cost_below":2397,"lead.warning.both_given":2398,"lead.warning.small_counts":2399,"lead.warning.junk_high":2400,"lead.warning.scope_ignored":2401,"lead.check.spam.title":2402,"lead.check.spam.text":2403,"lead.check.double.title":2404,"lead.check.double.text":2405,"lead.check.overlap.title":2406,"lead.check.overlap.text":2407,"lead.check.lead_forms.title":2408,"lead.check.lead_forms.text":2409,"lead.check.untracked.title":2410,"lead.check.untracked.text":2411,"lead.check.form_test.title":2412,"lead.check.form_test.text":2413,"lead.check.scope.title":2414,"lead.check.scope.text":2415,"lead.check.delivery.title":2416,"lead.check.delivery.text":2417,"lead.check.inputs.title":1965,"lead.check.inputs.text":2418,"lead.explainer.title":1314,"lead.explainer.intro":2419,"lead.explainer.p1":2420,"lead.explainer.p2":2421,"lead.explainer.p3":2422,"lead.explainer.p4":2423,"lead.explainer.p5":2424,"lead.explainer.link":1975,"lead.pdf.title":2425,"lead.pdf.email_subject":2426,"lead.pdf.email_body":1978,"lead.step1":2427,"lead.next_step.label":2428,"lead.next_step.short":2429,"lead.next_step.why":2430,"lead.cta.check.label":2431,"lead.cta.check.text":2432,"lead.cta.check.subtext":2433,"lead.own.nothing":2434,"lead.own.no_reported":2435,"lead.own.no_real":2436,"lead.own.under_all":2437,"lead.own.under_paid":2438,"lead.own.waste":2439,"lead.own.matched":2440,"lead.own.extreme":2441,"lead.forward.subject.counted":2442,"lead.forward.subject.estimated":2443,"lead.forward.meaning.counted":2444,"lead.forward.meaning.estimated":2445,"lead.forward.meaning.zero":2446,"lead.forward.waste":2447},"Junk-Lead Cost Calculator","How much of your ad budget buys fake leads?","One month of numbers, answer in about 2 minutes. See the leads your ad platforms report next to the real ones that reached you, and what the difference costs.","Use the same dates for every number: one full month, ideally one that ended at least 7 days ago. If you advertise on several platforms, add their spend together and their reported leads together.","Ad spend for the period","Everything you spent on the ads whose leads you count below: Google Ads, Meta and any others, added together. Ad spend only, not agency or software fees.","Example: 4,000","Leads your ad platforms report","The conversions for your lead actions, added up across platforms (Google Ads: the Conversions column for your lead actions; Meta: Leads or Results). If two platforms count the same enquiry, it's in here twice, and that's part of what this calculator shows. Decimals are fine: Google Ads can report part of a conversion.","Example: 160","Real leads you received","Count them in your inbox, booking tool or CRM: genuine enquiries from real people you'd follow up, each person once. Leave out spam, tests and repeats. Include leads from Meta or Google lead forms if they're real. Can't count them? Leave this blank and fill in the junk share instead.","Example: 95","Which leads did you count?","Leads counted","Only leads from paid ads (my CRM records the source)","All leads, from every source","If you counted all leads, the money figure below is a lower limit, because some of those leads didn't come from your ads.","Or: what share of your leads is junk? (optional)","Share of leads that is junk","Only if you can't count real leads. Your estimate, as a percentage of the enquiries you get: spam, bots, fake details, repeats. A week of checking your inbox gives a fair idea. Ignored if you entered real leads.","Example: 30","What a qualified lead is worth to you (optional)","Value of a qualified lead","Roughly what one good lead is worth: your average sale value times the share of qualified leads that become customers. Example: an average job of 2,000 and 1 in 4 qualified leads buying makes a lead worth 500.","Example: 500","Enter the number of leads your platforms report. 0 is fine.","Enter your real leads, or your junk share if you can't count them.","Real leads are people, so enter a whole number.","The value of a lead needs to be above zero. Or leave it blank.","Reported cost per lead","Ad spend ÷ the leads your platforms report. The figure most ad reports show.","Cost per real lead","Ad spend ÷ your real leads. What a genuine enquiry actually costs you.","Gap ratio","Reported leads ÷ real leads. 1.00 means every reported lead was real; 2.00 means the platforms reported two leads for every real one.","Real leads as % of reported","Spend on leads that aren't real (estimate)","Ad spend × (1 - real leads ÷ reported leads). The share of your spend that, at your reported cost per lead, paid for conversions with no real lead behind them.","Extra cost per real lead","Cost per real lead minus reported cost per lead.","Real leads (estimated from your junk share)","Your platforms report {reported_leads} leads at {reported_cpl} each. You received {real_leads} real leads, so each one actually cost {cost_per_real_lead}.","You estimate {junk_share} of your leads are junk, so about {real_leads} of the {reported_leads} reported leads were real, at about {cost_per_real_lead} each instead of {reported_cpl}.","About {spend_on_not_real} of your {spend} went on conversions with no real lead behind them.","The {spend_on_not_real} figure is a lower limit: your real-lead count includes leads from outside your ads, so the true figure is probably higher.","The {spend_on_not_real} figure is a lower limit: a junk share doesn't catch enquiries the platforms counted twice.","How this estimate works: it assumes every reported lead cost the same, and that your real leads came from these ads. It doesn't mean you'd save this money by cutting your budget, because the same spend also bought your real leads. The bigger cost is often hidden: ad platforms learn from the leads they count, so junk teaches them to find more junk.","Nothing to compare yet","Both counts are zero for this period. Pick a period with leads, or check that your lead forms are working.","Your platforms report no leads, but you received {real_leads}","Your platforms counted none of the {real_leads} real leads you received. If any of them came from your ads, lead tracking isn't reaching the platforms, and their bidding can't learn what works.","None of the reported leads were real","Your platforms report {reported_leads} leads, but none reached you as a real enquiry, so all {spend} went on conversions with no real lead behind them. The usual causes are bots filling in a form, a conversion tag firing on the wrong page, or form notifications not reaching your inbox.","You received more leads than the platforms report","You counted {real_leads} leads from every source; the platforms report {reported_leads}. That's expected if some leads come from outside your ads, such as referrals, organic search or calls. These numbers can't show how many reported leads were junk. If your CRM records the source, count only leads from paid ads and run it again.","Your platforms are missing real leads","You received {real_leads} real leads from paid ads, but the platforms report only {reported_leads}. Some leads from ads aren't being counted: often phone calls, a form that isn't tracked, or a tag that broke. So your real cost per lead is lower than the platforms show, and their bidding is learning from only part of your results.","Your reported leads are close to real","The platforms report {gap_ratio} leads for every real one: {real_share} of reported leads were real. A small gap is normal, from repeat enquiries and the odd bit of spam. Keep checking monthly, and after every change to your website or forms.","Worth checking","The platforms report {gap_ratio} leads for every real one, so about {spend_on_not_real} of your spend paid for conversions with no real lead behind them. It's not a crisis, but it's money, and it teaches the platforms to look for more of the same.","A serious gap: many of your reported leads aren't real","Only {real_share} of the leads your platforms report were real. About {spend_on_not_real} of your {spend} paid for conversions with no real lead behind them. Any decision based on the reported cost per lead of {reported_cpl} is off by a factor of {gap_ratio}.","Most of what you're paying for isn't a lead","The platforms report {gap_ratio} leads for every real one. About {spend_on_not_real} of your {spend} went on conversions with no real lead behind them. At this level the platforms are very likely optimising towards spam or a misfiring tag, and the longer it runs, the more they learn from it.","The platforms report {gap_ratio} leads for every real one. A bot attack on a form can do that, but check the figures first: an extra zero, a different date range, or reported leads from a platform whose spend you didn't include.","At {value_per_lead} per qualified lead, the spend on leads that aren't real equals the value of about {qualified_equiv} qualified leads.","Each real lead costs {cost_per_real_lead}, more than the {value_per_lead} a qualified lead is worth to you. Not every real lead qualifies, so your cost per qualified lead is higher still.","Each real lead costs {cost_per_real_lead}, against {value_per_lead} for a qualified lead. Not every real lead qualifies, so check your cost per qualified lead before you raise budgets.","You entered both real leads and a junk share. We used your real-lead count and ignored the junk share.","With fewer than 10 leads, one lead more or less changes these figures a lot. A longer period gives a steadier answer.","A junk share above 90% is unusual. Check it's a percentage of your leads.","Which leads you counted only matters when you enter real leads, so we didn't use it.","Is spam being counted as a lead?","Look through last month's form submissions. If bots or fake details get through, each one is a conversion to the platforms. Add spam protection, and fire the lead conversion only after the form has been validated and sent, not on the button click.","Does one enquiry fire more than once?","Send one test enquiry and check each platform counts it once. Common causes: a tag on the form submit plus one on the thank-you page, a thank-you page that fires again when reloaded, or a Google Ads lead action counting \"Every\" conversion instead of \"One\" per click (Google suggests \"One\" for leads).","Are two platforms claiming the same lead?","Each platform only sees its own ads, so one person who clicked a Google ad and a Meta ad can be a lead in both. Compare week by week in the free Missing Leads sheet.","Are Meta and Google lead forms in your count?","Leads from forms inside the ad are counted by the platform but never touch your website, and may not reach your inbox. Make sure they're in your real-lead count, or the gap will look bigger than it is.","Are calls and emails being counted?","Many enquiries never touch a tracked form. Unless call tracking is set up, someone who sees your ad and rings you is a real lead no platform counts.","Is your lead tracking still working?","Send a test enquiry, and do it again after every website, form or plugin change. Check it appears once in each platform and once in your inbox.","Did you count only leads from ads?","If your CRM records where each lead came from, count only leads from paid ads and run the calculator again. That turns the result into a like-for-like comparison.","Are form notifications reaching you?","If form emails land in spam or go to an old address, real leads can look like zero. Compare your form tool's submission log with your inbox.","Look for an extra zero, a different date range, or reported leads from a platform whose spend isn't included.","To an ad platform, a form submission is a lead. It can't tell a real customer from a bot typing nonsense into your form. That's the main reason reported leads run ahead of real ones.","Spam and bots. Every junk submission that gets through your form counts as a conversion, everywhere it's tracked.","Double counting. Two tags on one form, a thank-you page that fires again on reload, or a lead action set to count every conversion instead of one per click.","Overlap. Each platform only sees its own ads, so one person who clicked a Google ad and a Meta ad can be a lead in both.","Repeats. Someone who enquires on Monday and again on Wednesday with a corrected phone number is one lead to you and can be two to the platforms.","And the other way round: phone calls, emails and walk-ins are real leads most platforms never see, and leads from forms inside Meta or Google ads never touch your website. So your real count can be higher than reported in one place and lower in another.","Your Junk-Lead Cost result","Your Junk-Lead Cost result (PDF)","You've done step 1 of 3: your reported leads, next to the real ones.","Step 2 of 3: plan 2027 on real leads with the free 2027 budget planner","plan 2027 on real leads with the free 2027 budget planner","It turns each channel's cost per lead into cost per real lead, using your own inbox or CRM count, then plans 2027 month by month.","Get my free Missing Leads Check","The Missing Leads Check compares what your tracking recorded with the leads you actually received. A Trackian specialist tells you within 24 hours what's missing, why, and what to fix first. It's free; we ask a few short questions first to make sure it's a fit.","A Trackian specialist compares what your tracking recorded with the leads you actually received and tells you within 24 hours what's missing, why, and what to fix first. Free - we ask a few short questions first to make sure it's a fit.","Both counts are zero for this month. If your forms should be bringing in leads, that's what the check confirms or rules out.","You received {real_leads} real leads, and your platforms counted none of them. Broken lead tracking is the usual cause - that's what the check confirms or rules out.","Your numbers suggest all {spend} went on conversions with no real lead behind them - that's what the check confirms or rules out.","You counted {real_leads} leads from every source; your platforms report {reported_leads}. Which of them came from your ads, and which ones the platforms missed, is what the check sorts out.","You received {real_leads} real leads from paid ads, but your platforms report only {reported_leads}, so their bidding learns from part of your results - that's what the check confirms or rules out.","Your numbers suggest about {spend_on_not_real} of your {spend} went on conversions with no real lead behind them - that's what the check confirms or rules out.","Your platforms report {reported_leads} leads and you received {real_leads} real ones. The check confirms the two counts are the same people, not a coincidence.","Your platforms report {gap_ratio} leads for every real one. If your figures are right, that's what the check confirms or rules out.","{reported_leads} leads reported, {real_leads} real","{reported_leads} leads reported, about {real_leads} real","our platforms report {reported_leads} leads at {reported_cpl} each; we received {real_leads} real ones, so each real lead cost {cost_per_real_lead}","we estimate {junk_share} of our leads are junk, so about {real_leads} of the {reported_leads} reported leads were real, at about {cost_per_real_lead} each instead of {reported_cpl}","our platforms report {reported_leads} leads and we received {real_leads} real ones, on {spend} of ad spend",". About {spend_on_not_real} of our {spend} went on conversions with no real lead behind them",[2449,2455,2462,2469,2476,2483],{"id":2450,"type":2001,"placement":2002,"title":2451,"shows":2452,"caption":2453,"alt":2454},"V7","A business owner counting real enquiries","welcome visual for the Junk-Lead Cost Calculator - the owner of a small European service business, for example a kitchen fitter or a physiotherapy practice, at an office desk in daylight, a laptop with an email inbox open beside a notepad with a hand tally of the month's real enquiries and a phone; the screen and notepad are soft-focused so no text or numbers can be read; calm and unhurried; no logos or brand marks, no real or named people","One month: the leads your platforms report, next to the ones that reached you.","The owner of a small service business keeps a hand tally of real enquiries on a notepad beside a laptop showing an inbox.",{"id":2456,"type":2009,"placement":2457,"title":2458,"shows":2459,"caption":2460,"alt":2461},"V8","before:reported","Two lead counts for the same month","small, above the reported leads field. Two columns joined by a band labelled 'same dates, one full month'. Left, 'Leads your ad platforms report': Google Ads (the Conversions column for your lead actions), Meta (Leads or Results) and any others, added together. Right, 'Real leads you received': your inbox, booking tool or CRM, genuine enquiries from real people, each person once. Under the right column, a crossed-out tag: 'not spam, tests or repeats'. The one point: the calculator puts what the platforms count next to the people who actually got in touch","What the platforms count on one side, the people who got in touch on the other.","Diagram of the two lead counts the calculator compares for the same month: the leads Google Ads, Meta and other platforms report, added together, and the real leads in your inbox, booking tool or CRM, each person counted once.",{"id":2463,"type":2009,"placement":2464,"title":2465,"shows":2466,"caption":2467,"alt":2468},"V9","before:junk_share","No count? Estimate the junk share","small, above the junk share field. Ten example enquiry cards from one inbox; three are marked junk: 'bot, nonsense in the form', 'fake details', 'same person again'. An arrow to 'junk share: 30% (example)', then to the sum the calculator uses: 'real leads = reported leads × (100% - junk share)', for example 160 × 70% = about 112. A small note: 'the money figure from this path is a lower limit - a junk share doesn't catch enquiries the platforms counted twice'. The one point: if you can't count real leads, your own junk share still gives an estimate","Example: 3 junk enquiries in 10 is a junk share of 30%.","Diagram of ten enquiries from one inbox with three marked as junk, a 30% junk share, which the calculator turns into an estimate of real leads: 160 reported leads times 70% is about 112.",{"id":2470,"type":2024,"placement":2025,"dynamic":261,"title":2471,"shows":2472,"data":2473,"caption":2474,"alt":2475},"V10","Reported leads, real leads and what each one cost","on the result screen, under the summary. Two horizontal bars on one count scale from 0. 'Leads your ad platforms report': the reported count. 'Real leads you received', highlighted (or 'Real leads, estimated from your junk share', prefixed 'about'). Between them, the gap ratio with its sum: reported ÷ real. Beside each bar, its cost and the division: 'Reported cost per lead' = ad spend ÷ reported leads; 'Cost per real lead' = ad spend ÷ real leads; then 'Extra cost per real lead', the difference. A figure the page can't calculate (a count of 0, or the extra cost when real leads are above reported) reads 'Can't be calculated from these numbers', never 0. Not drawn when both counts are 0. Static mockup, example values from worked example D: 160 reported, 95 real, gap ratio 1.68; €4,000 ÷ 160 = €25.00; €4,000 ÷ 95 = €42.11; €17.11 extra per real lead. The one point: the cost per lead in your ad reports, next to what a real lead actually cost","dynamic - the visitor's own ad spend, reported leads and real leads (counted, or reported × (100% - junk share) when estimated), and the calculator's outputs reported_cpl = spend ÷ reported, cost_per_real_lead = spend ÷ real, gap_ratio = reported ÷ real and extra_cost_per_lead = max(0, cost_per_real_lead - reported_cpl), shown exactly as the page shows them (counts as typed, estimates rounded with 'about', money to 2 decimals in the visitor's currency label, ratio to 2 decimals). No average, benchmark or target line","Same spend, divided twice: by the leads reported, and by the leads that were real.","Bar chart of the leads your ad platforms report next to the real leads you received, with the reported cost per lead and the cost per real lead, each shown as ad spend divided by the count.",{"id":2477,"type":2024,"placement":2025,"dynamic":261,"title":2478,"shows":2479,"data":2480,"caption":2481,"alt":2482},"V11","How your ad spend splits, by this estimate","on the result screen, after the band text and its notes. One horizontal bar for the visitor's ad spend, in two parts: 'Spend on leads that aren't real (estimate)' = ad spend × (1 - real leads ÷ reported leads), and the rest, 'Spend behind your real leads', with no figure of its own. The sum is printed under the bar with the visitor's own numbers. A 'lower limit' tag shows when the real-lead count covers all sources or comes from a junk share. If a qualified-lead value was entered, a line under the bar gives the value of about N qualified leads at that value. With no real leads, the whole bar is the first part; when the estimate shows as €0, the bar is drawn whole as 'Spend behind your real leads'. When real leads are above reported, the split reads 'Can't be calculated from these numbers', never 0. Not drawn when reported leads are 0. Static mockup, example values from worked example D: €4,000 × (1 - 95 ÷ 160) = about €1,625 of €4,000, a lower limit; about 3.3 qualified leads at €500. The one point: how much of the spend paid for conversions with no real lead behind them","dynamic - the visitor's own ad spend and the calculator's spend_on_not_real = spend × max(0, reported - real) ÷ reported (the same as spend × (1 - real ÷ reported)), plus qualified_equiv = spend_on_not_real ÷ value_per_lead when a value was entered, shown exactly as the page shows them (money in whole units, the equivalent to 1 decimal). The lower-limit tag follows the same rule as the page's lower-limit notes. No average, benchmark or saving figure","An estimate, not a saving: the same spend also bought your real leads.","A bar of your ad spend split into the estimated part that paid for conversions with no real lead behind them and the part behind your real leads, with the multiplication that produced it.",{"id":2484,"type":2009,"placement":2025,"title":2485,"shows":2486,"caption":2487,"alt":2488},"V12","Why the two lead counts drift apart","on the result screen, beside the explainer. Two overlapping circles, 'Leads your platforms report' and 'Real leads you received', with 'genuine enquiries from your ads' in the overlap. Four arrows into the platforms' circle only: 'spam or a bot', 'one enquiry firing twice', 'one person claimed by Google and Meta', 'a repeat enquiry'. Three arrows into the real-leads circle only: 'phone call', 'email', 'walk-in'. A side note on lead forms inside Meta or Google ads: 'counted by the platform, may not reach your inbox'. The one point: reported leads run ahead of real ones, and some real leads reach you where no platform counts them","Junk inflates one count; calls, emails and walk-ins add to the other.","Diagram of two overlapping lead counts: spam, double-firing tags, overlap between Google and Meta and repeat enquiries add to the platforms' count, while phone calls, emails and walk-ins reach you without a platform counting them.",{"step1_key":2490,"label_key":2491,"why_key":2492,"short_key":2493,"url":2494,"type":2050},"lead.step1","lead.next_step.label","lead.next_step.why","lead.next_step.short","https:\u002F\u002Ftrackian.com\u002Fresources\u002F2027-budget-planner\u002Fleadgen",[],1792071541832]