1. A method for dispatching available lots to unallocated machines, comprising: receiving metrics data providing performance measurements for a plurality of machines; determining a state for each of the machines based on the metrics data; receiving one or more lots to be dispatched, each lot having a lot type and each lot type associated with one of a plurality of models; selecting a preferred lot type for each of the plurality of models associated with each of the machines based on the state of the machine; selecting a preferred model based on a time since a last run of the model, a cost of switching to a new model and lot type, and the state of the machine; resolving conflicts between selected preferred lot type/preferred model combinations when insufficient lots are available to fill the selections; and assigning each lot to one of the machines according to the preferred model and preferred lot type selections.