The Back Page
How the index is made.
Every number on this site is either read from a retailer storefront or computed from those readings — nothing is estimated, nothing is sponsored. This page is the full recipe.
Provenance: where the data comes from
The catalog is ingested from retailer storefronts (Shopify product feeds), normalized, and exported to a
committed dataset the site builds from. Each model and offer carries a provenance field naming its
source storefront and a confidence grade. The current build reads
714 live offers across 43 retailers, last seen
Jul 10, 2026. Prices refresh nightly; the site is rebuilt from the fresh export.
The density gate
A model only earns its own page once it has at least two verified specs and at least one live offer. Skeleton records are tracked and counted, but never generate thin pages: of 669 raw catalog entries (661 distinct models after cross-listing dedupe), 346 pass the gate today. The rest appear in the database table with whatever is honestly known — an em dash where nothing is.
The index floor
Retailer feeds carry accessories, bare motors, forks, controllers and open-box clearance units alongside complete bikes. Before any row can feed a median, a deals board, THE INDEX strip or a ranking, it must clear the floor: a same-currency price of at least $800 and at least one headline spec (motor W, battery Wh or claimed range). Today 208 CAD rows and 193 USD rows clear it. Rows below the floor stay fully visible in the database tables — they just can't move a statistic.
The Value Score
The index's signature composite, computed within one market at a time — CAD prices are only ever ranked against CAD prices, USD against USD, so a currency never distorts a score. A model qualifies in a market when its best offer there clears the index floor and it carries ≥2 of the three headline specs; 296 models qualify in at least one market right now. Within each category-and-market pool:
specNorm = mean of present, normalized specs
motorW/1000 · batteryWh/1000 · rangeKm/120 (each clamped 0–1)
priceNorm = 1 − rank-percentile of best same-currency price
within the category-and-market pool
(cheapest model scores 1, priciest 0)
VALUE SCORE = round(100 × (0.55 × specNorm + 0.45 × priceNorm)) Scores are comparable within one category-and-market pool, not across categories or currencies. A model sold in both countries carries two scores — its page names the pool behind each. Models that don't qualify simply don't rank — no score is ever invented. The boards — the category rankings' permanent home, formerly at /best/ — and the verdict box on every model page are ordered by this number and recompute on every nightly build.
Deal verification
A markdown is listed only when the retailer's own storefront shows a compare-at (list) price above the current price — the strike-through you'd see on their site, read nightly. We never infer discounts from price history guesses and never write "up to". Today that's 82 genuine markdowns in CAD and 142 in USD, each labeled with the date the price was last seen.
Store types
Every merchant on the stores board carries a computed type, judged on what its floor actually stocks. A store's house marque is the brand run by the same operation (Aventon the store selling Aventon the brand), resolved from the catalog — an explicit override map first, then slug and name normalization. A house floor sells only its own marque; a reseller sells only other makers' machines and has no marque of its own; a hybrid runs both at once — a house shelf and a reseller floor. The type is recomputed nightly and never touches the Store Index score, which is the same arithmetic for every floor.
Markets and currency
The offer's currency is the market source of truth: CAD offers make up the Canada edition (the root site), USD offers the United States edition. The two never mix in a table column, a median, or a deals board. Canada: 208 models, median $2,900 CAD. United States: 193 models, median $1,699 USD. Statistics use medians, not means — one $16,000 Stromer shouldn't move the market.
Photography
324 of 381 models carry the brand's own product photography, hotlinked from the source storefront's CDN. Models without a photo get a designed spec tile — never a broken image, never a stock photo of "a bike".
Independence
The Ebike Press is an independent publication. Every brand and store is listed and scored under exactly the same
rules — same gate, same score, same deal verification — and no listing is paid or favored. Some outbound links
may become affiliate links, always tagged rel="sponsored"; affiliate status never affects ranking,
which is pure arithmetic.
Use the data
The dataset behind the site is published as JSON on the data page, with a citation block and an llms.txt for machine readers.
The numbers behind this page
- 661
- distinct models
- 346
- pass the gate
- 296
- value-scored
- 224
- live markdowns