CustomFit.ai β€” Website personalization, A/B testing and CRO for Shopify and D2C
Product
Features
✱
Website Personalization
Adapt to each visitor's behavior & intent
β§–
A/B & Multivariate Testing
Rigorous experimentation
✨
AI CopilotNEW
Personalize with a prompt
πŸ€–
AI WingmanNEW
Auto-optimize toward winners
🎯
AI Conversion OptimizerNEW
GPT-grade test ideas
✎
No-Code Visual Editor
Drag-and-drop edit any element
β–¦
Product Recommendations
Personalized recs that lift AOV
βš‘
Feature Flags
Ship safely with kill-switches
β—§
Chrome Extension
Edit your store in the browser
⧉
Shopify, WooCommerce & more
All platform integrations
View all features β†’
Use Cases
$
Price A/B Testing
Test price points to maximize revenue
β–¦
Theme A/B Testing
Compare whole layouts & designs
πŸ—‚
Template A/B Testing
Test whole PDP/PLP templates
🏷
Discount A/B Testing
Find the offer that converts
🚚
Shipping A/B Testing
Thresholds, speed & copy
✍
Content A/B Testing
Copy, images & reviews
πŸ’³
Checkout A/B Testing
Cart, one-click & payments
βŒ–
Geo-Based Personalization
Per-location content & offers
⚑
Buyer-Intent Nudges
Exit-intent & retargeting
↔
Split-URL / Redirection
Full-page redirect tests
View all use cases β†’
Solutions & Guides
β€’
Conversion Rate Optimization
The complete CRO guide
β§–
A/B Testing Software
Buyer's guide for D2C
πŸ›’
Cart Abandonment Recovery
Win back lost carts
πŸ“°
Landing Page Optimization
Convert more paid traffic
S
Shopify A/B Testing
Test your store, no code
S
Shopify Personalization
Tailor the store per shopper
β—”
First-Time Visitor Offers
Convert new shoppers with trust & offers
β˜…
Repeat-Customer Experiences
Reward and re-engage loyal buyers
β—Ž
Campaign-Matched Pages
Match the landing page to the ad
βŒ–
Location-Based Experiences
Currency, language & regional offers
Explore CRO β†’
Customer stories
GIVA
+32%
conversion via personalized recs
GIVA
Mamaearth
+18%
revenue lift from PDP A/B tests
ME
The Sleep Company
+24%
AOV from product recommendations
TSC
Read customer stories β†’
Integrations
SWsfGA+15
✦
Not sure where to start?
Let AI Copilot pick your first tests

β€œWe wake up to evidence-backed tests ready to deploy β€” not a backlog of maybe ideas.”

AN
Anirudh S.
Growth Β· Chargebee
β˜…β˜…β˜…β˜…β˜…4.8on G2 Β· 2,400+ brands
Talk to our team β†’
Widgets
Integrations
Ecommerce & Checkout
S
Shopify
SL
Shopline
SZ
Shoplazza
GK
GoKwik
SF
ShopFlo
RP
Razorpay Magic Checkout
BR
Breeze
SR
Shiprocket
View all integrations β†’
Analytics & Behavior
GA
Google Analytics 4
MC
Microsoft Clarity
HJ
Hotjar
MX
Mixpanel
AM
Amplitude
HP
Heap
AA
Adobe Analytics
SG
Segment (CDP)
View all integrations β†’
Engagement, CRM & More
KL
Klaviyo
MO
MoEngage
CT
CleverTap
WE
WebEngage
HS
HubSpot
SF
Salesforce
SL
Slack
M
Meta Ads
View all integrations β†’
CustomersPricing
Resources
CRO
β–€
Playbooks
Proven strategies to boost conversions
🎬
Videos
Tutorials, demos & how-tos
πŸŽ™
Interviews
D2C leaders & marketing experts
β–Ά
Webinars
Live deep dives & product sessions
Learn
✎
Blog
Tips, experiments & best practices
πŸ“•
Free E-Books
Mastering personalization
πŸ“–
Conversion Glossary
Every CRO term, defined
✦AI CopilotNEWLog inBook a demo
Start free trial
Select your platform β€” Install in 2 minsWe'll tailor the setup
⚑ Risk-free 14-day trial · No credit card · Cancel anytime
Shopify logo
Shopify
Install from Shopify App Store
β€Ί
WooCommerce logo
WooCommerce
Install the WooCommerce plugin
β€Ί
BigCommerce logo
BigCommerce
Install from BigCommerce App Marketplace
β€Ί
Shopline logo
Shopline
Install from Shopline App Store
β€Ί
Salesforce logo
Salesforce / Magento
Install from the marketplace
β€Ί
Shoplazza logo
Shoplazza
Install from Shoplazza App Store
β€Ί
WordPress logoWebflow logo
WordPress / Webflow
Install plugin or paste the script
β€Ί
Others
Custom-built on React, Next.js, etc.
β€Ί
Tip: pick your platform β€” we handle the restBook a demo β†’
Product
Website PersonalizationA/B & Multivariate TestingAI CopilotAI WingmanAI Conversion OptimizerNo-Code Visual EditorProduct RecommendationsFeature FlagsView all features β†’
Use Cases
Price A/B TestingTheme A/B TestingTemplate A/B TestingDiscount A/B TestingShipping A/B TestingContent A/B TestingCheckout A/B TestingGeo-Based PersonalizationBuyer-Intent NudgesSplit-URL / Redirection
Solutions & Guides
Conversion Rate OptimizationA/B Testing SoftwareCart Abandonment RecoveryLanding Page OptimizationShopify A/B TestingShopify Personalization
Explore
WidgetsIntegrationsCustomersPricing
Resources
BlogPlaybooksVideosWebinarsInterviewsE-BooksConversion Glossary
Platforms
ShopifyShoplineShoplazzaChrome ExtensionAll integrations
Start free trialBook a demo
Homeβ€ΊBlogβ€Ίab testingβ€ΊWhat Is Sample Ratio Mismatch (SRM) in A/B Testing?

