Patent ID: 8914899

Claim:
A method, in a data processing system, for directing users to preferred software services, the method comprising: receiving, by a hardware implemented processor in the data processing system, a request for a software service that provides a function identified by a user; identifying, by the hardware implemented processor, a plurality of software services; receiving, by the hardware implemented processor, usage data for each of the plurality of software services; for each software service of the plurality of software services: analyzing, by the hardware implemented processor, the usage data to determine a number of users associated with an enterprise utilizing a subscribed software service over a predetermined time period; determining, by the hardware implemented processor, whether the number of users in the enterprise utilizing the subscribed software service over the predetermined time period provides a positive return on investment (ROI) of the subscription to the subscribed software service; responsive to identifying a positive ROI of the subscription to the subscribe software service, providing, by the hardware implemented processor, a recommendation to keep the subscribed software service; responsive to a failure to identify a positive ROI of the subscription to the subscribed software service, determining, by the hardware implemented processor, whether there is another subscribed software service that that is substantially similar to the subscribed software service and has a positive ROI; and responsive to another subscribed software service existing that is substantially similar to the subscribed software service that also has a positive ROI, providing, by the hardware implemented processor, a recommendation to cancel the subscribed software service and keep the other subscribed software service; searching, by the hardware implemented processor, the plurality of software services for two or more software services that provide the function identified by the user by comparing the function identified by the user to a function provided by each of the plurality of software services; determining, by the hardware implemented processor, whether a subscription exists in a subscription data structure on the data processing system of the user for a subset of the two or more software services that provide the function identified by the user; and responsive to the subscription existing in the subscription data structure on the data processing system of the user for the subset of the two or more software services that provide the function identified by the user and responsive to the subset of the two or more software services each having a recommendation to be kept, presenting to the user, by the hardware implemented processor, the subset of the two or more software services that provide the function identified by the user, that have existing subscriptions, and that each have the recommendation to be kept.