A need exists to reduce the frequencies of consequential errors and/or develop systems that are error-tolerant in the sense that the undesirable consequences of errors do not propagate. Reduction and/or tolerance can be accomplished with a variety of mechanisms, including selection, training, equipment design, job design, and aiding. Since no single mechanism is sufficient, a mix of mechanisms is needed. An important question concerns how one should allocate resources among these mechanisms to achieve acceptable frequencies of consequential errors. This resource allocation problem is formulated, first in terms of a conceptual model, and them in terms of a mathematical model of the effects of resources on error reduction/tolerance mechanisms. Sensitivity analysis is used to assess the effects of parameter variations on the model and resulting optimal allocation. It is suggested that this approach provides a comprehensive framework within which the problem of human error can be studied and ameliorated.