Most service organizations do not make optimal use of available information to diagnose the problem. For example, presence of multiple error codes can actually help narrow down the set of possible suspects, but trying to document all such combinations is nearly impossible due to its combinatoric complexity. Likewise, the absence of an error code can be used to de-emphasize or eliminate many suspects, but most service software only captures the failed error codes. The power in TEAMS comes from using machine reasoning to use all available information (both passing and failing test results or error codes) to isolate the cause. The reasoner uses all this information to determine which components are good, bad or suspect.