Typical Canadian rates, itemized, so you can sanity-check any quote before the hook drops.
The base formula. Nearly every light-duty tow is a hook-up fee ($75-$150: the truck coming to you and loading your vehicle) plus a per-kilometre rate ($3-$5) for the distance towed. Short in-town tows often land near the company's minimum charge.
Recovery is separate from towing. If your vehicle is in a ditch, snowbank or soft shoulder, getting it back to the pavement is recovery (winching, typically $150-$350 for simple pulls) and the tow that follows is billed on top. Two line items, one visit.
Heavy duty runs on different math. Semis, buses and RVs need wreckers billed at heavy rates (hook-ups in the hundreds), and serious recoveries with a rotator crane are billed hourly, often with a minimum. Equipment floats price by distance plus loading time.
Accident tows have add-ons. Beyond the tow itself: scene cleanup (debris, fluids) if required, winching if the vehicle left the road, and storage at the operator's yard, billed per day from day one until the insurer or you release the vehicle. Storage is where surprise bills grow, so decide the destination fast and get every line itemized. In most provinces the tow from a collision is covered under your insurance claim - here's who pays and when.
What pushes any price up: nights, weekends and storms (surge demand); vehicles that can't roll (dollies or skates to load); tight access like parkades and narrow laneways; long-distance deadhead (the truck's empty return trip, priced differently by every company); and remote locations where the nearest truck is an hour out.
Three protections worth using: ask for the all-in price to your destination before dispatch, remember that you choose where your vehicle goes, and require an itemized invoice. In Ontario, operators must disclose rates up front under TSSEA - the full rules are here.
Deeper reading: towing costs province by province, reading and disputing a towing invoice, and impound fees and your rights.