Method
The whole formula, including where it fails.
An estimate nobody can check is worth very little. Every input, every constant and every known weakness is on this page, so you can disagree with a specific number rather than with the idea.
Creatives priced
5.4M
Products on index
12,000+
Model version
meta_spend_v3
Held-out score
Not yet run
01
Read the archive
Meta is required to publish every ad it serves for EU and UK delivery, including the reach each one got and the countries it was served in. We read that archive through its official API, inside its published rate limits.
02
Price the reach
Reach counts unique people; CPM prices impressions. Multiply by a frequency of 1.6, then price each country at what that country actually charges. Blending markets at an average rate introduces bias, not merely uncertainty.
03
Scale to global
The archive covers EU and UK delivery only. A US campaign is not zero — it is invisible. Dividing by the EU share of a global budget is the term that carries most of the model’s variance.
04
Convert to revenue
Divide by what that kind of product spends on ads as a share of revenue. A consumer mobile app spends about 35%; a B2B SaaS spends about 4%. One constant for both was the largest error this model ever made.
The chain, in one line
spend = Σ over countries [ reach(c) × 1.6 × CPM(c) ÷ 1000 ] global = spend ÷ 0.245 (EU/UK share of budget) revenue = global ÷ adSpendShare(kind, audience)
Constants
Every number the model uses.
Published benchmarks, not house estimates. Where a figure is a judgement rather than a measurement, it says so.
CPM by market, USD per 1,000 impressions
The mix matters far more than the level. An earlier table understated Italy by 27%, Poland by 48% and Czechia by 67%, which alone moved total spend by 12%.
Ad spend as a share of revenue
By what the product is and who buys it. The classifier already returns both; the model used to ignore them.
EU/UK share of global budget
8% – 75%centre 24.5%
The one term with no observation behind it, carrying roughly 55% of the model’s variance. Backed out against independent estimates for three companies it came to 24.8%, 9.2% and 37.2% — all inside this band, and ordered by how many countries the advertiser reaches.
Accuracy
We have not scored it, and we will not pretend otherwise.
There is no accuracy figure on this site. Scoring an estimate needs a held-out set of companies that publish real revenue, and ours is not yet large enough for a score to mean anything. Publishing one from a handful of companies would be worse than publishing none.
Until it clears, every figure carries the band the model produced instead. When the holdout is big enough the result gets published monthly whether it improved or not, and the months where it got worse stay on this page.
Limits
What this method cannot see.
Anything that does not advertise on Meta
A product growing through search, word of mouth or a single viral thread is invisible here. This measures one channel well rather than every channel badly.
Delivery outside the EU and UK
The archive is a European transparency obligation. Everything else is inferred through one uncertain division, which is why the bands are wide.
Unusually good or bad media buying
CPMs are benchmarks. An advertiser with an exceptional buy sits outside them and nothing visible from outside would tell you.
Revenue that is not driven by ads
Enterprise contracts, marketplace revenue and channel sales do not move ad spend, so the model does not see them at all.
Find something worth building.
Find something
worth building.
12,000+ products, priced from their own advertising, all of them under $500K a month — the range a small team can actually enter.