Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/TaskMetric.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/TaskMetric.java	(revision 1428)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeifc/TaskMetric.java	(revision 1494)
@@ -34,5 +34,8 @@
     EVENT_COVERAGE_RATIO("event coverage ratio",
                          "the ratio of events covered by this task in relation to all events " +
-                         "covered by all tasks in their instances in per mille", 0.1, "%");
+                         "covered by all tasks in their instances in per mille", 0.1, "%"),
+    EVENT_COVERAGE_QUANTILE("event coverage ratio quantile",
+                            "the quantile of with respect to all event coverages begining with " +
+                            "the lowest", 0.1, "%");
     
     /**
Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeimpl/TaskModel.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeimpl/TaskModel.java	(revision 1428)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeimpl/TaskModel.java	(revision 1494)
@@ -15,4 +15,5 @@
 package de.ugoe.cs.autoquest.tasktrees.treeimpl;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -66,5 +67,6 @@
           TaskMetric.DEPTH,
           TaskMetric.EVENT_COVERAGE,
-          TaskMetric.EVENT_COVERAGE_RATIO };
+          TaskMetric.EVENT_COVERAGE_RATIO,
+          TaskMetric.EVENT_COVERAGE_QUANTILE };
 
     /**
@@ -169,4 +171,7 @@
             }
             
+            int[] eventCoverageRatios = new int[tasks.size()];
+            int i = 0;
+
             // add some further measures
             for (ITask task : tasks) {
@@ -175,9 +180,26 @@
                 
                 int coveredEvents = info.getMeasureValue(TaskMetric.EVENT_COVERAGE);
+                int coverageRatio = 0;
                 
                 if (allEventsCovered > 0) {
-                    info.setCount(TaskMetric.EVENT_COVERAGE_RATIO, null,
-                                  ((coveredEvents * 1000) / allEventsCovered));
-                }
+                    coverageRatio = (coveredEvents * 1000) / allEventsCovered;
+                }
+                
+                eventCoverageRatios[i++] = coverageRatio;
+                info.setCount(TaskMetric.EVENT_COVERAGE_RATIO, null, coverageRatio);
+            }
+            
+            Arrays.sort(eventCoverageRatios);
+            
+            // add some further measures
+            for (ITask task : tasks) {
+                TaskInfo info = index.taskMap.get(task);
+                info.addMeasure(TaskMetric.EVENT_COVERAGE_QUANTILE);
+                int quantile = Arrays.binarySearch
+                    (eventCoverageRatios, info.getMeasureValue(TaskMetric.EVENT_COVERAGE_RATIO));
+                
+                quantile = 1000 * quantile / eventCoverageRatios.length;
+                
+                info.setCount(TaskMetric.EVENT_COVERAGE_QUANTILE, null, quantile);
             }
             
