Data & Analysis

A/B Test Readout Check

Checks the written readout of ONE A/B test (a paragraph, an email, a table or a slide transcript) for the five statistical mistakes that turn a no-effect test into a "win", and lists only those, one line each with a fixed code, the place, the evidence with the arithmetic and the fix - or exactly No findings. It catches stopping the moment a result looks significant, many metrics or variants judged without correction, a split of users that differs from the planned split by more than chance allows (the sample ratio check, calculated step by step), a sample too small for the effect the team wants to detect, and a relative lift reported without the absolute numbers behind it. It leaves out the safe look-alikes, such as a pre-registered single primary metric, guardrail metrics that only monitor, and a split of 50.2 to 49.8 on a small sample. Use before a test result is shipped, when an analyst or an agent writes a readout, or to review a result someone else announced.

A/B Test Readout Check is a tested SKILL.md that checks the written readout of ONE A/B test (a paragraph, an email, a table or a slide transcript) for the five statistical mistakes that turn a no-effect test into a "win", and lists only those, one line each with a fixed code, the place, the evidence with the arithmetic and the fix - or exactly No findings; an agent buys it once for $0.01 over x402.

Tested 2026-10-19No code, no hidden instructionsv1.0.0 · 9.1 KB · perpetual license

Not for

Designing an experiment before it runs, recomputing p-values or intervals, choosing a statistical test, Bayesian readouts, segment analysis, or deciding whether to ship. It reads one pasted readout and judges only how its result was reached.

Tested, honestly

Tested 2026-10-19 with a strong and a weak model.

SonnetStrong model, claude-sonnet-5-5
Right on all 3 cases, read by hand. On a checkout-button readout it gave the early stop on day 9 of 14 and the uneven split of 48,300 against 50,100, with the sample ratio arithmetic done correctly to 32.93, and it left out the three guardrail metrics. On a six-metric table it gave the uncorrected win at p of 0.03 and the lift reported only in percent, and left out the 4,012 against 3,988 split. On a pre-registered signup readout it answered exactly No findings.
HaikuWeak model, claude-haiku-5-5
Right on 2 of 3 cases, read by hand. Both planted readouts got exactly the expected lines, with the same correct arithmetic (32.93 against the limit 10.83) and the safe look-alikes left out. On the clean signup readout it wrote No findings. and then added a paragraph that the variant had 39,880 users against a planned minimum of 40,000. That is a true observation about a wrinkle we did not intend in our own test text, but it breaks the fixed sentence, so it is recorded as a wrong answer.

Full test summary

Example

Our own test text, before and after the skill ran. Excerpts only.

English · claude-sonnet-5-5

Before

Readout: onboarding redesign (variant B against control A) Ran for the full 14 days as planned. Users were split 50 to 50: A got 4,012 users and B got 3,988 users. Metric Change for B p-value Add-to-cart rate +14 percent 0.03 Checkout start rate +2 percent 0.41 Purchase rate +1 percent 0.68…

After

MULTIPLE-COMPARISONS — add-to-cart rate "clear win" among six metrics — six metrics were tested (add-to-cart, checkout start, purchase, average order value, return visit, support tickets), no primary metric is named, and the win is declared at the plain p = 0.03 < 0.05; a Bonferroni threshold for 6 metrics is 0.05 / 6 ≈ 0.0083, which 0.03 does not meet — name the primary metric as planned before…

What is in the file

  • The answer
  • The codes
  • The sample ratio check, step by step
  • The sample size check
  • How to read the readout
  • Rules
  • Work in this order
  • Short example

Languages

English. Tried in: English.

License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.

Versions

Current version 1.0.0, updated 2026-10-19. Whoever bought an earlier version gets new ones free through the same re-download token.

  1. v1.0.0 · 2026-10-19

    First release, written in the light-test trial of 19 October 2026 (three cases, price $0.01). The idea is ours; no foreign skill was opened, facts come from public guidance (see notes/ideas.md). Output: one line per finding with a fixed code, or exactly `No findings.`

    Test: three cases written by hand (two planted, each with a safe look-alike, one clean control), one run on Claude Sonnet and one on Claude Haiku, no run without the skill, no iteration on the skill text after the runs. `test/control.mjs` shows that the checks pass on the ideal answers and fail on realistic wrong ones. See `test-summary.json` for the verdicts read by hand.

FAQ

When does a split of users count as a mismatch?

