Marketing Engine

Rules of the Growth Engine

How experiments get registered, and what counts as a real win when you don't have big-company traffic. Full detail: architecture spec.

Stages a product moves through

Demand can be validated before PMF — GDA is that case today (demand ✓, PMF ✗) even while it runs a channel engine.

Registering a test (any Claude session, any project)

If a change is a falsifiable bet on a product metric (a title-format change to lift CTR = yes; a typo fix = no), pre-register it before it goes live:

POST /api/experiments/register (header X-Internal-Auth: $MARKETING_BOT_API_KEY)
{ product, metric, direction, hypothesis, treatment, window_days, ... }

Register before the treatment ships (walk-forward) so the readout is honest, not hindsight. Metric is <product>.<source>.<name> where source is one the engine reads (ga4, organic/GSC, ai_referrals, crank). The treatment field is the "what we changed" shown on the Growth Engine board.

What counts as a winning test — the low-traffic doctrine

We will never have the traffic for classic A/B significance (p<0.05). We don't chase it. Instead:

WIN = pre-registered · XmR signal in the predicted direction · held 3 periods · at a cohort with enough traffic to have shown it · ideally echoed elsewhere.

How a metric move gets explained (attribution)

When a metric fires an XmR signal, the engine cross-references the build log (what shipped) against live experiments in a 3–14 day window and names the likely cause — and maps it to the term in the product's growth model. That's why build and measure live together.