What Is Sample Ratio Mismatch (SRM) in A/B Testing?

Sample ratio mismatch (SRM) invalidates your A/B test results. Learn what causes SRM, how to detect it, and how to fix it before you make bad decisions.

SKSharan KumarCo-Founder & CTO, CustomFit.ai8 min read
On this page
  1. What SRM Looks Like in Practice
  2. How to Detect SRM
  3. Common Causes of SRM
  4. The Business Impact of Ignoring SRM
  5. How to Fix SRM
  6. How CustomFit.ai Prevents SRM
  7. Tips / Best Practices
  8. Key Takeaways
0%
What Is Sample Ratio Mismatch (SRM) in A/B Testing?

From the conversion glossary

Concepts referenced in this article, defined.

Definition
What Is Variant? Definition, Formula & Guide
Definition
What Is Control? Definition, Formula & Guide
Definition
What Is Experiment? Definition, Formula & Guide
Definition
What Is Significance? Definition, Formula & Guide
Definition
What Is a Product Page? Definition & Guide
← Back to Ab Testing guide
Try CustomFit.ai

Run A/B tests and personalize your store without code. 14-day free trial, no credit card.

Start free trial β†’
Share
XLinkedInEmail

Related articles

How to Talk About Your A/B Tests in a Growth or CRO Job Interview featured imageab testing

How to Talk About Your A/B Tests in a Growth or CRO Job Interview

A practical framework for discussing winning, losing and inconclusive A/B tests in growth, CRO and ecommerce job interviews.

Iliya ChalamovΒ· 10 min read
A/B Testing Is Not Magic: The Myths That Need to Die featured imageab testing

A/B Testing Is Not Magic: The Myths That Need to Die

A/B testing isn't magic. Learn about the common myths that waste traffic and skew results, plus how to run smarter tests that improve conversions.

Anuja AmbawadeΒ· 6 min read
Server-Side & Edge A/B Testing: The Next Gen of Experimentation featured imageab testing

Server-Side & Edge A/B Testing: The Next Gen of Experimentation

Server-side A/B testing and edge experimentation explained - how they eliminate flicker, improve speed, and where they fit vs client-side testing.

Yuvraj SinghΒ· 6 min read

Start lifting conversions today.

Run rigorous A/B tests and personalize every visit on Shopify or any storefront β€” no engineers required.

Start free trialBook a demo

Built for every D2C category

🧴
Skincare
πŸ’„
Beauty
🌿
Wellness
β˜•
F&B
πŸ‘Ÿ
Apparel
πŸ’
Jewelry
πŸ›‹οΈ
Home
🍼
Baby
Live Β· Right now
Mamaearth β€” free-shipping band +12.4% AOVGIVA β€” festive collection page +34% revenueBellavita β€” PDP CTA test +27.4% CVRKapiva β€” Quiz-driven recs +9.48% CTRThe Sleep Co β€” landing personalized 2Γ— capturesPlum β€” Returning shopper swap +18.2% CVRMamaearth β€” free-shipping band +12.4% AOVGIVA β€” festive collection page +34% revenueBellavita β€” PDP CTA test +27.4% CVRKapiva β€” Quiz-driven recs +9.48% CTRThe Sleep Co β€” landing personalized 2Γ— capturesPlum β€” Returning shopper swap +18.2% CVR
Get in touch

