EbikeMetrics

How we collect data

Every number on this site should be traceable to a source you can open yourself. Here's exactly how it gets here.

Specs

Specs are read from each manufacturer's own product page, on a schedule. We enumerate catalogues through the stores' own public product feeds rather than crawling every page, we identify our crawler in its user-agent, we honour robots.txt including any Crawl-delay, and we keep a log of every request we make.

Extraction is unit-anchored: to record a battery as 733 Wh, the parser has to see the number and the unit together on the page. If we can't read a figure with confidence, the field stays empty and the page shows a dash. We never fill a gap with a figure from a similar model, and we never estimate.

Across the 108 models in the database we currently find 81% of the specs we look for , and 13 models are flagged for human review because something on the manufacturer's page contradicted itself.

When a manufacturer's page contradicts itself

It happens often. A bike is listed as Class 1 in one place and 28 mph in another; a range figure in a banner turns out to be a range-extender number. We run consistency checks — watt-hours against volts × amp-hours, class against top speed, peak power against nominal — and when they fail we flag the model rather than pick a side. Flagged pages say so at the top.

Prices

Checked against manufacturer stores and stored as an append-only log, so the price history is a record of what we observed and when — not a reconstruction. A drop of 5% or more is queued for review before it's called a deal.

Laws

Every law page cites the statute and carries the date a human last verified it. Pages older than 90 days are marked as due for re-checking. We monitor sources for changes, but a change never edits a page automatically — someone reads the statute first. These pages are informational and are not legal advice.

Owner reports

Submitted by riders, verified by email, and read by a person before publication. We flag physically implausible figures, duplicate patterns and submissions that look like marketing. We publish the conditions alongside every figure — rider weight, terrain, assist level — because a range number without them means nothing.

Where a model has fewer than five reports, we say so and label the average as thin. An average of two numbers is not a finding.

What we don't do

Corrections

If a number here is wrong, it's worth more to us to fix it than to defend it. The source link is on every page — send us the discrepancy and we'll re-check and note the change.