Tasks / Metrics & Experimentation

Experiment specification

Can the model design a test that could actually change the decision?

Task type v1.0 · 2 tasksLast changed 6 Oct 2026 · ChangelogDifficulty

What AI gets right here, and what you’ll still have to catch

From 18 graded outputs by 9 models. 28% were usable with at most a quick edit.

Reliably right

  1. Randomises by user100% pass
    Randomises by logged-in user ID across platforms, explicitly citing cross-platform usage and session non-independence.
    Sonnet 5.5 · API · Show the fee sooner
  2. Works around the calendar94% pass
    Addresses both the payments test and the Black Friday freeze, proposes concurrent independent assignment with an interaction check, and avoids a one-week squeeze.
    Sonnet 5.5 · API · Show the fee sooner
  3. Tests one change at a time89% pass
    The free-delivery banner is explicitly excluded from the variant, with an explanation that bundling would prevent attribution, and a separate test is proposed.
    Sonnet 5.5 · API · Showing the delivery fee up front

Where it slips

  1. Says why a test is worth it here42% pass
    The output does not explain why this decision merits a test given the traffic and stakes, nor does it recommend a cheaper alternative.
    Opus 5.5 · Claude · Show the fee sooner
  2. Guardrails with thresholds56% pass
    Guardrail metrics are named but lack explicit numeric thresholds; 'materially worse' and 'drops meaningfully' are too vague to block rollout without further definition.
    Sonnet 5.5 · API · Showing the delivery fee up front
  3. Doesn't let the metric flatter the change61% pass
    The primary metric is from basket entry and explains why last-step completion misleads, but it does not include a basket drop-off guardrail with a threshold to block rollout.
    GPT-6 Astra · ChatGPT · Show the fee sooner

How it’s graded

