Net health monitoring
You might want to move out 1000, 3600, 24 to "constants" so that they're properly described. Something like:

var HOURS_A_DAY = 24;
var MILLISECONDS_A_SECOND = 1000;
var SECONDS_AN_HOUR = 3600;


In addition, you can name your variables properly so that they're easily understood. timeDiff could be timeDifference, diffDays could be daysDifference.

Creating date objects per iteration is costly. Try operating using milliseconds instead. Make data.date return milliseconds for date1. Then use Date.now() on date2. Also, if possible, avoid doing getTime() and getHours(). Try calculating them manually.

Next, Math.abs can be done using a bitwise operation. The same could be done for Math.ceil, just look around the internet. Here's an example of a bitwise Math.abs, where n is the number to absolutify.

return (n &lt; 0) ? (~n + 1) : n


Bitwise isn't the solution to all math performance problems and highly depends on the JS engine running. Some bitwise operations are faster than their high-level counterparts, some the other way around. Highly depends on the combination, so try checking which ones work for you.

if (!week[day][hour]) week[day][hour] = 0;


Property access and condition evaluation can be costly. Move this out to the for-loop that builds your matrix. This has nothing to do with the data crunching. It's just initializing a hole in the array to 0.

Lastly, for a more beautiful code, let's make everything less redundant and more consistent-looking.

week[day][hour] += data.isNetAlive ? 1 : -5;