Skip to content
All blogs

Creative strategy

Pre-Launch Creative Scoring: Can You Predict a Winner Before Spending?

Marxx · 2026-09-26 · 11 min read

Every creative tool gets asked the same question in the demo: can it tell me which of these five ads will win before I spend on them?

It's the right question. A Meta learning phase on five variants is real money and two weeks you don't get back. If software could rank them first, that's the whole product.

Here's the honest answer, and it's the one we give on our own product page: no. We tested it. Creative embeddings, scored against outcomes, the standard approach. Once brand and objective base rates were controlled for, the signal did not hold.

That's worth sitting with, because most of the category will tell you otherwise. What follows is what "pre-launch scoring" actually means once you strip the prediction claim out of it — and why the honest version is more useful than the version that was promised.

Why prediction doesn't survive contact with base rates

A model looks at ten thousand ads, learns which ones performed, and scores your new one. Sounds sound. The problem is what the model is really learning.

It learns that ads from big brands do better. It learns that retargeting ads outperform prospecting ads. It learns that certain categories convert at multiples of others. Feed it your new static and it will confidently tell you the ad is strong — because you're a known brand running a mid-funnel objective in a high-intent category, which is a fact you already knew and paid nothing to discover.

Strip those out, and the creative signal that remains is thin. Not zero. Thin enough that acting on it costs more than ignoring it.

Look at what that means in practice. PetChef sells fresh dog food, and this is the founder eating his own product on camera to prove it is human grade. It is the kind of idea that either lands or is deeply strange, and there is no model that can tell you which in advance. It ran 30 days.

PetChef Meta ad: the founder eats his own dog food on camera to prove its quality

Here is the same brand, the same product and the same claims — preservative free, human grade, freshly made — as a comedy skit instead. Someone asks for harmful ingredients to be added to their own dinner, and the joke carries the argument. It ran 14 days, less than half as long.

PetChef Meta ad: a comedic skit asking whether you would add harmful ingredients to your own food

And the third: a category-news hook about India's biggest companies entering the dog food market and the noise around cheaper food. On paper this is the smartest of the three — it is timely, it has a real news event behind it, and it positions the brand against a trend. It ran 4 days.

PetChef Meta ad: India's biggest companies have entered the dog food market, and the buzz is all about cheaper dog food

Ask yourself honestly which one you would have scored highest before launch. The founder stunt ran seven times longer than the ad built on a genuine news event, and nothing visible in either creative predicts that. A spread of 4 to 30 days inside one account in one week is the thing a predictive score has to beat, and it mostly can't.

What you can actually know before you spend

Prediction is the wrong frame. Elimination is the right one. You can't rank five ads by future performance, but you can usually find the two that shouldn't launch — and that's most of the money saved.

Five checks, all answerable in ten minutes, none of them requiring a model:

1. Has this hook already run in this account?

The most common pre-launch failure isn't a bad idea. It's an idea the account already tested in March and everyone forgot. If your ads are decoded by hook type, this is a filter, not an archaeology project.

2. Is the hook already the category's default?

Benny's Bowl sells fresh dog food on exactly the argument you would expect. Feed fresh. Without the fuss. The badges along the bottom spell the claim out: 100% real chicken, zero preservatives, happier pets. It ran 42 days.

Benny's Bowl Meta ad: Feed fresh without the fuss — 100% real chicken, zero preservatives, no refrigeration, no cooking

Blep, in the same category, opens by questioning the safety of common pet food ingredients and lands on natural, no sugar, no preservatives. Different brand, different execution, same underlying claim — and PetChef, from the section above, is running it too.

Blep Meta ad: text overlays questioning the safety of common pet food ingredients — natural, no sugar, no preservatives

Three brands, one argument. If your fourth ad in that category leads with clean ingredients, it isn't a hook — it's the price of entry, and the viewer has already scrolled past it twice this week. This is a hard pre-launch fail, and no model is needed to catch it: search the category and count how many competitors are already saying it.

3. Does the format match the base rate you actually have?

Snitch's sunglasses line runs statics and videos side by side. This clean product static — a man against a clear blue sky, app discount code in the corner — has run 107 days.

Snitch Meta ad: a clean high-contrast static of a man wearing sunglasses against a clear blue sky, with an app discount code

Their high-energy video cuts for the same collection ran four days. A creator-led piece on face shapes ran 36. That isn't "statics beat video" — it's this brand's base rate for this product, and it's the only base rate that should inform a pre-launch decision. A global model that has learnt "video outperforms static" would have scored the 107-day ad down.

Before launch, the question isn't "is this format good". It's: in this account, at this funnel stage, what has this format historically been worth?

4. Does the offer have a named job?

An offer is a hook, a reward, an accelerator, or a hesitation-reducer. It should have exactly one of those roles, and you should be able to say which before the ad is built.

Porcellia Meta ad: a force-versus-sharp-knife metaphor contrasting brute-force marketing with precision, offering the first 10 pages of a growth guide free

"Get the first 10 pages of the guide free." The job is unambiguous: a hesitation-reducer for a cold B2B audience that won't hand over an email for a full download. Not a hook — the force-versus-sharp-knife metaphor is doing that — and not a reward. One job, named. The ad has been live 96 days.

If you can't name the offer's job in one word before launch, the ad usually has two competing arguments in it, and that is visible on a sheet of paper.

5. Are you testing five ads, or one ad five times?

