The 2017 BMW 3-Series sits at a median of $16,995 across live Canadian listings. Most cars land between $13,000 and $21,000, so if you're seeing a price outside that band, you're looking at either an unusually rough example or someone testing what the market will bear. That $8,000 spread is your negotiating room. Anchor to the median and work from there.
Median mileage on these is 140,000 km. That's a useful reference point, because it tells you what a fair-priced car should read on the odometer. A 2017 with 90,000 km deserves to sit near the top of the range. One pushing 180,000 km should be closer to the floor, and you should treat any asking price near $21,000 on a high-km car as a hard no.
What mileage actually costs you
Every extra 10,000 km knocks about $754 off the price. Do the math and it adds up quick. A car 40,000 km above the median should run you roughly $3,000 less than one sitting right at 140,000 km, all else equal. Flip that around and it becomes a checklist: two similar cars, one has 40,000 fewer kilometres, and the seller is only asking $800 more? Take the lower-km one.
Use that $754 figure to sanity-check any listing. Read the odometer, compare it to the 140,000 km median, and adjust the median price up or down accordingly. If the asking price is way above where the mileage math lands, the seller owes you an explanation. If it's below, dig into why before you get excited.
We've flagged 5 deals on the 2017 3-Series in the last 90 days. Not a flood, but enough to say fairly priced examples do surface if you're patient and know your number going in.
Numbers reflect live listings across Canada over the last 90 days, filtered for outliers. Data as of . Prices in CAD.