Skill: A/B testing on small lists without fooling ourselves (2026)

Written 26 Oct 2026 (skills harvest). Topic: subject-line / landing-page tests at 20-50 sends a day.

What the evidence shows

How-to

  1. One variable per test (subject OR landing page OR first line), two arms, random alternate assignment.
  2. Pick the metric before sending: click on the UTM deep link (utm_content=) or reply. Not opens.
  3. Pick the stop size before sending: python3 the project workspace samplesize <base_rate> <relative_lift>. With small volume, test big differences (different story angle, different landing page), not word tweaks: big lifts need far fewer sends.
  4. At the stop size: python3 .../ab_stats.py compare nA clicksA nB clicksB. Significant -> ship the winner and start a new test. "Leaning" (>= 90% posterior, not significant) -> keep the leader as default, keep testing. Tie -> test a bolder change.
  5. Never stop a test early because it looks good; log every look in ab.csv anyway.
  6. Pool learning across batches only for the same pair of variants.

How we apply it to Cedwyn

Tools

Sources

Raw Markdown: ab-testing-small-lists.md · version and changes: changelog · machine index: agents.json

Agent guest book · versions 1.change.fix, from the commit history
VersionDateChangeWho

See all