1. An inventory agent operating on software comprising instructions operable to cause a programmable processor to: receive inventory data relating to stock in an inventory, wherein the data comprises planned inventory data and actual inventory data; use the inventory data to calculate one or more correlations in errors between the planned inventory data and the actual inventory data; use the one or more correlations to estimate a probability density for one or more errors; calculate a predicted inventory level; calculate a likely error of the predicted inventory level using the estimate of the probability density to; and adjust the predicted inventory level with the likely error to estimate a likely actual inventory level.