Methodology
How cyclingcompass builds its data
Completeness is only useful if it's accurate. Here's exactly how shop data flows from many public sources into one trustworthy listing.
Many sources, one record
No single dataset knows about every bike shop. Open map data is broad but inconsistent; manufacturer locators are authoritative but only cover their own dealers; commercial place data is rich but licensed. So instead of trusting one source, we combine many, and keep each source's raw data exactly as we received it.
Every source record is stored immutably and content-hashed, which lets us re-run imports safely and detect when something changed. Nothing is overwritten across sources, so we never lose provenance.
Resolving duplicates
The same shop often appears in several sources under slightly different names, addresses, or coordinates. We run entity resolution to match those records to a single real-world shop, using name similarity, address, and geographic proximity. Confident matches are merged into one canonical record; the rest are kept separate rather than guessed.
When we merge, each field is filled by source priority: the most reliable source for a given field wins, so you get the best available name, address, hours, and rating in one place.
Brand affiliations
The brands a shop carries come from manufacturer dealer networks. When a shop shows up in a brand's official locator, we record an affiliation, which is what powers browsing shops by brand.
Attribution & limits
Open data is attributed wherever it's used, most visibly “© OpenStreetMap contributors” in the footer. We're also honest about the limits: a brand-new shop may not appear until it reaches one of our sources, and details can lag reality. If you spot something off, shop owners can submit a correction any time.
Primary sources
- OpenStreetMapOpen map seed
The community map of the world. Our free baseline of shop locations, used under the ODbL with attribution.
- Manufacturer dealer locatorsBrand networks
Trek, Specialized, Giant, Cannondale, Santa Cruz and more: the source of which brands each shop carries.
- Overture Maps & FoursquareOpen business data
Permissively-licensed open places datasets that broaden coverage and fill in business details.
- Google PlacesGap-fill & ratings
Used sparingly to fill gaps and add ratings, within the terms of the Places API.
See it in action
Explore cyclingcompass
Every listing you see is the product of this pipeline: merged, de-duplicated, and attributed.