It works through the arithmetic in the answer: total users, expected count per group from the planned split, squared difference over expected for each group, then the sum against the limit 10.83 for two groups. A 20,000 against 21,000 split on a planned 50 to 50 is reported; 502 against 498 is not.

Does it demand a power calculation from every readout?

No. The sample size is checked only when the readout itself names the smallest change the team hoped to find, using a rule of thumb that the skill shows with a worked example. A readout that gives no minimum effect is not judged underpowered, because the skill never invents a number the text does not contain.

What does it leave out on purpose?

Guardrail metrics shown only for monitoring, a single pre-registered primary metric beside other listed numbers, a relative lift printed next to both absolute rates, and a small-sample split that passes the check. These are the look-alikes in our three test cases, and none of them gets a line.

How was it tested?

Our trial used an early stop with an uneven split, a six-metric table with a lift in percent only, and a clean pre-registered readout. Claude Sonnet and Claude Haiku each answered once per readout. Sonnet matched all three; Haiku matched the two planted ones and broke the fixed clean sentence with an extra paragraph.

Share

Read this page as Markdown: /skills/ab-test-readout-check.md.

More in Data & Analysis

  • Table Summary: Only the Figures in the Table

    Data & Analysis

    SKILL.md · v1.0.3 · 8.7 KB

    Describes a table you were given (pasted Markdown, CSV, TSV or spreadsheet cells) in a short paragraph that uses only figures the table itself prints. Every number is copied as written with its unit, currency and qualifier. Nothing is added up, averaged, rounded, turned into a percent or a ratio, or extended into a trend, a cause or a forecast. A blank or n/a cell is reported as not given, never as zero. A total the table prints is quoted, not checked. Use when asked to describe a table, summarize a table, explain what a data table shows, write a caption or a sentence for a table, or put the rows of a report table into words without inventing a single number.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • YAML Repair: Fix Broken YAML, Keep Every Value

    Data & Analysis

    SKILL.md · v1.0.1 · 8.4 KB

    Repairs broken YAML and Markdown front matter so a program can parse it, without changing any value's text or type, and answers with the YAML only, no code fence. Fixes tabs used as indentation, indentation that fits no parent, a missing closing quote or bracket, values that need quotes (a colon inside, a leading star or at sign), and output cut off in the middle, where the cut value is kept as cut and never completed. Yes, no, on, off and NO stay strings, 1,250 stays a string, 1.10 and 01234 stay as written. Duplicate keys, input that is not YAML, and input with two readings get a fixed one-line answer instead of a guess. Use when a tool, an API or another model returned YAML or front matter that does not parse, or when asked to fix, clean up or close invalid or truncated YAML.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • Recommended

    Env File Repair: Fix .env and INI Syntax, Keep Values

    Data & Analysis

    SKILL.md · v1.0.2 · 10.4 KB

    Repairs a broken .env file or INI file so the program that loads it reads every variable with the value its author meant, and answers with the file only, no code fence. Quotes a value that holds a hash sign or must keep its leading or trailing spaces, closes a quote that was left open, joins a key pasted over several lines, picks the quote style that keeps backslashes and mixed quotes intact, and leaves numbers such as 007 and 1.10, empty values and placeholders exactly as written. A key set twice to different values, a bare line that may be a lost key, a quote with two ways to close, and input that is JSON or another format get a one-line CANNOT REPAIR answer instead of a guess. Use when a config pasted from chat or model output loads wrongly, cuts a value short, or fails to parse, or when asked to fix, clean up or close a broken env file.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026

  • TOML Repair: Fix Broken TOML, Keep Every Value

    Data & Analysis

    SKILL.md · v1.0.1 · 9.5 KB

    Repairs TOML 1.0 that does not parse (pyproject, Cargo manifests, Worker config files, tool settings) without changing any value's text or type, and answers with the TOML only, no code fence. Fixes unquoted strings, keys with spaces, a missing equals sign, an unclosed quote, bracket or table header, backslashes in Windows paths, numbers with leading zeros, decimal commas, slash dates, a multi-line inline table, and chat text or a fence around the file. A version such as 1.10 is kept as the text 1.10 when the other versions in the file are strings. A table defined twice, a dotted key that writes into a table a header already defined, a key given twice with different values, input that is INI and not TOML, and input with two readings get one line starting with CANNOT REPAIR instead of a guess. Use when a tool, an API or another model returned broken TOML that ends in a TOML parse error, or when asked to fix or clean up invalid TOML.

    $0.05once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 8 Oct 2026