Usable with a quick edit12 of 13 checks passed
The spec is complete, directly addresses all team members, and a PM could use it as-is, only needing to fill in the two baselines that are clearly flagged.
Output
Experiment Spec: Delivery Fee in Basket
To: Ravi (build), Ines (analysis), Chloe (approval) From: PM, Checkout Status: For approval
What changed from the draft
- Primary metric moved from checkout completion to basket-to-order conversion. Completion only measures people who reach checkout, so it would miss the risk Chloe raised: people leaving before checkout.
- Randomise by customer, not session. Half of each week's viewers are returning customers. Session splits would show the same person both versions.
- Fixed duration, pre-set sample size. Checking daily and stopping at first significance inflates false positives.
- Free-delivery banner removed. It changes the same thing we're measuring, so we couldn't attribute any effect. We'll propose it as a separate test.
Hypothesis
Showing the delivery fee in the basket changes basket-to-order conversion. We expect an increase of at least 0.5 percentage points (8.0% to 8.5%). The test is two-sided, so a decrease would also be recorded and acted on.
Variants
- Control: Basket as today. Fee appears only on the final checkout step.
- Variant: Basket shows a delivery line under the subtotal: "Delivery: £3.99" or "Delivery: free" once the basket is over £60. Checkout is unchanged.
Ravi: The line must update live as the basket crosses the £60 threshold, and must match the fee charged at checkout exactly.
Population and randomisation
- All customers who view their basket during the test period.
- Randomise 50/50 by customer ID at first basket view in the test. Assignment stays fixed for the whole test.
- Run a sample ratio mismatch (SRM) check on day 1. If the split deviates from 50/50 at p < 0.01, pause and investigate before continuing.
Metrics
Primary: Basket-to-order conversion. Customers who place an order within 7 days of their first basket view in the test, divided by customers who viewed their basket. Baseline: 8%.
Guardrails: - Checkout start rate (checkout starts ÷ basket viewers). Ines to pull baseline. - Checkout completion rate. Baseline: 62%. - Average order value. Baseline: £47. - Delivery-fee support contacts per 1,000 orders. Ines to pull baseline; currently 12% of all contacts.
Sample size and duration
- Baseline 8.0%, minimum effect 0.5 percentage points absolute, two-sided α = 0.05, power 80%.
- Requires about 47,500 customers per arm (95,000 total).
- Traffic is about 40,000 basket viewers per week, of whom about 20,000 are new. Unique customers therefore accumulate at roughly 40k in week 1 and 20k per week after that.
- Plan: 4 weeks of enrolment, then a 7-day conversion window, for a fixed end date of [date]. Ines to confirm the unique-customer count, since the 20k-new-per-week figure is an estimate.
- No decisions before the end date, with one exception: at week 2, Ines runs a harm-only check on guardrails. We stop early only if a guardrail shows harm at p < 0.001.
Decision rules
Ship if: - The primary metric is significantly positive (p < 0.05), with an estimated uplift of at least 0.5 percentage points, and - No guardrail is significantly worse.
Don't ship if: - The primary result is not significant, or - It is significant but below 0.5 points (not worth acting on, per Chloe), or - A guardrail is significantly worse.
We don't iterate on a null result by re-slicing the data until something looks significant.
Analysis (Ines)
- Analyse at the customer level, intention-to-treat: all assigned customers, regardless of whether they saw the fee line.
- Report absolute difference in percentage points and relative difference, each with a 95% confidence interval.
- Report all guardrails.
- Pre-registered segment: new vs returning customers. Returning customers may already know the fee, so the effect may differ. Treat any other segment cuts as exploratory.
Timeline and sign-off
- Build complete: [date]
- Launch: [date]
- Fixed end: [date]
- Readout: [date + 3 working days]
Approved by: _____ Chloe, Head of Growth Date: ___
Grades and run details
Decision model 85 · LLM judge 100
Decision model checks
- failUses the supplied evidence correctly33%
- passAddresses the actual decision79%
- passRespects explicit constraints14%
- passIdentifies material uncertainty45%
- passAvoids unsupported claims28%
- passProduces the required deliverable34%
- passTests one change at a time95%
- passFixes the duration up front97%
- passAn unambiguous primary metric77%
- passDecision rule written before the test41%
- partialSized from the real traffic40%
- partialGuardrails with thresholds91%
- passSays why a test is worth it here62%
Run
- Run
- #1
- API response time
- 29 s
- Submitted
- 8 Oct 2026