You've stated that the pilots used a dip-stick to measure the vol of the flight fuel and they found that the vol was satisfactory.
At the time of the incident, Canada was converting to the metric system. As part of this process, the new 767s being acquired by Air Canada were the first to be calibrated for metric units (litres and kilograms) instead of Imperial units (gallons and pounds). All other aircraft were still operating with Imperial units (gallons and pounds). For the trip to Edmonton, the pilot calculated a fuel requirement of 22,300 kilograms. A floatstick check indicated that there were 7,682 litres already in the tanks. To calculate how much more fuel had to be added, the crew needed to convert the quantity in the tanks to a mass (weight), subtract that figure from 22,300 kg and convert the result back into a volume. In previous times, this task would have been completed by a flight engineer, but the 767 was the first of a new generation of airliners that flew with only a pilot and co-pilot.
The mass of a litre of fuel was 0.803 kg, so the correct calculation was:
7,682 L × 0.803 kg/L = 6,169 kg : fuel already onboard
20,088 L × 0.803 kg/L = 16,131 kg : fuel to be transferred to plane
27,770 L × 0.803 kg/L = 22,300 kg : fuel for flight
The ground crew had arrived at an incorrect conversion factor of 1.77, which was the weight of a litre of fuel in pounds and this error was not noticed by the flight crew. The conversion factor provided on the refueller's paperwork was one that had always been used in the past, when Air Canada's fleet had been imperial-calibrated. Their incorrect calculation was:
7,682 L × 1.77 lb/L = 13,597 lb : fuel already onboard
4,916 L × 1.77 lb/L = 8,703 lb : fuel to be transferred to plane
12,598 L × 1.77 lb/L = 22,300 lb : fuel for flight
Instead of 22,300 kg (27,770 L ) of fuel, they had 22,300 pounds (12,598 L ) on board — 10,100 kg, about half the amount required to reach their destination