diff --git a/src/libs/routes/spatial.js b/src/libs/routes/spatial.js
index e56a1ab456f339107409e5a1e365b01f2a3e5f3c..77adc2ad8cdc59483ae45b2de27fb30204fed730 100644
--- a/src/libs/routes/spatial.js
+++ b/src/libs/routes/spatial.js
@@ -20,87 +20,6 @@ const spatialApp = express();
 
 let rqf = new ReqQueryFields();
 
-function schoolYearIdToStr(schoolYearId) {
-    let schoolYearStr;
-    switch(schoolYearId) {
-        case 11:
-            schoolYearStr = 'Creche - Menor de 1 ano';
-            break;
-        case 12:
-            schoolYearStr = 'Creche - 1 ano';
-            break;
-        case 13:
-            schoolYearStr = 'Creche - 2 anos';
-            break;
-        case 14:
-            schoolYearStr = 'Creche - 3 anos';
-            break;
-        case 21:
-            schoolYearStr = 'Pré-escola - 4 anos';
-            break;
-        case 22:
-            schoolYearStr = 'Pré-escola - 5 anos';
-            break;
-        case 31:
-            schoolYearStr = 'Ens. Fundamental - 1º Ano';
-            break;
-        case 32:
-            schoolYearStr = 'Ens. Fundamental - 1ª série/2º ano';
-            break;
-        case 33:
-            schoolYearStr = 'Ens. Fundamental - 2ª série/3º ano';
-            break;
-        case 34:
-            schoolYearStr = 'Ens. Fundamental - 3ª série/4º ano';
-            break;
-        case 35:
-            schoolYearStr = 'Ens. Fundamental - 4ª série/5º Ano';
-            break;
-        case 41:
-            schoolYearStr = 'Ens. Fundamental - 5ª série/6º ano';
-            break;
-        case 42:
-            schoolYearStr = 'Ens. Fundamental - 6ª série/7º ano';
-            break;
-        case 43:
-            schoolYearStr = 'Ens. Fundamental - 7ª série/8º ano';
-            break;
-        case 44:
-            schoolYearStr = 'Ens. Fundamental - 8ª serie/9º ano';
-            break;
-        case 51:
-            schoolYearStr = 'Ens. Médio - 1ª série'; // equivalent to 'EM 1 Série'
-            break;
-        case 52:
-            schoolYearStr = 'Ens. Médio - 2ª série'; // equivalent to 'EM 2 Série'
-            break;
-        case 53:
-            schoolYearStr = 'Ens. Médio - 3ª série'; // equivalent to 'EM 3 Série'
-            break;
-        case 54:
-            schoolYearStr = 'Ens. Médio - 4ª série'; // equivalent to 'EM 4 Série'
-            break;
-        case 61:
-            schoolYearStr = 'EJA - anos iniciais do Ens. Fundamental';
-            break;
-        case 62:
-            schoolYearStr = 'EJA - anos finais do Ens. Fundamental';
-            break;
-        case 63:
-            schoolYearStr = 'EJA - Ensino Médio';
-            break;
-        case 64:
-            schoolYearStr = 'EJA semi-presencial';
-            break;
-        case 71:
-            schoolYearStr = 'Educação Profissional';
-            break;
-        default:
-            schoolYearStr = 'Não classificado';
-    }
-    return schoolYearStr;
-}
-
 function processResultSet(querySet, querySetLabels = ["result"], singleResult = false) {
     const resultMap = new Map();
     let resultIdx = 0;
@@ -309,88 +228,54 @@ spatialApp.get('/educational', rqf.parse(), rqf.build(), (req, res, next) => {
         .order('escola.ano_censo')
         .order('dependencia_adm.nome');
 
-    const schoolClassYearQry = squel.select()
-        .field('MAX(matricula.ano_censo)')
-        .from('matricula')
-        .toString();
-
     const enrollmentsQry = req.sql.clone()
         .field('\'Brasil\'', 'name')
-        .field('COALESCE(COUNT(matricula.id), 0)', 'total')
-        .field('matricula.ano_censo', 'census_year')
-        .from('matricula')
-        .where(`matricula.ano_censo IN (${schoolClassYearQry})`)
-        .where('matricula.tipo<=3')
-        .group('matricula.ano_censo');
+        .field('COALESCE(SUM(uc201.matriculas), 0)', 'total')
+        .field('uc201.ano_censo', 'census_year')
+        .from('uc201')
+        .group('uc201.ano_censo');
 
     const enrollmentsPerAdmDepQry = req.sql.clone()
         .field('\'Brasil\'', 'name')
-        .field('COALESCE(COUNT(matricula.id), 0)', 'total')
-        .field('matricula.ano_censo', 'census_year')
+        .field('COALESCE(SUM(uc201.matriculas), 0)', 'total')
+        .field('uc201.ano_censo', 'census_year')
         .field('dependencia_adm.nome', 'adm_dependency_name')
         .from('dependencia_adm')
-        .from('matricula')
-        .where('matricula.dependencia_adm_id=dependencia_adm.id')
-        .where('matricula.tipo <= 3')
-        .where(`matricula.ano_censo IN (${schoolClassYearQry})`)
-        .group('matricula.ano_censo')
+        .from('uc201')
+        .where('uc201.dependencia_adm_id=dependencia_adm.id')
         .group('dependencia_adm.nome')
-        .order('dependencia_adm.nome');
+        .group('uc201.ano_censo');
 
     const enrollmentsPerSchoolLevelQry = req.sql.clone()
         .field('\'Brasil\'', 'name')
-        .field('COALESCE(COUNT(matricula.id), 0)', 'total')
-        .field('matricula.ano_censo', 'census_year')
+        .field('COALESCE(SUM(uc201.matriculas), 0)', 'total')
+        .field('uc201.ano_censo', 'census_year')
         .field('etapa_ensino.desc_etapa', 'school_level_name')
+        .field('dependencia_adm.nome', 'adm_dependency_name')
         .from('etapa_ensino')
-        .from('matricula')
-        .where('matricula.etapa_ensino_id=etapa_ensino.id')
-        .where('matricula.tipo <= 3')
-        .where(`matricula.ano_censo IN (${schoolClassYearQry})`)
-        .group('matricula.ano_censo')
+        .from('dependencia_adm')
+        .from('uc201')
+        .where('uc201.etapas_mod_ensino_segmento_id=etapa_ensino.id')
+        .where('uc201.dependencia_adm_id=dependencia_adm.id')
         .group('etapa_ensino.desc_etapa')
-        .group('etapa_ensino.id')
-        .order('etapa_ensino.id');
+        .group('dependencia_adm.nome')
+        .group('uc201.ano_censo');
 
     const enrollmentsPerLocationQry = req.sql.clone()
         .field('\'Brasil\'', 'name')
-        .field('COALESCE(COUNT(matricula.id), 0)', 'total')
-        .field('matricula.ano_censo', 'census_year')
+        .field('COALESCE(SUM(uc201.matriculas), 0)', 'total')
+        .field('uc201.ano_censo', 'census_year')
         .field('localizacao.descricao', 'location_name')
         .from('localizacao')
-        .from('matricula')
-        .where('matricula.localizacao_id=localizacao.id')
-        .where('matricula.tipo <= 3')
-        .where(`matricula.ano_censo IN (${schoolClassYearQry})`)
-        .group('matricula.ano_censo')
+        .from('uc201')
+        .where('uc201.localizacao=localizacao.id')
         .group('localizacao.descricao')
-        .order('ano_censo')
-        .order('localizacao.descricao');
-
-    const enrollmentsPerSchoolLevelAndAdmDependencyQry = req.sql.clone()
-        .field('\'Brasil\'', 'name')
-        .field('COALESCE(COUNT(matricula.id), 0)', 'total')
-        .field('matricula.ano_censo', 'census_year')
-        .field('etapa_ensino.desc_etapa', 'school_level_name')
-        .field('dependencia_adm.nome', 'adm_dependency_name')
-        .from('etapa_ensino')
-        .from('dependencia_adm')
-        .from('matricula')
-        .where('matricula.etapa_ensino_id=etapa_ensino.id')
-        .where('matricula.dependencia_adm_id=dependencia_adm.id')
-        .where('matricula.tipo <= 3')
-        .where(`matricula.ano_censo IN (${schoolClassYearQry})`)
-        .group('matricula.ano_censo')
-        .group('etapa_ensino.desc_etapa')
-        .group('dependencia_adm.nome')
-        .order('matricula.ano_censo')
-        .order('etapa_ensino.desc_etapa')
-        .order('dependencia_adm.nome');
+        .group('uc201.ano_censo');
 
     const queryLabels = [ "school", "school_per_location", "school_per_adm_dependency", "enrollment", "enrollment_per_adm_dep",
-        "enrollment_per_school_level", "enrollment_per_location", "enrollment_per_school_level_adm_dependency" ];
+        "enrollment_per_school_level", "enrollment_per_location" ];
     const querySet = [ totalSchoolsQry, schoolsPerLocationQry, schoolsPerAdmDependencyQry, enrollmentsQry,
-        enrollmentsPerAdmDepQry, enrollmentsPerSchoolLevelQry, enrollmentsPerLocationQry, enrollmentsPerSchoolLevelAndAdmDependencyQry];
+        enrollmentsPerAdmDepQry, enrollmentsPerSchoolLevelQry, enrollmentsPerLocationQry];
     // wait until all queries finish or one of them fail
     Promise.all(dbExecAll(querySet)).then((queryResults) => {
         req.result = processResultSet(queryResults, queryLabels);
@@ -407,7 +292,7 @@ spatialApp.get('/educational/school_level', rqf.parse(), rqf.build(), (req, res,
         .from('matricula');
 
     const enrollmentsPerSchoolLevelQry = req.sql.clone()
-        .field('COALESCE(COUNT(matricula.id), 0)', 'total')
+        .field('COALESCE(SUM(matricula.id), 0)', 'total')
         .field('matricula.ano_censo', 'census_year')
         .field('matricula.serie_ano_id', 'school_year')
         .field('etapa_ensino.desc_etapa', 'school_level')