Both for understanding mechanisms of disease and for the design of transgenes, it is important to understand the determinants of ribosome velocity, as changes in the rate of translation are important for protein folding, error attenuation, and localization. While there is great variation in ribosomal occupancy along even a single transcript, what determines a ribosome's occupancy is unclear. We examine this issue using data from a ribosomal footprinting assay in yeast. While codon usage is classically considered a major determinant, we find no evidence for this. By contrast, we find that positively charged amino acids greatly retard ribosomes downstream from where they are encoded, consistent with the suggestion that positively charged residues interact with the negatively charged ribosomal exit tunnel. Such slowing is independent of and greater than the average effect owing to mRNA folding. The effect of charged amino acids is additive, with ribosomal occupancy well-predicted by a linear fit to the density of positively charged residues. We thus expect that a translated poly-A tail, encoding for positively charged lysines regardless of the reading frame, would act as a sandtrap for the ribosome, consistent with experimental data.