anchor.diff:  
   When the workload is perfect balanced, the user often likes to see a `0` score, instead of the distracting `-34soft` in the image above (for the last solution which is almost perfectly balanced). To nullify this, either add the average multiplied by the number of entities to the score or instead show the variance or standard deviation in the UI.
   
  +
   [[explainingTheScore]]
   == Explaining the Score: Using Score Calculation Outside the `Solver`
   
  -
  -Other parts of your application, for example your webUI, might need to calculate the score too.
  -Do that by reusing the `ScoreDirectorFactory` of the `Solver` to build a separate `ScoreDirector` for that webUI:
  +If other parts of your application, for example your webUI, need to calculate the score of a solution
  +or they need to point out what's causing constraints to be broken/fulfilled,
  +reuse the `ScoreDirectorFactory` of the `Solver` to build a separate `ScoreDirector` for that webUI:
   
   [source,java,options="nowrap"]
   ----
   ScoreDirectorFactory<CloudBalance> scoreDirectorFactory = solver.getScoreDirectorFactory();
   ScoreDirector<CloudBalance> guiScoreDirector = scoreDirectorFactory.buildScoreDirector();
  -----
  -
  +...
  +guiScoreDirector.dispose();
  +----
   
   Then use it when you need to calculate the `Score` of a ``Solution``:
   
  
positive.code: ----
  guiScoreDirector.setWorkingSolution(cloudBalance);
  Score score = guiScoreDirector.calculateScore();
  ----
  
  
  To explain in the GUI what entities are causing which part of the ``Score``, get the `ConstraintMatch` objects from the ``ScoreDirector``:
  
  [source,java,options="nowrap"]
  ----
  
negative.code: 
  [NOTE]
  ====
  <<droolsScoreCalculation,Drools score calculation>> supports constraint matches automatically,
  but <<incrementalJavaScoreCalculation,incremental Java score calculation>> requires requires implementing an extra interface (see that section).
  ====
  
  [[testingScoreConstraints]]
  