The methods, systems, and computer program products described herein provide optimized provisioning of replacement parts for service calls through the use of machine learning. In some aspects, historical hardware maintenance tickets may be processed to generate symptoms vectors identifying sets of symptoms associated with the hardware maintenance tickets. The symptoms vectors and corresponding parts usage records of the historical hardware maintenance tickets may be used train a decision model to predict a probability that a particular part will be used to fulfill the new hardware maintenance ticket. The predicted probability may be used by the system when generating a parts provisioning plan for the new hardware maintenance ticket.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method, comprising: receiving, by at least one processor, a historical maintenance ticket associated with a type of hardware device; processing, by at least one processor, the historical maintenance ticket to identify one or more symptoms of the historical maintenance ticket; constructing, by at least one processor, a symptoms vector for the historical maintenance ticket based at least in part on the identified one or more symptoms of the historical maintenance ticket; receiving, by at least one processor, parts usage and provisioning records associated with the type of hardware device; determining, by at least one processor, based at least in part on the parts usage and provisioning records, whether a part associated with the type of hardware device was provisioned or not provisioned for the historical maintenance ticket; determining, by at least one processor, based at least in part on the parts usage and provisioning records, whether the part was used or not used for the historical maintenance ticket; training, by at least one processor, a decision model based at least in part on the symptoms vector for the historical maintenance ticket, the determination of whether the part was provisioned or not provisioned for the historical maintenance ticket, and the determination of whether the part was used or not used for the historical maintenance ticket, the training configuring the decision model to determine a probability that the part will be used by a new maintenance ticket associated with the type of hardware device; receiving, by at least one processor, a new maintenance ticket associated with the type of hardware device; processing, by at least one processor, the new maintenance ticket to identify one or more symptoms of the new maintenance ticket; constructing, by the at least one processor, a symptoms vector for the new maintenance ticket based at least in part on the identified one or more symptoms of the new maintenance ticket; executing, by at least one processor, the trained decision model using the symptoms vector of the new maintenance ticket to determine a probability that the part will be used by the new maintenance ticket; and generating, by at least one processor, a parts provisioning plan based at least in part on the determined probability that the part will be used by the new maintenance ticket. 2. The method of claim 1, wherein the symptoms vectors for the historical maintenance ticket and the new maintenance ticket comprise a plurality of symptoms associated with the type of hardware device, the symptoms vectors including an indication for each symptom of whether or not each symptom was identified in the respective historical maintenance ticket or new maintenance ticket. 3. The method of claim 1, wherein the decision model is trained based at least in part on symptoms vectors for a plurality of historical maintenance tickets associated with the type of device. 4. The method of claim 1, further comprising: automatically, in response to receiving a notification that the new hardware maintenance ticket has been fulfilled: receiving parts usage and provisioning records associated with the fulfilled new maintenance ticket; determining based at least in part on the parts usage and provisioning records associated with the fulfilled new maintenance ticket, whether the part associated with the type of hardware device was provisioned or not provisioned for the fulfilled new maintenance ticket; determining based at least in part on the parts usage and provisioning records associated with the new maintenance ticket, whether the part was used or not used to fulfill new maintenance ticket; and further training the decision model based at least in part on the symptoms vector for the new maintenance ticket, the determination of whether the part was provisioned or not provisioned for the fulfilled new maintenance ticket, and the determination of whether the part was used or not used to fulfill the new maintenance ticket. 5. The method of claim 1, further comprising: determining a set of historical maintenance tickets that used the part based on the parts usage and provisioning records associated with the type of hardware device, determining a second set of historical maintenance tickets that used a second part associated with the type of hardware device based on the parts usage and provisioning records associated with the type of hardware device; and generating a parts correlation index between the part and the second part based on the determined first and second sets of historical maintenance tickets, wherein the parts provisioning plan is generated at least in part based on the parts correlation index. 6. The method of claim 1, wherein generating the parts provisioning plan comprises: solving a first objective function that defines an overall parts usage probability of the parts provisioning plan; and solving a second objective function that defines an overall over/under provisioning cost of the parts provisioning plan. 7. The method of claim 1, wherein the parts provisioning plan is generated based at least in part on a risk tolerance level set by an agent via an agent device, the method further comprising: receiving an adjustment to the risk tolerance level for the parts provisioning plan from the agent device; and updating the parts provisioning plan based at least in part on the received adjustment to the risk tolerance level. 8. A system, comprising: at least one processor programmed for: receiving a historical maintenance ticket associated with a type of hardware device; processing the historical maintenance ticket to identify one or more symptoms of the historical maintenance ticket; constructing a symptoms vector for the historical maintenance ticket based at least in part on the identified one or more symptoms of the historical maintenance ticket; receiving parts usage and provisioning records associated with the type of hardware device; determining based at least in part on the parts usage and provisioning records, whether a part associated with the type of hardware device was provisioned or not provisioned for the historical maintenance ticket; determining based at least in part on the parts usage and provisioning records, whether the part was used or not used for the historical maintenance ticket; training a decision model based at least in part on the symptoms vector for the historical maintenance ticket, the determination of whether the part was provisioned or not provisioned for the historical maintenance ticket, and the determination of whether the part was used or not used for the historical maintenance ticket, the training configuring the decision model to determine a probability that the part will be used by a new maintenance ticket associated with the type of hardware device; receiving a new maintenance ticket associated with the type of hardware device; processing the new maintenance ticket to identify one or more symptoms of the new maintenance ticket; constructing a symptoms vector for the new maintenance ticket based at least in part on the identified one or more symptoms of the new maintenance ticket; executing the trained decision model using the symptoms vector of the new maintenance ticket to determine a probability that the part will be used by the new maintenance ticket; and generating a parts provisioning plan based at least in part on the determined probability that the part will be used by the new maintenance ticket. 9. The system of claim 8, wherein the symptoms vectors for the historical maintenance ticket and the new maintenance ticket comprise a plurality of symptoms associated with the type of hardware device, the symptoms vectors including an indication for each symptom of whether or not each symptom was identified in the respective historical maintenance ticket or new maintenance ticket. 10. The system of claim 8, wherein the decision model is trained based at least in part on symptoms vectors for a plurality of historical maintenance tickets associated with the type of device. 11. The system of claim 8, the at least one processor further programmed for: automatically, in response to receiving an indication that the new hardware maintenance ticket has been fulfilled: receiving parts usage and provisioning records associated with the fulfilled new maintenance ticket; determining based at least in part on the parts usage and provisioning records associated with the fulfilled new maintenance ticket, whether the part associated with the type of hardware device was provisioned or not provisioned for the fulfilled new maintenance ticket; determining based at least in part on the parts usage and provisioning records associated with the fulfilled new maintenance ticket, whether the part was used or not used to fulfill the new maintenance ticket; and further training the decision model based at least in part on the symptoms vector for the new maintenance ticket, the determination of whether the part was provisioned or not provisioned for the fulfilled new maintenance ticket, and the determination of whether the part was used or not used to fulfill the new maintenance ticket. 12. The system of claim 8, the at least one processor further programmed for: determining a set of historical maintenance tickets that used the part based on the parts usage and provisioning records associated with the type of hardware device, determining a second set of historical maintenance tickets that used a second part associated with the type of hardware device based on the parts usage and provisioning records associated with the type of hardware device; and generating a parts correlation index between the part and the second part based on the determined first and second sets of historical maintenance tickets, wherein the parts provisioning plan is generated at least in part based on the parts correlation index. 13. The system of claim 8, wherein generating the parts provisioning plan comprises: solving a first objective function that defines an overall parts usage probability of the parts provisioning plan; and solving a second objective function that defines an overall over/under provisioning cost of the parts provisioning plan. 14. The system of claim 8, wherein the parts provisioning plan is generated based at least in part on a risk tolerance level set by an agent via an agent device, the at least one processor further programmed for: receiving an adjustment to the risk tolerance level for the parts provisioning plan from the agent device; and updating the parts provisioning plan based at least in part on the received adjustment to the risk tolerance level. 15. A computer program product storing instructions that, when executed by at least one processor, program the at least one processor for: receiving a historical maintenance ticket associated with a type of hardware device; processing the historical maintenance ticket to identify one or more symptoms of the historical maintenance ticket; constructing a symptoms vector for the historical maintenance ticket based at least in part on the identified one or more symptoms of the historical maintenance ticket; receiving parts usage and provisioning records associated with the type of hardware device; determining based at least in part on the parts usage and provisioning records, whether a part associated with the type of hardware device was provisioned or not provisioned for the historical maintenance ticket; determining based at least in part on the parts usage and provisioning records, whether the part was used or not used for the historical maintenance ticket; training a decision model based at least in part on the symptoms vector for the historical maintenance ticket, the determination of whether the part was provisioned or not provisioned for the historical maintenance ticket, and the determination of whether the part was used or not used for the historical maintenance ticket, the training configuring the decision model to determine a probability that the part will be used by a new maintenance ticket associated with the type of hardware device; receiving a new maintenance ticket associated with the type of hardware device; processing the new maintenance ticket to identify one or more symptoms of the new maintenance ticket; constructing a symptoms vector for the new maintenance ticket based at least in part on the identified one or more symptoms of the new maintenance ticket; executing the trained decision model using the symptoms vector of the new maintenance ticket to determine a probability that the part will be used by the new maintenance ticket; and generating a parts provisioning plan based at least in part on the determined probability that the part will be used by the new maintenance ticket. 16. The computer program product of claim 15, wherein the symptoms vectors for the historical maintenance ticket and the new maintenance ticket comprise a plurality of symptoms associated with the type of hardware device, the symptoms vectors including an indication for each symptom of whether or not each symptom was identified in the respective historical maintenance ticket or new maintenance ticket. 17. The computer program product of claim 15, wherein the decision model is trained based at least in part on symptoms vectors for a plurality of historical maintenance tickets associated with the type of device. 18. The computer program product of claim 15, wherein the instructions, when executed by the at least one processor, further program the at least one processor for: automatically, in response to receiving an indication that the new hardware maintenance ticket has been fulfilled: receiving parts usage and provisioning records associated with the fulfilled new maintenance ticket; determining based at least in part on the parts usage and provisioning records associated with the fulfilled new maintenance ticket, whether the part associated with the type of hardware device was provisioned or not provisioned for the fulfilled new maintenance ticket; determining based at least in part on the parts usage and provisioning records associated with the fulfilled new maintenance ticket, whether the part was used or not used to fulfill the new maintenance ticket; and further training the decision model based at least in part on the symptoms vector for the new maintenance ticket, the determination of whether the part was provisioned or not provisioned for the fulfilled new maintenance ticket, and the determination of whether the part was used or not used to fulfill the new maintenance ticket. 19. The computer program product of claim 15, wherein the instructions, when executed by the at least one processor, further program the at least one processor for: determining a set of historical maintenance tickets that used the part based on the parts usage and provisioning records associated with the type of hardware device, determining a second set of historical maintenance tickets that used a second part associated with the type of hardware device based on the parts usage and provisioning records associated with the type of hardware device; and generating a parts correlation index between the part and the second part based on the determined first and second sets of historical maintenance tickets, wherein the parts provisioning plan is generated at least in part based on the parts correlation index. 20. The computer program product of claim 15, wherein the parts provisioning plan is generated based at least in part on a risk tolerance level set by an agent via an agent device, the instructions, when executed by the at least one processor, further programming the at least one processor for: receiving an adjustment to the risk tolerance level for the parts provisioning plan from the agent device; and updating the parts provisioning plan based at least in part on the received adjustment to the risk tolerance level.