vamayukt sells mangalsutras. This is the first of three ads running in the same window: a minimal design, an aesthetic line, free delivery and 50% off. It ran 11 days.

vamayukt Meta ad: Infinity Love, Modern Style — Rubykara minimal mangalsutra with free delivery and 50% off

The second is a three-layer design with a different aesthetic line and the identical offer. New product shot, same argument, same emotion, same everything that a decode would record. It ran 7 days.

vamayukt Meta ad: Elegance that shines in every look — three-layer mangalsutra with free delivery and 50% off

The third is the only one doing something different: the discomfort of wearing heavy jewellery to the office. That's a real moment, a real tension, and an argument the other two never make. It ran 4 days — the shortest of the three, and still the only one that could have taught the account anything.

vamayukt Meta ad: the relatable struggle of wearing heavy uncomfortable jewellery to work

A five-ad test where four share a hook type and an emotion is a one-ad test with a bigger invoice. This is the check scoring tools are genuinely good at, and it has nothing to do with prediction: decode your batch across hook type, offer type, ad type, emotion, social proof type, authenticity type and intended audience, and duplication is visible instantly. If four rows are identical, you don't have a test.

The pre-launch scorecard

Ten minutes per batch, before anything goes live:

Check Fail condition What it saves
Hook novelty, account This hook type ran here in the last 180 days Re-testing a settled question
Hook novelty, category Three or more competitors are running the same argument Paying to be ignored
Format base rate Format underperforms in this account at this stage Learning-phase spend on a known loser
Offer job You can't name it in one word An ad with two arguments
Test spread Two or more variants share hook type and emotion A test that can't produce a learning
Attribute coverage The batch leaves a dimension untested A quarter of guessing

Note what's missing from that table: a number between 1 and 100 predicting performance. Every row is a fact you can verify, not a forecast.

What the score is, and what it isn't
Sold as
"This creative scores 82. Launch it." A single number, no stated basis, no way to be wrong out loud.
Actually useful
"Three of these five share a hook type you last used in April, when it ran nine days. Two competitors are running the same claim. Nothing in this batch tests a new emotion."
The second one is checkable. That's the entire difference — you can find out it was wrong.

What replaces prediction: designing the test properly

If you can't know the winner in advance, the return comes from making the test cheap and fast rather than making the guess smarter.

  1. Test mechanisms, not wording. Four headline variations of the same idea produce one learning. Four different human tensions produce four.
  2. Make one variant deliberately uncomfortable. The founder eating the dog food is that variant. Batches where every ad is safe never surprise you, and a test that can't surprise you isn't worth running.
  3. Set the kill rule before launch, in writing. How many days, at what spend, against which metric. Deciding this after you've seen the numbers is how a 4-day ad gets nursed for three weeks.
  4. Let the long-runners write the next brief. Anything past 60 days in your account or your category is a verdict. That's a stronger input than any model output.
  5. Record what the ad was testing, not just what it said. Six months on, the hypothesis is the asset. The JPG isn't.

Once the test has run, the useful question changes from "will this win" to "is this decaying" — and that is measurable. Fatigue is a weighted composite of click-through rate, CPM, ROAS and frequency, with CTR carrying the most weight and frequency the least, sorted into five levels from healthy to critical. A falling creative has a shape. A future creative doesn't.

Where Marxx fits

Marxx decodes ads along seven dimensions — hook type, offer type, ad type, emotion, social proof type, authenticity type and intended audience — across your own full creative history from the connected account, not just the last thirty days, and across competitors in your category.

That gives you the six scorecard rows above as lookups rather than memory. It flags fatigue across five levels, and names eight diagnostic states when performance moves: offer fatigue, burnout starting, high CTR with low sales, costs rising but still working, clicks too expensive, only existing buyers left, wrong audience, and cold start failure.

What it does not do is hand you a number predicting a winner. We tried; the signal didn't survive base-rate control, and shipping it anyway would have been a nicer demo and a worse product.

Book a demo and we'll decode your own last quarter of creative live — hook types, duplication, and what your account has never tested.

FAQs

Can AI predict ad performance before launch?

Not reliably. Models trained on creative features mostly learn brand size, objective and category — and once those base rates are controlled for, the remaining creative signal is too thin to act on. Tools that claim otherwise are usually reporting a base rate back to you as a creative insight.

So what is pre-launch creative scoring good for?

Elimination rather than ranking. It catches hooks you've already tested, claims your whole category is already making, formats that underperform in your account, and batches where several variants are secretly the same ad.

How many creatives should I launch in a test?

Fewer than you think, and more different from each other than you think. Five ads sharing a hook type teach you less than three that each test a distinct human tension.

What's the most common pre-launch mistake?

Duplication that nobody notices. Four of five variants share a hook and an emotion, the test returns one learning, and the budget bought four copies of it.

Is longevity a reliable signal?

It's the most honest public one. You can't see a competitor's spend, but you can see how long an ad has run and how many near-identical copies are live. A 107-day static is a verdict; a 4-day one is a question.

When should I kill a new creative?

At the threshold you wrote down before launch. The number matters less than having set it while you had no numbers to rationalise around.

Does creative scoring replace testing?

No. It makes the test worth running. The score tells you what's redundant; the test tells you what works.

One size fits none. Let’s build your exact setup.

Hop on a call with our founder to see real-world use cases, cut out the noise, and isolate the exact tools that drive results for your business — complete with a personalized pricing plan.