diff --git a/src/libs/routes/schoolInfrastructure.js b/src/libs/routes/schoolInfrastructure.js
index 5244b465c5ecbf52c1698e84b5bada3631a3098d..969fa987da552bc820c655cf90ab32c13017d9a8 100644
--- a/src/libs/routes/schoolInfrastructure.js
+++ b/src/libs/routes/schoolInfrastructure.js
@@ -230,7 +230,7 @@ rqf.addField({
     }
 });
 
-function matchQueries(queryTotal, queryPartial, queryNeeded) {
+function matchQueries(queryTotal, queryPartial, queryNeeded, zeroPercentage=false) {
     let match = [];
     queryTotal.forEach((result) => {
         let newObj = {};
@@ -277,6 +277,7 @@ function matchQueries(queryTotal, queryPartial, queryNeeded) {
 
         if(partialMatch && needMatch) {
             newObj.percentage = (partialMatch.total / result.total) * 100;
+            if(zeroPercentage) newObj.percentage = 0;
             newObj.partial = partialMatch.total;
             newObj.total = result.total;
             newObj.need_adaptation = needMatch.total;
@@ -396,16 +397,13 @@ infrastructureApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
     req.queryIndex.needSportsCourt = req.querySet.push(needSportsCourt) - 1;
 
     // Cobertura de quadra esportiva
-    // FIXME: possível fixme no where
-    req.queryIndex.allSportsCourtCoverage = req.queryIndex.allSportsCourt;
+    let allSportsCourtCoverage = allSportsCourt.clone();
+    allSportsCourtCoverage.where('escola.quadra_esportes_descoberta = 1');
+    req.queryIndex.allSportsCourtCoverage = req.querySet.push(allSportsCourtCoverage);
 
-    let haveSportsCourtCoverage = allSportsCourt.clone();
-    haveSportsCourtCoverage.where('escola.quadra_esportes_descoberta = 1');
-    req.queryIndex.haveSportsCourtCoverage = req.querySet.push(haveSportsCourtCoverage) - 1;
+    req.queryIndex.haveSportsCourtCoverage = req.queryIndex.allSportsCourtCoverage;
 
-    let needSportsCourtCoverage = allSportsCourt.clone();
-    needSportsCourtCoverage.where('escola.quadra_esportes_descoberta = 0');
-    req.queryIndex.needSportsCourtCoverage = req.querySet.push(needSportsCourtCoverage) - 1;
+    req.queryIndex.needSportsCourtCoverage = req.queryIndex.allSportsCourtCoverage;
 
     // Pátio
     req.queryIndex.allCourtyard = req.queryIndex.allSchools;
@@ -419,16 +417,13 @@ infrastructureApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
     req.queryIndex.needCourtyard = req.querySet.push(needCourtyard) - 1;
 
     // Cobertura do Pátio
-    // FIXME: possível fixme no where
-    req.queryIndex.allCourtyardCoverage = req.queryIndex.allSchools;
+    let allCourtyardCoverage = allSchools.clone();
+    allCourtyardCoverage.where('escola.patio_coberto=0 AND escola.patio_descoberto = 1');
+    req.queryIndex.allCourtyardCoverage = req.querySet.push(allCourtyardCoverage) - 1;
 
-    let haveCourtyardCoverage = allSchools.clone();
-    haveCourtyardCoverage.where('escola.patio_coberto=0 AND escola.patio_descoberto = 1');
-    req.queryIndex.haveCourtyardCoverage = req.querySet.push(haveCourtyardCoverage) - 1;
+    req.queryIndex.haveCourtyardCoverage = req.queryIndex.allCourtyardCoverage;
 
-    let needCourtyardCoverage = allSchools.clone();
-    needCourtyardCoverage.where('escola.patio_coberto=0 AND escola.patio_descoberto=0');
-    req.queryIndex.needCourtyardCoverage = req.querySet.push(needCourtyardCoverage) - 1;
+    req.queryIndex.needCourtyardCoverage = req.queryIndex.allCourtyardCoverage;
 
     // Sala de direção
     req.queryIndex.allDirectorRoom = req.queryIndex.allLibraries;
@@ -595,9 +590,9 @@ infrastructureApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
     let kids_park = matchQueries(req.result[req.queryIndex.allKidsPark], req.result[req.queryIndex.haveKidsPark], req.result[req.queryIndex.needKidsPark]);
     let nursery = matchQueries(req.result[req.queryIndex.allCribs], req.result[req.queryIndex.haveCribs], req.result[req.queryIndex.needCribs]);
     let sports_court = matchQueries(req.result[req.queryIndex.allSportsCourt], req.result[req.queryIndex.haveSportsCourt], req.result[req.queryIndex.needSportsCourt]);
-    let sports_court_coverage = matchQueries(req.result[req.queryIndex.allSportsCourtCoverage], req.result[req.queryIndex.haveSportsCourtCoverage], req.result[req.queryIndex.needSportsCourtCoverage]);
+    let sports_court_coverage = matchQueries(req.result[req.queryIndex.allSportsCourtCoverage], req.result[req.queryIndex.haveSportsCourtCoverage], req.result[req.queryIndex.needSportsCourtCoverage], true);
     let courtyard = matchQueries(req.result[req.queryIndex.allCourtyard], req.result[req.queryIndex.haveCourtyard], req.result[req.queryIndex.needCourtyard]);
-    let courtyard_coverage = matchQueries(req.result[req.queryIndex.allCourtyardCoverage], req.result[req.queryIndex.haveCourtyardCoverage], req.result[req.queryIndex.needCourtyardCoverage]);
+    let courtyard_coverage = matchQueries(req.result[req.queryIndex.allCourtyardCoverage], req.result[req.queryIndex.haveCourtyardCoverage], req.result[req.queryIndex.needCourtyardCoverage], true);
     let director_room = matchQueries(req.result[req.queryIndex.allDirectorRoom], req.result[req.queryIndex.haveDirectorRoom], req.result[req.queryIndex.needDirectorRoom]);
     let secretary = matchQueries(req.result[req.queryIndex.allSecretary], req.result[req.queryIndex.haveSecretary], req.result[req.queryIndex.needSecretary]);
     let teacher_room = matchQueries(req.result[req.queryIndex.allTeacherRoom], req.result[req.queryIndex.haveTeacherRoom], req.result[req.queryIndex.needTeacherRoom]);