How we calculate our estimates

Most e-commerce analytics tools show a number without saying where it came from. This page sets out our method in full, including its limits — those are part of the product, not fine print.

Published factModeled from a real source

Two kinds of figures, never conflated

Every number we display carries its provenance. A published fact is data an official source publishes under a legal obligation: an ad's reach, which the platform publishes itself, or a company's accounts, which the government publishes. We do not compute it, we report it. Anyone can verify it. Modeled data is computed by us from a real input specific to the store, combined with published sector averages. It is shown with a ≈ sign — a published fact never is. A sector benchmark is a market average, with no data specific to the store. It serves as an input, never as a result: we publish no estimate that would rest on it alone.

The published fact: European ad reach

The EU Digital Services Act requires large platforms to publish, for every ad delivered in the European Union, the number of people reached — commercial ads included, not just political ones. This data has two rare properties. It is exact, because it comes from the platform that delivered the ad. And it has no volume floor: a tiny store appears as precisely as a large brand, where conventional audience panels report nothing below tens of thousands of monthly visitors. We show it as-is: cumulative since the ads started running, within the EU, in unique people. Never turned into a monthly figure or a visit count without saying so.

Reported revenue, when the company publishes it

On a store page, when its company publishes its accounts, the revenue shown is the figure it reported: a published fact, which our estimate never replaces. Many French stores publish in their legal notice the SIREN number of the company that runs them. We read it on the store itself, then we read that company's published accounts in the Annuaire des Entreprises, the French government's public company directory, where anyone can check them. It is a published fact: it is shown with the solid dot, the year of the accounts, the company's name and the link to its record. We only show it if the company's name appears in the store's domain name. A store may name another company than its own in its legal notice, its service provider or a store whose notice it copied: without that match, the store page says which company its legal notice names, gives the link to its record, and does not show its revenue. This figure covers all of the company's activities, not just this store: a company that runs several stores, shops or other businesses counts them all. We never read or show a person's accounts: a sole trader is a person, and their number is not kept. A company's accounts are reread once a year.

Estimated revenue

We start from the store's visits from Google over its last 12 complete months, estimated by DataForSEO (organic results and Google Ads). A single formula, built and tested on 40 companies whose revenue is published, turns them into annual revenue: an amount per visit, plus a base that represents the typical level of a store that advertises. The store page shows it per month, the year divided by 12, preceded by the ≈ sign and with two ranges, except at the cap (see its limits).

Its accuracy, measured

We tested the method blind: each company is estimated by a calculation that has never seen it. Out of 40 companies whose revenue is published, 20 fall between half and double their true revenue. The true revenue falls within the likely range in 1 out of 2 cases, and within the wide range in 8 out of 10 cases. It is an order of magnitude, not an exact figure: the store page shows both ranges, except at the cap.

Its limits

Small stores are overestimated: no estimate goes below a base of about €32K per month. Very large stores are underestimated: the estimate is capped at about €12M per year, i.e. €1.0M per month: at the cap, the store page shows “≥ €1.0M / month” with no range, because beyond that our method can no longer tell very large stores apart; a range bound above the cap reads “over €1.0M / month”. A store that sells mostly through its ads, its emails or direct visits, and little through Google, is poorly seen by this method. We estimate neither a single day's revenue nor a number of sales.

When we show no estimate

Until a store's Google traffic has been collected, the store page says that its estimated revenue is pending, and why: never a zero. Collection covers the stores in our corpus and tracked stores. If a store has no known Meta ad in the European Union, its company publishes nothing and no estimate is calculated, we have no real data about it: the store page shows neither revenue nor ad activity.

Estimated ad spend

published reach × frequency × CPM for the country and month ÷ 1,000 = spend We estimate what a store spends on Meta (Facebook and Instagram) from the same published reach, with no additional data. The frequency used is 2 impressions per person reached, with no variation by sector, since no source publishes one. The CPM, the price of a thousand impressions, is for each country the lowest and the highest published CPM, converted at the European Central Bank exchange rate: Lebesgue (e-commerce, July 2026) and Enhencer (e-commerce, 2024 forecast) — the cheaper of the two is not the same in every country. Seven countries (Bulgaria, Czechia, Estonia, Latvia, Lithuania, Romania, Slovakia) have a single published value: their range comes from seasonality alone. In Germany, the low end is the median of a German agency, measured on sales and lead-generation campaigns, not e-commerce alone. No source publishes a CPM measured by country and by month in Europe: we apply a common monthly index to every country, November being the most expensive, taken from series published by Gupta Media, Superads, Bïrch and Good Rebels. It is an assumption, not a measurement. Cyprus and Malta have no published CPM: their reach is not valued. For a single ad, the figure shown is a floor. An ad running for months has reached the same person far more than twice, and the low end uses the lowest published CPM. The high assumption (highest CPM, same frequency of 2) is not a ceiling: an ad that runs for a long time probably spends more. For a store, the daily spend in “At a glance” is a minimum, and the store page writes it “at least”: it takes the low end of that range (the lowest published CPM, the low assumption) for each of its ads whose reach we have read. Ads launched on the same day form one campaign: only the largest counts, never the sum, because the variants of one campaign often reach the same people. Ads whose reach has not been read are not included: the store page says how many ads read, out of how many that ran over the period, the figure rests on. Every impression is paid for, even when two ads reach the same person — reach, not spend, counts each person only once. The location fees Meta has billed on top of spend since 1 July 2026 (5% in Austria, 3% in France, Italy and Spain) are not counted, nor are TikTok and delivery outside the European Union.

Active ads per week, and what our list knows

The “Revenue” card on the store page has a second tab: week by week over one year, the store's Meta ads that ran at least one day in the European Union. Their dates come from our ad searches, with no extra reading. We only draw the weeks for which our list of its ads is complete. Once per store, we read every page of its ad search, stopped ads included. Meta's library keeps an ad that ran in the EU for one year after it last ran, and a reading can stretch over two days: our list is complete from the year before that reading up to two days before it. Only the weeks entirely within that period carry a number and a bar. All the others are marked “Partial history”, with no number and no bar: before it, ads stopped for more than a year are no longer there; after it, our following searches only reread the most viewed ads. A low bar there would be misleading. When a store's search has too many pages to be read to the end, or we have not read it in full yet, we only know its most viewed ads: the store page then draws no chart, and says why. Running days. An ad counts from its first day up to today as long as it is running, that is, as long as one of our searches has recently seen it active and none has seen it stopped; otherwise up to the last day we saw it. The spend in “At a glance” counts the same days, and the continuous running period is counted over all its known ads, not only this year's.

Frequently asked questions

Where exactly does the reach data come from?
From the ad library Meta publishes under the EU Digital Services Act. Every ad delivered in the EU discloses the number of people reached, broken down by country. We report it unmodified.
How do you estimate a store's revenue?
From its visits from Google over the last 12 months, with a formula tested blind on 40 companies whose revenue is published: the true revenue falls within the likely range in 1 out of 2 cases and within the wide range in 8 out of 10 cases. When the company publishes its accounts, the store page shows its reported revenue instead.
Can two stores be compared on their revenue?
With care: reported revenue covers all of the company's activities, not just its online store. To compare their ad activity, active ads per week and the spend in “At a glance” are counted and calculated the same way for every store.
What happens if a merchant does not want to appear?
Removal means deletion, not a pause: we erase the data derived from their store, it disappears from our public pages and our sitemap, and we stop visiting it.

VuekoBot