How the audit decides
Each subreddit is judged against the rest of your account, not on its own. Small subreddits borrow strength from the account; big ones keep their own numbers. A subreddit is marked cut when the audit is at least 90% sure its cost per conversion is above your target, and spend more when it is at least 90% sure it's below. Everything else is "keep testing".
The problem with per-subreddit CPA
Reddit Ads reports cost per conversion for each subreddit as spend divided by conversions. That estimate is fine when a subreddit has hundreds of clicks and wild when it has a handful. Four clicks with no conversions reads as an infinite cost; four clicks with one conversion reads as a spectacular one. Neither tells you much. Advertisers who act on those numbers cut good communities and pour money into lucky ones.
How it thinks
- It borrows strength from the whole account. Your other subreddits show what conversion rates are normal for your product, and how much they vary. A subreddit with a few clicks is judged mostly on that, and moves away from it only as its own evidence builds up. A subreddit with thousands of clicks is judged on its own numbers.
- It asks how likely the subreddit is to miss your target. Not "what is its CPA?" but "how sure are we it costs more than you're willing to pay?" The audit only calls a cut or a scale when that certainty is at least 90%.
- It won't cut too early. A subreddit has to have spent about what one conversion is worth to you before it can be cut, however bad it looks. Before that, even a subreddit exactly on target would usually show no conversions, so the case for cutting would rest on the account average rather than on the subreddit itself.
- It shows a range, not a single number. The bars show where the true cost per conversion probably sits (an 80% range); the dot is the middle estimate. A wide bar means "we don't know yet".
The same report always gives the same answer. There's no randomness in it.
If you don't enter a target, the account's overall cost per conversion is used. Reports with fewer than 20 conversions in total get a warning, because most calls there are "keep testing".
Verdicts
| Verdict | What it means |
|---|---|
| Cut | At least 90% sure this subreddit costs more per conversion than your target, and it has spent enough for that to be a real finding. |
| Spend more | At least 90% sure it costs less per conversion than your target. |
| Keep testing | Neither. There isn't enough evidence yet, or it's close to your target. |
For a cut subreddit, "over target" is the part of its spend that looks wasted at your target cost per conversion. It's an estimate of money you could move, not a guarantee.
How well it works
The audit was tested on over 4,000 simulated accounts across 24 situations where every subreddit's true conversion rate is known, and compared with judging each subreddit on its dashboard cost per conversion.
| Account | Cuts that were right | Good subreddits cut | Dashboard CPA: good subreddits cut |
|---|---|---|---|
| Typical, 25 subreddits | 97% | 3% | 22% |
| Small, 6 subreddits | 96% | 2% | 24% |
| One subreddit takes most of the spend | 97% | 2% | 25% |
| A few disasters among good subreddits | 96% | 2% | 33% |
| B2B: 0.3% conversion rate, $6 clicks | 98% | 1% | 42% |
| Tiny budgets, about $40 per subreddit | 91% | 1% | 45% |
On typical accounts the cuts catch about 85% of the money spent above target. The 80% ranges contain the true cost per conversion 78–83% of the time in every one of these. On tiny budgets the cuts catch about a fifth of the waste, because there isn't enough data to be sure; the audit says "keep testing" rather than guess. When conversion rates swing from day to day, the 80% ranges still hold about 80% of the time and 95–97% of cuts are right, as long as the report has a date column (see below). When recent conversions haven't come in yet, a 7-day report with a two-day delay used to cut 9% of good subreddits; it now cuts 4%, and its 80% ranges hold 78% of the time instead of 67%. In simulated accounts whose ads wear out over the report, the share of "spend more" money that was really over target going forward fell from 15% to 6% once the audit checked for fatigue, with no change on accounts that don't wear out.
Assumptions and limits
- One account at a time. What's normal for your product is learned from the subreddits in your file. With fewer than about eight subreddits that picture is weak, and results lean on each subreddit's own data.
- Cost per click is treated as fixed within each subreddit over the report period.
- View-through conversions. If a subreddit shows more conversions than clicks, conversions are capped at clicks and you're warned. Pick a click-through conversions column if your export has one.
- Late conversions are allowed for. Reddit credits a conversion to the ad click, up to 28 days later by default, so the last few days of any report are missing conversions that haven't happened yet. With a date column, the audit estimates how quickly your conversions usually arrive, counts recent clicks for less, and tells you roughly how many are still to come. It only discounts clicks when the pattern is clear in your data, so a real slowdown isn't mistaken for delay; when the pattern is likely but not clear, it tells you conversions may still be missing without changing any call. And when a short or thin report can't rule out slower arrivals, a subreddit is only marked cut if it would still be cut with them, and the audit tells you how many it held back. Without a date column none of this can be checked, so the audit says so whenever it recommends a cut.
- Day-to-day swings are measured. If your export has a Date (or Day, Week, Month) column, the audit measures how much conversion rates swing between days beyond chance and counts each subreddit's data for less when they do. It tells you only when the swing shows up across your subreddits, not just in one or two, so random noise doesn't set off the warning. Without a date column it can't, and the ranges can be too narrow on a jumpy account.
- Ad fatigue is checked before "spend more". Ads often convert less as the same people keep seeing them, so the average over a report can flatter what the next dollar buys. With a date column, the audit checks whether conversion rates fell steadily across the whole account, separately from late conversions, which also thin out the last days. If they clearly did, each subreddit also gets a recent cost per conversion at the latest rate, and "spend more" is only given when that recent figure is also under target. It looks for one account-wide trend, so a single subreddit going stale while the rest hold steady still looks like a mediocre one; run the audit on recent date ranges.
- Subreddits are treated as exchangeable. The audit doesn't know that r/SaaS and r/startups are more alike than r/SaaS and r/gaming. Tiny subreddits are pulled toward the account as a whole.
The plan writer
The optional plan is written by a language model (DeepSeek's deepseek-flash) from the audit's output. It gets the numbers and verdicts above plus precomputed totals, and is instructed not to invent figures or contradict the verdicts. It doesn't change any verdict. Its subreddit suggestions are ideas to check, not tested results. The first three plans every 30 days are free; after that a plan costs credits. The audit and its verdicts are free either way. There is also a developer API.
Checking the work
The model was checked against an independent implementation in Python's SciPy, and the two agree to the cent. Finer numerical resolution moves results by under 0.5%. The file reader was tested on 20 export variants, including semicolon-separated European files, totals rows, currency symbols and view-through columns.
The model itself isn't published. The validation above is how you can judge it, and you can test it yourself: run the free audit on an export you already understand and see whether the calls match your judgement.
See it on your own numbers. The audit runs in your browser.
Run a free audit