A/B variant analysis
Tells you whether the difference between variants is real or just noise
Free agent skill for Claude Code, Codex, Cursor and Gemini CLI. It works through the SurveyNinja MCP server, with your permissions.
- Category
- Understand results
- Tags
- A/B test, comparison
- Works with
- Claude Code, Codex, Cursor, Gemini CLI
- MCP tools
- 9, 1 of them change data
- Version
- 1.1, October 20, 2026
- Made by
- SurveyNinja
- Price
- Free
- Skill file
- SKILL.md
What it does
- A winner only if there is one. On fifty responses a ten point gap appears by chance, and the skill will not call that a win.
- "Not enough data" is an answer too. If there are too few responses, the skill says how many more to collect and holds back the recommendation.
- Counts with a base. "42 of 180" instead of "23%", and the gap in percentage points rather than percent of a percent.
Example
You type
Compare the A/B variants in this survey. Which one is better?
What the assistant brings back
- 23.3%
- Variant A42 of 180 left a contact
- 19.0%
- Variant B34 of 179
- 4.3 pp
- Differencein favor of A
- thin
- Data400+ per group needed
A 4.3 point gap on groups of 180 is within the margin of error. To say that A is better you need around 400 completions in each group.
The numbers above are an example. The skill works from your real variants and picks whichever of the three verdicts is honest.
How it works
- Counts from the base"42 of 180 against 34 of 179" shows what the conclusion rests on. Bare percentages such as "23% against 19%" hide it.
- Checks there is enough dataOn fifty responses a ten point gap appears by itself. The skill says when it is too early to call.
- Verifies the comparison is fairDifferent periods, different traffic sources or wording edited mid-test break the comparison. That is checked before a winner is named.
- Is willing to say "no difference"That is a result too: it means the variant can be chosen on other grounds.
Try also
- Can we pick a winner yet, or is the data too thin?
- Check whether the difference between the two question wordings is significant
What it will not do
- Do not declare a winner on a couple of points
- Do not compare variants from different periods
- Do not peek and stop the test
- Do not call a difference significant because it is badly wanted
- Do not suggest a plan upgrade or lead to payment
The skill works with your permissions. Tools that change data are marked, so you check what the assistant is about to do before you confirm. To cut access, remove the connector in the assistant or delete the API key.
In short
What can the skill compare?
The built-in SurveyNinja A/B test, where a question shows different versions of its title and description, and also two surveys or two sets of links that you ran as variants.
What counts as success?
Whatever you name: the share who finished, the share who left a contact, the average rating. If you have not said, the assistant asks first, because without a goal there is nothing to compare.
How many responses do I need?
It depends on the gap. A five point difference needs hundreds of responses in each group, a twenty point one needs dozens. With fewer than a hundred per group a difference is almost never proven.
What answer will I get?
One of three: there is a difference, with its size and what it means in practice; there is no difference, so choose on other grounds; or there is not enough data yet, with how much more to collect.
Can I stop the test as soon as one variant pulls ahead?
The skill will not advise that, since pulling ahead by chance is common. Decide once you have the volume you need.
Does the skill change anything in my survey?
No. It only reads the structure, the report and the responses.
The full skill
The SKILL.md file the assistant reads, exactly as it is in the archive.
Show the full text
Comparing A/B variants
The main A/B mistake is deciding on random noise. On fifty responses a ten point difference appears by itself, for no reason at all.
Reply to the person in the language they write in.
Find out what is being compared
- The built-in A/B test. In SurveyNinja a question, a message or an HTML block
can show two or more versions of its title and description; the answer options
stay the same.
get_quiz_structureshows which questions have variants and their wording. - Two surveys, or two sets of links to one survey, run side by side. Then the variants are compared like any two groups of respondents.
Ask first what counts as success: completion share, share leaving a contact, average rating, the share choosing a given option. Without that there is nothing to compare.
Collect
For the built-in test, get_quiz_report: the question's abTest block lists the
variants. The report holds only completed responses, so there shown_count is the
number of completed responses that saw each variant, and completion_count
repeats it: the completion percentages are always near 100% and say nothing.
Completion share by variant cannot be read through the tools: the responses from
get_quiz_answers do not say which variant the respondent saw. Ask the person to
open Results → Reports in the app, choose All above the report and read each
variant's Impressions and Finished. All is there only when the plan keeps
unfinished responses (incomplete_answers in get_workspace_tariff; it needs the
workspace_id from get_workspace_list); without it, say that this metric is not
available and compare what the completed responses allow.
For any other metric (a contact left, a rating, an option chosen) the report does
not split answers by variant. The answer export (export_answers_csv) has a
column with the variant each respondent saw: use it if you can open the file, or
ask the person to apply the A/B test section of Filter in Results and read the
numbers per variant. Export and filters depend on the plan.
For two surveys: get_quiz_summary for each gives the completed
(filled_completely) and unfinished (started_not_finished) counts. For two sets
of unique links: get_quiz_answers with unique_link_group_id, is_complete true
and then false, paged with limit and offset; count the responses returned, as
answer_total_count is the whole survey's total. Without unfinished responses on
the plan, is_complete false returns completed ones: check each response's
is_complete field. Answers per set: generate_filtered_report with
unique_link_group_id (completed responses only).
The SurveyNinja report may mark a leading variant. That mark starts at 80% confidence, a lower bar than a decision needs, so treat it as a hint.
Compute
- The metric per variant with its base: "42 of 180" beats "23%".
- The difference in percentage points, not percent of a percent.
- Whether there is enough data. Rule of thumb: a five point difference needs hundreds per group, a twenty point one needs dozens. Below a hundred per group a difference can rarely be called proven. When in doubt, run a two-proportion test and give the result in plain words.
- That the groups are comparable: same period, same traffic source. If the
shares or the wording changed during the test (
get_quiz_versions), say so.
How to answer
Three possible conclusions; pick one honestly:
- There is a difference. State its size and what it means in practice.
- There is no difference. The variants perform the same, which is also a result: choose either on other grounds.
- Not enough data. Say how much more is needed and give no recommendation.
The third is the most common and the least popular, and giving it honestly matters more than guessing.
What not to do
- Do not declare a winner on a couple of points on a small sample.
- Do not compare variants from different periods. Seasonality breaks it.
- Do not peek and stop the test the moment the preferred variant pulls ahead.
- Do not call a difference significant because it is badly wanted.
- Do not suggest a plan upgrade or lead to payment. If a limit is hit or a feature is not on the plan, state the fact and stop.
More skills
All skills- Survey results summary Answers "so what did the survey say" with figures and a conclusion instead of a raw export
- Comparing with past results Compares a survey with its own past, because one figure means little and a change says a lot
- Completion funnel Shows which question makes people close the tab, and why
- Survey timeline Answers “why did responses stop” by lining up collection against the edit history
- How many responses you need Tells you whether what you have is enough and how many more responses you need before conclusions hold
- Analyze open-ended answers Turns a hundred lines of free text into a handful of themes with numbers and quotes
Connect SurveyNinja to your assistant
The MCP server works on every plan, Free included. Sign up, allow access and ask your assistant to build the first survey.
25 Questions for a Travel Agency Customer Satisfaction Survey