Advanced Scoring and Badges advanced-scoring-and-badges

Overview overview

Advanced scoring allows awarding of badges to identify members as experts. Advanced scoring assigns points based on the quantity and quality of content created by a member, whereas basic scoring assigns points based on the quantity of content created.

This difference is due to the scoring engine used to calculate the scores. The basic scoring engine applies simple math. The advanced scoring engine is an adaptive algorithm that rewards active members who contribute valued and relevant content, deduced through natural language processing (NLP) of a topic.

In addition to content relevance, the scoring algorithms account for member activities, such as voting and percentage of answers. While basic scoring includes them quantitatively, advanced scoring uses them algorithmically.

Therefore, the advanced scoring engine requires enough data to make analysis meaningful. The achievement threshold for becoming an expert is constantly reevaluated as the algorithm continually adjusts to the volume and quality of content created. There is also a concept of decay of a member’s older posts. If an expert member stops participating in the subject matter where they gained expert status, at some pre-determined point (see scoring engine configuration) they could lose their status as an expert.

Setting up advanced scoring is virtually the same as basic scoring:

The differences in setting up the scoring and badging rules are:

  • Configurable advanced scoring engine

  • Advanced scoring rules:

    • scoringType set to advanced
    • Requires stopwords
  • Advanced badging rules:

    • badgingType set to advanced
    • badgingLevels set to number of expert levels to award
    • Requires badgingPaths array of badges instead of thresholds array-mapping points to badges.
To use advanced scoring and badging capabilities, install the Expert Identification package.

Configurable Scoring Engine configurable-scoring-engine

The advanced scoring engine provides an OSGi configuration with parameters that affect the advanced scoring algorithm.


  • Scoring weights

    For a topic, specify the verb that should be given the highest priority when calculating the score. One or more topics may be entered, but limited to one verb per topic. See Topics and Verbs.
    Entered as topic,verb with the comma escaped. For example:
    Default is set to the ADD verb for QnA and forum components.

  • Scoring range

    The range for advanced scores is defined by this value (maximum score) and 0 (lowest possible score).

    Default value is 100 so that scoring range is 0-100.

  • Entity decay time interval

    This parameter represents the number of hours after which all entity scores are decayed. This is required to no longer include old content in scores for a community site.

    Default value is 216000 hours (~24 years).

  • Scoring growth rate
    This specifies the score between 0–scoring range, beyond which growth slows to limit the number of experts.

    Default value is 50.

Advanced Scoring Rules advanced-scoring-rules

In basic scoring, the quantity needed to earn a badge is known.

In advanced scoring, the quantity needed is constantly adjusting based on the amount of quality data within the system. The scoring is continually calculated in a manner similar to a bell curve.

If a member earned an expert badge on a topic which is no longer active, there is a possibility they will lose their badge due to decay over time.

scoringType scoringtype

A scoring rule is a set of scoring subrules, each of which declares the scoringType.

To invoke the advanced scoring engine, the scoringTypeshould be set to advanced.

See Scoring Sub-Rules.


Stopwords stopwords

The advanced scoring package installs a configuration folder that contains a stopwords file:

  • /libs/settings/community/scoring/configuration/stopwords

The advanced scoring algorithm uses the list of words contained in the stopwords file to identify common English words that are ignored during content processing.

There is no expectation that this file would be modified.

If the stopwords file is missing, the advanced scoring engine gives an error.

Advanced Badging Rules advanced-badging-rules

The advanced badging rule properties differ from the basic badging rule properties.

Instead of associating points with a badge image, it is only necessary to identify the number of experts allowed and the badge image to award.


Value Description
(Required) A multi-value string of badge images up to the number of badgingLevels. The badge image paths must be ordered so the first is awarded to the highest expert. If there are fewer badges than indicated by badgingLevels, the last badge in the array fills out the rest of the array. Example entry:
(Optional) Specifies the levels of expertise to be awarded. For example, if there should be an expert and an almost expert (two badges), then the value should be set to 2. The badgingLevel should correspond with the number of expert-related badge images listed for the badgingPath property. Default is 1.
(Required) Identifies the scoring engine as either "basic" or "advanced". Set to "advanced" else the default is "basic".
(Optional) A multi-value string to restrict the badging rule to scoring events identified by one or more scoring rules listed.
Example entry:
Default is no restriction.

Included Rules and Badge included-rules-and-badge

Included Badge included-badge

Included in this beta release is one reward-based expert badge:

  • expert



For the expert badge to appear as a reward for activity, make sure:

  • Badges are enabled for the feature, such as a forum or QnA component.

  • Advanced scoring and badging rules are applied to the page (or ancestor) on which the component is placed

See the basic information for:

Included Scoring Rules and Sub-Rules included-scoring-rules-and-sub-rules

Included in the beta release are two advanced scoring rules for the forum function (one each for the forum and comments components of the forum feature):

  1. /libs/settings/community/scoring/rules/adv-comments-scoring

    code language-none
    subRules[] =
  2. /libs/settings/community/scoring/rules/adv-forums-scoring

    code language-none
    subRules[] =


  • Both rules and sub-rules nodes are of type cq:Page.
  • subRules is an attribute of type String[] on the rule’s jcr:content node.
  • sub-rules may be shared among various scoring rules.
  • rules should be in a repository location with read permission for everyone.
  • Rule names must be unique regardless of location.

Included Badging Rules included-badging-rules

Included in the release are two advanced badging rules that correspond to the advanced forums and comments scoring rules.

  • /libs/settings/community/badging/rules/adv-comments-badging
  • /libs/settings/community/badging/rules/adv-forums-badging


  • rules nodes are of type cq:Page.
  • rules should be in a repository location with read permission for everyone.
  • Rule names must be unique regardless of location.