Area Analytics Tools

Area Analytics Tools

Analyze traffic patterns across custom geographical areas over specific time periods. Define a region using a GeoJSON Polygon, choose your date range (up to 31 days), and query congestion levels, speeds, and travel times.

tomtom-area-analytics-stats

Retrieve area analytics statistics for a GeoJSON Polygon region within a 31-day period.

Parameters

ParameterTypeRequiredDescription
namestringYesName for the analysis report (1–250 characters)
startDatestringYesAnalysis start date (YYYY-MM-DD)
endDatestringYesAnalysis end date (YYYY-MM-DD). Must be within 31 days of startDate and at least 2 days before today
hoursnumber[]YesHours to analyze (0–23). Minimum 1, maximum 24
frcsnumber[]YesFunctional road classes (0–8). 0 = Motorway, 1 = Major, 2 = Other Major, 3 = Secondary, 4 = Local Connecting, 5 = Local High, 6 = Local, 7 = Local Minor, 8 = Other
dataTypesenum[]YesOne or more of: NETWORK_LENGTH, CONGESTION_LEVEL, FREE_FLOW_SPEED, TRAVEL_TIME, SPEED
featuresGeoJSON[]YesExactly 1 GeoJSON Feature with Polygon or MultiPolygon geometry
sql_queriesobjectYesNamed SQL queries (see SQL Filtering)

SQL Tables

timed_data: One row per time aggregation per region

ColumnTypeDescription
region_namestringRegion name from GeoJSON properties
timezonestringTimezone from GeoJSON properties
aggregation_typestringall, yearly, monthly, daily, or hourly
timestringTimestamp
speednumberSpeed
free_flow_speednumberFree flow speed
congestion_levelnumberCongestion level (0–100)
travel_timenumberTravel time in seconds
network_lengthnumberNetwork length

tiled_data: One row per spatial tile per region

ColumnTypeDescription
region_namestringRegion name from GeoJSON properties
latnumberTile latitude
lonnumberTile longitude
speednumberSpeed
free_flow_speednumberFree flow speed
congestion_levelnumberCongestion level (0–100)
travel_timenumberTravel time in seconds
network_lengthnumberNetwork length

Example SQL Queries

1-- Daily congestion trend
2SELECT time::DATE as day, ROUND(AVG(congestion_level), 2) as avg_congestion
3FROM timed_data
4WHERE aggregation_type = 'daily'
5GROUP BY day
6ORDER BY day
7
8-- Top congestion hotspots
9SELECT lat, lon, congestion_level
10FROM tiled_data
11WHERE congestion_level > 70
12ORDER BY congestion_level DESC
13LIMIT 20
14
15-- Compare hourly patterns across the week
16SELECT date_part('dow', time::TIMESTAMP) as day_of_week,
17 date_part('hour', time::TIMESTAMP) as hour,
18 ROUND(AVG(congestion_level), 1) as avg_congestion
19FROM timed_data
20WHERE aggregation_type = 'hourly'
21GROUP BY day_of_week, hour
22ORDER BY day_of_week, hour