A computer system (100, 1000) for measuring traffic speed on road segments (r 1, r 2, r n) of a road network in a geographic area, comprising: computer storage (1004, 1008, 1010) comprising: sample data associating speed of sampled vehicles on road segments (r 1, r 2, r n) to points oftime in a plurality of time slots (t 1, t 2, t i, t j, t m), the sample data being derived from location data received from sensors that provide location data over time of the sampled vehicles; and correlation data defining correlations among road segments (r 1, r 2, r n) and correlations among time slots (t 1, t 2, t i, t j, t m), wherein the correlation data comprises road network information for each of the road segments (r 1, r 2, r n) and correlating the road segments (n, r 2, r n), and historic sample data including average speeds of sampled vehicles on the road segments (n, r 2, r n) in time slots prior to the current time slot (tj); one or more processing units programmed to access the computer storage (1004, 1008, 1010) to process the sample data using the correlation data to provide an output describing, for each road segment (n, r 2, r n) in the road network, at least an average vehicle speed for each road segment (r 1, r 2, r n) in the road network for at least a current time slot (tj); wherein the road network information includes a matrix of road segments (n, r 2, r n) and features of the road segments (r 1, r 2, r n); wherein the historic sample data includes a matrix of time slots (t 1, t 2, t i, t j, t m) and average speeds for road segments (r 1, r 2, r n) in the time slots (t 1, t 2, t i, t j, t m); wherein the sample data includes a sparse matrix of time slots (t 1, t 2, t i, t j, t m) and speeds for the road segments (r 1, r 2, r n) in the time slots (t 1, t 2, t i, t j, t m) where sample vehicle travelled during the time slots (t 1, t 2, t i, t j, t m); and wherein processing includes factorizing the matrices to determine average speeds for other road segments where sample vehicles have not travelled in the current time slot (tj). computer storage (1004, 1008, 1010) comprising: sample data associating speed of sampled vehicles on road segments (r 1, r 2, r n) to points oftime in a plurality of time slots (t 1, t 2, t i, t j, t m), the sample data being derived from location data received from sensors that provide location data over time of the sampled vehicles; and correlation data defining correlations among road segments (r 1, r 2, r n) and correlations among time slots (t 1, t 2, t i, t j, t m), wherein the correlation data comprises road network information for each of the road segments (r 1, r 2, r n) and correlating the road segments (n, r 2, r n), and historic sample data including average speeds of sampled vehicles on the road segments (n, r 2, r n) in time slots prior to the current time slot (tj); sample data associating speed of sampled vehicles on road segments (r 1, r 2, r n) to points oftime in a plurality of time slots (t 1, t 2, t i, t j, t m), the sample data being derived from location data received from sensors that provide location data over time of the sampled vehicles; and correlation data defining correlations among road segments (r 1, r 2, r n) and correlations among time slots (t 1, t 2, t i, t j, t m), wherein the correlation data comprises road network information for each of the road segments (r 1, r 2, r n) and correlating the road segments (n, r 2, r n), and historic sample data including average speeds of sampled vehicles on the road segments (n, r 2, r n) in time slots prior to the current time slot (tj); one or more processing units programmed to access the computer storage (1004, 1008, 1010) to process the sample data using the correlation data to provide an output describing, for each road segment (n, r 2, r n) in the road network, at least an average vehicle speed for each road segment (r 1, r 2, r n) in the road network for at least a current time slot (tj); wherein the road network information includes a matrix of road segments (n, r 2, r n) and features of the road segments (r 1, r 2, r n); wherein the historic sample data includes a matrix of time slots (t 1, t 2, t i, t j, t m) and average speeds for road segments (r 1, r 2, r n) in the time slots (t 1, t 2, t i, t j, t m); wherein the sample data includes a sparse matrix of time slots (t 1, t 2, t i, t j, t m) and speeds for the road segments (r 1, r 2, r n) in the time slots (t 1, t 2, t i, t j, t m) where sample vehicle travelled during the time slots (t 1, t 2, t i, t j, t m); and wherein processing includes factorizing the matrices to determine average speeds for other road segments where sample vehicles have not travelled in the current time slot (tj).