Tell us about your store.

We reply within an hour during business hours. No sales pitch, no spam β€” just answers from someone who's seen 2,400+ D2C stores.

βœ“ Reply within 1 hourβœ“ No spam, everβœ“ Free demo & setup help
Verifying your browser…PrivacyΒ·Terms
Loading security check…
CustomFit.ai

The all-in-one website personalization, A/B testing & CRO platform for high-growth D2C brands. Made by marketers, fueled by coffee.

inπ•β—Žβ–Άf

Product

  • Features
  • A/B Testing
  • Personalization
  • AI Copilot
  • AI Wingman
  • AI Conversion Optimizer
  • Feature Flags
  • Widgets
  • Integrations
  • ROI Calculator

Platforms

  • Shopify
  • Shopline
  • Shoplazza
  • Salesforce
  • Chrome Extension
  • All Integrations

Resources

  • Blog
  • Playbooks
  • Webinars
  • GrowthFit Interviews
  • Free E-Books
  • Conversion Glossary
  • Case Studies

Compare

  • vs VWO
  • vs Optimizely
  • vs Google Optimize
  • vs Mutiny
  • vs Intelligems
  • vs Shoplift
  • vs AB Tasty
  • vs Convert
  • vs Kameleoon

Company

  • About Us
  • Team
  • Partners
  • Recognition
  • Contact
  • Privacy Policy
  • Terms & Conditions
Β© 2026 CustomFit.ai Β· Valley Monks Pvt Ltd Β· Made by marketers, fueled by coffee, and obsessed with conversions.
SOC 2 Type II Β· GDPR Β· CCPA Β· ISO 27001

Sample ratio mismatch (SRM) occurs when the actual proportion of users assigned to each variant in your A/B test differs meaningfully from what you intended. If you set up a 50/50 split but end up with 55% in the control and 45% in the variant, you have an SRM β€” and your test results are invalid. SRM is one of the most under-diagnosed problems in A/B testing, and it causes confident-looking results to be completely untrustworthy.

This problem is more common than most teams realize. A 2019 study by Microsoft found SRM in a significant percentage of their internal experiments. For Indian D2C brands running tests on Shopify, the risk is real β€” especially when using third-party analytics, redirect-based testing, or running during high-bot-traffic periods (like festive sale events).

What SRM Looks Like in Practice

Imagine you're testing two versions of your product page on Nykaa or a similar platform. You set up a 50/50 split. After two weeks, you check results:

  • Control (Version A): 8,200 visitors, 4.1% CVR
  • Variant (Version B): 6,800 visitors, 5.2% CVR

Variant B looks like it's winning β€” a 27% relative lift! But wait: you intended 50/50, but got 55%/45%. That's a 15,000 visitor discrepancy. Before celebrating, you have an SRM. The variant might be getting a different type of visitor, not just more conversions.

The danger: If Variant B received fewer visitors because it was shown to a subset with higher purchase intent (e.g., visitors coming from a specific UTM source, or returning customers), then the CVR difference isn't caused by the variant β€” it's caused by who saw it.

How to Detect SRM

Method 1: Visual inspection Compare your expected vs. actual visitor counts. If you set a 50/50 split and one variant has more than 52-53% of visitors, investigate. This rough check catches major SRMs.

Method 2: Chi-square test The formal statistical test for SRM. Calculate:

  • Expected count per variant: (Total visitors) / (Number of variants)
  • Observed count: Actual visitors per variant
  • Chi-square statistic from these values

Most A/B testing platforms (including CustomFit.ai) run this check automatically and flag SRM before you even look at conversion data.

Interpretation: A p-value below 0.01 from the chi-square test indicates statistically significant SRM. At this threshold, the probability of seeing this visitor imbalance by chance is less than 1%.

Method 3: Check traffic by segment Break down visitors by device, browser, traffic source, and geography. If one variant has a very different composition (e.g., 60% mobile in control vs. 40% mobile in variant), you have a segment-level SRM even if total counts look balanced.

Common Causes of SRM

Understanding why SRM happens helps you prevent it:

1. Bot and crawler traffic Bots don't convert, but they inflate visitor counts unevenly. If your testing platform serves variant pages differently to bots vs. humans, you'll get SRM. This is especially prevalent during Diwali or end-of-season sale periods when bot traffic spikes alongside real traffic.

2. Redirect-based testing implementation When you test using URL redirects (e.g., Control stays on /product/X, Variant redirects to /product/X?v=b), browsers handle redirects differently. Some users get bounced before the redirect completes, others cache the redirect. This creates uneven variant counts.

3. Randomization bugs The most painful cause. If your randomization code has a bug β€” for example, if it uses the wrong hash function or re-randomizes users on each visit β€” users can get assigned to different variants across sessions, causing double-counting or systematic skew.

