Where they went

Mobility flows, daily

Devices seen at one screen while an ad played and at another screen within the next 24 hours. One row per screen pair, day and radio signal, with the distinct devices as a floor and a ceiling and the median minutes between the two sightings. The same flows by hour, and every device transition between two screens by day, ship alongside.

Request a sampleAll datasets

The question it answers

Where do people go after they pass this screen?

10.1 million

screen pairs

21.8 million

daily rows

5,278

destination screens

Measured over the 28 days to October 11, 2026.


The dataset

Grain
Daily.
Cadence
Daily rows, one file per day. The hourly table carries the same flows by hour.
History
From July 15, 2026.
Format
Parquet or JSONL.
Delivered to
Your S3 bucket, your GCS bucket, or a time-limited download link, with a manifest and a schema.
Method
How each measure is produced and how to add rows up: the measurement methodology.

What buyers do with it

  • Trade areas and cross-visitation between venues.
  • Exposure-to-visit paths: who saw an ad in one place and turned up in another.
  • Corridor and route analysis for transit, retail and real estate.

The tables

Read from the export registry each time this site is built.

mobility_flows_daily

Daily, from July 15, 2026
Grain
One row per flow_date, source_screen_id, destination_screen_id and source.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 2.
ColumnTypeWhat it holds
flow_datedateUTC day of the source sightings.
source_screen_idstringScreen where identifiers were seen during an ad play. Trillboards screen id (24-character hex); joins dim_screen.screen_id.
destination_screen_idstringScreen where the same identifiers were seen within the next 24 hours.
sourcestringRadio signal source of the identifiers: ble, mdns, ssdp or http_probe.
repeated_signal_countintegerPairs of (source sighting, destination sighting) behind the row. Unit: signal_pairs.
unique_identifiers_floorintegerDistinct identifiers in the day's largest single hour-by-ad-window cell: the least the day's distinct count can be. Unit: identifiers.
identifier_cell_sumintegerSum of the cells' distinct identifiers: the most the day's distinct count can be. Unit: identifiers.
ad_window_cellsintegerThe hour-by-ad-window cells the row aggregates. Unit: cells.
median_lag_minutesdoubleMean over the cells of each cell's median minutes from the source to the destination sighting. Unit: minutes.

proximity_graph_edges_hourly

Hourly, from July 15, 2026

Screen-to-screen movement by hour and radio signal, anchored on ad plays.

Grain
One row per hour_bucket, source_screen_id, destination_screen_id and source.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 2.
ColumnTypeWhat it holds
hour_buckettimestampUTC hour the identifiers were seen at the source screen during an ad play.
source_screen_idstringScreen where the identifiers were seen during the play. Trillboards screen id (24-character hex); joins dim_screen.screen_id.
destination_screen_idstringScreen where the same identifiers were seen within the next 24 hours.
sourcestringRadio signal source of the identifiers: ble, mdns, ssdp or http_probe.
repeated_signal_countintegerPairs of (source-screen signal, destination-screen signal) behind the row, summed over its ad-window cells. Unit: signal_pairs.
unique_identifiers_floorintegerDistinct identifiers in the largest single (creative, ad) cell of the hour: the least the hour's distinct count can be. Unit: identifiers.
identifier_cell_sumintegerSum of the cells' distinct identifiers: the most the hour's distinct count can be (an identifier seen in two cells counts twice here). Unit: identifiers.
ad_window_cellsintegerThe (creative, ad) cells the row aggregates. Unit: cells.
median_lag_minutesdoubleMean over the cells of each cell's median minutes from the source sighting to the destination sighting. Unit: minutes.

cross_screen_edges_daily

Daily, from May 2026

Devices seen at one screen and then at another within the hour, by screen pair and day, with the median lag and distance.

Grain
One row per dt, source_screen_id and destination_screen_id.
Delivery
One file per day, as Parquet or JSONL.
Basis
Measured.
Definition
Version 3.
ColumnTypeWhat it holds
dtdateUTC day of the transitions.
source_screen_idstringScreen the device was seen at first. Trillboards screen id (24-character hex); joins dim_screen.screen_id.
destination_screen_idstringScreen the device was seen at next, 1-60 minutes later.
edge_countintegerDistinct transitions (device key, screens, time, lag) from the source to the destination that day. Unit: transitions.
unique_devicesintegerDistinct device keys behind the transitions (the RSSI-independent stable key). Unit: identifiers.
lag_p50_minutesintegerExact median minutes between the two sightings. Unit: minutes.
transition_distance_p50_mdoubleExact median great-circle distance between the two screens' stored coordinates. The transition writer stores 0 where either screen has no coordinate, so 0 means co-located or not located. Unit: meters.

Request a sample

Tell us the markets and the weeks you want. The sample is cut from production by the same export that makes the full delivery.

Request a sample

All datasets · Next: Geohash activity, hourly