`
`UNITED STATES PATENT APPLICATION
`
`FOR
`
`METHOD AND APPARATUS FOR
`DETERMINING COMMISSION
`
`JOSHUA KOPPELMAN
`JENS TELLEFSEN
`
`HECKER & HARRIMAN
`2029 Century Park East
`Suite 1600
`Los Angeles, CA 90067
`
`(310) 286-0377
`
`Versata Exh. 2015
`Callidus v. Versata
`CBM2013-00054
`
`
`
`
`
`BACKGROUND OF THE INVENTION
`
`
`1.
`
`FIELD OF THE INVENTION
`
`
`
`This invention relates to the field of determining the sales commission
`provided to sales teams and representatives.
`
`
`
`BACKGROUND ART
`
`Portions of the disclosure of this patent document contain material that is
`subject to copyright protection. The copyright owner has no objection to the
`facsimile reproduction by anyone of the patent document or the patent
`disclosure as it appears in the Patent and Trademark Office file or records, but
`otherwise reserves all copyright rights whatsoever.
`
`2.
`
`In modern business environments, it is commonplace to employ sales
`
`representatives to market the goods and services offered for sale. Sales
`representatives receive compensation based on a salary, the hours worked,
`and/or on the goods or services sold. When basing compensation on the goods
`or services sold, sales representatives receive a commission that can be based on
`profits, net sales, the number of products sold, or some other variable.
`
`
`
`To provide sales representatives with an incentive to sell as much as
`possible or to sell more of a desired product or products at certain prices, sales
`organizations create incentive plans wherein Commissions (also referred to as
`
`85160.919
`
`2
`
`EXPRESS MAIL #EM484490752US
`
`5
`
`10
`
`15
`
`20
`
`25
`
`
`
`
`
`Promotions) are provided or offered to the sales representatives when specific
`sales goals or targets are attained during a defined time period. For example, a
`Promotion may consist of paying a bonus of $50 if a blue hammer is sold in the
`month of July or paying $1 for each of the first 1000 hammers sold and $2 for any
`additional hammer sold in the month of July. Some incentive plans provide for
`individual sales representatives to be apportioned credit towards a promotional
`level (such as a bronze, silver, or gold level) when a sale is made.
`
`
`
`In addition, an incentive plan may apportion credit (towards a Promotion)
`to everyone on a sales representative's sales team, to the representative's
`manager, or someone other than the sales representative himself. Providing
`credit to persons in a selling chain (i.e., an immediate supervisor, a manager, a
`senior manager, etc.) is referred to as an override or rolling up (a "roll-up") the
`selling chain. Figuring out who should be apportioned credit for a sale can be
`complex and difficult to administer. This is particularly true when a company
`has several different types of sales people from direct representatives, external
`agents, telemarketers, to distributors and resellers. The increasing use of sales
`teams, account territory, and product managers has further complicated the
`management of sales crediting.
`
`The management of a business can spend a great deal of time and money
`
`in developing incentive plans. In the prior art, the creation and distribution of
`incentive plans is a slow process that is prone to error. Large businesses merely
`print up or email a plan to retailers. The retailers add Promotions and targets to
`the plan and distribute the plan to the sales representatives. To calculate the
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`3
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`payment or Promotion each sales representative will receive, the sales
`information is mailed back to the businesses headquarters where the calculations
`and determinations are made. The Promotion or payment is then transmitted
`back to the retailer and distributed to the sales representative. Mistakes in the
`calculations can often be made at headquarters requiring a repetition of the entire
`process. Often the sales representatives do not receive a copy of the plan prior to
`making sales. Consequently, the sales representatives are unaware of the basis
`for their compensation or how an incentive plan works until after compensation
`is received (which can occur one or two payment periods after the sales have
`occurred and after the promotion's time period has expired). Such a delay
`defeats the underlying purpose of an incentive plan to promote the sale of
`particular products or services (i.e., the sales representative does not know what
`products or services the sales organization desires to promote).
`
`
`
`In today's competitive environment, companies thrive (and survive) on
`the basis of being able to quickly change and evolve. This is especially true in the
`sales and marketing area where rapid business changes are the norm.
`Competitive companies cannot afford being obligated to adhere to a static
`information infrastructure or a slow incentive plan process that cannot keep up
`with a rapidly changing business environment.
`
`
`
`In a traditional system solution, the particular business rules are broken
`down into their core components, which in turn are programmed using some
`computer language. The traditional system is adequate to represent a rigid and
`static business problem, like a general ledger or inventory system, for example.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`4
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`However, the traditional system is costly when trying to represent a quickly
`changing business environment like that of a sales organization, which role is to
`constantly change and to evolve to align itself to changing customer needs,
`market changes, sales channels and internal business initiatives.
`
`Retailers are often not permitted to modify or create their own incentive
`
`plans for the sales representatives. An incentive plan can only be selected from a
`list of predefined plans created at a business headquarters. Further, sales
`representatives can often manipulate an incentive plan (by their actions) to
`obtain additional compensation unintended by management. In addition, the
`ability to view and organize information regarding sales transactions is
`unavailable or difficult in the prior art. Thus, retailers cannot easily observe
`statistics such as the products or services that are selling quickly, which sales
`teams or representatives are selling the most, the average cost a particular
`product is being sold for, etc.
`
`
`
`Thus, a system that quickly communicates an incentive plan to sales
`representatives, accurately and effectively calculates compensation to be paid to
`sales representatives, and allows flexibility to adjust an incentive plan as needed
`in a rapidly changing environment is desired.
`
`5
`
`10
`
`15
`
`20
`
`85160.919
`
`5
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`SUMMARY OF THE INVENTION
`
`
`
`The invention provides for a method and apparatus for determining the
`commission to be paid to a sales representative or sales team. Whenever a sale
`occurs, a Transaction describing the sale is created and inputted into the
`Commission System of one embodiment of the invention. Based on a set of
`Allocation Rules that specify the credit an individual is to receive from a
`Transaction, the Transactions are converted into one or more Allocations for
`individual Sales Representatives or Sales Teams.
`
`One or more Quotas specify a target or goal that must be reached to earn
`
`commission for each Sales Team. A Quota State indicates the current
`performance of a Sales Representative with respect to a particular Quota within a
`particular time frame. The Quotas are used to convert the
`Allocations/Transactions into Quota Details that specify how to increment or
`decrement the Quota State.
`
`
`
`A Promotion specifies the reward or commission that is received upon
`attaining a desired level of performance. Once a Quota State reaches a level
`necessary to receive a Commission or reward as set by a specific Promotion, a
`ledger item indicating the amount to be paid to a particular Sales Team is
`created.
`
`
`
`A user interface may be used to create Allocation Rules, Quotas, and
`Promotions that are awarded for performance over a specified time period. In
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`6
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`this manner, a business may set up incentive plans and determine commissions
`easily and accurately.
`
`
`
`
`
`5
`
`85160.919
`
`7
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`Figure 1 is a block diagram of one embodiment of a computer system
`capable of providing a suitable execution environment for an embodiment of the
`invention.
`
`
`
`Figure 2 illustrates the flow of transactions and the components that
`provide the mechanisms that govern the flow in accordance with one
`embodiment of the invention.
`
`Figure 3 illustrates the properties of several objects in accordance with one
`
`embodiment of the invention.
`
`
`
`Figure 4 illustrates one or more allocation in accordance with one
`embodiment of the invention.
`
`
`
`Figure 5 is a screen print-out of a Rule Template Editor in accordance with
`one embodiment of the invention.
`
`
`
`Figure 6 demonstrates a method for calculating the current performance
`of a sales representative with respect to a quota in accordance with one
`embodiment of the invention.
`
`
`5
`
`10
`
`15
`
`20
`
`85160.919
`
`8
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`Figure 7 demonstrates a method for calculating the current performance
`
`of a sales representative with respect to a quota in accordance with one
`embodiment of the invention.
`
`85160.919
`
`9
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`DETAILED DESCRIPTION OF THE INVENTION
`
`
`
`The invention is a method and apparatus for determining commission. In
`the following description, numerous specific details are set forth to provide a
`more thorough description of embodiments of the invention. It is apparent,
`however, to one skilled in the art, that the invention may be practiced without
`these specific details. In other instances, well known features have not been
`described in detail so as not to obscure the invention.
`
`Embodiment of Computer Execution Environment (Hardware)
`
`
`
`An embodiment of the invention can be implemented as computer
`software in the form of computer readable code executed on a general purpose
`computer such as computer 100 illustrated in Figure 1, or in the form of bytecode
`class files running on such a computer. A keyboard 110 and mouse 111 are
`coupled to a bi-directional system bus 118. The keyboard and mouse are for
`introducing user input to the computer system and communicating that user
`input to processor 113. Other suitable input devices may be used in addition to,
`or in place of, the mouse 111 and keyboard 110. I/O (input/output) unit 119
`coupled to bi-directional system bus 118 represents such I/O elements as a
`printer, A/V (audio/video) I/O, etc.
`
`
`
`Computer 100 includes a video memory 114, main memory 115 and mass
`storage 112, all coupled to bi-directional system bus 118 along with keyboard
`110, mouse 111 and processor 113. The mass storage 112 may include both fixed
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`10
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`and removable media, such as magnetic, optical or magnetic optical storage
`systems or any other available mass storage technology. Bus 118 may contain,
`for example, thirty-two address lines for addressing video memory 114 or main
`memory 115. The system bus 118 also includes, for example, a 32-bit data bus for
`transferring data between and among the components, such as processor 113,
`main memory 115, video memory 114 and mass storage 112. Alternatively,
`multiplex data/address lines may be used instead of separate data and address
`lines.
`
`
`
`In one embodiment of the invention, the processor 113 is a microprocessor
`manufactured by Motorola, such as the 680X0 processor or a microprocessor
`manufactured by Intel, such as the 80X86, or Pentium processor. However, any
`other suitable microprocessor or microcomputer may be utilized. Main memory
`115 is comprised of dynamic random access memory (DRAM). Video memory
`114 is a dual-ported video random access memory. One port of the video
`memory 114 is coupled to video amplifier 116. The video amplifier 116 is used
`to drive the cathode ray tube (CRT) raster monitor 117. Video amplifier 116 is
`well known in the art and may be implemented by any suitable apparatus. This
`circuitry converts pixel data stored in video memory 114 to a raster signal
`suitable for use by monitor 117. Monitor 117 is a type of monitor suitable for
`displaying graphic images.
`
`
`
`Computer 100 may also include a communication interface 120 coupled to
`bus 118. Communication interface 120 provides a two-way data communication
`coupling via a network link 121 to a local network 122. For example, if
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`11
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`communication interface 120 is an integrated services digital network (ISDN)
`card or a modem, communication interface 120 provides a data communication
`connection to the corresponding type of telephone line, which comprises part of
`network link 121. If communication interface 120 is a local area network (LAN)
`card, communication interface 120 provides a data communication connection
`via network link 121 to a compatible LAN. Wireless links are also possible. In
`any such implementation, communication interface 120 sends and receives
`electrical, electromagnetic or optical signals which carry digital data streams
`representing various types of information.
`
`Network link 121 typically provides data communication through one or
`
`more networks to other data devices. For example, network link 121 may
`provide a connection through local network 122 to local server computer 123 or
`to data equipment operated by an Internet Service Provider (ISP) 124. ISP 124 in
`turn provides data communication services through the world wide packet data
`communication network now commonly referred to as the "Internet" 125. Local
`network 122 and Internet 125 both use electrical, electromagnetic or optical
`signals which carry digital data streams. The signals through the various
`networks and the signals on network link 121 and through communication
`interface 120, which carry the digital data to and from computer 100, are
`exemplary forms of carrier waves transporting the information.
`
`
`
`Computer 100 can send messages and receive data, including program
`code, through the network(s), network link 121, and communication interface
`120. In the Internet example, remote server computer 126 might transmit a
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`12
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`requested code for an application program through Internet 125, ISP 124, local
`network 122 and communication interface 120. In accord with the invention, one
`such application is that of determining the commission to be disbursed to a sales
`representative.
`
`The received code may be executed by processor 113 as it is received,
`
`and/or stored in mass storage 112, or other non-volatile storage for later
`execution. In this manner, computer 100 may obtain application code in the form
`of a carrier wave.
`
`Application code may be embodied in any form of computer program
`
`product. A computer program product comprises a medium configured to store
`or transport computer readable code, or in which computer readable code may
`be embedded. Some examples of computer program products are CD-ROM
`disks, ROM cards, floppy disks, magnetic tapes, computer hard drives, servers
`on a network, and carrier waves.
`
`
`
`The computer systems described above are for purposes of example only.
`An embodiment of the invention may be implemented in any type of computer
`system or programming or processing environment.
`
`Utilization of Computer Software
`
`
`
`In one embodiment of the invention, computer software that utilizes
`multiple related functions and data structures is utilized. To encapsulate these
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`13
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`related functions and data structures, one embodiment of the invention utilizes a
`standard object oriented programming (OOP) language approach. To provide an
`understanding of encapsulation of related data structures and methods, an
`overview of object-oriented programming is provided below.
`
`Object-Oriented Programming
`
`
`
`Object-oriented programming is a method of creating computer programs
`by combining certain fundamental building blocks, and creating relationships
`among and between the building blocks. The building blocks in object-oriented
`programming systems are called "objects." An object is a programming unit that
`groups together a data structure (one or more instance variables) and the
`operations (methods) that can use or affect that data. Thus, an object consists of
`data and one or more operations or procedures that can be performed on that
`data. The joining of data and operations into a unitary building block is called
`"encapsulation."
`
`
`
`An object can be instructed to perform one of its methods when it receives
`a "message." A message is a command or instruction sent to the object to execute
`a certain method. A message consists of a method selection (e.g., method name)
`and a plurality of arguments. A message tells the receiving object what
`operations to perform.
`
`
`
`One advantage of object-oriented programming is the way in which
`methods are invoked. When a message is sent to an object, it is not necessary for
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`14
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`the message to instruct the object how to perform a certain method. It is only
`necessary to request that the object execute the method. This greatly simplifies
`program development.
`
`
`
`Object-oriented programming languages are predominantly based on a
`"class" scheme. The class-based object-oriented programming scheme is
`generally described in Lieberman, "Using Prototypical Objects to Implement
`Shared Behavior in Object-Oriented Systems," OOPSLA 86 Proceedings,
`September 1986, pp. 214-223.
`
`A class defines a type of object that typically includes both variables and
`
`methods for the class. An object class is used to create a particular instance of an
`object. An instance of an object class includes the variables and methods defined
`for the class. Multiple instances of the same class can be created from an object
`class. Each instance that is created from the object class is said to be of the same
`type or class.
`
`
`
`To illustrate, an employee object class can include "name" and "salary"
`instance variables and a "set_salary" method. Instances of the employee object
`class can be created, or instantiated for each employee in an organization. Each
`object instance is said to be of type "employee." Each employee object instance
`includes "name" and "salary" instance variables and the "set_salary" method. The
`values associated with the "name" and "salary" variables in each employee object
`instance contain the name and salary of an employee in the organization. A
`message can be sent to an employee’s employee object instance to invoke the
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`15
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`"set_salary" method to modify the employee’s salary (i.e., the value associated
`with the "salary" variable in the employee’s employee object).
`
`
`
`A hierarchy of classes can be defined such that an object class definition
`has one or more subclasses. A subclass inherits its parent’s (and grandparent’s
`etc.) definition. Each subclass in the hierarchy may add to or modify the
`behavior specified by its parent class. Some object-oriented programming
`languages support multiple inheritance where a subclass may inherit a class
`definition from more than one parent class. Other programming languages
`support only single inheritance, where a subclass is limited to inheriting the class
`definition of only one parent class.
`
`
`
`An object is a generic term that is used in the object-oriented
`programming environment to refer to a module that contains related code and
`variables. A software application can be written using an object-oriented
`programming language whereby the program's functionality is implemented
`using objects. The encapsulation provided by objects in an object-oriented
`programming environment may be extended to the notion of transactions,
`allocations, quotas, quota details, quota states, and promotions as discussed
`below.
`
`
`
`In one embodiment of the invention, a shell object mechansim is utilized
`to store and provide access to objects and data. Such a mechanism is discussed
`in detail in pending U.S. Patent Application Serial Number 08/931,878 entitled
`
`5
`
`10
`
`15
`
`20
`
`85160.919
`
`16
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`"Method and Apparatus for Providing Peer Ownership of Shared Objects" which
`is hereby incorporated by reference.
`
`
`
`5
`
`Embodiment of Object Model for Determining Commissions
`
`
`
`One embodiment of the invention provides the ability to determine
`Commissions and amounts payable to sales representatives (referred to as a
`"Commission System"). The Commission System provides an open, extensible
`object model that allows the business user to define any number of arbitrary
`properties (also referred to as hierarchies or object hierarchies) that model the
`structures associated with a business, such as a business' customers, products,
`and sales teams (in addition to a default model that specifies a set of hierarchies).
`These properties can then be used through a Commission calculation process to
`determine the payment for a sales representative.
`
`Hierarchies
`
`
`
`
`
`One model of the invention consists of a set of five (5) components or
`hierarchies: Sales Representative, Product, Customer, Quota, and Plan.
`
`
`
`Sales Representative
`
`The Sales Representative hierarchy represents the sales
`
`
`organization of a business and the person or entity that makes a sale. It can
`represent and may consist of individual sales representatives, or sales
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`17
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`manager(s), a selling group/team, a retailer, or any number of arbitrary
`organizations. The Sales Representative hierarchy is used to represent the
`individual or group that makes a sale. "Sales Representative" is used
`interchangeably with "Sales Team" to represent an individual or group of
`persons throughout this document. Sales teams/groups are stored in a hierarchy
`tree, which is used to represent and manipulate different organization groups. A
`sales team can belong to one or several groups in the tree.
`
`
`
`Product
`
`The Product hierarchy represents what is being sold. A Product
`
`
`can be a product idenfitication number, product group, or category, for example.
`Products are similarly stored in a hierarchy tree, which can be used to represent
`products lines, promotional groups, regionality (where a product is sold or built),
`categories, etc.
`
`Customer
`
`
`The Customer hierarchy represents the customer that a product is
`
`
`sold to. A Customer hierarchy can represent an individual customer or account.
`Similar to Sales Representatives and Products, Customers are stored in a
`hierarchy tree, which in turn can represent industries, territories, regions, type of
`sales, and other customer segments.
`
`
`
`Quota
`
`A Quota, also referred to as a Performance or Bucket, defines the
`
`
`sales performance to track and accumulate. Quotas can be defined to track any
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`18
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`performance measure (units, sales volume, profit margin, etc.) over any time
`period (weekly, monthly, quarterly, yearly, etc.) across any number of sales
`teams (sales reps, sales teams, regions, etc.) Quotas are used to calculate bonuses
`and Commissions, sales tracking and other types of performance measures.
`
`Plans
`
`
`Plans define the reward for a certain performance and consists of a
`
`
`collection of Promotions (also referred to as a Bonus, Commission, or
`Compensation). Plans are the link between performance and earnings.
`Promotions calculate an earnings payment based on a formula using one or
`several performance variables.
`
`
`
`In addition to the above default hierarchies, one embodiment of the
`invention permits the creation or specification of additional arbitrary hierarchies
`by a user. Additional hierarchies can represent actual groups or entities (such as
`employees) or non-existent groups that may be used to collect statistics.
`
`
`
`Processing Sales Transactions
`
`The hierarchies defined above maintain data and methods to enable the
`
`Commission System to efficiently and accurately process sales. Figure 2
`demonstrates the processing that occurs in one embodiment of the invention
`from the sale of a Product or service to payment of a Commission to a Sales
`Representative. The Commission Model 218 indicates the mechanism which
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`19
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`governs how the processing occurs. When a sale is made, a sales transaction 200
`is input into the system. Through a set of rules 210, Sales Representatives are
`apportioned or allocated credit in the form of Allocations 202. Quotas 212 and
`214 process the Allocations 202 into Quota Details 204 that contain the change in
`the current status of the sales representative's progress towards a Promotion.
`The current status is also referred to as the Quota State or Quota State
`Performance 206. The amount a Sales Representative is to receive as a result of
`the sales transactions is determined by a calculation in a Promotion Object 216.
`Once determined, the amount is converted into a Ledger Item 208 and
`distributed out to the Sales Representative.
`
`
`
`To provide an understanding of how each object of the Model 218 governs
`the commission process, each object and its affect on the transaction flow
`through the Commission System/engine will be discussed in detail below.
`
`
`
`
`
`
`Transactions
`
`Transactions contain information regarding a sale and may be viewed as a
`line item in a sales order. Each transaction is independent from each other such
`that the order in which a transaction occurs or is entered into the system is not
`relevant. Referring to Figure 2, the input to the Commission system is a Model
`218 and a set of Transactions 200. The Model 218 is static, and describes the
`Promotions, Products, and organizational hierarchy referenced by the incentive
`program. The Transactions 200 typically describe who sold what to whom and
`
`5
`
`10
`
`15
`
`20
`
`25
`
`85160.919
`
`20
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`when. A Transaction may also answer the questions "why?", "how many?", and
`"for how much?". Transactions 200 may be arbitrarily extended to contain any
`number of properties and these properties may later be referenced or used by
`other components and hierarchies of the system. Referring to Figure 3, a
`Transaction's properties may be basic types (e.g., types 308-312), sub-objects (e.g.,
`sub-objects 302-306), or basic types of sub-objects (e.g., types 314-336). A default
`Transaction 200 may contain properties for a Sales Representative 302 (the Sales
`Representative who made the sale), a Product 304 (what was sold), a Customer
`306 (who bought the product), the Date of the Sale 308, the Unit Price 310, and
`Quantity sold 312.
`
`It is often the case, however, that the person who makes the sale is not the
`
`only person who gets credit for the sale. Often, a Sales Representative's Manager
`may get credit for some portion of the sale. Alternatively, the person in charge of
`the product that was sold should get credit for the sale. Additionally, a
`Transaction 200 may not indicate a Sales Representative; credit may need to be
`decided by some set of predefined rules. Further, one person may belong to
`several different groups at the same time (referred to as multiple inheritance).
`For example, one embodiment of the invention provides the ability for Jon Smith
`to be a member of Sales Team Blue, Sales Team Red, and Sales Manager over
`Lucy all at the same time. In this manner, Jon may receive credit through various
`sales that Jon himself did not initiate. Multiple inheritance may also be utilized
`to create virtual sales teams to maintain statistics and information.
`
`5
`
`10
`
`15
`
`20
`
`
`
`25
`
`85160.919
`
`21
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`
`
`
`Allocations
`
`The Commission System uses the term "Allocation" 202 to indicate credit
`allocated to a single individual or group on a single sale/Transaction. An
`allocation may be viewed as a Transaction that is tied to a Sales Representative at
`a certain weight. Referring to Figure 4, an Allocation 202 may be an object that
`references the Transaction 200, a Sales Team or Representative 402 who will get
`credit for that Transaction 200, and the percentage weight of credit 404 for the
`Transaction that the Sales Representative 402 receives. The total weight of all
`Allocations 202 for a single Transaction 200 does not need to total one (1) or
`100%. In Figure 4, each allocation is represented by a row. For example, as
`demonstrated in Figure 4, transaction number one may result in sales team blue
`being allocated 2% credit and John Smith, the sales representative, being
`allocated 100% credit. Transaction number 2 may result in Mark Adams, the
`sales representative, being allocated 100% credit and Mark Adam's manager
`being allocated 3% credit.
`
`5
`
`10
`
`15
`
`
`
`85160.919
`
`22
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`Allocation Rules
`
`The mechanism that decides how Allocations 202 are created from
`Transactions 200 is the set of "Allocation Rules" 210. To understand how
`Allocation Rules 210 are written, it is best to look at the kind of questions an
`Allocation Rule 210 will need to address. For a given Transaction 200, the
`following are examples of how Allocations 202 may need to be created.
`
`
`5
`
`Example I.
`
`If Sales Representative Joshua made the sale, give Joshua 100% credit for
`1.
`the sale.
`2.
`If sales manager Eileen or anyone working under her made the sale, give
`Eileen 20% credit for the sale.
`3.
`If the color of the Product sold is "Red', give 5% credit to 'The Red Team'.
`4.
`If the sale was made to any of the 'Large Customers', give John 10%
`credit.
`5.
`If the number of units sold is between 100 and 500, give 5% credit to
`Brennan.
`
`
`
`10
`
`Each of the examples above represents a different type of Allocation. To
`understand the use of Allocation Rules to allocate credit, it is useful to examine
`the type of Allocation generically. Referring to the examples above, situation 1 is
`a Sales Team or Sales Representative type of Allocation wherein a Sales
`
`85160.919
`
`23
`
`EXPRESS MAIL #EM484490752US
`
`
`
`
`
`Representative, Josh, is allocated credit for a Transaction. Situation 2 is a Roll-up
`type of Allocation wherein a Sales Manager, Eileen, is allocated credit for a
`Transaction made by another person. The Transaction is rolled-up the selling
`chain to the sales manager, Eileen. Situation 3 is a property of a product type of
`transaction wherein a property of a product, the color, is being utilized to
`allocate credit for the Transaction. Situation 4 is a property of a Customer type of
`transaction wherein a property of a customer, large customer, is utilized to
`allocate credit for the Transaction. Situation 5 is a quantity in a range type of
`Allocation wherein a quantity range, the number of units sold, is utilized to
`allocate credit for the Transaction.
`
`It is useful to have a language that has the ability to describe each of these
`conditions/situations, in any (boolean) combination. Rule Templates may
`provide this ability. In one embodiment, a Rule Template is the mechanism for
`describing how the user expects the rules to "look". The Rule Template is used
`both in generating Allocations 202, and in filtering or determining eligible
`Quotas (discussed below).
`
` A
`
` Rule Template consists of a collection of Allocation Rules 210. Each
`Allocation Rule 210 is represented by a Name (or number) and a collection of
`Rule Attributes. Each Rule Attribute corresponds to a qualitative description of
`one of the examples above; the Rule Attribute contains a Transaction-based
`Property, an Operation, and an Alias. If all of the conditions in Examp