Abstract:
Automatic pricing of remotely hosted applications permits users to enter customer data and flexibly prices various product offerings, product lines, and applications. An initial build of a computer system, modifications to an existing computer system configuration, extended services, and enhancements are incorporated. Errors are checked for and can be corrected. Using the invention, a sales team can quickly and efficiently price products and services at the inception of a business relationship, and can easily modify prices during the business relationship.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application is a continuation of U.S. patent application Ser. No. 10/242,227, filed on Sep. 11, 2002, which claims the benefit of U.S. Provisional Application No. 60/322,598, filed on Sep. 11, 2001. The subject matter of the related applications are hereby incorporated by reference. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Technical Field  
         [0003]     The present invention relates generally to pricing computer services and more particularly to pricing remote hosting of applications by an Application Service Provider (ASP).  
         [0004]     2. Discussion of Prior Art  
         [0005]     Business organizations commonly establish computer centers for hosting software applications such as corporate e-mail systems and human resources systems. The increasing complexity of designing, operating, and maintaining software applications, and administering computer systems to host the applications, has increased personnel costs and often delayed the rollout of new software applications and computer systems into production environments.  
         [0006]     Application Service Providers (ASPs), through centralization and economics of scale, resolve delays and minimize costs by providing the service of hosting software applications for customers wanting to be relieved of hosting applications themselves. ASPs typically set up large computer systems, install software applications on the systems, employ personnel to administer the systems and applications, and, through networks, service remote access customers. The customer&#39;s remaining concerns are its requirements for software applications and the terms of their Service Level Agreement (SLA) with the ASP.  
         [0007]     ASPs have various ways of pricing their services. Some ASPs charge for use of a computer system separately from charges for use of a software application. Other ASPs charge by user accesses to computer systems and software applications. ASPs also charge costs for licensing software applications. Conventional pricing methodologies are typically carried out manually and slowly, which hinders sales by an ASP. Therefore, what is needed is an automated yet flexible method for automatically pricing remotely hosted applications.  
       BRIEF SUMMARY OF THE INVENTION  
       [0008]     The methodology for pricing services of an application service provider includes choosing a base product offering, pricing the base product offering, pricing extended services, calculating a total price for all chosen products and services, checking for errors in pricing, and presenting a summary of pricing. The uniqueness of the pricing methodology includes the combination of user categories over time periods and fixed price services that scale, as the customer needs further expansion of services.  
         [0009]     Automatic pricing of remotely hosted applications permits users to enter customer data and flexibly prices various product offerings, product lines, and applications. An initial build of a computer system, modifications to an existing computer system configuration, extended services, and enhancements are incorporated.  
         [0010]     The system for automatically pricing remotely hosted applications includes at least one computing device, a network for communicating from external connections to the computing device(s), pricing models, and a pricing calculator which runs on the computing device to determine prices based on the pricing models.  
         [0011]     Using the invention, a sales team can quickly and efficiently price products and services at the inception of a business relationship, and can easily modify prices during the business relationship. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]      FIG. 1  illustrates a computer system and network suitable for use by an ASP for automatically pricing, and remotely hosting, applications in accordance with the invention;  
         [0013]      FIG. 2  is a diagram of a computing device of  FIG. 1 ;  
         [0014]      FIG. 3  is a high-level flowchart of generalized steps for automatically pricing remotely hosted applications in accordance with the invention;  
         [0015]      FIG. 4  is a flowchart of steps for choosing a product offering in step  310  of  FIG. 3  in accordance with an embodiment of the invention;  
         [0016]      FIG. 5  is a flowchart of steps for calculating enhancements in step  465  of  FIG. 4  for choosing a product offering in accordance with an embodiment of the invention;  
         [0017]      FIG. 6  is a flowchart of steps for pricing a base product offering in step  320  of  FIG. 3  in accordance with an embodiment of the invention;  
         [0018]      FIG. 7  is a flowchart of steps for entering optional quantities in step  650  of  FIG. 6  for pricing a base product offering in accordance with an embodiment of the invention;  
         [0019]      FIG. 8  is a flowchart of steps for pricing extended services in step  330  of  FIG. 3  in accordance with an embodiment of the invention;  
         [0020]      FIG. 9  is a flowchart of steps for calculating a total price in step  340  of  FIG. 3  in accordance with an embodiment of the invention;  
         [0021]      FIG. 10  is a flowchart of steps in checking for errors in pricing in step  350  of  FIG. 3  in accordance with an embodiment of the invention;  
         [0022]      FIG. 11  is a flowchart of steps for checking for specific errors in step  1050  of  FIG. 10  in accordance with an embodiment of the invention;  
         [0023]      FIG. 12  is a flowchart of steps for presenting a pricing summary in step  360  of  FIG. 3  in accordance with an embodiment of the invention;  
         [0024]      FIG. 13  is a screenshot of multiple worksheets of a price calculator in accordance with an embodiment of the invention;  
         [0025]      FIG. 14  is a screenshot of a hosting survey in accordance with the invention;  
         [0026]      FIG. 15  is a screenshot of an enhancement worksheet in accordance with the invention; and  
         [0027]      FIG. 16  is a screenshot of an application product line worksheet in accordance with an embodiment of the invention.  
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0028]     A competitive advantage can be achieved by an ASP sales force through pricing its customer services as soon as possible. This is facilitated by automating pricing methods and accommodating low start-up fees.  
         [0029]      FIG. 1  is an overview of a computer system and network  100  suitable for use by an ASP for automatically pricing and remotely hosting applications in accordance with the invention. System  100  includes an external connection  110 , an internal connection  120 , a network  130 , a local network  140 , and at least one computing device  150 . External connection  100  and internal connection  120  are communication paths from an internet work (e.g., the Internet, internal/external networks, or computer systems, not shown) to network  130 . Network  130  in turn is coupled through local network  140  to computing devices  150 . Network  130  and local network  140  can be any network topology, such as a ring, bus, or star, can be a Local Area Network (LAN) or a Wide Area Network (WAN), and can be landline-based on fiber or copper cable, or wireless based on RF or infrared transmissions. Computing device(s)  150  can be a desktop or laptop computer, a server, a Personal Digital Assistant (PDA), or a PDA integrated with a wireless mobile phone. One computing device  150  can transfer data via local network  140  to a second computing device  150  or via network  130  to the Internet, internal/external networks, or other computer systems.  
         [0030]     A system for automatic pricing according to the invention can also be embodied in a stand alone computing device  150  or in multiple computing devices  150  coupled to local network  140  not connected to a network  130 .  
         [0031]      FIG. 2  is a diagram of  FIG. 1  computing device  150  which, in an exemplary embodiment, includes at least one processor  220 , a cache memory  230 , a main memory  240 , a network device  250 , a display  260 , an input device  270 , and a hard disk  280 , coupled together via a local bus  210 .  
         [0032]     Local bus  210  can be a Peripheral Component Interconnect (PCI) bus or an Industry Standard Architecture (ISA) bus. Processor  220  is a suitable Central Processing Unit (CPU). Cache memory  230  is a volatile memory, which stores data temporarily and loses any stored data when power to computing device  150  is shut-off. Memory  240 , sometimes referred to as Random Access Memory (RAM), is also volatile memory but stores more data for longer times, and accesses the data more slowly, than cache  230 . Alternatively, memory  240  can be non-volatile memory such as Non-Volatile Random Access Memory (NVRAM), which will not lose data when power to computing device  150  is shut-off.  
         [0033]     Disk  280 , which is non-volatile memory for data storage, is slower, but can store more data, than memory  240 . Network device  250  enables data to travel between computing device  150  and local network  140  ( FIG. 1 ). Display  260  can be a CRT monitor, an LCD screen, or a projection system. Input device  270 , which receives data, can be a keyboard, a keypad, a pointer device, a writing area such as an electronic writing tablet, or a touch sensitive screen.  
         [0034]     Other embodiments of computing device  150  can include multiple processors  220  and components such as soundcards and multimedia cards for enhanced data transmission and reception. Typically, a human user of a calculator interacts with computing device  150  to automatically price remotely hosted applications for one or more customers (not shown).  
         [0035]      FIG. 3  is a high-level flowchart of generalized steps in a method  300  for automatically pricing remotely hosted applications in accordance with the invention. In step  310 , a calculator user chooses a base product offering. In one embodiment as detailed in  FIG. 4  the user can choose among four products, labeled for example “OnRamp,” “Accelerated,” “Flex,” and “Concierge.” In another embodiment (not shown) a user can choose among two products. Other, and various numbers of, labels and product offerings can be made available to users without departing from the spirit of the invention.  
         [0036]     In step  320  computing device  150  calculates the base product offering pricing. As explained below with reference to  FIG. 6 , the user can select options that affect the pricing of the base product offering. In step  330  the user can select extended services that affect pricing. In step  340 , computing device  150  calculates the total price for the selected remotely hosted applications. In step  350 , the user and computing device  150  can check for, and correct, errors in pricing. Finally, in step  360 , computing device  150  presents a pricing summary for the user to review. These generalized steps of method  300  are detailed in  FIGS. 4 through 12 .  
         [0037]      FIG. 4  shows details of  FIG. 3  step  310  for choosing a product offering. In step  405 , the user opens a price calculator, which in one embodiment, is a conventional spreadsheet programmed for the user to select menu choices from and to enter data into. In other embodiments the price calculator can be a proprietary software program with a visual display using any graphic programming tool. For example the graphic programming tool can include Microsof™ Visual Basic, Motif, OpenWindows, or Java. The user can select menu choices and enter data in the visual display.  
         [0038]     In step  410 , the user chooses a product offering of which, in an exemplary embodiment, there are four.  
         [0039]     As a first choice the user can take step  415  of selecting the product offering identified as “OnRamp.” OnRamp is a low cost, rapid deployment option for hosting basic product lines such as Human Resources Management System (HRMS) software, financial applications, and Customer Relationship Management (CRM) software.  
         [0040]     As a second choice the user can take step  420  of selecting the product offering identified as “Accelerated,” which provides the same basic product lines as OnRamp but, for convenience, product lines are selected for the user by computing device  150  ( FIG. 1 ).  
         [0041]     As a third choice the user can take step  425  of selecting the product offering identified as “Flex,” which provides a flexible selection of product lines and hosting options for unique business processes. In addition to OnRamp product lines, Flex can provide applications such as student administration software and supply chain management software.  
         [0042]     As a fourth choice the user can take step  430  of selecting the product offering identified as “Concierge,” which is similar to Flex but also provides a high level of customer service, extended management support, and extended application and product line support.  
         [0043]     In an exemplary embodiment, the user can select one of the four product offerings. However, in future embodiments a user could simultaneously select multiple product offerings.  
         [0044]     If the calculator user has selected OnRamp step  415  or Accelerated step  420 , then in step  435  computing device  150  checks whether there will be more or fewer than  75  concurrent product users for the selected product line(s). If there will be  75  or more concurrent product users, then the method returns to step  410  and the calculator user must choose another product offering. However, if there will be fewer than  75  concurrent product users, then the calculator user proceeds to step  445 .  
         [0045]     If the calculator user has selected Concierge then in step  440  computing device  150  checks if the customer will spend at least $50,000 per month. If not, then the method returns to step  410  and the calculator user must choose another product offering. However, if the customer will spend at least $50,000 per month then the user proceeds to step  445 .  
         [0046]     In step  445 , the user selects a contract term of preferably  12 ,  24 ,  36 ,  48 , or  60  months. Longer and/or shorter terms can be permitted or required.  
         [0047]     In step  450 , the user can choose multiple product lines and applications to be hosted. Then in step  455  the user selects in the spreadsheet a button labeled “Generate Pages” in response to which computing device  150  display  260  displays multiple worksheets as shown in  FIG. 13 . The user can enter more data on the multiple worksheets for calculations by computing device  150 . In another embodiment the multiple worksheets can be multiple visual displays from a proprietary software program. The Generate Pages button can be removed for another type of user selection graphic for viewing the multiple visual displays.  
         [0048]     One worksheet generated by computing device  150  in step  455  is a hosting survey as shown in  FIG. 14 . In step  460 , the user navigates to the hosting survey, shown as a worksheet tab selection in  FIG. 13 . Next, in step  465 , the user enters data for an enhancement calculation.  
         [0049]      FIG. 5  is a flowchart detailing  FIG. 4  step  465  for calculating enhancements to the chosen product offering. An enhancement is any addition or modification, to any hosted software product line or application, by the user or customer. In step  510 , the user can complete the hosting survey with customer data. In another embodiment, a sales team user can complete the hosting survey with customer data. Further, customer data can be automatically populated on the hosting survey with data transmitted via network  130  ( FIG. 1 ).  
         [0050]     In step  520 , if the customer is not migrating enhancements then the method proceeds through step  570  to  FIG. 3  step  320 .  
         [0051]     In step  520 , if the customer is migrating enhancements then in step  530  the user selects the button labeled “Generate Pages again” as shown in  FIG. 13 , and computing device  150  displays an enhancements worksheet as shown in  FIG. 15 . Next, in step  540 , the user enters the quantity of enhancements by type and product line. For example, an enhancement can include adding a table and modifying an existing report layout that is prepackaged with a hosted software product line. In step  542 , computing device  150  multiplies the quantity of enhancements for each type and product line by an enhancement weighting. For example, the weighting can be scaled from 2 to 5. Subsequently, in step  544 , computing device  150  stores the enhancement weighting calculation results and sum total of enhancements. In step  550 , if the quantity of enhancement points is less than or equal to  400 , then the method proceeds through step  570  to  FIG. 3  step  320 .  
         [0052]     Alternatively, in step  550 , if the quantity of enhancement points is greater than  400  then in step  560  computing device  150  stores a scaling percentage for the enhanced product line or application, for the ultimate calculation of the total fees. After storing the scaling percentage, the method proceeds through step  570  to  FIG. 3  step  320 .  
         [0053]      FIG. 6  is a flowchart showing details of  FIG. 3  step  320  for pricing a base product offering. In step  605 , the user fills out a worksheet as shown in  FIG. 16  for each application product line. For example, if the user selected Customer Relationship Management (CRM) and Human Resources Management System (HRMS) product lines, then the user fills out CRM and HRMS worksheets. In step  610 , the user confirms that all selected hosted applications show “Yes.” For example as shown in  FIG. 16  if the user selects HRMS then the cells associated with the labeled cells under “Base Applications” will show a “Yes” for selected applications. If the user cannot confirm that all selected hosted applications show “Yes” then the user returns to step  450  ( FIG. 4 ) to choose multiple product lines and applications to be hosted. If the user confirms that all selected hosted applications show “Yes” then the method proceeds to step  615 .  
         [0054]     In an exemplary embodiment all product lines and applications can be categorized as user-based applications and specialty applications.  
         [0055]     User-based applications can include basic product lines such as Human Resources management System (HRMS) software, financial applications, and Customer Relationship Management (CRM) software. These basic product lines are transaction-based, which means that a reasonable metric to employ in pricing is, the quantity of users who will be accessing the basic product line.  
         [0056]     Specialty applications are applications that can require specially trained personnel to maintain the applications, have particular computer system requirements, or do not correlate to the quantity of users accessing the applications. In specialty applications a reasonable metric to employ in pricing is, the volume of activity of the applications and computer systems hosting the applications. In step  615 , the user enters the start date for any specialty applications, and computing device  150  ( FIG. 1 ) stores a price.  
         [0057]     Next, in step  620 , the user chooses if the selected product lines and applications are to be hosted by stand-alone (“stand-alone”) computer systems or by existing (“add-on”) computer systems. Add-on is restricted to HRMS, Financial applications, and Enterprise Portal customers, with minimal users, and is therefore less expensive than stand-alone pricing. The first product line or application on a customer computer system is always considered stand-alone. Subsequently added product lines or applications are considered add-ons. Add-on qualification requires that there be less than 300 total users and that no other product line or application is an add-on to the same computer system. The customer must bring the pre-existing product lines and applications, and the new product line and applications, into production at the same time. Add-on pricing is only available at the initiation of a Service Level Agreement contract. After an initial installation is done it is more difficult to add a product line or application to a production environment, so adding product lines or applications to the contract later requires that the customer pay stand-alone pricing, whether the customer can use a shared hardware environment or requires a dedicated hardware environment.  
         [0058]     Each basic product line and application has a minimum hosting fee, called the product line minimum, associated with a computer system. Step  625  calculates the product line minimum price and stores it in computing device  150 . The product line minimum price covers all user-based applications and product lines except collaborative applications. A collaborative application can be an application that enables a customer&#39;s employees to manipulate their own data. For example, a collaborative application such as equity management software permits a customer&#39;s employees to manage their own equity portfolios, which may store indicia of the stock and stock options held by the customer employee. The collaborative equity management software can provide this data to brokers and agents to facilitate stock transfers. In addition to the product line minimum, collaborative applications require the greater of a monthly fixed dollar amount and the monthly self-service user fee.  
         [0059]     One exemplary embodiment has three user categories for user-based applications: power users, field users, and self-service users. A power user is a dedicated user of the product line or application and has complete and frequent access to enter, modify, and delete customer data. Typically a power user accesses customer data daily on a full-time basis. A power user is the standard equivalent for “one power user.” Costs can scale from $695 per month to $ 80  per month depending on the quantity of power users.  
         [0060]     A field user is a user who accesses the product line or application on a sporadic basis. The field user can enter, review, and update data or perform query and report-generating functions. Typically the field user accesses data infrequently during a workday, with exceptions occurring at month or quarter-end close. The field user can run queries but does not have access authority to develop or modify queries. Further, the field user cannot perform administrative functions such as security administration, setting up accounts, or setting up business units. A field user is equivalent to 0.324 of a power user, and costs can average around $210-$225 per user per month, depending on the quantity of field users.  
         [0061]     A self-service user is a user who has full data entry and change access to customer data, but who is limited to his or her own personal data. For example, self-service users can update their 401k profiles or enter their time and expenses after a business trip. Self-service users access customer data on a weekly, bi-weekly, or monthly basis for a very short period of time. Self service users may not access customer data for any other person and may not enter data of others. The self service user is equivalent to 0.007 of a power user, and costs can scale from $4.87 per user per month to $2.43 per user, depending on the quantity of self-service users. Future embodiments can have more or less than three user categories. Further, the scaling amounts can vary by price or by time period. For example, a field user can scale from $15 to $20 per day.  
         [0062]     In step  630 , the calculator user enters the quantity of users by type and time period. User types can be power users, field users, and self-service users. For example, the calculator user can enter how many of each category of users will access the product lines and applications during the quarters stated in the contract term. The quantity of users can vary from month to month. In an exemplary embodiment, on the fifth day of every month, any new users can be added to reflect a new price. In another exemplary embodiment, if there is a disparity between the current number of users and the contracted number of users, then the user based pricing is based on the greater of the contracted users or the current number of users in the hosted application product line.  
         [0063]     Next, in step  635 , computing device  150  converts the user information into power user equivalents as a monthly user dollar amount. For example, eight field users is equivalent to 2.592 power users. In step  640 , computing device  150  stores the monthly user dollar amount.  
         [0064]     The product lines and applications chosen by a customer have a defined correlation to the quantity of computer systems required to host those product lines and applications. For example, a low cost price includes one computer system for one application. Demonstration, development, testing, and eventually production operations can use one computer system. In an exemplary embodiment, one computer system is an implementation pack. In step  645 , the user enters the quantity of implementation packs by time period. If the user needs one implementation pack in the first quarter of each year, then he or she enters the quantities accordingly.  
         [0065]     In step  650 , the user can enter the customer&#39;s required optional quantities as detailed in  FIG. 7 . The user can enter optional quantities of computer system hardware, database instances, which can be for example relational tables, and customer interfaces, which can include additional hardware and software to support the hosting environment.  
         [0066]     In step  710 , the user can enter the quantity of upgrade packs by time period. An upgrade pack can be two database instances and can be an extra 100 GB of disk  280  ( FIG. 2 ) storage space. Further, for example, the user can select the quantity of upgrade packs by quarter. Next, in step  720 , the user can enter the quantity of database instance packs by time period. A database instance pack includes two database instances without disk  280  storage space. In step  730 , the user can enter the quantity of individual database instances by time period. Neither the database instance pack nor the individual database instances include extra system administration services. Next in step  740 , the user can enter the quantity of interfaces used by time period. The customer can use interfaces to access customer data. The quantity of interfaces is equivalent to the quantity of web computer systems and proprietary visual software displays hosted by the ASP. In step  750 , the user can enter the quantity of CPUs used by specialty web and application servers by time period. The choice of quantity of CPUs permits customers to purchase extra computer systems for the selected product lines and applications. In other embodiments, the user can elect to enter quantities for some or all of the options. Further, other embodiments can include more or less options.  
         [0067]     Returning to  FIG. 6  step  652 , computing device  150  calculates and stores the system administration hours, consisting of a formula calculating the monthly product line hosting fees multiplied by a percentage, all divided by the average resource cost per hour, the result of which is rounded to the nearest grouping of hours composed of 25, 50, 75, and 100 hours. System administration hours, can include the time personnel spend on installing, maintaining, and updating computer systems and product lines and applications. Subsequently, in step  655 , the user validates that the system administration services are auto-populated. The auto-populated data should reflect numbers by time period. Next, in step  660 , the user validates the number of CPUs by product line and application. The auto-populated data should reflect the number of CPUs intended for the selected product lines and applications by time period. In step  665 , the user validates the price per user. For example, if only power users are using the product lines and applications, then the auto populated data should reflect the price per power user by time period.  
         [0068]     In step  670 , computing device  150  selects between the greater of the product line minimum and the user based pricing dollar amount as the base product offering pricing minimum. Next, computing device  150  in step  675  adds on the specialty application pricing and in step  680  adds on the optional service pricing. In step  685  computing device  150  stores the application product line price to complete the base product offering pricing.  
         [0069]      FIG. 8  shows details of  FIG. 3  step  330  for pricing extended services. In step  810 , the user navigates to the extended services, which are preferably displayed in a worksheet. In other embodiments, the extended services can be displayed by a proprietary software program with a visual display. Next, in step  820 , the user selects the extended services. Exemplary extended services include additional storage space, and unscheduled backups of customer data. In step  830 , the user enters the service roll-out date. For example, when selecting backup services, the customer defines the roll-out or start date of the backup services. Next in step  840 , the user enters the quantity of extended services. For example, if selecting additional storage space, then the quantity is expressed in GB.  
         [0070]     In step  850 , computing device  150  ( FIG. 1 ) calculates the total extended services fees. Extended services pricing can be a monthly fixed fee or a one-time fee. Computing device  150  in step  860  stores the total extended services fees and in step  870  calculates and stores the system administration hours as a percentage of extended service fees. In step  880 , the user validates the given system administration service hours that are auto-populated. The system administration service hours are shown on a per month basis.  
         [0071]     FIG. Shows details of  FIG. 3  step  340  for calculating a total price. Step  905  assembles the stored data for calculations by computing device  150  ( FIG. 1 ). Next, in step  910 , computing device  150  sums all product line and application pricing.  
         [0072]     Then, computing device  150  in step  915  sums all extended service fees, and in step  920  calculates the base hosting fees. In step  925 , if Concierge was selected, then in step  930 , computing device  150  uplifts (raises) the price by 30%. After calculating all the previous fees and pricing in step  935 , computing device  150  has a revised total base hosting fee. In other embodiments, the uplift percentage can be different than 30%. For example, if a customer demands extraordinary customer service, the uplift percentage might be 40%.  
         [0073]     Next, in step  940 , computing device  150  determines whether to uplift or discount the base hosting fees based on the contract term. For example, if the contract term is  12  months then in step  970  the price is uplifted by 25%. If the contract term is 24 months then in step  975  the price is uplifted by 15%. If the contract term is 36 months then in step  980  the price is unchanged. If the contract term is 48 months then in step  985  the price is discounted by 15%. If the contract term is 60 months, then in step  990 , the price is discounted by 15%. In other embodiments the monthly terms and uplift or discount percentages can vary.  
         [0074]      FIG. 10  details  FIG. 3  step  350  of checking for pricing errors. In step  1010 , the user navigates to the errors worksheet. Next, in step  1020 , the user views the error count. In step  1030  if the error count is zero then the user continues to step  360  ( FIG. 3 ). If the error count is greater than zero then in step  1040  the user navigates to the hosting survey section and product line in the errors worksheet. In step  1050 , the user checks for pricing errors as detailed in  FIG. 11 .  
         [0075]     If any of the checks in step  1050  reveals an error then the method returns to step  310  of  FIG. 3 . In step  1110 , the user checks whether the hosting survey is complete. In step  1120  the user checks whether self-service users have been factored in. In step  1130  the user checks whether the implementation packs have been done correctly. In step  1140  the user checks whether the add on with a portal is correct. In an exemplary embodiment, a portal can be software that facilitates entry into an enterprise system. Further, an enterprise system can include a network of computer systems hosting software applications. In step  1150 , the user checks whether add-on vs. stand-alone is correct. For example, the user should note if the product line and applications are correctly hosted on stand-alone or add-on computer systems. In step  1160 , the user checks whether the customer is qualified for an add-on scenario. In step  1170 , the user checks whether self-service concurrency is correct. In step  1180 , the user checks whether the upgrade packs are correct. In step  1190 , the user checks whether there is a potential double count, for example of collaborative applications, which can be an error. In other embodiments, checking for errors in step  1050  ( FIG. 10 ) can include more or less steps. Further, the steps can be executed automatically by computing device  150 .  
         [0076]      FIG. 12  shows details of  FIG. 3  step  360  for presenting a pricing summary. In step  1205  the user navigates to the pricing summary. In step  1210  the user can enter an uplift or discount percentage to increase or decrease the price. In step  1215  computing device  150  ( FIG. 1 ) checks for an uplift and/or discount percentage. If there is an uplift and/or discount percentage, then in step  1220  computing device  150  recalculates the total pricing.  
         [0077]     In step  1225 , if enhancements are to be hosted then computing device  150  applies the stored enhancement fee percent. Next, in step  1230 , computing device  150  adds a one-time network connectivity fee to the final pricing total.  
         [0078]     In step  1235  the user can print exhibit A pricing contracts. Printouts include the product line and application worksheet in step  1240 , the extended summary worksheet in step  1245 , the pricing summary worksheet in step  1250 , and the product line summary worksheet in step  1255 . All of the printouts can be added to the contract. In other embodiments, either calculator the user or computing device  150  can print any or all of the worksheets. Further, a proprietary software program with a visual display can print the same worksheet data in another format. Alternatively, computing device  150  can transmit the data over network  130  via external connection  110  and/or internal connection  120  ( FIG. 1 ) to a customer or other business partner.  
         [0079]     The invention has been explained above with reference to specific embodiments. Other embodiments will be apparent to those skilled in the art in light of this disclosure. The invention may readily be implemented using configurations other than those described in the embodiments above. Additionally, the invention may effectively be used in conjunction with systems other than the one described above. Therefore, these and other variations upon the above embodiments are intended to be covered by the appended claims.