In some examples, a server may receive usage data from a computing device, determine a usage profile of the computing device, and determine that a component of the computing device is predicted to fail and at what time. If the time is within a warranty period of a current warranty, then the server may recommend purchasing an upgraded warranty and provide a cost-benefit analysis of purchasing the upgraded warranty. If the time is outside the warranty period, then the server may recommend purchasing an extended warranty and provide a cost-benefit analysis of purchasing the extended warranty. The server may use the usage data to make a recommendation to upgrade one or more components (e.g., memory, disk drive, network card, or the like) of the computing device. The server may use the usage data to make a recommendation to upgrade from the computing device to a different computing device.