The median 2019 BMW 3-Series in the Canadian market sits at $25,985, with a typical car landing anywhere from $23,989 to $28,860. That roughly $4,900 spread is your negotiating room. Pay near $24,000 and you're doing well. North of $29,000 and you're paying a premium the numbers don't back up.
Most of these cars have around 97,327 km on the clock. Use that as your yardstick. A car with meaningfully fewer kilometres justifies a price in the upper half of the range, while anything well past 100,000 should pull toward the bottom.
What mileage does to the price
Every 10,000 km knocks about $681 off the asking price. So a 2019 3-Series with 120,000 km should run roughly $1,500 cheaper than the median car at 97,000 km, all else equal. That's a clean way to sanity-check a listing: start at $25,985, then adjust up or down $681 for every 10,000 km the odometer sits below or above 97,327.
We've flagged 8 deals on this model year in the last 90 days. That tells you cars priced below what the mileage and the market support do show up, so there's no need to jump on the first one at $28,000. If a seller is asking near the top of the range, the mileage math gives you a concrete number to push back with.
Numbers reflect live listings across Canada over the last 90 days, filtered for outliers. Data as of . Prices in CAD.