diff --git a/dta.zip b/dta.zip
index ab0c893d2e51d8616d3cd6dae3d04b24be444f01..b35770daf7870b735d46f7150169198a2a38df19 100644
Binary files a/dta.zip and b/dta.zip differ
diff --git a/dta/lang/en/assignsubmission_dta.php b/dta/lang/en/assignsubmission_dta.php
index d80eaa8814d3cf8422e92fe2d2edd153f1bace79..2b8d945517c06da01894d4c42259012b5efddc6c 100644
--- a/dta/lang/en/assignsubmission_dta.php
+++ b/dta/lang/en/assignsubmission_dta.php
@@ -73,22 +73,22 @@ $string["comp_simple"] = "Simplicity";
 $string["comp_abstraction"] = "Abstraction";
 
 // Competencies for index calculation.
-$string["comp1"] = $string["comp_statement"];
-$string["comp2"] = $string["comp_block"];
-$string["comp3"] = $string["comp_flow"];
-$string["comp4"] = $string["comp_loop"];
-$string["comp5"] = $string["comp_const"];
-$string["comp6"] = $string["comp_var"];
-$string["comp7"] = $string["comp_type"];
-$string["comp8"] = $string["comp_datastructure"];
-$string["comp9"] = $string["comp_interface"];
-$string["comp10"] = $string["comp_unit"];
-$string["comp11"] = $string["comp_proc_usage"];
-$string["comp12"] = $string["comp_proc_sign"];
-$string["comp13"] = $string["comp_library"];
-$string["comp14"] = $string["comp_ext_api"];
-$string["comp15"] = $string["comp_simple"];
-$string["comp16"] = $string["comp_abstraction"];
+$string["comp0"] = $string["comp_statement"];
+$string["comp1"] = $string["comp_block"];
+$string["comp2"] = $string["comp_flow"];
+$string["comp3"] = $string["comp_loop"];
+$string["comp4"] = $string["comp_const"];
+$string["comp5"] = $string["comp_var"];
+$string["comp6"] = $string["comp_type"];
+$string["comp7"] = $string["comp_datastructure"];
+$string["comp8"] = $string["comp_interface"];
+$string["comp9"] = $string["comp_unit"];
+$string["comp10"] = $string["comp_proc_usage"];
+$string["comp11"] = $string["comp_proc_sign"];
+$string["comp12"] = $string["comp_library"];
+$string["comp13"] = $string["comp_ext_api"];
+$string["comp14"] = $string["comp_simple"];
+$string["comp15"] = $string["comp_abstraction"];
 
 // Competency explanations.
 $string["comp_statement_expl"] = "formulate a syntactically correct statement that contributes to the solution of the given problem.";
@@ -108,6 +108,24 @@ $string["comp_ext_api_expl"] = "use standardized existing external collections o
 $string["comp_simple_expl"] = "create a simple solution of the given problem.";
 $string["comp_abstraction_expl"] = "create a sufficiently abstract solution for the given problem.";
 
+// Competency explanations for index calculations.
+$string["comp_expl0"] = $string["comp_statement_expl"];
+$string["comp_expl1"] = $string["comp_block_expl"];
+$string["comp_expl2"] = $string["comp_flow_expl"];
+$string["comp_expl3"] = $string["comp_loop_expl"];
+$string["comp_expl4"] = $string["comp_const_expl"];
+$string["comp_expl5"] = $string["comp_var_expl"];
+$string["comp_expl6"] = $string["comp_type_expl"];
+$string["comp_expl7"] = $string["comp_datastructure_expl"];
+$string["comp_expl8"] = $string["comp_interface_expl"];
+$string["comp_expl9"] = $string["comp_unit_expl"];
+$string["comp_expl10"] = $string["comp_proc_usage_expl"];
+$string["comp_expl11"] = $string["comp_proc_sign_expl"];
+$string["comp_expl12"] = $string["comp_library_expl"];
+$string["comp_expl13"] = $string["comp_ext_api_expl"];
+$string["comp_expl14"] = $string["comp_simple_expl"];
+$string["comp_expl15"] = $string["comp_abstraction_expl"];
+
 // Warnings.
 $string["no_testfile_warning"] = "Submission type is \"Dockerized Testing Agent\" but no configuration file uploaded";
 
