skip to Main Content

The Contest rules are where you define the conditions that award points, as well as Start, Stop, Finish, and Finalize the Contest. 

An example of the rule system in CompetitionLabs is shown in the example.

 

RULES fields

EXAMPLES

» Points calculation Model

Mandatory

Points calculation can be replaced with Custom points that is a Rule set that lets you create more complex competitions. You can add points, subtract them, multiply or use your own adjustment factor.

To add an extra rule set that will calculate differently with different actions just click on Add Rule Set and add the same Custom points rule set and the rule sets will work together.

You can read more about Rules by navigating to Competitions and Contests -> Rules guide or press on the link here

» Start the contests Model

Mandatory

By default the start contest is pre selected as The contests parents are all finalised. That means that all the contests before the one that has to start are all finalised.

If there are no contests before the one you are creating like for example you are only creating one contest – then that means that the contest will start when the competition container will start.

» Finish the contests Model

Mandatory

The contest will finish when the contests have been active for more than or exactly the time between contests start and competitions end time.

The constant can be in put manually or you can select a pre created constant.

» Finalise the contests Model

Mandatory

The contest will finalise when the contests finished is equal or more than 1 minute, that means that the contest will finalise after the contest has finished and the finalisation time will be for 1 minute.

The Constant can only be numeric and it represents the finalisation time.

APP Example:

Points calculation
Start the contests
Finish the contests
Finalise the contests

API Example:

{"jsonClass": "Contest",
 
     ...
 
     "ruleSets": [
     {
          "jsonClass": "RuleSet",
          "priority": 1,
          "scope": "contest",
          "action": "open.contest",
          "conditions": [
          {
               "jsonClass": "MainConditionSet",
               "matchCondition": "All",
               "mustEvaluateTo": true,
               "rules": [
               {
                    "jsonClass": "MainRule",
                    "fact": "contest.parents.status",
                    "operator": "==",
                    "constant": "$finalised.status"
                    }]
               }]
     },
{
     "jsonClass": "RuleSet",
     "priority": 2,
     "scope": "contest",
     "action": "finish.contest",
     "conditions": [
     {
          "jsonClass": "MainConditionSet",
          "matchCondition": "All",
          "mustEvaluateTo": true,
          "rules": [
          {
               "jsonClass": "MainRule",
               "fact": "contest.active.elapsed",
               "operator": ">=",
               "constant": "$competitions.scheduled.end"
               }]
          }]
     },
     {
     "jsonClass": "RuleSet",
     "priority": 3,
     "scope": "contest",
     "action": "finalise.contest",
     "conditions": [
     {
          "jsonClass": "MainConditionSet",
          "matchCondition": "All",
          "mustEvaluateTo": true,
          "rules": [
          {
               "jsonClass": "MainRule",
               "fact": "contest.finish.elapsed",
               "operator": ">=",
               "constant": "1"
               }]
          }]
     },{
     "jsonClass": "RuleSet",
     "priority": 4,
     "scope": "contest",
     "action": "contests.points.calculated.custom",
     "conditions": [
     {
          "jsonClass": "MainConditionSet",
          "matchCondition": "All",
          "mustEvaluateTo": true,
          "rules": [
          {
               "jsonClass": "MainRule",
               "fact": "event.count",
               "operator": ">=",
               "constant": "1",
               "subConditions": [
               {
                    "jsonClass": "SubConditionSet",
                    "matchCondition": "All",
                    "mustEvaluateTo": true,
                    "subRules": [
                     {
                         "jsonClass": "SubRule",
                         "fact": "event.action.type",
                         "operator": "==",
                         "constant": "bet"
                         }]
                    }]
               }]
          }],
     "onMatchThen": "add",
     "onMatchConstant": "1"
     },
     {
     "jsonClass": "RuleSet",
     "priority": 5,
     "scope": "contest",
     "action": "contests.points.calculated.custom",
     "conditions": [
     {
          "jsonClass": "MainConditionSet",
          "matchCondition": "All",
          "mustEvaluateTo": true,
          "rules": [
          {
               "jsonClass": "MainRule",
               "fact": "event.count",
               "operator": ">=",
               "constant": "1",
               "subConditions": [
               {
                    "jsonClass": "SubConditionSet",
                    "matchCondition": "All",
                    "mustEvaluateTo": true,
                    "subRules": [
                    {
                         "jsonClass": "SubRule",
                         "fact": "event.action.type",
                         "operator": "==",
                         "constant": "win"
                         }]
                    }]
               }]
          }
     ],
     "onMatchThen": "add",
     "onMatchConstant": "3"
     }
    ],
 
...
}

The API example provides only a simplified version of the POST body. A full example of POST Contest can be found in the Contest APP API documentation here

The rule sets that are shown as an example are considered a working scenario. Any edits made can influence the contests starting, finishing, finalising or points calculation. Please be aware and do testing before going live with the contest.

More in-depth rules guide, templates and combinations. You can read more about Rules, preview some of the templates and their combinations here.

PREVIOUS – Click Previous and go back to the previous step.

CONTINUE – Click Next and continue to the next step.

Back To Top