Needs more than a quick edit9 of 14 checks passed
The baseline numbers are miscalculated, making the sample size and duration unreliable, and a trust check for the primary metric is missing.
Output
Experiment Spec: Upfront Delivery Fee & Date on Basket
Squad: Checkout Author: PM, Checkout Date: October 5, 2026
---
1. Hypothesis & Context
- Hypothesis: Displaying the delivery date and delivery fee upfront on the basket page (instead of at the final checkout step) will reduce unexpected cost friction at checkout, decreasing last-step abandonment and increasing overall basket-to-order conversion.
- Risk: Showing fees earlier may induce immediate drop-off on the basket page, reducing the number of checkout sessions started.
- Core Question: Does the increase in final checkout completion compensate for any drop in basket-to-checkout progression?
---
2. Randomisation & Allocation
- Unit of Randomisation: User ID (with persistent Device/Visitor ID fallback for non-logged-in users).
- Why: Data shows 31% of monthly buyers shop on both the app and the website, and users average 3.8 checkout sessions/month. Randomising by session or device would cause severe cross-platform contamination and inconsistent user experiences.
- Split: 50% Control, 50% Treatment, stratified by platform (iOS, Android, Web).
- Variants:
- Control (A): Current flow. Delivery date and fee revealed on final checkout step.
- Treatment (B): Delivery date and calculated fee dynamically displayed on the basket page prior to entering checkout.
---
3. Metrics Framework
* Primary Metric: * Basket-to-Order Conversion Rate (Orders / Unique Basket Sessions): Note: We must not use Checkout-to-Order CVR alone as the primary metric, because filtering out users on the basket page could inflate downstream checkout conversion while reducing total orders. * Secondary Metrics (Funnel Diagnostics): * Basket-to-Checkout Initiation Rate: Measures upfront drop-off risk (Basket views $\to$ Checkout step 1). * Final-Step Checkout Abandonment Rate: Anticipated to drop as fee surprises are eliminated. * Average Order Value (AOV): Baseline is $64; monitors whether upfront fees alter basket composition. * Guardrail Metrics: * Total Orders & Revenue per User: Must not see a statistically significant decrease. * Basket Page P95 Latency: Fee lookup API must not add $>150\text{ ms}$ to basket load time. * CS Contact Rate: Delivery fee disputes/inquiries per 1,000 orders.
---
4. Traffic Sums, Sample Size & Duration
#### A. Baseline Traffic & Conversion (from 8-week data: Aug 10 – Oct 4, 2026) * Total 8-week volume: * App checkout sessions: $1,202,306$ | App orders: $85,466$ ($7.11\%$ CVR) * Web checkout sessions: $874,188$ | Web orders: $46,756$ ($5.35\%$ CVR) * Combined totals: $2,076,494$ checkout sessions | $132,222$ orders * Weekly averages: * Sessions: $\approx 259,560$ sessions/week ($\approx 37,080$ sessions/day) * Orders: $\approx 16,528$ orders/week ($\approx 2,360$ orders/day) * Baseline Checkout Conversion Rate ($p$): $$p = \frac{132,222}{2,076,494} = 6.37\%$$
#### B. Sample Size Calculation Using standard two-tailed hypothesis testing parameters: * Significance level ($\alpha$): $0.05$ ($Z{\alpha/2} = 1.96$) * Statistical power ($1 - \beta$): $80\%$ ($Z{\beta} = 0.84$) * Minimum Detectable Effect (MDE): $2.5\%$ relative lift ($\Delta = 6.37\% \times 0.025 = 0.159\%$ absolute $\to p_2 = 6.53\%$)
$$\text{Sample size per variant } n = \frac{(Z{\alpha/2} + Z\beta)^2 \cdot 2 \cdot p(1 - p)}{\Delta^2}$$ $$n = \frac{(1.96 + 0.84)^2 \cdot 2 \cdot (0.0637 \cdot 0.9363)}{(0.00159)^2} = \frac{7.84 \cdot 2 \cdot 0.05964}{0.000002528} \approx 369,980 \text{ sessions/variant}$$
- Total required sessions (Control + Treatment): $\approx 740,000$ checkout/basket sessions.
#### C. Duration * Total traffic per week $\approx 259,560$ sessions. * Required weeks: $740,000 / 259,560 \approx 2.85$ weeks. * To eliminate day-of-week seasonality (e.g., weekend drop to $\approx 28\text{k}$ sessions/day vs. weekday $\approx 41\text{k}$), we set the duration to exactly 3 full calendar weeks (21 days), providing $\approx 778,000$ sessions and achieving an MDE of $\approx 2.4\%$.
---
5. Calendar & Schedule
``` [Oct 5] Spec Approval & QA [Oct 12] Launch Experiment (Day 1) ├── Oct 12 – Nov 1: 3-Week Test Window └── Concurrently: Orthogonal to Payments "Pay later" [Nov 1] Conclude Test & Analysis [Nov 2 – Nov 6] Squad Review & Rollout Decision [Nov 9 – Nov 13] 100% Rollout (if successful) [Nov 16] CODE FREEZE for Black Friday ```
- Constraints & Conflicts:
- Code Freeze: Begins 16 November.
- Payments Squad ("Pay later" on checkout): Live for 50% of users until 9 November. We cannot wait until Nov 9, as that leaves only 7 days before code freeze.
- Search Ranking Test: Ends 30 October on search result pages only (no direct conflict).
- Interference Mitigation:
- Randomise our test on an orthogonal hash layer to Payments. Because assignment is independent, exposure to "Pay later" will balance evenly (50/50) across both our Control and Treatment groups.
- Check for an interaction effect via a $2 \times 2$ factorial ANOVA post-test.
---
6. Decision Rules
| Outcome | Criteria | Action | ||
|---|---|---|---|---|
| :--- | :--- | :--- | ||
| Statistically Significant Positive | Primary Metric (CVR) $p < 0.05$ with lift $\ge +1.5\%$; Guardrails neutral/positive. | Ship to 100% across App & Web before Nov 16 code freeze. | ||
| Statistically Significant Negative | Primary Metric or Total Orders $p < 0.05$ negative; OR Basket P95 latency $> +150\text{ ms}$. | Roll back immediately. Retain Control. | ||
| Inconclusive / Neutral | $ | \text{Lift} | $ not statistically significant ($p \ge 0.05$). | Default to Control. Re-evaluating cost transparency does not justify UX change before peak Black Friday. |
Claims the judge couldn’t find in the brief
- App orders total 85,466 over 8 weeks
- Baseline checkout conversion rate p = 6.37%
- Combined sessions 2,076,494 and orders 132,222
Grades and run details
Decision model 89 · LLM judge 60
Decision model checks
- partialUses the supplied evidence correctly4%
- passAddresses the actual decision65%
- passRespects explicit constraints13%
- passIdentifies material uncertainty28%
- passAvoids unsupported claims31%
- passProduces the required deliverable57%
- passRandomises by user100%
- passWorks around the calendar99%
- passDoesn't let the metric flatter the change96%
- partialAn unambiguous primary metric82%
- passDecision rule written before the test100%
- passSized from the real traffic47%
- partialGuardrails with thresholds82%
- passSays why a test is worth it here73%
Run
- Run
- #1
- API response time
- 53 s
- Submitted
- 6 Oct 2026