How we count
When we say how many cars AttractCars covers, that number means something specific. This page is the definition. It is not a description of our intentions — it is the rule the database applies, written out.
1,099,187 verified, active, unique listings, counted at 04:21 UTC on 26 October 2026.
That figure is counted from a snapshot of the listings, taken at the time it states. The search applies the same three rules but follows the listings as they change, and the lists of cars by make and by country are refreshed every hour, so the totals they show differ from it by whatever has changed since: cars confirmed again, sold or withdrawn, and any the search has yet to catch up with.
A listing counts only if it is verified, active and unique
All three must hold. Failing any one of them removes the listing from the number, and there is no category of listing that counts “partly”.
Active
- the listing is not marked removed or sold, and
- we confirmed it within its source’s freshness window. The window is set per source from how quickly that source’s stock actually sells — 6 hours for the fastest, then 12, 24, 48 and 72 hours (most dealer sites), 7 days, and 14 days for the slowest — and it is never lengthened to raise the number; and
- the most recent check found the page still available.
“Confirmed” means one of two things. Either we fetched the listing’s own page and it was still for sale, or the seller’s own current index — their sitemap or stock list — named it inside the window. We accept the second only from sellers whose index we have measured against their pages and found accurate, it never changes a price or any other fact, and it never replaces a direct check for longer than three windows.
A listing nobody has re-checked is a listing we can no longer claim is for sale, so it leaves the number on its own. We do not wait to be told.
Verified
- the fields that make a listing useful are present and pass validation: make, model, year, price, currency, country, a working URL, and either an odometer reading or an explicit “new” condition;
- the values are inside sane bounds — a year between 1900 and two years ahead, a price between 100 and 10,000,000, an odometer reading under 2,000,000 km;
- the source URL was reachable and returned a listing page; and
- the source has a current policy record permitting us to show its facts.
Unique
The same car is often advertised in several places at once — on the dealer’s own site, on its group’s site and at a partner dealer’s, say. Those are three listings and one car. We resolve them to a single canonical vehicle and count it once, through whichever listing we elected to represent it.
Resolution is evidence-based rather than a similarity guess: a VIN or a source republication resolves immediately, and everything else is scored on make, model, year, odometer reading, price, seller and location together. We bias hard against merging. Two identical cars at one dealer are usually two cars, and a wrong merge hides a real one from you — which is worse than an untidy duplicate.
What is always excluded
- Synthetic data. We generate sample listings for load testing and benchmarks. Every one is flagged in the database and excluded by construction, with a test that fails the build if that ever stops being true.
- Quarantined listings. When a source’s page layout changes and our parser starts producing worse results, those listings are held back rather than published. A coverage figure made of wrong listings is the one thing this product cannot afford, so we never release them to restore a number.
- Sources we may not use. Anything whose policy record forbids crawling or display.
- Dead links, expired listings and the duplicates we can establish, by the rules above. Because we bias against merging, a car republished elsewhere with nothing that ties the two adverts together is counted twice until we can tie them: we would rather that than hide a real car.
What the number is not
It is not an estimate, a projection, or the number of pages we have ever seen. It is not the number of listings in our database — that is larger, and includes everything we have retired. We do not round it up, and we do not describe a target as though it were a measurement.
If we ever claim to be the largest automotive index in a market, it will be because this number, measured on the day, supports it.
Price comparisons
Where we show a price signal, it states a position within a stated comparison set — “cheaper than most of 34 similar cars” — and never a valuation. The comparison holds country, currency, make, model, model year, odometer band, fuel, transmission and condition fixed, and we show the sample size so you can judge it.
Below a minimum sample size we say nothing at all, rather than hedging or quietly widening the comparison until a number appears. Most cars get no signal, and that is the design working rather than a gap.
Freshness and dead links
Every result shows when we last confirmed it, and a tap on that line opens “About this listing”: who sells the car and the address its link opens, when we last read its advert and whether the seller’s own stock list has named it since, how often that seller’s cars must be confirmed, what kind of price and what kind of photo it shows, and that it is counted once. The same panel also explains what holds for every result — that we sell nothing, what “counted once” means, which offers are left out, and that no place is paid for. Each search result is checked against these rules again at the moment it is shown; when that check cannot be made, the result says “Not re-checked just now” instead of a time, and claims none of the rest.
A single failed check never retires a listing — sites have bad afternoons — but a 404, a 410, a redirect to a category page, or an explicit sold marker does, and so does a sustained run of failures.
We publish our dead-link rate internally as an operational metric and intend to beat the market on it. It is the honest measure of whether an index like this is worth using.
More on where the data comes from and how we treat the sites we read: our crawler policy.