Patent ID: 8571912

Claim:
A non-transitory computer-readable medium comprising a computer program, which when executed by a processor, performs a method for allocating appointment time windows to produce an optimal service schedule for a service provider that provides time window suggestions for a set of service orders, the medium comprising instructions for: generating a statistical service schedule estimate for a predetermined service time period, said statistical service schedule estimate comprising a set of statistically-derived service orders considering both (1) a statistical estimate of expected service requests and (2) a statistical geographic distribution of said expected service requests; (a) receiving an actual service order to fulfill in said predetermined service time period; (b) responding to the actual service order by providing to the entity placing the service order a set of days and time windows in which the service order can be fulfilled; (c) receiving a selection from the entity placing the service order on a desired set of days and time window that works best for the entity; (d) imposing a time window on the actual service order; (e) provisionally inserting the actual service order into the statistical service schedule estimate at a determined insertion time to determine an optimal time of arrival and to create a revised service schedule that includes the actual service order; (f) testing said revised service schedule against input full-day indicators to determine that the actual service order can be inserted into the statistical service schedule estimate, and if the actual service order can be inserted into the statistical service schedule estimate based on the input full-day indicators then: (g) calculating a time window that surrounds the determined insertion time in said revised service schedule using input parameters; (h) locating a closest statistically-derived service order to the actual service order, if any, in said revised service schedule; (i) if the closest statistically-derived service order is found in (h) (c), then removing the closest statistically-derived service order from said revised service schedule and inserting the actual service order together with the calculated time window into the service schedule in place of the removed closest statistically-derived service order, wherein said scheduled time of said actual service order is centered within said time window; (j) re-optimizing the revised service schedule to make room for more actual service orders to be inserted; (k) storing the revised service schedule in a memory; and (l) repeating (a)-(k) in response to the receipt of additional actual service orders.