Trillboards
Menu
Who was there
Screen demographics
The readings behind audience composition, one row per reading: the screen, the time, the attribute and its value. Roll them up to any screen and week, or join them to plays, billboard passes and radio counts on the screen and the time.
The question it answers
What does the audience at this one screen look like, week after week?
4,574
screens with a reading
122.6 million
readings
Measured over the 28 days to October 11, 2026.
The dataset
- Grain
- One row per reading.
- Cadence
- One row per reading, one file per day.
- History
- From July 16, 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
- Screen-level audience profiles for curating inventory and packaging deals.
- Week-over-week change in who visits a venue or rides in a cab.
- Training data for audience models that need the individual reading.
The table
Read from the export registry each time this site is built.
observation_demographics
One row per event, from July 16, 2026Every attribute reading the cameras make: screen, time, attribute and value.
- Grain
- One row per observation_id, dimension and value.
- Delivery
- One file per day, as Parquet or JSONL.
- Basis
- Measured.
- Definition
- Version 2.
| Column | Type | What it holds |
|---|---|---|
observed_date | date | UTC day of the reading. |
observed_at | timestamp | When the camera observation the reading comes from was made, UTC. |
screen_mongo_id | string | Trillboards screen id (24-character hex); joins dim_screen.screen_id. |
observation_id | string | The camera observation (one analysed frame window) the reading belongs to. |
dimension | string | The audience attribute read (config/observationDemographicsDimensions.js): age, gender, mood, device_engagement, activity_state, intent, attire, lifestyle, carried_items and the others declared. head_turn and occupant_position are image-frame values: head_turn is turned_image_left, turned_image_right, not_turned or not_assessable (where the nose points relative to the edges of the picture), occupant_position is image_left_third, image_center_third, image_right_third or driving (the third of the picture the person occupies). Neither is a side of the vehicle or the street: a rearward cabin camera mirrors the vehicle's left and right. |
value | string | The value read for the dimension. lifestyle values are numeric IAB Audience Taxonomy 1.1 segment ids (segtax=4); the other dimensions use our own vocabulary. |
count | integer | Readings of the value in the observation: 1 on every row (one row is one reading). Unit: readings. |
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 sampleAll datasets · Next: Play-level audience