Test plan template for B2B SaaS
Free download as CSV and Markdown. Nothing sits in front of the file: no form, no account, no email address.
The files
What it is
The test plan with three columns a subscription business needs: which slice of the ideal customer profile the test runs against, where in the funnel it acts, and how long the result takes to become readable.
Everything else is the general test plan, unchanged. One hypothesis with a because in it, one variable, a named control, a minimum run, a read date set in advance and a decision rule for every outcome.
When to use it
Use it when the outcome you care about arrives a quarter after the change. The lag is what makes testing hard here, and the only workable answer is to name in advance which early signal you will read and to say plainly that it is a proxy.
Use it again to stop the same test being repeated. In a long-cycle business the memory of a result fades faster than the cycle does.
| Type | How to fill it | |
|---|---|---|
| Test ID | Text | A short stable identifier that travels onto the creative file, the ad name and the lead record, so a finding can be traced to a cohort months after the assets have been rotated out. |
| Hypothesis | Text | What you believe and why, with a because in it, and here the reason is usually about the buyer: this hook will raise accepted leads because the champion has to justify the problem internally. |
| Variable | Text | The single thing being changed. With the volumes available in this category, a test with two variables will never produce a difference anybody can attribute to either. |
| Control | Text | What the variant is compared against, named exactly, including which version of the list and which landing page. Both drift during a run long enough to be readable. |
| Variant | Text | What is being tried, described so somebody could build it: the cost-of-problem hook, the ungated summary, the calculator instead of the report. |
| Audience | Text | Who sees the test, identical on both sides, and from the same list version. A list refreshed mid-test changes who one arm reaches without changing anything visible. |
| Where it runs | Text | The platform, the campaign and the placement this test runs inside. A test spanning a professional network and a search surface is two tests, because the intent behind each is different. |
| Primary metric | Text | The one number this test is decided on, chosen before it starts. Where the full outcome lags, name the proxy here and say in the row that it is one. |
| Minimum run | Text | The shortest run before anybody looks, set from the segment's own cycle rather than from patience, and long enough for both arms to have enough accepted leads to compare. |
| Read date | Date (YYYY-MM-DD) | The day the result is read, set from the result lag rather than from convenience, and after both arms have had the same time to mature. |
| Decision rule | Text | What each outcome means, written before the test starts. Inconclusive will be the common result at these volumes, and the rule has to say what happens then. |
| Owner | Text | The person who builds the test, reads it on the read date, and tells sales that both arms are to be handled identically. |
| Result | Text | What happened and what was decided, written on the read date, including the list refresh or quarter-end that made the run unreadable. Blank until then. |
| ICP segment | Text | The slice of the ideal customer profile this test runs against. A message that works on a small company often fails on a large one, so the segment is part of the finding. |
| Funnel stage | Text | Where the test acts: awareness, demand capture, acceleration, expansion. A test run at one stage says very little about another, and mixing them makes the row unreadable. |
| Result lag | Text | How long after the change the outcome becomes readable, from your own pipeline. It sets the read date, and it is the column that stops a test being judged on the fastest half of its cohort. |
The lag is the whole problem
Testing in a business with a long sales cycle is hard for one reason, and it is not sample size. It is that the thing you care about happens months after the change, and by then the account has moved on: the creative has been rotated, the list refreshed, the budget adjusted, the market slightly different.
There is no way to remove the lag. What a test plan can do is make the team honest about it, which is what the result lag column is for. Fill it from your own pipeline — how long from a lead arriving to an opportunity being accepted — and then set the read date from it rather than from when somebody would like an answer.
Where the full lag is longer than anyone will wait, the answer is to name a proxy and say so in the row. A sales-accepted lead is usually readable in weeks and correlates reasonably with what follows. A form fill usually does not correlate with anything. Writing which proxy is being used, and that it is a proxy, is the difference between a cautious finding and a false one.
Segment first, because the message is segment-specific
The ICP segment column earns its place because messages do not travel.
A hook built around the cost of manual work lands on a company big enough for that work to be somebody's whole job, and means nothing to a company where one person does everything. A security-led message lands on a regulated buyer and reads as friction to everybody else. Test a message without recording the segment and the finding will be applied across the account, where it will fail most of the time for reasons nobody connects to the original test.
So the row names the segment, and the finding is written as a statement about that segment. If it matters whether the result transfers, that is a second row.
One stage, because the events differ
The funnel stage column prevents a different kind of over-application.
A variant that wins at demand capture — against a buyer who was already searching — says almost nothing about what will work at awareness, where the reader has no problem in mind. The two are different jobs and they are judged on different events. Running one test across both produces an average in which the capture arm, which converts quickly and cheaply, carries the whole result.
Volume is a real constraint, so test big things
Most accounts in this category do not have the conversion volume to detect a small difference, and a plan that ignores that will produce a stream of confident conclusions from noise.
The practical response is to test larger things. The offer — a report against a tool against a working session. The segment — this industry against that one. The whole message rather than a line of it. Those produce effects big enough to read against the volume that exists.
Colour, button copy and minor variations belong to businesses with orders of magnitude more conversions. Running them here consumes the traffic that a real test needed and produces rows that cannot be believed.
The control drifts faster than you think
In a long test the control is not a fixed thing. Lists get refreshed, sales gets better or worse at following up, a competitor launches, a quarter ends and the pipeline pressure changes.
Two protections help. Run both arms simultaneously rather than sequentially, so that whatever moves in the market moves under both. And write in the notes anything that changed during the run — a list refresh, a pricing change, a sales hire — because at the read date those are the alternative explanations, and they will not be remembered otherwise.
Sequential tests, where the variant runs after the control, are almost never trustworthy in this category. The gap between them contains too much.
The sales handover is inside the test
There is a variable most plans forget: what happens to a lead after it arrives.
If the variant produces leads that are handled differently — routed to a different rep, called faster because somebody was excited about the test, or followed up with a different sequence — then the test is measuring the handling as much as the creative. This happens more often than anybody admits, particularly when the test is visible internally.
Write into the row that both arms are handled identically, and tell the sales team that. It costs one sentence and removes the most common invisible confound in this category.
Record the inconclusive ones, and say why
A large share of tests here will end inconclusive, because the volume is small and the lag is long. That is not a failure of the plan; it is the honest result.
Record it, and record the reason: not enough accepted leads on either side, the list was refreshed mid-run, a quarter-end distorted the second half. Those notes are what let a future version of the test be designed better, and they stop the same idea being proposed every year as though it had never been tried.
Before you start the test
Every row has a hypothesis with a because in it. Every row names one variable, one ICP segment and one funnel stage. The result lag is read from your own pipeline and the read date is set from it. Where an early signal is being used, the row says plainly that it is a proxy. Both arms run simultaneously and are handled identically after the lead arrives. And the decision rule covers the outcome where nothing moves, which here will be the most common one.
The general template, and other industries
Test plan template
A free test plan template as a CSV and a Markdown file: one row per test, with the hypothesis, the single variable, the read date and the decision rule.
Test plan template for Ecommerce
A free test plan template for ecommerce as a CSV and a Markdown file, with columns for the catalogue segment, the promotion window and the effect on returns.
Test plan template for Fintech
A free test plan template for fintech as a CSV and a Markdown file, with columns for the product, the claim under test and the review that cleared both arms.
Test plan template for Healthcare
A free test plan template for healthcare as a CSV and a Markdown file, with columns for the service line, the claim under test and the clinical review.
Test plan template for Real estate
A free test plan template for real estate as a CSV and a Markdown file, with columns for the listing or market, the stage of sale and the sample caution.
Templates that go with it
Campaign brief template
A free campaign brief template as a CSV and a Markdown file: eighteen fields, with notes on what belongs in each one and how to answer it.
Creative brief template
A free creative brief template as a CSV and a Markdown file: one row per asset, with the hook, the single message, the proof, the specs and what to avoid.
Performance review template
A free performance review template as a CSV and a Markdown file: one row per line, with planned against actual, the cause, and a decision with an owner.
Related reading
Questions
Put frontier AI to work on every ad account you run.
Tempio connects your ad accounts into one workspace and hands your own AI the numbers and the tools. Every change it writes is a draft until you approve it, or until a rule you wrote does.
Request early access- Read and draft by default. Approve is a separate permission you grant.