diff --git a/script/analysis/degree_analysis.py b/script/analysis/degree_analysis.py
index f9e73a8593ef8889f356451815d9b8e238e45aaf..8b6ffae3b22795131a491873d3689bb626035d12 100644
--- a/script/analysis/degree_analysis.py
+++ b/script/analysis/degree_analysis.py
@@ -1,6 +1,7 @@
 import pandas as pd
 import numpy as np
 import math
+import json
 from utils.situations import Situation, EvasionForm
 
 
@@ -106,6 +107,9 @@ def average_graduation_time(df):
     return average_time
 
 def total_students(df):
+    return df.drop_duplicates('MATR_ALUNO').shape[0]
+
+def current_total_students(df):
     return df.loc[(df.FORMA_EVASAO == EvasionForm.EF_ATIVO)].drop_duplicates('MATR_ALUNO').shape[0]
 
 def taxa_abandono(df):
@@ -176,4 +180,29 @@ def build_dict_ira_medio(alunos):
         v2 = float(aux[1])
         dic[d] = sum((float(num) >= v1) and (float(num) < v2) for num in iras)
 
-    return dic
\ No newline at end of file
+    return dic
+
+def build_degree_json(df):
+    def merge_dicts(dict1, dict2, dict3):
+        dict_out = {}
+        for key, value in dict1.items():
+            v2 = dict2[key] if key in dict2 else None
+            v3 = dict3[key] if key in dict3 else None
+            dict_out[key] = {'ira_medio': value, 'sem_evasao': v2, 'formatura': v3}
+        return dict_out
+    dic = merge_dicts(average_ira_graph(df),current_students_average_ira_graph(df),graduates_average_ira_graph(df))
+    degree_json = {
+        "ira_medio_grafico": json.dumps(sorted(dic.items())),
+        "evasao_grafico": json.dumps(sorted(period_evasion_graph(df).items())),
+        "ira_atual": current_students_ira(df),
+        "ira_medio": general_ira(df),
+        "qtd_alunos": total_students(df),
+        "qtd_alunos_atuais": current_total_students(df),
+        "taxa_evasao": general_evasion_rate(df),
+        "taxa_formatura": average_graduation(df),
+        "taxa_reprovacao": general_failure(df),
+        "taxa_reprovacao_atual": current_students_failure(df),
+        "tempo_formatura": average_graduation_time(df),
+    }
+    with open("cache/curso/curso.json",'w') as f:
+        f.write(json.dumps(degree_json,indent=4))
\ No newline at end of file