All docs pages

Lifecycle and approvals#

Every experiment moves through a small set of statuses. Launch-type actions (anything that changes what live visitors see) can require a person's approval, and every launch runs a checklist first.

Statuses#

Status Meaning
draft Being built. Nothing reaches visitors except through preview links.
scheduled Will start at start_at.
running Visitors are being split and counted.
paused Out of your site for now. Visitors who saw it keep their variation for when it resumes. Conversions while paused are not counted.
stopped Finished with a decision. The final results are kept.
shipped The winning variation is shown to every targeted visitor, without counting, until you build it into your site.
archived Put away. Unarchive returns it to its previous status.

Actions#

Action From To Needs launch permission
Launch (start) draft running, or scheduled when start_at is in the future yes
Pause running paused no, never needs approval
Pause (unschedule) scheduled draft no
Resume paused running yes
Change traffic running, paused same yes
Stop, keep the control running, paused stopped yes
Stop and ship a variation running, paused, stopped shipped yes
End rollout shipped stopped yes
Archive draft, stopped archived no
Unarchive archived previous status no
Duplicate any a new draft no
Delete draft, archived gone see Delete

TryFast moves experiments itself in three cases, and says why in the experiment's status reason: at the end date (end_at) a running experiment pauses (schedule_end); a scheduled experiment whose launch checklist fails at its start time goes back to draft (preflight_failed); and an unsaved workspace that pauses after 30 days without use pauses its experiments (workspace_frozen).

Launches, pauses and stops reach every visitor within 2 minutes.

Launch#

Launching freezes what the statistics depend on: the planned sample size, the audience, the goals' revenue caps and the statistics settings. From then on only names, secondary goals and the end date change (what can change).

Preflight checks#

Every launch, resume and scheduled start runs these checks first, and so does every approval request. A failure blocks the launch (422 preflight_failed with the list); a warning does not. GET /api/v1/experiments/{id}/preflight runs them without launching.

Check Fails when Warns when
compile A piece of code, a selector or a regular expression is invalid, or a change is unsafe.
variations Fewer than 2 or more than 8 variations, not exactly one control, weights not adding up to 10,000, duplicate keys, a split URL variation without a redirect, or a redirect back into the experiment's own pages. Every variation equals the control (an A/A test).
redirect_off_domain A redirect leaves the project's domains or the site it starts on.
hypothesis The hypothesis is empty.
primary_goal There is no primary goal, or it is archived.
plan_limits The workspace is at its limit of running experiments, or paused. More than 80% of the monthly tested users are used.
claim_required A workspace without an account would launch custom JavaScript.
bundle_size The project's script would exceed 200 KB uncompressed. It would exceed 30 KB compressed.
domains The project has no domain, or a page rule names a host outside them.
snippet_seen The snippet was not loaded and no page view arrived in the last 24 hours.
goal_seen The primary goal had no conversion in the last 7 days.
overlap Another running experiment of the project targets overlapping pages.
sample_size The estimated duration is over 60 days, or the baseline conversion rate is unknown.
consent The snippet loads often but no visitor has consented: the cookie banner is probably not connected.

Approvals#

People with launch permission act directly. So do API keys and agents with Full access (experiments:publish). Everyone else, notably agents with the default permission, gets an approval request instead: 202 (API) or a tool result (MCP) with status: "awaiting_approval" and an approve_url such as https://tryfast.eu/app/approve/apr_Mn2Bv3Cx4Z.

Scheduling#

Set start_at (and optionally end_at) to launch later. Times are UTC in the API; the app shows your local time. The scheduler checks every 15 seconds. At the start time the checklist runs again; on failure the experiment goes back to draft with an activity entry. At end_at the experiment pauses: pausing loses nothing, and you decide whether to stop or resume.

Stop and ship#

Stop an experiment with a decision:

The final results are saved at that moment with the verdict of that moment. A shipped variation keeps running from the TryFast script until you have built it into your site: the app shows its changes, CSS and JavaScript in readable form for your developers. Then End rollout (stop on a shipped experiment) removes it. Shipped experiments count as running for plan limits.

A stopped experiment cannot be restarted; duplicate it to test again.

Agents read recommended_action in the results and stop with exactly that decision when safe_to_act is true.

Delete#