The Scoring module is designed to handle 'number crunching'. It is (of course) interface-based, which means we can have different plug-ins that handle number crunching, like Excel, Google Spreadsheets, SPSS, LexisNexis, or custom third party web services (such as bank NPV calculation engines).

Examples of scores include:
  • Performing an NPV calculation on a loan
  • Analyzing a broker's performance on a portfolio of BPOs
  • Analyzing a user's performance across all smart worklists
  • Determining a borrower's propensity to succeed in a loan modification given their credit report trade line detail
The tables and classes involved include:
  • ScoreTemplate: this defines the behavior of a Score, including the plug-in to use to crunch the numbers
  • ScoreItemTemplate: this defines the data points output by a Score
  • Score: this is a 'number crunching calculation' run against an object (e.g. a Loan, a Broker, a User or a Borrower)
  • ScoreItem: this stored the value of a data point output by a Score
At it's core, calling Score/Calculate performs the following:
  • Queries the QBO database for data (by default, Parent/Summary)
  • Passes the data to a scoring engine (plug-in) via the IScore interface
  • Accepts resulting data points from the scoring engine, storing each one in a ScoreItem row