← Back to portfolio
Former Project ยท Experimental Design

SHOP NOW Button: A/B Test,
or Something More?

Python Pandas SciPy Chi-Square Test Regex

Eniac wanted to know whether tweaking their "SHOP NOW" button โ€” color, copy, or both โ€” would improve click-through rate. The obvious framing is "A/B test it." But with two variables and four combinations, this is technically a 2ร—2 multivariate test, not a simple A/B test โ€” and that distinction turned out to matter, because the two changes didn't just add up, they fought each other. We ran this under our tutor's supervision, and the numbers below are the ones we stand behind.

๐Ÿ‘ฅ Built together with Alon Dar.

Four button versions, one question

Eniac's "SHOP NOW" button was tested in four variants across roughly 100,000 visits over two weeks, tracking click-through rate (CTR) as the primary metric.

Not quite A/B

Two independent variables โ€” button color (original vs. red) and button copy ("SHOP NOW" vs. "SEE DEALS") โ€” were combined into four versions. That's a 2ร—2 factorial design: a multivariate test (MVT) wearing an A/B test's clothes. The difference matters because an MVT can reveal interaction effects โ€” cases where two changes don't just add together, but actively work against each other. A simple A/B test would never catch that.

Original Color Red Color
Original Copy "SEE DEALS" Copy
Version A
Control
2.02%
CTR ยท 512 / 25,326
SHOP NOW
Version C
New copy only
2.12%
CTR ยท 527 / 24,876
SEE DEALS
Version B
Red color only
1.14%
CTR ยท 281 / 24,747
SHOP NOW
Version D
Both changes
0.76%
CTR ยท 193 / 25,233
SEE DEALS

Key design questions before launching

Before touching the data, we had to answer a handful of design questions โ€” the kind that determine whether the results mean anything at all.

๐Ÿ“Š A/B or Multivariate?
2 variables ร— 4 combinations = a 2ร—2 factorial design, not a simple A/B test.
๐ŸŽฏ What metric?
Primary KPI: click-through rate โ€” a discrete, binomial metric. That points straight to a chi-square test.
โš–๏ธ How to split traffic?
Random assignment per visitor, so exposure is equal and unbiased across all four versions.
๐Ÿ”ฌ Guarding against chance?
Significance threshold set at ฮฑ = 0.05 before launch โ€” not after peeking at results.
โฑ๏ธ How long to run?
Ran for the full ~2 weeks needed to hit sample size โ€” no early stopping.
๐Ÿ›’ What else could we test?
Hero section, search, and pricing UX all get more traffic โ€” but one variable at a time keeps results interpretable.

What the test actually showed

01

The differences are real, not noise

203.5
chi-square statistic
3
degrees of freedom
6.8ร—10โปโดโท
p-value
VerdictA p-value this small leaves no doubt โ€” the four versions do not perform equally. Something about color or copy is genuinely driving the difference.
02

Copy wins, color backfires

Changing only the text to "SEE DEALS" (Version C) nudged CTR slightly above control. Changing only the color to red (Version B) โ€” the "obvious" high-contrast move โ€” actually made things worse.

VerdictThe common assumption that red buttons convert better didn't hold up. Copy mattered; color, on its own, hurt.
03

Combining both changes made things worse, not better

Version D โ€” red color and new copy โ€” didn't land between B and C. It scored lowest of all four versions, well below even Version B alone.

VerdictThis is the interaction effect an A/B test would have missed entirely: the two changes don't add, they actively undercut each other.
04

Pairwise comparisons, Bonferroni-corrected

To see exactly which versions differ from which, we ran pairwise chi-square tests with a Bonferroni-corrected threshold (ฮฑ = 0.05 / 6 = 0.00833) to avoid false positives from multiple comparisons.

ComparisonP-valueSignificant?
A vs B7.20ร—10โปยนโตโœ“ Significant
A vs C0.474โœ— Not significant
A vs D2.28ร—10โปยณยฒโœ“ Significant
B vs C2.33ร—10โปยนโทโœ“ Significant
B vs D2.82ร—10โปโตโœ— Not significant*
C vs D6.48ร—10โปยณโถโœ“ Significant

*B vs D misses the Bonferroni-corrected threshold, even though the raw p-value looks small โ€” a good reminder of why the correction matters when running six comparisons at once.

What we recommended

Roll out Version C. "SEE DEALS" is a simple copy change with the best measured CTR โ€” low effort, real (if modest) upside.
Don't ship Version D. The combination underperforms every other version, including the ones it was built from.
Investigate why red hurt. It contradicts the usual "high-contrast CTA" assumption โ€” worth testing other colors (green, orange, blue) rather than writing off color changes entirely.
Keep testing combinations, not just single changes. The interaction effect here only showed up because we tested a full 2ร—2 grid instead of one variable at a time.

My take

"The statistics weren't the hard part โ€” the hard part was noticing that this wasn't a simple A/B test in the first place. Once we named it correctly as a 2ร—2 design, the interaction effect between color and copy was the most interesting finding in the whole project, and it's exactly the kind of thing a naive A/B mindset would have missed." โ€” Iliya, on finishing this project

Presentation & analysis