Skip to main content

What's shipped. What it means for you.

Every meaningful change to AllCars, written for buyers — not for a changelog. Each entry says what changed, why it matters, and a short note on safety, privacy, and data handling.

v1.12.0 4 May 2026

Adaptive Bayesian shrinkage for thin segments

What changed

The pricing engine now applies per-segment shrinkage, tuned from observed within-segment and between-segment variance. Common cars (lots of comparables) keep their score. Rare cars (a handful of comparables) get pulled toward a sensible prior instead of producing wild bargains-by-accident.

Why it matters

Before: one underpriced unicorn could drag the whole segment median, spawning false "Steal" badges across thin slices of the market. After: scores are quieter on thin data and louder where the data is genuinely strong.

Safety, privacy & data handling

No new data is collected. No new fields are exposed. The change reduces the rate of falsely-loud "deal" badges, which lowers the surface for buyers being lured into low-quality listings on price-signal alone. Defence in depth, not a security fix per se.

v1.11.0 22 Apr 2026

Cross-platform de-duplication

What changed

Listings of the same physical car across different sources are now unified into a single vehicle record. The matcher combines image fingerprints, normalised contact matching, and structured spec match, with a "two signals or one strong + identity" rule. About 1,300 same-car merges are live across sources.

Why it matters

The same Mercedes posted three times by three accounts used to count as three cars in your search results, polluting price charts and inflating the impression of supply. Now you see one vehicle, one timeline, the lowest live price.

Safety, privacy & data handling

Image fingerprints are one-way perceptual hashes — the original images are not retained as personal data. Contact normalisation operates only on what's already publicly visible on a listing; no new personal data is collected, and no new identifiers are stored. Single-signal merges are explicitly forbidden, which lowers the chance of two unrelated cars being collapsed into one record.

v1.10.3 9 Apr 2026

Body-type veto in the matcher

What changed

The matcher now hard-rejects merges where both sides have a known body type and they differ — a coupe and a cabriolet can no longer be merged into the same vehicle, regardless of how strongly other signals agree. The same rule applies to fuel and colour. Pre-existing merges were re-checked; about 450 colour conflicts were auto-split in the same pass.

Why it matters

A Frankenstein price chart that flips between two unrelated cars was rare but real. The vehicle record you read should belong to one physical car, not a confusing average of two.

Safety, privacy & data handling

Strictly improves data integrity: some incorrect merges are removed, no new merges are created. No new data collected. The buyer-visible effect is cleaner price histories and slightly fewer collapsed listings — small, measurable, in the right direction.

v1.10.0 18 Mar 2026

Lemon flag (V × Q)

What changed

Deal scoring now decomposes into Value (price relative to comps) and Quality (everything else: photo count, mileage relative to age, description signals). The two combine multiplicatively, so a low-quality listing can no longer ride a low price to a "Steal" badge.

Why it matters

Akerlof's market for lemons, applied to a Cyprus car listing. Cheap doesn't always mean good. The score now reflects that.

Safety, privacy & data handling

Scoring change only. No new data collected. Reduces the likelihood that a buyer drives across the island for a "great deal" that's actually a lemon shouting buy-me. Indirect safety improvement, not a privacy or auth change.

v1.9.0 28 Feb 2026

Validation gate at the door

What changed

Every listing now passes through a strict validation gate before it reaches the index. Future-dated model years, mileages beyond what a car can physically survive, and descriptions that are nothing but a town name are rejected at ingest, not patched up downstream.

Why it matters

Upstream parsers drift. Without a gate, weird records leak into search results and price charts. The gate keeps the index honest even when an upstream source briefly misbehaves.

Safety, privacy & data handling

Tighter input validation reduces the defensive logic downstream stages have to carry, and cuts a class of malformed-data bugs at the boundary. Defence in depth. No change to how data is stored or who can read it.

v1.8.0 2 Feb 2026

Watchdogs and quality floors

What changed

Daily jobs now have three independent health checks: did the artifact change, is the success ratio within the rolling baseline, and did the schedule actually fire. Exit codes are no longer the only signal.

Why it matters

Listings stay fresh because the index is monitored on outputs, not on whether a script returned cleanly. A job that exits zero while producing nothing useful no longer hides on a green dashboard.

Safety, privacy & data handling

Reliability layer only. No data added, exposed, or moved. Improves the odds that the listing you see is actually current — the unspoken contract for a car aggregator.

Older releases collapsed for brevity. Anything that touches authentication, stored personal data, third-party integrations, or external endpoints is documented at this level of detail by default; small bug fixes and copy tweaks are not. If you're a security researcher and want a deeper account of a specific change, contact the team.