What this site is

WheelScore is a car catalogue with one opinionated feature: a rating model that refuses to let small samples win. It is deliberately narrow - a fixed catalogue of 119 cars, three criteria, no user profiles, no comment threads, no advertising and no tracking - so that the numbers on the page can be trusted and audited.

It is not a buying guide, a price comparison service or a news site. Where the site does not know something, it says so instead of guessing.

The catalogue

Cars are grouped into 10 categories, each with a body style, a market and a model year, and each carries a full specification set - engine, drivetrain, dimensions, kerb weight, load space and performance figures. Every car has a stable slug used in URLs, so links do not rot when a spec is corrected.

The catalogue can be filtered by category, body style, fuel, drive, seating, year, price and dimensions, and sorted by score, votes, individual criteria or raw specification (11 sort orders in total). Filters live in the URL, so any view can be linked or bookmarked.

Where specifications come from

Specification figures are manufacturer-published values for a stated model year and market, generalised across trims and rounded for readability. They are reference data typed into the catalogue by hand - not measurements taken by this site, and not a promise about any individual car.

Reference table
Kerb weightPublished DIN/EU figures for the base trim; real cars gain weight with options.
0-100 km/hManufacturer claim, usually with one person aboard and ideal conditions. Independent tests are frequently slower.
Consumption / rangeWLTP or EPA cycle figures depending on the market. Real-world results depend on speed, temperature and driving style.
PriceIndicative launch price in the market stated, before options, taxes and incentives. Never an offer and never updated automatically.

Each car page repeats the market and model year next to the figures, and the footer carries the same disclaimer, because a spec table with no provenance invites the reader to assume more precision than exists.

Specifications are manufacturer-published figures for the model year and market stated, rounded for readability. Real cars differ by trim, market, options and tyres. Prices are indicative at launch and are not an offer.

Where the photographs come from

Every picture on this site is a photograph of the car it is attached to, downloaded from Wikimedia Commons and served from this server rather than hot-linked. Only four licence families are accepted - CC0, public domain, CC BY and CC BY-SA - and a file whose licence Commons cannot name is never used. Nothing here is manufacturer artwork, press photography or a drawing.

The files are re-encoded to a maximum width of 1,280 pixels. They are real photographs of the model, not always of the exact trim, model year or market the specifications describe: the cars are the same shape, the badges and colour may not be.

Each car page prints the credit its licence asks for. All 119 credits are repeated here:

Photographs exist for 119 of the 119 cars in the catalogue. Where no freely-licensed photograph could be found, the page says so instead of illustrating the car with something made up.

How it is paid for

There is no advertising, no affiliate links, no sponsored listings and no paid placement. Nothing on this site can be bought: the ordering comes from the ratings, and the ratings come from whoever shows up and rates a car they know. A site that cannot sell a position has nothing to sell at all.

Because no third-party scripts are loaded, browsing here also means no data about you leaves the server for an ad exchange. The privacy notice is short for the same structural reason, not coyness.

Accessibility and performance

  • Every page is server-rendered HTML. Rating, filtering and account management all work with JavaScript disabled; scripts only remove full page loads.
  • The rating form is a real radiogroup with labels, keyboard-operable and screen-reader friendly, with errors announced through role="alert" regions.
  • No inline scripts or styles, so the Content Security Policy stays strict and nothing third-party is required to render a page.
  • There are no npm dependencies and no build step: the whole site is Node's standard library, a little CSS and a few small modules.

Using the data

The JSON API is the same code path the pages use, so it cannot disagree with them:

Reference table
<code>GET /api/meta</code>Criteria, categories, filters and score limits.
<code>GET /api/cars</code>Filtered catalogue with scores; accepts the same query parameters as the catalogue page.
<code>GET /api/cars/:slug</code>One car: specifications, scores and recent ratings.
<code>GET /api/stats</code>Site-wide counters and the global mean used as the prior.
<code>GET /api/me</code>Everything stored about the signed-in account (GDPR access).

Writes require JSON, a session or anonymous voter cookie, and a CSRF token. Rate limits apply per anonymous identity.

Privacy notice Scoring method