Skip to main content
bthebigclass
All help topics

For creators

Experiments — A/B test your portal

Run experiments on your hero CTA copy, course price display, and anywhere else you want to know what converts. Sticky per-visitor assignments, server-side fairness, conversion reporting.

Why bother

Most pricing + landing-page decisions are gut calls. They don't have to be. The Experiments module lets you split traffic across two or three variants of a piece of UI, measures who clicks / enrols / converts, and tells you which variant won — without you writing any code.

Who it's for

  • Instructors who want to test 'urgent' vs 'aspirational' hero copy.
  • Course creators wanting to A/B price-display formats (strikethrough first vs 'Save $X' chip vs current).
  • Anyone who's ever wondered 'would more students enrol if I changed the button?' and not had a way to find out.

Pre-built vs custom

The Experiments admin lists pre-built cards for the surfaces we've already wired up (hero CTA copy, course price display). One click spins those up — variants + goal events are pre-filled, you just pick traffic split + activate. Behind the scenes it's the same engine you'd use for a custom experiment, just with the rendering already done.

Custom experiments are for surfaces your team has wired with useExperiment yourself. They're identical in mechanics — pre-built ones just skip the integration step.

How assignment works

  • Each visitor gets a sticky id stored in localStorage on first hit.
  • We hash (visitorId + experimentKey) to pick a variant. Same visitor + same experiment = same variant forever, even across sessions.
  • Weights determine traffic split — equal weights mean 50/50, 1/9 means 10% to one variant and 90% to the other.
  • An exposure event is logged the first time a visitor sees each variant. Conversion events are logged when they fire the goal action (e.g. 'enroll' or 'hero-cta-click').

Reading the report

Open the experiment from /dashboard/experiments to see exposures + conversions per variant, plus the conversion rate. We don't compute statistical significance for you — the rule of thumb is wait until each variant has at least 200–300 exposures before reading anything into the difference.

Status matters: draft = no traffic, running = traffic split per weights, paused = stop new assignments but keep existing visitors on their sticky variant, completed = report-only. Draft → running when you're ready to ship the test.

Example: hero CTA copy

Three variants are pre-wired: editor copy (whatever you typed in the page builder), 'Start free today' (urgent), 'Begin your journey' (aspirational). Goal event: hero-cta-click. Spin it up, send your normal traffic at it for a week, and you'll have an empirical answer to 'does urgency outperform aspiration on my audience?'.

Example: course price display

Three variants for the price chip: current (price + strikethrough + % off), anchor-first (strikethrough first, price below), savings ('Save $X' chip + price). Goal event: enroll. Pick which framing actually drives the cheque-out, not which one looks nicest in Figma.

Related