4. Caching CDN or browser caching is a major SRM cause for ecommerce sites. If your CDN caches the control version and serves it to some users regardless of their variant assignment, those users will be counted in analytics for the variant they were assigned but see the control experience. This is particularly tricky for Indian brands using Cloudflare or AWS CloudFront.

5. Third-party script interference Tag managers, analytics scripts, and ad pixels can load inconsistently. If a script that fires the variant tracking event fails to load for some users, those users won't be counted β€” even though they saw the variant.

6. Unequal traffic routing If you're using a multi-CDN setup or have regional traffic routing, different variants might be preferentially served in different geographies. For an Indian D2C brand, this could mean Variant A is shown primarily to Mumbai visitors and Variant B to Delhi visitors β€” with very different purchase behaviors.

7. Experiment start/stop timing If you start a test at 2 PM and one variant's assignment starts at 2 PM while the other's starts at 2:15 PM, you've already created an SRM for the first 15 minutes of traffic.

The Business Impact of Ignoring SRM

When you act on SRM-contaminated results, you're making product decisions based on flawed data. Real consequences:

False wins: A variant appears to convert better only because it received higher-intent visitors. You ship the change, and conversion rate returns to baseline β€” or drops below it.

False losses: A genuinely better variant loses the test because it received lower-intent visitors. You discard an idea that would have worked.

Misattribution: You attribute a CVR change to your test variable when the real cause was a visitor mix change β€” perhaps a traffic campaign that started mid-test.

For a brand like Kapiva doing β‚Ή1–2 crore in monthly revenue, a false win that "proves" a variant is 10% better when it isn't could lead to a significant and sustained revenue loss when rolled out.

How to Fix SRM

Step 1: Stop interpreting the current test results. Do not try to correct for SRM mathematically β€” the data is compromised.

Step 2: Diagnose the root cause. Check each of the causes above systematically. Start with your implementation (caching, redirects, randomization code) before blaming traffic sources.

Step 3: Fix the issue. For caching: configure your CDN to vary responses based on your variant cookie. For bots: add bot filtering before variant assignment. For bugs: fix your randomization code and have a second engineer review it.

Step 4: Restart the test from zero. Don't resume β€” historical data from the SRM period cannot be used. Clear all variant assignments and start fresh.

Step 5: Build SRM detection into your pre-launch checklist. Monitor SRM daily for the first 48 hours of any new test. Catching it early limits wasted time.

How CustomFit.ai Prevents SRM

CustomFit.ai is a Shopify-native testing platform, which means:

  • Variant assignment happens server-side before the page renders β€” eliminating redirect-based SRM
  • Bot traffic is filtered based on Shopify's own bot detection before variant assignment
  • SRM is checked automatically after 100 visitors per variant, and you're alerted before results become meaningful
  • Caching is handled at the Shopify level with proper cache-key variation per experiment

This is one reason the platform can report reliable results like Bellavita's 11% CVR improvement β€” because the tests that produced those numbers were SRM-free.

Tips / Best Practices

  1. Check SRM within 24–48 hours of launch β€” the earlier you catch it, the less time you waste on a contaminated test.

  2. Use server-side randomization whenever possible β€” client-side JavaScript testing is more prone to SRM from ad blockers, slow connections, and script failures.

  3. Filter bots before variant assignment β€” never include bot traffic in your visitor counts or variant assignment logic.

  4. Test your randomization logic with a simulated 50/50 coin flip β€” before running real experiments, verify your assignment code produces roughly equal splits across 10,000 simulated users.

  5. Audit CDN caching settings before launching a test β€” confirm that your CDN isn't caching the control page and serving it to variant users.

  6. Monitor SRM separately for each browser and device β€” an overall balanced split can mask device-level SRM.

  7. Document your test implementation for peer review β€” have a second team member check the implementation before launch. SRM bugs are often obvious in retrospect.

Key Takeaways

  • SRM occurs when actual visitor ratios per variant differ from your intended split β€” it invalidates test results completely
  • Detect SRM with a chi-square test on expected vs. observed visitor counts, or use a platform that does this automatically
  • Common causes include bots, redirect-based testing, caching, randomization bugs, and third-party script failures
  • Never try to interpret results from an SRM-affected test β€” stop, diagnose, fix, and restart
  • Indian D2C brands are particularly exposed to SRM during high-traffic festive sale events when bot traffic spikes
  • Server-side testing tools like CustomFit.ai prevent most SRM causes by design

Related reading: Statistical Significance | Sample Size in A/B Testing | How Long to Run an A/B Test | A/B Testing Metrics | A/B Testing Pillar Guide