I'm a hobby watchmaker so I send and receive small (under 500g) parcels via Canada Post quite often. I'm also a retired software engineer, so I started to wonder how Canada Post calculates how much it costs to ship a small package to various addresses within Canada. It turns out, there's a Rate Code Table, which gives the rate code (basically the price) from a given origin postal code to every other postal code or Forward Sotation Area (FSA = the first three characters of your postal code). The Rate Codes then need to be mapped to an actual dollar figure which is published by Canada Post in a massive lookup table. Together with a shapefile of the FSAs from Statistics Canada (and a bit of python), I was able to produce this Choropleth of the base cost to ship a small (500g) parcel from Vancouver to everywhere else within Canada via Xpresspost. The actual price at the post office would have a fuel surcharge (a percentage that's added to the Rate Code and which is updated weekly based on the average price of diesel from two weeks before) and taxes (PST+GST / HST)added on top of the base cost.

Canada Post seems to assign rate codes based both on distance but also on the logistical difficulty in delivering to the destination. I was surprised that parts of eastern BC had the same rate code as rural Newfoundland, both area remote and rural, but one is over half way to Europe and the other is a 10 hour drive from Vancouver.

Posted by petehudso

6 comments
  1. > Choropleth

    Today i learned a new word.

    But yeah, neat map! I too wonder why delivering to eastern BC is considered as difficult as delivering to newfoundland or parts of the NW Territories.

  2. Sources:

    Rate Code tool: [https://www.canadapost-postescanada.ca/cpc/en/tools/rate-code-table-lookup.page](https://www.canadapost-postescanada.ca/cpc/en/tools/rate-code-table-lookup.page)

    Rate Code price table: [https://www.canadapost-postescanada.ca/cpc/doc/en/support/prices/consumer-prices.pdf](https://www.canadapost-postescanada.ca/cpc/doc/en/support/prices/consumer-prices.pdf)

    Stats Canada FSA shapefile (Sept 2022): [https://www150.statcan.gc.ca/n1/en/catalogue/92-179-X](https://www150.statcan.gc.ca/n1/en/catalogue/92-179-X)

    Python libraries used: re, pandas, geopandas, and matplotlib

  3. How is it more expensive to ship something to St. John’s than to Iqaluit? I’ve worked in North American logistics for 15 years and I can’t quite get my head around that one

  4. With a quick look at a map, those areas in Eastern BC seem to be covered by the Banff and Jasper National Parks.

    More importantly, they seem to be the areas that are predominantly the Rocky Mountains.

    My guess is, that little indent of yellow is for Golden and Revelstoke, but the rest of that area is probably very difficult to reach (like, hermits that built a house on the side of a mountain), or is also land not inhabited by anyone.

  5. Not to sound like an ad, but I used RiderExpress to send a 17kg tote to my parents in Sicamous for only 45 dollars, so that could be an option if the person on the other side is able to wait and pickup, or needs same day delivery 🙂 They stop in revelstoke and banff and plenty of other small towns as needed.

    Their insurance limit is really low though.

    When I took the bus as a passenger, they gave me a call to let me know they’d be early, but not when they’re running late, and that seems to be the case with packages as they were 45 minutes late on delivery and didn’t give my folks a call, so do keep in mind, it’s not a perfect solution.

Comments are closed.