Drug shortages are a global and complex issue having negative impacts on patients, pharmacists, and the broader health care system. Using sales data from 22 Canadian pharmacies and historical drug shortage data, we built machine learning models predicting shortages for the majority of the drugs in the most-dispensed interchangeable groups in Canada. When breaking drug shortages into four classes (none, low, medium, high), we were able to correctly predict the shortage class with 69% accuracy and a kappa value of 0.44, one month in advance, without access to any inventory data from drug manufacturers and suppliers. We also predicted 59% of the shortages deemed to be most impactful (given the demand for the drugs and the potential lack of interchangeable options). The models consider many variables, including the average days of a drug supply per patient, the total days of a drug supply, previous shortages, and the hierarchy of drugs within different drug groups and therapeutic classes. Once in production, the models will allow pharmacists to optimize their orders and inventories, and ultimately reduce the impact of drug shortages on their patients and operations.