diff --git a/src/degree/analysis.py b/src/degree/analysis.py
index 9de54afa4b438dfd3c16ebb0632d12abbeeac949..2523de5ac09eba50c3799a42c2513655898b4684 100644
--- a/src/degree/analysis.py
+++ b/src/degree/analysis.py
@@ -20,12 +20,12 @@ def average_graduation(degree): # media_formandos
 
 def average_time_graduation_degree(degree): # tempo_medio_formatura_curso
     students = Student.objects.filter(admission__degree = degree)
-    student_amount = students.count()
     graduated = students.filter(evasion_form = "Formatura")
     graduated_amount = graduated.count()
     average_time = 0
 
     for g in graduated:
+        print(g.get_time_in_degree())
         average_time += g.get_time_in_degree()
 
     average_time /= graduated_amount
@@ -40,7 +40,7 @@ def average_general_failure(students):
         student_klasses = StudentKlass.objects.filter(student=student)
         for sk in student_klasses:
             courses += 1
-            if sk.situation in SITUATION_FAILURE:
+            if sk.situation in SITUATIONS_FAILURE:
                 failures += 1
     return failures / courses * 100
 
@@ -56,7 +56,7 @@ def average_general_failure_standard_deviation(degree): # media_reprovacao_geral
 
         for sk in student_klasses:
             courses += 1
-            if sk.situation in SITUATION_FAILURE:
+            if sk.situation in SITUATIONS_FAILURE:
                 failures += 1
 
         variance += math.pow((failures / courses) - average_failure, 2)
@@ -65,16 +65,55 @@ def average_general_failure_standard_deviation(degree): # media_reprovacao_geral
     standard_deviation = math.sqrt(variance)
 
     return [average_failure, standard_deviation]
-    pass
+
+def average_actives_failure(students):
+   courses = 0
+   failures = 0
+   for student in students:
+       student_klasses = StudentKlass.objects.filter(student=student)
+       for sk in student_klasses:
+           courses += 1
+           if sk.situation in SITUATIONS_FAILURE:
+               failures += 1
+   return failures / courses * 100
 
 def average_actives_failure_standard_deviation(degree): # media_reprovacao_alunos_cursando_desvio_padrao
-    pass
+    students = Student.objects.filter(admission__degree=degree, evasion_form = "Sem evasão")
+    average_failure = average_actives_failure(students)
+    variance = 0
+    for student in students:
+        courses = 0
+        failures = 0
+        student_klasses = StudentKlass.objects.filter(student=student)
+        for sk in student_klasses:
+             courses += 1
+             if sk.situation in SITUATIONS_FAILURE:
+                 failures += 1
+
+        variance += math.pow(failures / courses - average_failure, 2)
+
+    variance /= students.count()
+    standard_deviation = math.sqrt(variance)
+
+    return [average_failure, standard_deviation]
 
 def calculate_average_general_ira_standard_deviation(degree): # calcular_ira_medio_geral_desvio_padrao
-    pass
+    students = Student.objects.filter(admission__degree = degree, ira__isnull = False)
+    average = 0
+    amount = students.count()
+    for student in students:
+        average += student.ira
+        
+    return average / amount
 
 def calculate_average_actives_ira_standard_deviation(degree): # calcular_ira_medio_atual_desvio_padrao
-    pass
+    students = Student.objects.filter(admission__degree = degree, evasion_form = "Sem evasão", ira__isnull = False)
+    average = 0
+    amount = students.count()
+    for student in students:
+         average += student.ira
+
+    return average / amount
 
 def calculate_general_evasion(degree): # calcular_evasao_geral
    students = Student.objects.filter(admission__degree = degree)
diff --git a/src/utils/data.py b/src/utils/data.py
index 3f10f13814217ad21b6fe80a6201288f319e8604..dae3ab0e81128c5e2daee7439984a2209d7ac716 100644
--- a/src/utils/data.py
+++ b/src/utils/data.py
@@ -88,7 +88,7 @@ SITUATION_FAILURE_COMPLETED = ( # Situacoes reprovacao cursada ate o fim
 )
 
 def difference_between_semesters(year_start, semester_start, year_end, semester_end):
-    return 2 * (year_end - year_start) + (semester_end - year_end) + 1
+    return 2 * (year_end - year_start) + (semester_end - semester_start) + 1
 
 def merge_dicts(dict1, dict2, dict3, keys):
     dict_out = {}