IEX Corp. v. Blue Pumpkin Software, Inc.

NOTE: Pursuant to Fed. Cir. R. 47.6, this disposition is not citable as precedent. It is a public record. United States Court of Appeals for the Federal Circuit 04-1068, -1094 IEX CORPORATION, Plaintiff-Appellant, v. BLUE PUMPKIN SOFTWARE, INC., Defendant-Cross Appellant. __________________________ DECIDED: February 2, 2005 __________________________ Before NEWMAN, CLEVENGER and BRYSON, Circuit Judges. CLEVENGER, Circuit Judge. Plaintiff-Appellant IEX Corporation ("IEX") appeals the decision of the United States District Court for the Eastern District of Texas granting summary judgment of noninfringement of U.S. Patent No. 6,044,355 ("the '355 patent") in favor of Defendant- Cross Appellant Blue Pumpkin Software, Inc. ("Blue Pumpkin"). See IEX Corp. v. Blue Pumpkin Software, Inc., No. 4:01-CV-16 (E.D. Tex. Oct. 9, 2003) ("Final Judgment"). Blue Pumpkin cross-appeals the district court's dismissal of Blue Pumpkin's counterclaims for patent invalidity and unenforceability and for attorney's fees. It requests that its claims be reinstated and remanded for consideration if the district court's summary judgment is reversed. Because the district court improperly construed the claims of the patent at issue, we vacate the district court's summary judgment of noninfringement and remand for further consideration. We also reinstate and remand Blue Pumpkin's invalidity, unenforceability and attorney's fees claims. I IEX is the holder of the '355 patent, entitled "Skills-Based Scheduling For Telephone Call Centers." A telephone call center is a collection of agents, telecommunication equipment, and management software, organized for the sole purpose of handling customer contact through telephone calls. As calls are received, they are identified by an automatic call distributor ("ACD") according to type (e.g., sales calls, service calls) and are either delivered to a waiting agent or are queued pending agent availability. In a typical "queue/team" model, agents are divided into teams, with each team handling a particular call type. If the ACD receives a sales call, for example, that call is directed to the sales call team and is either taken immediately by a sales call agent or is queued until one becomes available. Because agents within a particular team are interchangeable for purposes of handling calls, teams are scheduled independently. Skills-based routing systems depart from the "queue/team" model in that each incoming call is determined to require a particular skill or number of skills (e.g., sales experience, service experience) and is directed by the ACD to an agent with the required skill set. Teams are no longer formed around a specific call type, but are instead comprised of agents having a particular skill set. An agent with both sales and service experience, for example, is not limited to a sales call team or a service call team, but instead may be connected to both sales and service queues. Likewise, an agent with sales and billing experience may be connected to the sales and billing 04-1068, -1094 2 queues. Because various combinations of skill sets can overlap in a skills-based environment, call centers can no longer consider call types in isolation for purposes of scheduling, thus complicating the task of scheduling call center agents for work. A The invention of the '355 patent is designed to simplify the scheduling process within a skills-based environment. The patent claims an iterative approach to "generating agent schedules for a telephone call center operation based on the 'skill' profiles of the agent population." '355 patent, col. 1, ll. 9-11. A representative diagram from the patent illustrating the claimed iteration is shown below. Id. Fig. 1. As claimed, the invention generates net staffing data that generally defines the total number of additional agents needed to handle a call type during a particular time interval. See id. col. 5, ll. 46-56. The invention also generates skills group availability 04-1068, -1094 3 data, which is a percentage estimate of the number of agents available to handle a call type during a particular time interval. See id. col. 5, l. 66-col. 6, l. 8. Using these numbers, the invention utilizes a commercially available "scheduler" to generate an agent work schedule. See id. col. 6, ll. 16-23. The invention then runs a call handling simulation on the schedule based on a call distribution algorithm and historic call data. If variables such as the average speed of answer, the number of calls abandoned by the caller and the idle time logged for each agent, fall below pre-determined expectations, the invention adjusts the net staffing data and skills group availability data, and uses the modified values to create a new schedule. See id. col. 6, l. 37-col. 7, l. 38. The method repeats this iteration until it reaches the desired scheduling results. B IEX sued Blue Pumpkin on January 12, 2001, claiming that two Blue Pumpkin products—Director Essential and Director Enterprise1—infringed the '355 patent. Two of the claims in suit, and the only two at issue on appeal, are independent claims 1 and 19. They recite: 1. A method, using a computer, of determining an efficient schedule for a plurality of scheduled agents in a telephone call center, each of the plurality of scheduled agents having a combination of defined skills and wherein the plurality of scheduled agents may be organized into skill groups each including all scheduled agents having a particular combination of skills, comprising the steps of: (a) generating net staffing data per call type defining, for each time interval to be scheduled, an estimate of a difference between a given staffing level and a staffing level needed to meet a current call handling requirement; 1 The differences between these products are immaterial for purposes of this appeal. 04-1068, -1094 4 (b) generating skills group availability data per call type defining, for each combination of skill group and time interval to be scheduled, an estimate of a percentage of scheduled agents from each skill group that are available to handle a call; (c) using the net staffing data and the skills group availability data to generate a schedule for each of the plurality of scheduled agents; (d) running a call handling simulation against the schedule; (e) adjusting the net staffing data and the skills availability data as a result of the call handling simulation, and (f) repeating steps (c)-(e) until an output schedule occurs. ... 19. A computer program product in a computer-readable medium for use in a computer for determining an efficient schedule for a plurality of scheduled agents in a telephone call center, each of the plurality of scheduled agents having a combination of defined skills and wherein the plurality of scheduled agents may be organized into skill groups each including all scheduled agents having a particular combination of skills, the computer program product comprising: first means for generating net staffing data per call type defining, for each time interval to be scheduled, an estimate of a difference between a given staffing level and a staffing level needed to meet a current call handling requirement; second means for generating skills group availability data per call type defining, for each combination of skill group and time interval to be scheduled, an estimate of a percentage of scheduled agents from each skill group that are available to handle a call; third means responsive to the first and second means for generating a schedule for each of the plurality of scheduled agents; fourth means for running a call handling simulation against the schedule; and fifth means responsive to the fourth means for refining the net staffing array and the skills availability data as a result of the call handling simulation for a subsequent iteration. Id. col. 11, ll. 15-40; col. 12, l. 66-col. 13, l. 26. 04-1068, -1094 5 The district court referred the case to a Magistrate Judge for a recommendation regarding claim construction. After a hearing on March 19, 2002, pursuant to Markman v. Westview Instruments, Inc., 52 F.3d 967 (Fed. Cir. 1995), aff'd, 517 U.S. 370 (1996), the Magistrate Judge recommended, inter alia, that "skill group" be construed as "one or more agents, each agent having a particular sub-combination of skills," and "skills group availability data" as "a current estimate for the availability a call type should expect for scheduled agents in a skill group." IEX Corp. v. Blue Pumpkin Software, Inc., No. 4:01-CV-16, at 4 (E.D. Tex. May 29, 2002) ("Claim Construction R&R"). On March 12, 2003, the district court adopted the Magistrate Judge's construction of "skills group availability data" but found "after an examination of all of the intrinsic evidence, that a more appropriate construction [for 'skill group'] is 'a group of agents with each agent having a particular sub-combination of skills.'" IEX Corp. v. Blue Pumpkin Software, Inc., No. 4:01-CV-16, at 3 (E.D. Tex. Mar. 12, 2003) ("First Order"). On April 8, 2003, Blue Pumpkin filed a motion for summary judgment of noninfringement, which the district court again referred to a Magistrate Judge. IEX responded to the motion with what it characterizes as evidence of infringement, including a declaration and reports by IEX's expert Joseph McAlexander. On July 8, 2003, the Magistrate Judge stated that "the process [claimed in the '355 patent] does not identify skill groups after application, but only before application" and that "each agent within the skill group [must] possess the same skills." IEX Corp. v. Blue Pumpkin Software, Inc., No. 4:01-CV-16, at 8, 11 (E.D. Tex. July 8, 2003) ("Infringement R&R"). The Magistrate Judge then agreed with Blue Pumpkin that its products do not calculate skills group availability data or maintain any variable separately for each combination of 04-1068, -1094 6 skill group, call type, and time interval. See id. at 13. The Magistrate Judge finally observed that Blue Pumpkin's products are "agent focused not skill group focused," id. at 9-10, and concluded that Blue Pumpkin's products do not infringe the '355 patent, either literally or pursuant to the doctrine of equivalents. The Magistrate Judge recommended that Blue Pumpkin's motion for summary judgment of noninfringement be granted. See id. at 14. On July 10, 2003, Blue Pumpkin filed a notice of newly discovered evidence. The evidence consisted of deposition testimony by Mr. McAlexander, Michael Tanner, another IEX expert, and Paul Leamon, a named inventor of the '355 patent. On July 21, 2003, IEX filed an objection to the Magistrate Judge's summary judgment recommendation, pursuant to Fed. R. Civ. P. 72. In the exchange of motions and subsequent responses, IEX submitted additional declarations and an "infringement claim chart" prepared by Mr. McAlexander. On September 17, 2003, the district court held a hearing regarding IEX's objections. In a memorandum dated October 10, 2003, the district court adopted the Magistrate Judge's recommendations in their entirety but did not discuss IEX's most recent expert evidence submissions. See IEX Corp. v. Blue Pumpkin Software, Inc., No. 4:01-CV-16, at 3 (E.D. Tex. Oct. 9, 2003) ("Second Order"). IEX appeals from the district court's final judgment granting summary judgment of noninfringement in favor of Blue Pumpkin. See Final Judgment at 1. We have jurisdiction over the appeal pursuant to 28 U.S.C. § 1295(a)(1) (2000). 04-1068, -1094 7 II We review without deference the district court's grant of summary judgment. See Merck & Co., Inc. v. Mylan Pharms., Inc., 190 F.3d 1335, 1338 (Fed. Cir. 1999). Summary judgment is proper if after drawing all reasonable factual inferences in favor of the nonmoving party, see Anderson v. Liberty Lobby, Inc., 477 U.S. 242, 255 (1986), "the pleadings, depositions, answers to interrogatories, and admissions on file, together with the affidavits, if any, show that there is no genuine issue as to any material fact and that the moving party is entitled to a judgment as a matter of law," Fed. R. Civ. P. 56(c). Summary judgment is not proper where "the evidence is such that a reasonable jury could return a verdict for the non-moving party." Anderson, 477 U.S. at 248. "An infringement analysis is a two-step process in which the court first determines, as a matter of law, the correct claim scope, and then the fact-finder compares the properly construed claim to the accused device to determine, as a matter of fact, whether all of the claim limitations are present, either literally or by a substantial equivalent in the accused device." Rexnord Corp. v. Laitram Corp., 274 F.3d 1336, 1341 (Fed. Cir. 2001); see also Johnson Worldwide Assoc., Inc. v. Zebco Corp., 175 F.3d 985, 988 (Fed. Cir. 1999). We thus will decide without deference whether the district court was correct in its judgment that no reasonable jury could find, either literally or by application of the doctrine of equivalents, each and every limitation recited in the properly construed claims in the accused device. See Middleton, Inc. v. Minn. Mining and Mfg. Co., 311 F.3d 1384, 1387 (Fed. Cir. 2002). 04-1068, -1094 8 III On appeal, IEX argues that the district court relied on incorrect claim constructions in granting summary judgment of noninfringement, and that it failed to recognize that IEX's expert testimony creates a genuine issue of material fact regarding infringement. We address each contention in turn. A IEX disputes the district court's actual Markman conclusions as well as the court's apparent reliance on additional limitations pertaining to "skill group" at the summary judgment stage of the proceedings. In addition, Blue Pumpkin now asserts several additional limitations applicable to "skills group availability data" that it initially advanced in summary judgment briefing but that were not expressly relied upon by the Magistrate Judge in recommending summary judgment. Because "it is the claims of the patent which define the invention," Altoona Publix Theatres v. Am. Tri-Ergon Corp., 294 U.S. 477, 487 (1935), in construing the claims we look first and foremost to the claim language, see Rexnord, 274 F.3d at 1341. While the terms of the patent claims are generally accorded their ordinary and accustomed meaning to one of ordinary skill in the relevant art, see Innova/Pure Water, Inc. v. Safari Water Filtration Sys., Inc., 381 F.3d 1111, 1116 (Fed. Cir. 2004), we must also examine the remaining intrinsic evidence—the rest of the specification and the prosecution history—"to determine whether the patentee has set forth an explicit definition of a term contrary to its ordinary meaning, has disclaimed subject matter, or has otherwise limited the scope of the claims," Day Int'l, Inc. v. Reeves Bros., Inc., 260 F.3d 1343, 1348 (Fed. 04-1068, -1094 9 Cir. 2001). With these claim construction principles in mind, we begin with the district court's treatment of "skill group." Skill Group Despite a rather clear statement in the patent's written description that "[o]ne or more agents are . . . organized into 'skill groups,'" '355 patent, col. 5, ll. 7-9, the district court declined to accept the Magistrate Judge's "one or more" construction and instead determined that "skill group" referred to "a group of agents." First Order at 3. An interpretation that excludes a preferred embodiment is rarely, if ever, correct. See Vitronics Corp. v. Conceptronic, Inc., 90 F.3d 1576, 1583 (Fed. Cir. 1996). But while IEX asserts in briefing to this court that the patent does not rule out the possibility that a particular skill group might contain only one member depending on the circumstances, it represented to the district court that "[a]t no time . . . has IEX ever accused the Blue Pumpkin products of infringing based on such a theory." (J.A. at 1645.) Rather, IEX now contends that its theory of infringement has always been that Blue Pumpkin organizes agents into skill groups typically containing many members. It comes as no surprise, then, that IEX does not expressly challenge the district court's "group of agents" construction on appeal.2 Nonetheless, "skill group" correctly interpreted includes a group of one or more agents, and the district court erred when it construed "skill group" to require more than one agent. 2 Counsel for IEX went so far as to assert at oral argument that "[w]ithin the scope of this appeal, the consequences of that single versus multiple agent really aren't relevant because we've produced infringement proof showing that the skill groups in Blue Pumpkin's product are comprised of multiple agents. So it doesn't matter, we're not relying on saying that a group is a single agent." 04-1068, -1094 10 Next, IEX disputes two additional limitations that it alleges were read into the phrase "skill group" by the Magistrate Judge upon recommending summary judgment. First, the Magistrate Judge stated that "each agent within the skill group [must] possess the same skills." Infringement R&R at 11. In reviewing this construction, we note at the outset that both parties at various times throughout the litigation have framed the question as whether skill groups can overlap, but this perspective is unhelpful. There is no doubt that skill groups can overlap insomuch as group A can include, for hypothetical purposes, agents with skills 1, 2 and 3, and group B can include agents with skills 2, 3 and 5. The patent expressly says as much. See '355 patent, col. 5, ll. 9-12. The question instead is whether the patent requires that each skill group include only agents having identical skills, e.g., whether the patent precludes the inclusion of an agent with skills 1, 2, 3 and 4 within our hypothetical group A. We think that it does not. Claims 1 and 19 both specify that each skill group includes "all scheduled agents having a particular combination of skills." Id. col. 11, ll. 20-21; col. 13, ll. 5-6. The written description explains that a skill group includes all agents with a particular combination, or a particular subcombination, of skills. See id. col. 2, ll. 43-44 ("All agents having a particular combination of skills may be deemed a 'skill group.'"); col. 3, ll. 32-35 ("The plurality of scheduled agents are organized into 'skill groups' with each group including all scheduled agents having a particular combination of skills."); col. 5, ll. 7-9 ("One or more agents are then organized into 'skill groups,' each including all scheduled agents having a particular sub-combination of skills."). If accorded their plain meaning, these statements require only that all agents within a skill group have a 04-1068, -1094 11 particular combination of skills in common, not that they each have identical skills.3 In other words, an agent with skills 1, 2, 3 and 4 has the same combination of skills as those within our hypothetical group A, that combination being skills 1, 2 and 3. To be sure, the patent's written description specifies that "[i]n the preferred embodiment, skill priorities are included when organizing agents into skill groups; in a particular skill group, all agents have the same skills at the same priority levels." Id. col. 5, ll. 15-18 (emphasis added). But patent scope is not confined to preferred embodiments disclosed in the patent's written description, Cordis Corp. v. Medtronic AVE, Inc., 339 F.3d 1352, 1365 (Fed. Cir. 2003), and in any event, the patent makes clear that the claimed method "requires only that the skill group divisions in the agent population be understood and available to the method," '355 patent, col. 9, ll. 8-10. A call center using the claimed method thus has some flexibility in defining a "skill group" to include all agents having a particular combination of skills or all agents having identical skills, so long as that definition is made known to the claimed method. Second, the Magistrate Judge stated in his summary judgment recommendation that the "[k]ey to the success of the program is that there be some identification of agents with skills before the process can work. In another [sic] words, the process does not identify skill groups after application, but only before application." Infringement R&R at 8. Though this statement is somewhat ambiguous, IEX suggests that it was made in response to Blue Pumpkin's summary judgment argument that the '355 patent claims require that "the skill group availability data for each skill group must be calculated 3 Despite Blue Pumpkin's argument to the contrary, we find nothing in the prosecution history that requires the "identical skills" construction adopted by the district court. 04-1068, -1094 12 before agents are placed into the schedule." (J.A. at 1383.) We cannot be certain from the Magistrate Judge's statement that he intended to imply that the '355 patent precluded the input of an initial schedule into the method prior to the creation of skills group availability data. We nonetheless address the issue to clarify the district court's task upon remand. It is true that the method claimed in the patent generates net staffing data and skills group availability data, which it ultimately uses as inputs into the generation of a work schedule. It is also true that skills group availability data is an estimate of a percentage of scheduled agents from each skill group that are available to handle a call. It therefore seems logical to assume that in order for the claimed invention to compile skills group availability data, skill groups must exist in some form. This assumption, however, begs a rather large question reminiscent of the famed chicken and egg controversy. How can the invention of the '355 patent generate net staffing data based in part on the given staffing level for a particular time period, and skills group availability data that define a skill group's availability for that time period, without first having agents actually scheduled during the relevant time period? In other words, which comes first, the skill groups used to generate skills group availability data and thus a schedule, or some form of the schedule itself, which implicitly defines certain parameters needed to develop net staffing data and skills group availability data? The patent solves this problem in the preferred embodiment by allowing rough estimates for the net staffing data and skills group availability data. '355 patent, col. 5, ll. 51-53 ("The initial estimates for net staff values need not be extremely accurate, as they are refined in later iterations of the method as will be described."); col. 6, ll. 8-12 04-1068, -1094 13 ("The initial estimates for values in this array need not be extremely accurate, as they are refined in later iterations of the method as will be described. Thus, for example, the initial estimate may be '0' for any skill group that is not eligible at all for a call type, and '1/2' otherwise."). But nothing in the claims themselves or in the written description precludes the use of an initial schedule as an input into the iteration. In fact, by referencing "scheduled agents" in the preamble, claims 1 and 19 seem to contemplate this very thing. See id. col. 11, ll. 15-21; col. 12, l. 66-col. 13, l. 6. We thus hold that the '355 patent does not preclude the method's use of an initial schedule prior to the creation of skills group availability data. Skills Group Availability Data We next address the parties' contentions regarding "skills group availability data." The Magistrate Judge construed the phrase to mean "a current estimate for the availability a call type should expect for scheduled agents in a skill group." Claim Construction R&R at 4. The district court adopted this construction, First Order at 4, and neither the Magistrate Judge nor the district court expressly modified it during the summary judgment stage of the proceedings. Nevertheless, Blue Pumpkin advances three additional "skills group availability data" limitations that it contends are required by the '355 patent claims. Blue Pumpkin first argues that the claim limitations "generating skills group availability data per call type, defining for each combination of skill group and time interval . . . a percentage" and "using . . . the skills group availability data to generate a schedule for each of the plurality of scheduled agents" requires that for a given call type and time interval, the claimed method calculates a single percentage value for each skill 04-1068, -1094 14 group, which it then uses in scheduling calculations for every agent in the group. Blue Pumpkin highlights the word "a" in the language as evidence that its proposed construction embodies the ordinary meaning of the language. To the contrary, an indefinite article, such as "a," in patent parlance means "one or more" in open-ended claims containing the transitional phrase "comprising." KCJ Corp. v. Kinetic Concepts, Inc., 223 F.3d 1351, 1356 (Fed. Cir. 2000). "Unless the claim is specific as to the number of elements, the article 'a' receives a singular interpretation only in rare circumstances when the patentee evinces a clear intent to so limit the article." Id. An estimate, as is set forth in the claims, is thus presumed to mean one or more estimates. Blue Pumpkin argues that the specification supports a single value but points to only two particular sentences in the patent's written description. See '355 patent, col. 6, ll. 11-12 ("the initial estimate may be '0' for any skill group that is not eligible at all for a call type, and '1/2' otherwise"); col. 8, ll. 5-9 ("With respect to skill group availability . . . [t]he simulator . . . . increments a counter for the call type the agent is handling and the agent's skill group."). Neither necessarily limits the claimed invention to a single value or provides a context from which the court could find a clear intent on the part of the patentee to limit the article "a" to singular form. Blue Pumpkin next argues that the skills group availability data must remain constant throughout scheduling. IEX offers little argument to the contrary and instead contends that changes to the skills group availability data after scheduling but before simulation are irrelevant because the data will be modified after the simulation. We agree with both parties. The patent contemplates that skills group availability data will remain constant in a given iteration until after generation of a schedule. 04-1068, -1094 15 Blue Pumpkin finally argues somewhat vaguely that the patent claims require that separate values of skills group availability data be generated for each combination of skill group, call type, and time interval. We agree: the claims are susceptible to no other reasonable interpretation. B IEX contends that in addition to the claim construction errors, the district court also erred in failing to recognize that IEX's expert testimony, particularly that from Mr. McAlexander, creates a genuine issue of material fact regarding infringement that precludes summary judgment. According to Mr. McAlexander, Blue Pumpkin's products utilize a function called "DoSBSchedule," which is located in a file called "sbsched.cpp" and which generally performs skills based scheduling by scheduling available agents into queues corresponding to particular call types, depending on the skills that each agent possesses. (J.A. at 1307, 1592.) Mr. McAlexander conceded that skills group information in Blue Pumpkin's software code does not exist in arrays (J.A. at 1592), as is disclosed by the patent as a preferred technique. See '355 patent, col. 5, l. 66-col. 6, l. 26. Mr. McAlexander opined, however, that Blue Pumpkin's products instead organize skills group information into complex data structures called "object attributes." He stated: To locate the associated "object attributes" which together define a skill group, the Blue Pumpkin code explicitly calls the function "GetBestSlotAndPerson( )" in the file "sbsched.cpp" at line 1693. . . . This function modifies an object "gSchedule" to reflect the new employee added to the schedule. The combination of the "gSchedule" object and the employee object attributes of scheduled employees define a skill group. Each skill group thus defined comprises those employees (agents) having a particular sub-combination of skills (attributes). 04-1068, -1094 16 (J.A. at 1592.) Mr. McAlexander further described how Blue Pumpkin's products generate net staffing data and skills group availability data: The preprocessing portion of the code in "DoSBSchedule()" generates both the "net staffing data" and "skills group availability data" per call type and interval in respectively "schedAddEmployee()" and "AddShftToScoring()". . . . In "schedAddEmployee()," the method calls "AddDude()" to operate on and change attribute "e_need," giving an estimate of the difference between a given staffing level and the staffing level needed to meet a call handling requirement. In "AddShftToScoring()," the method generates in "AddDude()" an estimate of the percentage of time available for an agent to handle a call, calculating a "score" during the "While loop" for each individual agent, calling "CalculateCurrentGuess," and keeping a running sum of the data values in an attribute named, "m_dCurrentGuess" for each call type and interval. (J.A. at 1593.) Mr. McAlexander also stated that Blue Pumpkin's products review and score each agent to be scheduled one at a time. Each agent's score is compared to the best previous score and either is discarded if not as good as the previous score or replaces the previous score if better. After all individual agents are scored, the best score is selected and only that individual agent scheduled and added to the group. After all agents are scored and the best selected and added, a simulation is run against the schedule in DoSBSchedule, and the "net staffing data" "e_need" and "skills group availability data" "m_dCurrentGuess["] are adjusted. The process . . . is repeated, again selecting from an array of names only that individual agent having the best score for addition to the group. Id. According to Mr. McAlexander, upon satisfying predetermined criteria the iteration stops and Blue Pumpkin's products generate a final output schedule. Id. While Mr. McAlexander's description of Blue Pumpkin's products is no model of clarity, Blue Pumpkin itself has never advanced a particularly straightforward 04-1068, -1094 17 explanation of how its products generate a work schedule from start to finish.4 According to Blue Pumpkin and its expert, Dr. Illah R. Nourbakhsh, Blue Pumpkin's products "schedule each agent on an individual basis, without organizing agents into skill groups for calculation or any other purposes." (J.A. at 561.) When considering a particular agent for scheduling, Blue Pumpkin's products score various scheduling options for each agent to be scheduled. The score depends in part on a variable called m_dCurrentGuess, which is calculated for each call type and time interval. The variable m_dCurrentGuess is based on a combination of other variables, including MINIMUM and MAXIMUM. When Blue Pumpkin's products consider a new agent for inclusion into the schedule, the MINIMUM and MAXIMUM variables are incremented and in turn modify m_dCurrentGuess. A separate m_dCurrentGuess value is thus generated for each instance of a candidate schedule, such that no two agents share an identical m_dCurrentGuess value, and multiple m_dCurrentGuess values are calculated to determine a single agent's schedule. (J.A. at 562-63.) As each new agent is added to the schedule, the m_dCurrentGuess variable grows incrementally. The m_dCurrentGuess variable thus shows at any given time the amount of work directed 4 Blue Pumpkin was asked at oral argument to describe how its products function. Counsel replied: What Blue Pumpkin's software does is it determines which agents should work at what time in the call center. A separate piece of equipment called the ACD, an automatic call distributor, which is different from what's claimed here, the automatic call distributor is what routes the calls, and routes the calls to particular agents depending on what skills they have. What the scheduler does is it figures up which agents should be working at what time. Counsel's explanation does little to distinguish Blue Pumpkin's products from the invention claimed in the '355 patent. 04-1068, -1094 18 towards a particular call type and time interval. A large value for the m_dCurrentGuess variable signifies a large number of agents utilized by that call type during the pertinent time interval. Contrary to IEX's assertions, Dr. Nourbakhsh stated that the GetBestSlotAndPerson function places agents into the schedule. (J.A. at 1751.) The G_Schedule object identifies all of the agents placed and provides nothing more than the times that agents will begin their shifts. Id. Neither the G_Schedule object nor the Employee object identifies agents by the call type served during a particular time interval. Id. No information in Blue Pumpkin's source code is ever used during scheduling to identify the agents serving a particular call type and time interval combination. Id. From this confusing exchange of explanations as to how Blue Pumpkin's products function, the district court adopted the conclusion reached by the Magistrate Judge—"Blue Pumpkin's products are agent focused not skill group focused." Infringement R&R at 9-10; see also Second Order at 3 ("The Court has concluded that the findings and conclusions of the Magistrate Judge are correct . . . ."). But neither the Magistrate Judge nor the district court explained in greater detail why IEX's evidence from Mr. McAlexander did not create a genuine dispute of material fact. We have recognized in the past that "to know the reasoning a district court used in deciding to grant summary judgment facilitates the task of a reviewing court." Cable Elec. Prods., Inc. v. Genmark, Inc., 770 F.2d 1015, 1020 (Fed. Cir. 1985), overruled on other grounds by Midwest Indus., Inc. v. Karavan Trailers, Inc., 175 F.3d 1356, 1358-61 (Fed. Cir. 1999) (en banc). That principle is equally applicable here. 04-1068, -1094 19 It may very well be that even after accepting Mr. McAlexander's testimony as true and drawing all reasonable inferences in IEX's favor, see Anderson, 477 U.S. at 255, IEX's evidence from Mr. McAlexander still falls short of establishing a genuine dispute of material fact regarding infringement. We cannot be certain that this is so, however, and think it better to remand the case back to the district court for further consideration in light of the claim constructions set forth in this opinion. IV In conclusion, the district court erred in relying on incorrect claim constructions in granting Blue Pumpkin's motion for summary judgment, though the extent to which it did so is not entirely clear from the Magistrate Judge's recommendation or the district court's memorandum adopting that recommendation. The district court also did not fully articulate its reasons for rejecting IEX's expert evidence, particularly that from Mr. McAlexander. Accordingly, we vacate the district court's grant of summary judgment in favor of Blue Pumpkin and remand for further consideration in light of the claim constructions set forth in this opinion. We also reinstate and remand Blue Pumpkin's invalidity, unenforceability and attorney's fees claims. COSTS No costs. 04-1068, -1094 20