diff --git a/web/assets/js/attendance.js b/web/assets/js/attendance.js
index aab554243eafb1bcff7b490d8da1cc4468e07564..1d019abac7a6d3724ba536c70b040e13352d9de8 100644
--- a/web/assets/js/attendance.js
+++ b/web/assets/js/attendance.js
@@ -82,7 +82,7 @@ angular.module('datasid.attendance', []).
             }).
 
             state('attendance.telecentrosbr.network_usage-telecenter', {
-                url: '/network_usage/:region/:state/:city/:id_telecenter',
+                url: '/network_usage/:region/:state/:city/:id_point',
                 controller: 'NetworkUsageTelecenterCtrl',
                 templateUrl: 'partials/attendance.network_usage.telecenter.html',
                 section: 'attendance'
@@ -91,7 +91,7 @@ angular.module('datasid.attendance', []).
     }).
 
     factory('AvailFactory', function($resource) {
-        return $resource('/api/tlbr/:type/:region/:state/:city/:id_telecenter');
+        return $resource('/api/tlbr/:type/:region/:state/:city/:id_point');
     }).
 
     controller('AttendanceCtrl', function ($scope, $rootScope) {
@@ -105,7 +105,7 @@ angular.module('datasid.attendance', []).
                 config.plotOptions.series.events = {
                     click: function(event) {
                         $scope.$apply(function () {
-                            $location.path($location.path() + '/' + event.point.category);
+                            $location.path($location.path() + '/' + event.point.category[0]);
                         });
                     }
                 };
@@ -119,7 +119,7 @@ angular.module('datasid.attendance', []).
                     region: $state.params.region || null,
                     state: $state.params.state || null,
                     city: $state.params.city || null,
-                    id_telecenter: $state.params.id_telecenter || null
+                    id_point: $state.params.id_point || null
                 };
 
                 if (typeof $state.params.city !== 'undefined')
@@ -153,7 +153,7 @@ angular.module('datasid.attendance', []).
 
                     for (var i=0; i<data.length; i++) {
                         var d = data[i];
-                        categories.push(d.cat);
+                        categories.push([d.id, d.cat]);
                         green.push(parseInt(d.green));
                         yellow.push(parseInt(d.yellow));
                         red.push(parseInt(d.red));
@@ -185,7 +185,7 @@ angular.module('datasid.attendance', []).
                     region: $state.params.region || null,
                     state: $state.params.state || null,
                     city: $state.params.city || null,
-                    id_telecenter: $state.params.id_telecenter || null
+                    id_point: $state.params.id_point || null
                 };
 
                 AvailFactory.query(options, function (data) {
@@ -213,7 +213,7 @@ angular.module('datasid.attendance', []).
                     region: $state.params.region || null,
                     state: $state.params.state || null,
                     city: $state.params.city || null,
-                    id_telecenter: $state.params.id_telecenter || null
+                    id_point: $state.params.id_point || null
                 };
 
                 AvailFactory.query(options, function (data) {
@@ -241,7 +241,7 @@ angular.module('datasid.attendance', []).
 
     /* NETWORK USAGE */
     factory('NetworkUsageFactory', function($resource) {
-        return $resource('/api/tlbr/:type/:region/:state/:city/:id_telecenter');
+        return $resource('/api/tlbr/:type/:region/:state/:city/:id_point');
     }).
 
     controller('NetworkUsageCtrl', function ($scope, $rootScope, $state, $location, NetworkUsageFactory) {
@@ -254,7 +254,7 @@ angular.module('datasid.attendance', []).
                     {name: 'Upload'}
                 ];
                 config.tooltip.formatter = function() {
-                    var s = '<b>'+ this.x +'</b>';
+                    var s = '<b>'+ this.x[1] +'</b>';
 
                     for (var i = 0; i < this.points.length; i++) {
                         var point = this.points[i];
@@ -267,7 +267,7 @@ angular.module('datasid.attendance', []).
                 config.plotOptions.series.events = {
                     click: function(event) {
                         $scope.$apply(function () {
-                            $location.path($location.path() + '/' + event.point.category);
+                            $location.path($location.path() + '/' + event.point.category[0]);
                         });
                     }
                 };
@@ -281,7 +281,7 @@ angular.module('datasid.attendance', []).
                     region: $state.params.region || null,
                     state: $state.params.state || null,
                     city: $state.params.city || null,
-                    id_telecenter: $state.params.id_telecenter || null
+                    id_point: $state.params.id_point || null
                 };
 
                 if (typeof $state.params.city !== 'undefined')
@@ -314,7 +314,7 @@ angular.module('datasid.attendance', []).
 
                     for (var i=0; i<data.length; i++) {
                         var d = data[i];
-                        categories.push(d.cat);
+                        categories.push([d.id, d.cat]);
                         down.push(parseInt(d.down));
                         up.push(parseInt(d.up));
                     }
diff --git a/web/queries/tlbr/avail/current.sql b/web/queries/tlbr/avail/current.sql
index 450ab799fddd1ba170d711a40742e35e80b51c59..bd232964b317a6a460d4b0f788da9da9c75e4550 100644
--- a/web/queries/tlbr/avail/current.sql
+++ b/web/queries/tlbr/avail/current.sql
@@ -1,11 +1,11 @@
 SELECT
-    SUM(is_green) AS green,
-    SUM(is_yellow) AS yellow,
-    SUM(is_red) AS red
+    SUM(a.is_green) AS green,
+    SUM(a.is_yellow) AS yellow,
+    SUM(a.is_red) AS red
 FROM
-    aggr_availability
+    aggr_availability a JOIN point p ON a.id_point = p.id
 WHERE
     base_date = (SELECT max(base_date) FROM aggr_availability) AND
-    ($1::text IS NULL OR region = $1::text) AND
-    ($2::text IS NULL OR state = $2::text) AND
-    ($3::text IS NULL OR city = $3::text);
\ No newline at end of file
+    ($1::text IS NULL OR a.region = $1::text) AND
+    ($2::text IS NULL OR a.state = $2::text) AND
+    ($3::bigint IS NULL OR p.id_city = $3::bigint)
\ No newline at end of file
diff --git a/web/queries/tlbr/avail/hist.sql b/web/queries/tlbr/avail/hist.sql
index 373d24bd7fae4b1d9a20f9e57f024640a89424c8..64385cce32d0839f3ce4400ec82851892b76b657 100644
--- a/web/queries/tlbr/avail/hist.sql
+++ b/web/queries/tlbr/avail/hist.sql
@@ -4,12 +4,12 @@ SELECT
     SUM(is_yellow) AS yellow,
     SUM(is_red) AS red
 FROM
-    aggr_availability
+    aggr_availability a JOIN point p ON a.id_point = p.id
 WHERE
     base_date = (SELECT max(base_date) FROM aggr_availability) AND
     ($1::text IS NULL OR region = $1::text) AND
     ($2::text IS NULL OR state = $2::text) AND
-    ($3::text IS NULL OR city = $3::text)
+    ($3::bigint IS NULL OR p.id_city = $3::bigint)
 GROUP BY
     base_date
 ORDER BY
diff --git a/web/queries/tlbr/avail/sub_cities.sql b/web/queries/tlbr/avail/sub_cities.sql
index c88677d816a93eea8e3b18b64743b8904412b39b..5728d2eaa0038e9ad8c22a281bde9b0f6393fd00 100644
--- a/web/queries/tlbr/avail/sub_cities.sql
+++ b/web/queries/tlbr/avail/sub_cities.sql
@@ -1,13 +1,14 @@
 SELECT
-    city AS cat,
-    SUM(is_green) AS green,
-    SUM(is_yellow) AS yellow,
-    SUM(is_red) AS red
+    p.id_city AS id,
+    INITCAP(a.city) AS cat,
+    SUM(a.is_green) AS green,
+    SUM(a.is_yellow) AS yellow,
+    SUM(a.is_red) AS red
 FROM
-    aggr_availability
+    aggr_availability a JOIN point p ON a.id_point = p.id
 WHERE
     base_date = (SELECT max(base_date) FROM aggr_availability) AND
     ($1::text IS NULL OR region = $1::text) AND
     ($2::text IS NULL OR state = $2::text)
 GROUP BY
-    city;
+    p.id_city, a.city;
diff --git a/web/queries/tlbr/avail/sub_regions.sql b/web/queries/tlbr/avail/sub_regions.sql
index 05ee84f309096ba188c8a5ff53402928cd6e35c6..d9c37063d5def1df9ad960166ee01d5031d229a4 100644
--- a/web/queries/tlbr/avail/sub_regions.sql
+++ b/web/queries/tlbr/avail/sub_regions.sql
@@ -1,5 +1,6 @@
 SELECT
-    region AS cat,
+    UPPER(region) AS id,
+    INITCAP(region) AS cat,
     SUM(is_green) AS green,
     SUM(is_yellow) AS yellow,
     SUM(is_red) AS red
diff --git a/web/queries/tlbr/avail/sub_states.sql b/web/queries/tlbr/avail/sub_states.sql
index 2bdb21551f24e1f3c55f0ff31748330bde689548..f3f7d66dbde8d0a9a798bd33c64c96bbe49fe99e 100644
--- a/web/queries/tlbr/avail/sub_states.sql
+++ b/web/queries/tlbr/avail/sub_states.sql
@@ -1,5 +1,6 @@
 SELECT
-    state AS cat,
+    UPPER(state) AS id,
+    UPPER(state) AS cat,
     SUM(is_green) AS green,
     SUM(is_yellow) AS yellow,
     SUM(is_red) AS red
diff --git a/web/queries/tlbr/avail/sub_telecenters.sql b/web/queries/tlbr/avail/sub_telecenters.sql
index a4d2c748b6a3be9b22f247654c608995774b9d12..682783e020a3419c28173a527bf89d1c403300f7 100644
--- a/web/queries/tlbr/avail/sub_telecenters.sql
+++ b/web/queries/tlbr/avail/sub_telecenters.sql
@@ -1,14 +1,15 @@
 SELECT
-    tc_name AS cat,
-    SUM(is_green) AS green,
-    SUM(is_yellow) AS yellow,
-    SUM(is_red) AS red
+    p.id AS id,
+    a.tc_name AS cat,
+    SUM(a.is_green) AS green,
+    SUM(a.is_yellow) AS yellow,
+    SUM(a.is_red) AS red
 FROM
-    aggr_availability
+    aggr_availability a JOIN point p ON a.id_point = p.id
 WHERE
     base_date = (SELECT max(base_date) FROM aggr_availability) AND
-    ($1::text IS NULL OR region = $1::text) AND
-    ($2::text IS NULL OR state = $2::text) AND
-    ($3::text IS NULL OR city = $3::text)
+    ($1::text IS NULL OR a.region = $1::text) AND
+    ($2::text IS NULL OR a.state = $2::text) AND
+    ($3::bigint IS NULL OR p.id_city = $3::bigint)
 GROUP BY
-    tc_name;
+    p.id, tc_name;
\ No newline at end of file
diff --git a/web/queries/tlbr/net_usage/sub_cities.sql b/web/queries/tlbr/net_usage/sub_cities.sql
index e51dbf3a8a743301afd9acf39fe81c5c638cf985..4d4f5d9d70b94c65b8c736dd94ee6d65f801c282 100644
--- a/web/queries/tlbr/net_usage/sub_cities.sql
+++ b/web/queries/tlbr/net_usage/sub_cities.sql
@@ -1,5 +1,6 @@
 SELECT
-    city AS cat
+    id_city AS id
+    , INITCAP(city) AS cat
     , AVG(bytes_five_min_to_kbits_sec(down)) AS down
     , AVG(bytes_five_min_to_kbits_sec(up)) AS up
 FROM
diff --git a/web/queries/tlbr/net_usage/sub_regions.sql b/web/queries/tlbr/net_usage/sub_regions.sql
index 6b9d8ffec74811082a1c7b7ccfe234d5e27f87fb..06de16f85b2255b18efb8d17479211e6c2cfbd2c 100644
--- a/web/queries/tlbr/net_usage/sub_regions.sql
+++ b/web/queries/tlbr/net_usage/sub_regions.sql
@@ -1,6 +1,7 @@
 -- Compute the peak for every telecenter and than the average for each region
 SELECT
-    f.region AS cat
+    UPPER(f.region) AS id
+    , INITCAP(f.region) AS cat
     , AVG(bytes_five_min_to_kbits_sec(f.down)) AS down
     , AVG(bytes_five_min_to_kbits_sec(f.up)) AS up
 FROM
diff --git a/web/queries/tlbr/net_usage/sub_states.sql b/web/queries/tlbr/net_usage/sub_states.sql
index 039832805202baf915ff1080a1bb73cf763b012b..092fd5118c902d54ff4e0566dff4541b6ffb8a39 100644
--- a/web/queries/tlbr/net_usage/sub_states.sql
+++ b/web/queries/tlbr/net_usage/sub_states.sql
@@ -1,6 +1,7 @@
 -- Compute the peak for every telecenter and than the average for each state
 SELECT
-    state AS cat
+    UPPER(state) AS id
+    , UPPER(state) AS cat
     , AVG(bytes_five_min_to_kbits_sec(down)) AS down
     , AVG(bytes_five_min_to_kbits_sec(up)) AS up
 FROM
diff --git a/web/queries/tlbr/net_usage/sub_telecenters.sql b/web/queries/tlbr/net_usage/sub_telecenters.sql
index 675ef4f08c744fccb1964d589fa8f14157cc4102..411d56e3a780075ab919d20c5b5dc1e6d69b3f7a 100644
--- a/web/queries/tlbr/net_usage/sub_telecenters.sql
+++ b/web/queries/tlbr/net_usage/sub_telecenters.sql
@@ -1,12 +1,13 @@
 SELECT
-    telecenter AS cat
+    id_point AS id
+    , telecenter AS cat
     , id_point
     , MAX(bytes_five_min_to_kbits_sec(down_kbits)) AS down
     , MAX(bytes_five_min_to_kbits_sec(up_kbits)) AS up
 FROM
     fact_net_usage_telecenter
 WHERE
-    city = $1::text
+    id_city = $1::bigint
 GROUP BY
     id_point
     , telecenter
diff --git a/web/queries/tlbr/net_usage/telecenter.sql b/web/queries/tlbr/net_usage/telecenter.sql
index e42b2187b60f7e93f367810cf0117ca391edf400..ebd8a0293b35d89f837de557dfff5a80cc324777 100644
--- a/web/queries/tlbr/net_usage/telecenter.sql
+++ b/web/queries/tlbr/net_usage/telecenter.sql
@@ -1,13 +1,12 @@
 SELECT
-    telecenter AS cat
-    , bytes_five_min_to_kbits_sec(down_kbits) AS down
-    , bytes_five_min_to_kbits_sec(up_kbits) AS up
-    , collect_date + collect_time AS timestamp
+    bytes_five_min_to_kbits_sec(down_kbits)::real AS down
+    , bytes_five_min_to_kbits_sec(up_kbits)::real AS up
+    , EXTRACT('epoch' FROM collect_date + collect_time) AS timestamp
 FROM
     fact_net_usage_telecenter
 WHERE
     id_point = $1::integer
 ORDER BY
-    id_date
+    collect_date
     , collect_time
 ;
diff --git a/web/routes/charts.js b/web/routes/charts.js
index a230980e11cd6fe9327d214876b22e788e43f62b..1c22f2254f30997bc2160e40d03e969359a5e339 100644
--- a/web/routes/charts.js
+++ b/web/routes/charts.js
@@ -13,7 +13,7 @@ exports.get_data = function(req, res) {
             /* Availability */
             {
                 type: 'avail_current', file: 'queries/tlbr/avail/current.sql'
-                , params: [ req.params.region, req.params.state, req.params.city ]
+                , params: [ req.params.region, req.params.state, req.params.id_city ]
             },
             {
                 type: 'avail_sub_regions' , file: 'queries/tlbr/avail/sub_regions.sql'
@@ -29,11 +29,11 @@ exports.get_data = function(req, res) {
             },
             {
                 type: 'avail_sub_telecenters', file: 'queries/tlbr/avail/sub_telecenters.sql'
-                , params: [ req.params.region, req.params.state, req.params.city ]
+                , params: [ req.params.region, req.params.state, req.params.id_city ]
             },
             {
                 type: 'avail_hist', file: 'queries/tlbr/avail/hist.sql'
-                , params: [ req.params.region, req.params.state, req.params.city ]
+                , params: [ req.params.region, req.params.state, req.params.id_city ]
             },
 
             /* Net Usage */
@@ -51,11 +51,11 @@ exports.get_data = function(req, res) {
             },
             {
                 type: 'net_usage_sub_telecenters', file: 'queries/tlbr/net_usage/sub_telecenters.sql'
-                , params: [ req.params.city ]
+                , params: [ req.params.id_city ]
             },
             {
                 type: 'net_usage_telecenter', file: 'queries/tlbr/net_usage/telecenter.sql'
-                , params: [ req.params.id_telecenter ]
+                , params: [ req.params.id_point ]
             }
         ]
     };
diff --git a/web/server.js b/web/server.js
index 635945cdfecb00881051e680327ec73f363bb055..989e4955dabae3096a00b15b2621eb2f42c91fe7 100755
--- a/web/server.js
+++ b/web/server.js
@@ -25,6 +25,7 @@ app.all('/api/telecenters/:state?/:city_id?/:telecenter_id?', db.connect, telece
 app.get('/api/:project/:type', db.connect, charts.get_data);
 app.get('/api/:project/:type/:region', db.connect, charts.get_data);
 app.get('/api/:project/:type/:region/:state', db.connect, charts.get_data);
-app.get('/api/:project/:type/:region/:state/:city', db.connect, charts.get_data);
+app.get('/api/:project/:type/:region/:state/:id_city', db.connect, charts.get_data);
+app.get('/api/:project/:type/:region/:state/:id_city/:id_point', db.connect, charts.get_data);
 
 app.listen(port);