How the Scoring Engine Works

One of the most important problems with building a scoring mechanism was to be able to build up a singular score out of tons of mix and match of parameters, without forwarding the worry to the end query-er.

We came up with the two-step process. Here's how it works:

  • Compare apples to oranges: we have built a flexible mechanism that helps convert the different "units" of measure in each parameter into the same measure - which is a "level". A level is just like a difficulty level in a game - going to the next level is a bit more difficult than the previous one. In our case, the "amount gap" between these values increases by a multiplier, which can be easily changed for each query precisely in the scores.json file. We have added some sample data for now.

  • Making a singular score: We understand that some parameters will be more important than others, and in scenarios where there can be even a dozen parameters involved, we allow the users to define the weightage of the parameter on the fly in the query itself. We then come up with a single score that accurately represents the weightage provided by the end-user.

To change the level settings of a parameter in the scores.json file:

  { 
    // this first item in the array is the "xp" required for reacvhing level one.
    // the second number in the array is the multiplied by which the gap increases.
    "numberOfNftTransactions": [1, 1.2],
  }

Adding weightage (for the second step):

{
    "query": {
	"haveEns": {
	    "weight": 0.1
	},
	"numberOfProposalsCreated": {
             "weight": 0.3
	},
	"numberOfOpenseaTransactions": {
	      "weight": 0.6
	}
      }
}

Last updated