diff --git a/script/analysis/student_analysis.py b/script/analysis/student_analysis.py
index d26d48db870d02870553cf74567ee848fb81de3e..7397e78bff7894dc8a81d6df2a0c22ff65b1b52d 100644
--- a/script/analysis/student_analysis.py
+++ b/script/analysis/student_analysis.py
@@ -10,6 +10,36 @@ def average_ira(d):
         ch_total = np.sum(temp['CH_TOTAL']) * 100
         print(aux/ch_total)
 
+def ira_por_quantidade_disciplinas(df):
+	students = {}
+	df = df.dropna(subset=['MEDIA_FINAL'])
+	total_students = len(df["MATR_ALUNO"])
+	for i in range(total_students):
+		matr = (df["MATR_ALUNO"][i])
+		if(not (matr in students)):
+			students[matr] = {}
+		
+		
+		ano = str(df["ANO"][i])
+		semestre = str(df["PERIODO"][i])
+		situacao = int(df["SITUACAO"][i])
+		nota = float(df["MEDIA_FINAL"][i])
+		
+		
+		
+		
+		if(situacao in Situation.SITUATION_AFFECT_IRA):
+			if not(ano+"/"+semestre in students[matr]):
+				students[matr][ano+"/"+semestre] = [0,0]
+			students[matr][ano+"/"+semestre][0]+=nota
+			students[matr][ano+"/"+semestre][1]+=1
+	
+	for matr in students:
+		for periodo in students[matr]:
+			if(students[matr][periodo][1] != 0):
+				students[matr][periodo][0]/=students[matr][periodo][1]*100
+	print(students)
+
 def indice_aprovacao_semestral(df):
 	students = {}
 	df = df.dropna(subset=['MEDIA_FINAL'])
diff --git a/script/build_cache.py b/script/build_cache.py
index af57d36be9df1ecff2721aa6ad1b1c4a52bd8759..0ffd1709391f4578e23496fe4762d8a242bea68d 100644
--- a/script/build_cache.py
+++ b/script/build_cache.py
@@ -38,7 +38,8 @@ def generate_degree_data(path, dataframe):
 
 def generate_student_data(path,dataframe):
     #~ aluno_turmas(dataframe)
-    indice_aprovacao_semestral(dataframe)
+    #~ indice_aprovacao_semestral(dataframe)
+    ira_por_quantidade_disciplinas(dataframe)
     pass
 
 def generate_student_list(path):