diff --git a/dta/utils/view.php b/dta/utils/view.php
index bddc748239b3c1d4ec32db9e830089e18669fbec..98af5c3e1d0466d9c5a2c35172bb5e92681b9feb 100644
--- a/dta/utils/view.php
+++ b/dta/utils/view.php
@@ -46,17 +46,30 @@ class ViewSubmissionUtils {
         $html .= ($summary->compilationErrorCount() == 0 && $summary->unknownCount() == 0)
             ? $summary->resultCount() . " (" . $successrate . "%)"
                 : "?";
-        $html .= get_string("tests_successful", self::COMPONENT_NAME) . "<br>";
+        $html .= get_string("tests_successful", self::COMPONENT_NAME) . "<br />";
 
         if ($summary->compilationErrorCount() > 0) {
-            $html .= $summary->compilationErrorCount() . get_string("compilation_errors", self::COMPONENT_NAME) . "<br>";
+            $html .= $summary->compilationErrorCount() . get_string("compilation_errors", self::COMPONENT_NAME) . "<br />";
         }
 
         if ($summary->unknownCount() > 0) {
-            $html .= $summary->unknownCount() . get_string("unknown_state", self::COMPONENT_NAME) . "<br>";
+            $html .= $summary->unknownCount() . get_string("unknown_state", self::COMPONENT_NAME) . "<br />";
         }
 
-        $html .= get_string("success_competencies", self::COMPONENT_NAME) . $summary->successfultestcompetencies . "<br>";
+        $showncompetencies = explode(";", $summary->successfultestcompetencies);
+        $overallcompetencies = explode(";", $summary->overalltestcompetencies);
+        
+        $tmp = "";
+        for ($index=0, $size=count($showncompetencies); $index<$size; $index++) {
+            $shown=$showncompetencies[$index];
+            $comp=$overallcompetencies[$index];
+            // If the competency was actually assessed by the assignment and tests, add a summary entry.
+            if($shown!="0") {
+                $tmp .= get_string("comp" . $index, self::COMPONENT_NAME) . " " . 100*floatval($shown)/floatval($comp) . "% " . "<br />";
+            }
+        }
+        
+        $html .= get_string("success_competencies", self::COMPONENT_NAME) . $tmp . "<br />";
 
         return html_writer::div($html, "dtaSubmissionSummary");
     }
@@ -199,6 +212,7 @@ class ViewSubmissionUtils {
         // Add empty div for spacing between summary and compentency table.
         $html .= html_writer::empty_tag("div", ["class" => "dtaSpacer"]);
         
+        // Competency assessment table.
         $body = "";
         $tmp = "";
         $tmp .= html_writer::tag("th", get_string("competencies", self::COMPONENT_NAME), ["class" => "dtaTableHeader"]);
@@ -218,8 +232,9 @@ class ViewSubmissionUtils {
                 $resultrowattributes = $tablerowattributes;
                 $tmp = "";
                 $tmp .= html_writer::tag("td", get_string("comp" . $index, self::COMPONENT_NAME), $resultrowattributes);                
-                $tmp .= html_writer::tag("td", floatval($shown)/floatval ($comp) . "% " .
+                $tmp .= html_writer::tag("td", 100*floatval($shown)/floatval($comp) . "% " .
                     "(" . $shown . " / " . $comp . ")", $resultrowattributes);
+                $tmp .= html_writer::tag("td", get_string("comp_expl" . $index, self::COMPONENT_NAME), $resultrowattributes);    
                 
                 $body .= html_writer::tag("tr", $tmp, $resultrowattributes);
             }