Each check is built on how world-class product and growth leaders do this work, as they’ve described it on Lenny’s Podcast, and names the leader it comes from.

  1. An unambiguous primary metric

    Does the spec name one primary metric, explain why an increase is unambiguously good for the user and the business, and say how the result's trustworthiness will be checked?

    Passes when One primary metric with a clear rationale for its direction, plus a planned trust check such as a sample ratio check.

  2. Decision rule written before the test

    Does the spec say, before the test runs, which result leads to which action (ship, don't ship, iterate), including what happens if the result is inconclusive?

    Passes when Every outcome, including an inconclusive one, maps to a stated action, with the thresholds that separate them.

  3. Sized from the real traffic

    Is the sample size and duration worked out from the supplied traffic, baseline and smallest effect worth detecting, run in full weekly cycles?

    Passes when Sample size follows from the baseline and the smallest effect worth acting on, the duration follows from the traffic the brief gives (including how units accumulate), and it runs whole weeks.

  4. Guardrails with thresholds

    Does the spec name the guardrail metrics that would stop a rollout even if the primary metric wins, each with a threshold?

    Passes when The guardrails that matter for this change are named, each with a threshold that would block the rollout.

  5. Says why a test is worth it here

    Does the spec weigh whether a test is worth running here: enough traffic to detect an effect that matters, and a decision the result would actually change, and does it say what it would do instead if not?

    Passes when Explains why this decision merits a test given the traffic and stakes, or recommends a cheaper route where they don't.

Plus our standard checks

Uses the supplied evidence correctly · Addresses the actual decision · Respects explicit constraints · Identifies material uncertainty · Avoids unsupported claims · Produces the required deliverable · and 2 written for each task, which you’ll see in the tasks below.

The tasks

Read the brief, then compare up to three outputs, each with the LLM judge’s verdict on every check. Highlights mark what a PM had to fix.

The brief

You're the PM for checkout at Basketful. We want to test showing the delivery fee in the basket, instead of only at the last step of checkout. Write the experiment spec for Ravi, the growth engineer who'll build it, Ines, the analyst who'll read it out, and Chloe, our Head of Growth, who approves it. Keep it under 700 words. The team's draft plan is below. Fix what needs fixing.

What the model was given5 items: About Basketful, Why we're testing it, Traffic and baselines, Smallest change worth acting on, The team's draft plan
About BasketfulAn online grocery service. Delivery costs £3.99, or is free on orders over £60. Today the fee first appears on the final checkout step.
Why we're testing it12% of support contacts last quarter were about delivery fees the customer hadn't expected. Design believes showing the fee early will build trust; Chloe worries it will put people off before they start checkout.
Traffic and baselinesAbout 40,000 different customers view their basket each week. About half of each week's basket viewers are new that week; the rest came back from earlier weeks. 8% of basket viewers place an order. Of customers who start checkout, 62% complete it. Average order value: £47.
Smallest change worth acting onChloe: “Anything smaller than half a percentage point on orders isn't worth arguing about.”
The team's draft planPrimary metric: checkout completion rate (orders ÷ checkout starts). Split: 50/50 by session. Duration: we'll check the dashboard every day and stop as soon as it's significant. Chloe's addition: “While we're at it, let's put the free-delivery-over-£60 banner in the variant too.”
What a strong answer doesThe answer key the graders mark against

A spec that tests one change and fixes the draft's three problems. The primary metric is orders per basket-viewing customer, not checkout completion rate: showing the fee earlier changes who starts checkout, so completion can rise while orders fall. Customers, not sessions, are randomised, so returning customers see one version. The free-delivery banner stays out of the variant (or gets its own test), or the result can't be attributed. The duration is fixed in advance, with no daily stopping: detecting 0.5pp on an 8% base needs roughly 47,000 customers per arm (about 95,000 in total), and because half of each week's viewers are returning customers, new customers accumulate at about 40,000, 60,000, 80,000 and 100,000 after four weeks, so it runs about four full weeks, not two and a half. Guardrails with thresholds: average order value, fee-related support contacts, and the checkout-start rate as a diagnostic. A sample ratio check before reading results. A decision rule written up front: ship if orders are no worse than 0.5pp down and fee contacts fall; don't ship if orders drop by 0.5pp or more; with a stated plan for an inconclusive result.

Critical failures (cap the score at 40)
  • Uses checkout completion rate (orders ÷ checkout starts) as the primary metric
  • Bundles the free-delivery banner into the variant
Task

Mid-level · v1.4

The outputs

9 setups answered this brief.

Needs more than a quick edit6 of 13 checks passed

The spec is strong but needs a sample ratio check, explicit guardrail thresholds, and a rule for the guardrail‐decline outcome before a PM can use it without rework.

Output

Experiment Spec: Upfront Delivery Fee in Basket

To: Ravi (Eng), Ines (Analytics), Chloe (Head of Growth) From: Checkout PM Subject: Experiment Spec – Showing Delivery Fee in Basket

1. Background & Hypothesis

Last quarter, 12% of support contacts were complaints about unexpected delivery fees. Currently, our £3.99 fee (free on orders >£60) is hidden until the final checkout step.

  • Hypothesis: Showing the delivery fee in the basket will build trust and reduce support contacts without hurting overall conversion, rather than scaring users away early.

2. Scope & Variants (Fixing the Draft)

Chloe suggested adding a "Free delivery over £60" banner to the variant. Recommendation: Hold this for a follow-up test. If we test the fee and the promotional banner together, we won’t know if a change in conversion came from fee transparency (friction) or the £60 threshold incentive (upsell). However, because our delivery fee is dynamic, the variant line item must accurately reflect the £60 rule so users aren't misled.

  • Control: Current basket experience (no delivery fee shown until final checkout step).
  • Variant: Add a single, standard-text line item to the basket summary:
  • If basket < £60: “Estimated Delivery: £3.99 (Free over £60)”
  • If basket ≥ £60: “Estimated Delivery: FREE”
  • (Note for Chloe: If we want to test a high-visibility promotional banner/progress bar to drive AOV, let's fast-follow with that as V2).

3. Metrics (Fixing the Draft)

The draft plan used Checkout Completion Rate (Orders ÷ Checkout Starts) as the primary metric. We must change this. Moving the fee to the basket will likely cause sticker-shock drop-offs to happen in the basket rather than at the end of checkout. This will shrink the number of "Checkout Starts" and artificially inflate Checkout Completion Rate, even if total orders drop.

Because the intervention happens in the basket, our denominator must be basket viewers:

  • Primary Metric: Basket-to-Order Conversion Rate (Unique customers placing an order ÷ Unique customers viewing the basket). Baseline: 8.0%.
  • Secondary Metrics:
  • Average Order Value (AOV): To see if the subtle text nudges baskets over £60. Baseline: £47.
  • Basket-to-Checkout Start Rate & Checkout Completion Rate: To observe the shift in where drop-off occurs.
  • Support Contacts (Delivery Fee): Tracked via contact form tags/UTMs where possible.
  • Guardrail Metric: Net Revenue per Basket Viewer (ensuring total revenue doesn't drop even if conversion holds).

4. Randomization & Targeting (Fixing the Draft)

The draft plan splits traffic 50/50 by session. We must change this to a 50/50 split by Customer/User ID (or persistent device cookie for logged-out users). Groceries are a high-consideration purchase; 50% of our weekly traffic consists of returning users. Splitting by session means a single customer could see the fee in the morning, and not see it in the evening, causing confusion and polluting our data.

  • Trigger: User lands on `/basket`.

5. Sample Size & Duration (Fixing the Draft)

The draft plan suggests checking daily and stopping when significant. We cannot do this ("peeking" skyrockets false-positive rates). We need a fixed horizon.

  • Minimum Detectable Effect (MDE): Chloe set our threshold at 0.5 percentage points (an absolute shift from 8.0% to 8.5% or 7.5%).
  • Sample Size Needed: At an 8% baseline, 80% power, and 95% significance (two-tailed), detecting a 0.5pp change requires ~46,200 unique users per variant (~92,400 total).
  • Duration: 4 Weeks (Fixed).
  • Traffic math: We get 40,000 unique basket viewers in Week 1, and ~20,000 net-new viewers each subsequent week (since 50% are repeat visitors). We will hit ~100,000 unique users across the test at the end of Week 4. Running in full weekly increments also accounts for weekend vs. weekday shopping cycles.

6. Decision Criteria

After 4 weeks, Ines will run the readout (segmented by New vs. Returning users): * Ship Variant: If Basket-to-Order CR is flat (within ±0.5pp) or significantly positive, AND AOV/Revenue guardrails do not significantly decline. * Rollback: If Basket-to-Order CR drops by ≥ 0.5pp.

Sign-offs Needed: * Chloe: Approve scope (holding the promo banner for V2) and 4-week runtime. * Ines: Confirm sample size math and user-level tracking. * Ravi: Confirm engineering effort for user-level bucketing on `/basket`.

Claims the judge couldn’t find in the brief

  • Groceries are a high-consideration purchase.

Grades and run details

Decision model 81 · LLM judge 43
Decision model checks
  • passUses the supplied evidence correctly1%
  • partialAddresses the actual decision73%
  • passRespects explicit constraints23%
  • passIdentifies material uncertainty48%
  • partialAvoids unsupported claims23%
  • passProduces the required deliverable64%
  • passTests one change at a time100%
  • passFixes the duration up front98%
  • partialAn unambiguous primary metric72%
  • passDecision rule written before the test33%
  • passSized from the real traffic58%
  • partialGuardrails with thresholds88%
  • partialSays why a test is worth it here95%
Run
Run
#1
API response time
13 s
Submitted
13 Oct 2026
Critical failure: Bundles the free-delivery banner into the variant. Score capped at 40.

Needs more than a quick edit0 of 13 checks passed

The spec bundles the banner, uses an incorrect duration, and lacks a decision rule and guardrail thresholds. A PM would need to redo the sizing and separate the banner test.

Output

To: Chloe (Head of Growth), Ravi (Growth Engineer), Ines (Data Analyst) From: PM, Checkout Subject: Experiment Spec: Early Delivery Fee Display in Basket

Team, here is the polished spec for our upcoming checkout experiment. I’ve incorporated Chloe’s threshold, fixed a few methodological traps in the draft, and scoped this for a clean, reliable read.

---

1. Objective & Hypothesis

  • Current State: Delivery fee (£3.99, free over £60) is only revealed on the final checkout step. 12% of last quarter’s support contacts were fee-related surprises.
  • Hypothesis: Showing the delivery fee (and progress to free delivery) directly in the basket increases customer trust and sets clear expectations upfront.
  • Expected Impact: While Chloe rightly worries this might cause some upfront drop-off among sub-£60 baskets, we believe the resulting higher-intent checkout starts will lift overall conversion and reduce cart abandonment due to "sticker shock."

---

2. Variant Definition

  • Control (A): Existing basket experience. Delivery fee hidden until final checkout step.
  • Variant (B):
  • Displays the delivery fee clearly in the basket summary.
  • Note on scope: Per Chloe’s suggestion, we are bundling the "free delivery over £60" progress banner into Variant B. Since the fee and the threshold are conceptually tied, showing one without the context of the other would skew the test.

---

3. Traffic Allocation & Unit of Randomization

  • Unit of Randomization: User-level (logged-in state or persistent cookie). Correction from draft: Session-level splitting would cause a jarring experience if a user refreshes or returns and sees fluctuating fee visibility.
  • Split: 50/50 (Control / Variant).
  • Audience: All customers viewing the basket (~40,000 unique users/week, split roughly 50/50 between new and returning).

---

4. Metrics

  • Primary Metric (Guardrail for Business Value):
  • Order Conversion Rate: Completed Orders ÷ Total Basket Views.
  • (Correction from draft: The draft proposed "Checkout Completion Rate (Orders ÷ Checkout Starts)." That misses top-of-funnel drop-off. If Variant B scares people away before checkout, measuring only checkout-starts will falsely make the variant look better. We must measure from the basket view).
  • Secondary Metrics:
  • Checkout Start Rate: Checkout Starts ÷ Basket Views.
  • Checkout Completion Rate: Orders ÷ Checkout Starts (to isolate downstream behavior).
  • Average Order Value (AOV): To monitor if the £60 threshold banner successfully drives basket-building behavior (baseline: £47).
  • Support Metric:
  • Volume of delivery-fee-related support tickets (Ines, let’s pull this baseline post-launch).

---

5. Success Criteria & Statistical Guardrails

  • Minimum Detectable Effect (MDE): Per Chloe, we care about a ≥ +0.5 percentage point absolute change in the Primary Metric (Order Conversion Rate from basket view, baseline ~8%).
  • Duration & Peeking:
  • Correction from draft: Do not stop the test the moment p < 0.05. Early peeking yields false positives.
  • We will run the test for a fixed duration of 2 full weeks to capture day-of-week and new vs. returning user cycles (~80,000 total unique users), yielding adequate statistical power for our MDE.

---

Next Steps:

  • Ravi: Let’s sync on tracking implementation for the basket-level fee and banner. Target build completion: [Insert Date].
  • Ines: Please set up the tracking dashboard, ensuring we segment by New vs. Returning users and Basket Value (<£60 vs. >£60).
  • Chloe: Good to approve?

Claims the judge couldn’t find in the brief

  • We will run the test for a fixed duration of 2 full weeks ... (~80,000 total unique users).
  • yielding adequate statistical power for our MDE.
  • Session-level splitting would cause a jarring experience if a user refreshes or returns and sees fluctuating fee visibility.

Grades and run details

Decision model 50 · LLM judge 0
Decision model checks
  • passUses the supplied evidence correctly34%
  • failAddresses the actual decision51%
  • passRespects explicit constraints2%
  • partialIdentifies material uncertainty76%
  • partialAvoids unsupported claims18%
  • partialProduces the required deliverable59%
  • failTests one change at a time100%
  • partialFixes the duration up front98%
  • partialAn unambiguous primary metric80%
  • partialDecision rule written before the test76%
  • partialSized from the real traffic95%
  • partialGuardrails with thresholds48%
  • partialSays why a test is worth it here51%
Run
Run
#1
Time to output
5 s
Submitted
30 Sept 2026

Needs more than a quick edit9 of 13 checks passed

The spec exceeds the 700-word limit and lacks explicit guardrail thresholds for the final ship decision, so it needs more than a quick wording edit.

Output

Experiment Spec: Delivery Fee Shown in Basket

Owner: Checkout PM · Build: Ravi · Analysis: Ines · Approver: Chloe

Why we're testing this

Today the £3.99 delivery fee (free over £60) first appears on the final checkout step. Last quarter, 12% of support contacts were about unexpected delivery fees. Design expects that showing the fee earlier will build trust. Chloe's concern is that it will put people off before they start checkout. This test tells us which effect is bigger.

Hypothesis

Showing the delivery fee in the basket will change the share of basket viewers who place an order. We don't assume a direction. The test is two-sided because either outcome is plausible.

Variants

  • Control: Current experience. The fee appears only at the final checkout step.
  • Variant: The basket shows a "Delivery: £3.99" line, or "Free" when the basket is over £60. The same fee still appears at checkout.

Change from draft: The free-delivery-over-£60 banner is removed from this test. If both changes ship together, we can't tell which one caused any result. The banner could also raise orders while the fee line lowers them, so the two effects would cancel and we'd learn nothing. We'll test the banner as a follow-up once this result is in.

Primary metric

Order conversion: the share of customers who view their basket during the test and go on to place at least one order.

Change from draft: The draft used checkout completion (orders ÷ checkout starts). That metric would be misleading here. If the variant puts off fee-sensitive customers before checkout, the people who remain in checkout are the ones already willing to pay. Completion would then rise even if total orders fell. Order conversion counts everyone who saw the basket, so it catches losses at either stage.

Secondary and guardrail metrics

  • Checkout start rate and checkout completion rate. These are diagnostic only and show where any change happens.
  • Average order value. Seeing the fee may push some customers over £60.
  • Revenue per basket viewer. This includes delivery fee income.
  • Fee-related support contacts per 1,000 orders. This is the problem we set out to fix.

Randomisation

  • Unit: customer (logged-in account ID). The draft split by session, which needs to change. About half of each week's basket viewers are returning customers. With a session split, they would see the fee in the basket on one visit and not on the next. That would contaminate both groups and confuse customers.
  • Split: 50/50, sticky for the whole test.
  • Ravi: Please log the assignment when a customer first views their basket, and confirm that logged-out traffic is either excluded or bucketed consistently.

Sample size and duration

  • Assumptions: baseline 8% order conversion, two-sided test at α = 0.05, 80% power.
  • Minimum effect we want to detect: 0.5 percentage points (8.0% → 8.5%). We're reading Chloe's threshold as absolute points on order conversion. That is roughly a 6% relative change.
  • Customers needed: about 47,500 per arm, or about 95,000 total.

How long that takes: About 40,000 customers view their basket in week 1, then about 20,000 new customers each week after. That gives roughly 40k, 60k, 80k and 100k cumulative customers. The test therefore runs for 4 full weeks.

Caveat for Ines: The 8% baseline is per basket viewer per week. Over a 4-week window, each customer has more chances to order, so the per-customer baseline will be higher. At 12%, for example, we'd need about 135,000 customers, which means about 6 weeks. Before launch, Ines will calculate the 4-week per-customer baseline from historical data. The final duration will be fixed from that number and recorded here.

Stopping rule

Change from draft: We won't stop the test as soon as the dashboard shows significance. If we check every day and stop on the first significant result, the false-positive rate climbs well above 5%. The dashboard will often show early "wins" that aren't real.

  • The test runs for the pre-set duration, in full weeks only.
  • The dashboard can be watched for bugs and sample-ratio mismatch. Nobody makes ship decisions from it mid-test.
  • Only reason to stop early: a guardrail failure. That means a broken experience, a sample-ratio mismatch (p < 0.001), or order conversion down by more than 1.5 points.

Decision rules

The confidence interval (CI) below is the interval around the difference in order conversion between the variant and control.

Result on order conversionDecision
Up by a significant amountShip the variant
Down by a significant amountDon't ship. Look into other ways to reduce the support contacts
Not significant, and the CI excludes −0.5 pointsShip. We lose no meaningful number of orders and gain trust and fewer support contacts
Not significant, and the CI includes −0.5 pointsTreat as inconclusive. Chloe decides whether to extend the test or drop the change

Sign-off

  • ☐ Ravi: build plus assignment logging
  • ☐ Ines: baseline check and final duration
  • ☐ Chloe: approval

Grades and run details

Decision model 81 · LLM judge 71
Decision model checks
  • failUses the supplied evidence correctly7%
  • passAddresses the actual decision70%
  • passRespects explicit constraints16%
  • passIdentifies material uncertainty88%
  • partialAvoids unsupported claims35%
  • passProduces the required deliverable46%
  • passTests one change at a time100%
  • passFixes the duration up front95%
  • passAn unambiguous primary metric28%
  • passDecision rule written before the test85%
  • passSized from the real traffic43%
  • partialGuardrails with thresholds71%
  • partialSays why a test is worth it here88%
Run
Run
#1
Time to output
31 s
Submitted
30 Sept 2026

Check by check

Where the outputs differ comes first. Open a check to read the judge’s reasons. “Mixed” means the two graders disagreed.

Where they differ 11

Addresses the actual decisionRightWrongRight
Gemini 4 Argon · API

The output commits to a clear experiment design and decision rule (ship/rollback) early, and states what conditions would change the call.

Gemini 3.5 Flash-Lite · Gemini

The output does not commit to a clear decision rule or say what would change the call; it only states a threshold without mapping outcomes to actions.

Opus 5.5 · Claude

The spec commits to a clear decision rule mapping every test outcome (including inconclusive) to a ship/don't-ship/iterate action, framed for Chloe as approver.

Respects explicit constraintsRightMixedMixed
Gemini 4 Argon · API

The spec is under 700 words, addressed to the three named readers, and fixes the draft's issues as requested.

Gemini 3.5 Flash-Lite · Gemini

The brief asks to fix the draft plan, but the output keeps the free-delivery banner bundled in the variant, failing to fix that problem.

Opus 5.5 · Claude

The output is approximately 771 words, exceeding the 700-word limit stated in the brief.

Identifies material uncertaintyMixedWrongRight
Gemini 4 Argon · API

It does not name specific unknowns that could change the decision (e.g., unmeasurable trust gains) or explain how an inconclusive result (e.g., guardrail decline while conversion holds) would be resolved.

Gemini 3.5 Flash-Lite · Gemini

The output does not name unknowns that could change the decision or how they would be resolved.

Opus 5.5 · Claude

It identifies the uncertainty around the per-customer baseline over the test window and delegates resolution to Ines, and the decision rule handles the inconclusive case.

Avoids unsupported claimsWrongWrongRight
Gemini 4 Argon · API

The statement 'Groceries are a high-consideration purchase' is presented as fact without evidence from the supplied material.

Gemini 3.5 Flash-Lite · Gemini

The output presents the 2-week duration as yielding adequate power without labeling it as an assumption or hypothesis.

Opus 5.5 · Claude

Hypotheses and concerns are attributed to Design and Chloe, and the explanation for not bundling the banner is presented as a plausible scenario, not established fact.

Produces the required deliverableRightWrongMixed
Gemini 4 Argon · API

The required experiment spec is present, complete, and usable by the named readers.

Gemini 3.5 Flash-Lite · Gemini

The spec lacks a decision rule, guardrail thresholds, and correct sizing; it is not usable as is.

Opus 5.5 · Claude

The spec is the right form and addresses the named readers, but it exceeds the 700-word limit, so it is not within the requested length.

Tests one change at a timeRightWrongRight
Gemini 4 Argon · API

It explicitly removes the free-delivery banner from the variant, explains why bundling it would make the result uninterpretable, and offers a follow-up test.

Gemini 3.5 Flash-Lite · Gemini

The spec bundles the free-delivery banner into the variant and argues it is necessary, so the effect cannot be attributed to the fee change alone.

Opus 5.5 · Claude

The free-delivery banner is explicitly removed from the variant, with a clear explanation that bundling would make attribution impossible, and a follow-up test is proposed.

Fixes the duration up frontRightWrongRight
Gemini 4 Argon · API

It replaces daily stopping with a fixed 4-week duration and explains that peeking inflates false positives.

Gemini 3.5 Flash-Lite · Gemini

The fixed duration of 2 weeks is not derived from the sample size needed; it is an arbitrary choice, not based on the traffic and MDE.

Opus 5.5 · Claude

It replaces daily stopping with a fixed 4-week duration and explains that peeking inflates false positives; early stopping is allowed only for guardrail failures.

An unambiguous primary metricWrongWrongRight
Gemini 4 Argon · API

The spec does not include a planned trust check (e.g., sample ratio check) to verify randomization integrity before reading results.

Gemini 3.5 Flash-Lite · Gemini

The spec does not include a trust check such as a sample ratio check to verify the experiment's integrity.

Opus 5.5 · Claude

Order conversion (basket viewers who place an order) is the single primary metric, its direction is clearly good for the business, and a sample-ratio mismatch check is planned.

Decision rule written before the testMixedWrongRight
Gemini 4 Argon · API

No action is stated for the outcome where AOV/Revenue guardrails decline but Basket-to-Order CR does not drop by ≥0.5pp, leaving that inconclusive result unmapped.

Gemini 3.5 Flash-Lite · Gemini

No decision rule is stated; the output does not map possible outcomes (win, lose, inconclusive) to actions.

Opus 5.5 · Claude

The decision table covers significant up, significant down, non-significant with CI above -0.5pp, and inconclusive, each with a stated action.

Sized from the real trafficRightWrongRight
Gemini 4 Argon · API

Sample size (≈46k per arm) is derived from the 0.5pp MDE and 8% baseline, and the 4-week duration follows from the traffic accumulation arithmetic (40k + 20k/week).

Gemini 3.5 Flash-Lite · Gemini

The 2-week duration is insufficient given the 8% baseline, 0.5pp MDE, and 40k weekly users with half returning; proper sizing requires about 4 weeks.

Opus 5.5 · Claude

Sample size is calculated from the 8% baseline and 0.5pp MDE, and duration is derived from the 40k weekly traffic and 20k new-customer accumulation, running in full weeks.

Says why a test is worth it hereWrongWrongRight
Gemini 4 Argon · API

The spec does not discuss whether the test is worth running given the traffic and stakes, nor what the alternative would be.

Gemini 3.5 Flash-Lite · Gemini

The output does not discuss whether a test is worth running given the traffic and stakes.

Opus 5.5 · Claude

The spec explains the trade-off (trust vs. drop-off), the 12% support-contact problem, and confirms sufficient traffic to detect the smallest worthwhile effect.

All got wrong 1

Guardrails with thresholdsWrongWrongWrong
Gemini 4 Argon · API

Guardrails are named but no numerical thresholds are set to define when they would block rollout.

Gemini 3.5 Flash-Lite · Gemini

Guardrail metrics are listed but no thresholds are set that would block a rollout.

Opus 5.5 · Claude

Guardrail metrics are listed but no thresholds are set for them to block a rollout; the only threshold given (order conversion down >1.5pp) is for early stopping, not the final ship decision.

All mixed 1

Uses the supplied evidence correctlyMixedMixedMixed
Gemini 4 Argon · API

The output claims that 'groceries are a high-consideration purchase' without support from the brief or supplied context.

Gemini 3.5 Flash-Lite · Gemini

The output claims 80,000 total unique users over 2 weeks and adequate power, neither of which is supported by the brief or arithmetic.

Opus 5.5 · Claude

All factual claims about the current situation and the draft plan are taken directly from the brief or supplied context, with no inventions.

Results

Every setup we’ve tested on this task type, across all its tasks and repeats, graded on the current checklist. Calibrated. Where our PM checked the graders by hand, they agreed on 87% of 39 checks.

#Model · HarnessTask scoreDecision modelLLM judgeRunsCritical failures
1Sonnet 5.5withAPI85.296.42None
2Haiku 5.5withAPI83.196.72None
3Opus 5.5withClaude83.279.02None
4GPT-6 AstrawithChatGPT81.376.02None
5GPT-6 LunawithAPI83.465.22None
6GPT-6.1 SolwithAPI77.769.32None
7Gemini 4 ArgonwithAPI79.758.12None
8Gemini 3.8 FlashwithAPI69.947.92None
9Gemini 3.5 Flash-LitewithGemini55.413.321 capped

What you get for the cost

Haiku 5.5 · API scores within 2 points of Sonnet 5.5 · API at about a tenth of the cost.

Task score against relative cost for each setup. The table below has the same figures.20304050607080901001×3×10×30×100×Cost per output, relative to the cheapest setup (log scale) →↑ Task scoreSonnet 5.5 · API: task score 91, 33× the cheapestHaiku 5.5 · API: task score 89, 2.7× the cheapestOpus 5.5 · Claude: task score 78, 49× the cheapestGPT-6 Astra · ChatGPT: task score 76, 79× the cheapestGPT-6 Luna · API: task score 73, the cheapestGPT-6.1 Sol · API: task score 73, 13× the cheapestGemini 4 Argon · API: task score 66, 11× the cheapestGemini 3.8 Flash · API: task score 56, 7.4× the cheapestGemini 3.5 Flash-Lite · Gemini: task score 32, 2.1× the cheapest, 1 critical failureSonnet 5.5 · APIHaiku 5.5 · APIOpus 5.5 · ClaudeGPT-6 Astra · ChatGPTGPT-6 Luna · APIGPT-6.1 Sol · APIGemini 4 Argon · APIGemini 3.8 Flash · APIGemini 3.5 Flash-Lite · Gemini
Best valueNobody beats these on both score and costAt least one critical failure
Task score and relative cost by setup
SetupTask scoreRelative cost (cheapest = 1)
GPT-6 Luna · API731.0×
Gemini 3.5 Flash-Lite · Gemini322.1×
Haiku 5.5 · API892.7×
Gemini 3.8 Flash · API567.4×
Gemini 4 Argon · API6611×
GPT-6.1 Sol · API7313×
Sonnet 5.5 · API9133×
Opus 5.5 · Claude7849×
GPT-6 Astra · ChatGPT7679×

Cost is each output’s tokens at the model’s list price, shown relative to the cheapest setup. Runs done in an app have no usage meter, so theirs are estimated from the same setup’s measured runs. How we compare cost

About the task

The PM job

Specifying an A/B test before running it.

Why it matters

Most tests are underpowered, or measure a metric nobody agrees is good.

What good looks like

  • One primary metric everyone agrees on the direction of
  • Decision rule stated up front
  • Guardrails
  • Power considered

Deliberately not measured

    Capability tested

    Test design

    The failure we’re looking for

    A test with no decision attached

    Grading

    Decision model and LLM judge, calibrated against a blind PM review