Delivery & Measurement · No TB-DR-2608-0813
How an out-of-home impression is counted, priced and proved.
A four-week Chick-fil-A flight across 2,966 attention-measured screens inside taxis and rideshare vehicles — one passenger, seated an arm's length from the display, for the length of a ride. This is the full record behind every number: what was counted, who was in the cab, and what moved.
100.9% of contracted volume, counted at the completed play across 41 markets.
Deduplicated riders at 2.58 rides each over the four weeks.
Against a DMA-matched control cohort held out for the full term.
How an impression is counted
Delivery is recorded by the ad player itself, transmitted over standard VAST tracking events, and signed at the edge so any figure in this report can be verified independently.
- Google IMA SDK is the player runtime on the screen. The same SDK used across digital video renders the spot and fires the tracking beacons — nothing proprietary sits in the counting path.
- Standard VAST events carry the record: start, firstQuartile, midpoint, thirdQuartile, complete. Only complete is billable.
- An Ed25519 signature is applied to every completed play at the edge, verifiable against a published public key by any third party.
- One completed play is one impression. The impression multiplier is 1.000 — no audience factor is applied to the billable count, so publisher and platform are counting the same event rather than two different quantities.
| VAST event | Events received | Rate vs start | Billable |
|---|---|---|---|
| start | 13,262,741 | 100.00% | No |
| firstQuartile | 13,043,196 | 98.34% | No |
| midpoint | 12,861,884 | 96.98% | No |
| thirdQuartile | 12,725,451 | 95.95% | No |
| complete | 12,648,876 | 95.37% | Yes |
Completion rate is measured rather than assumed. The 95.37% start-to-complete rate is the observed rate across this footprint, consistent with the trailing fourteen-day baseline.
What ran, and what it cost
The flight closed on schedule at 100.9% of contracted volume. Delivery tracks taxi ridership rather than a building's opening hours: Friday is the peak and Sunday the trough, a 25% swing, with the working week sitting between them.
What the screens actually saw
Every screen returns a structured read of the cabin in front of it every ten seconds. Attention is reported per play, from those reads — not inferred from screen position, traffic counts or venue class. 93.1% of reads show a single- occupant cabin, averaging 1.08 faces in frame.
| Exposure classification | Share | Exposures | Mean dwell |
|---|---|---|---|
| Attentive dwell — sustained Held on the screen long enough to take the message. | 4.10% | 435,705 | 285.8s |
| Active glance Looked, registered, moved on. | 8.40% | 892,664 | 114.0s |
| Present, not attending In the viewing area, attention elsewhere. | 85.20% | 9,054,167 | 236.8s |
| View obstructed Display blocked from the viewing area. Never billed. | 2.30% | 244,420 | — |
| Measured exposures | 100.00% | 10,626,956 | — |
| Daypart | Share of exposures | Attention index | Faces in frame |
|---|---|---|---|
| Evening 8p – 12a | 21.2% | 0.413 105 | 0.84 |
| Overnight 12a – 5a | 15.8% | 0.404 103 | 0.75 |
| Early 5a – 10a | 17.5% | 0.393 | 0.82 |
| Daytime 10a – 4p | 26.7% | 0.384 | 0.92 |
| Rush 4p – 8p | 18.8% | 0.376 | 0.91 |
Who stood in front of the screen
Composition is observed across the delivered footprint over the flight window, classified per person per scene window. Every cell clears a minimum cohort size of five before release.
Deduplicated reach and frequency
Reach is measured from device observations at the screen and deduplicated across the whole footprint and the whole flight. It is a census count, not a projection from a traffic panel.
Matching against the buying platform
Counts were matched on play identifier rather than on aggregate totals, so a variance can be traced to specific plays instead of argued in the abstract.
| Source of count | Impressions | Variance | In tolerance |
|---|---|---|---|
| Signed proof-of-play | 12,356,926 | — | — |
| Buyer ad server | 12,340,608 | −0.132% | Yes |
| Unmatched — buyer only | 2,059 | 0.017% | Yes |
| Unmatched — publisher only | 18,377 | 0.149% | Yes |
| Billed | 12,356,926 | 0.132% | No true-up |
The MRC tolerance for programmatic delivery reconciliation is ±2.0%. Residual variance here is one sixteenth of that, so no true-up was applied.
What never became billable
Exclusions are applied before an impression becomes billable, not deducted afterwards — so no invoice is issued and later credited.
| Stage | Events | Share | Billable |
|---|---|---|---|
| VAST complete events received | 12,648,876 | 100.00% | — |
| Less: duplicate suppression Repeat submissions of one play. | −53,619 | 0.42% | No |
| Less: general invalid traffic Filtered pre-billing, retained for inspection. | −12,431 | 0.10% | No |
| Less: obstructed view confirmed Sensor confirmed the display was blocked. | −225,900 | 1.79% | No |
| Net billable impressions | 12,356,926 | 97.69% | Yes |
99.90% GIVT pass
12,431 events filtered before billing. Filtered events are retained and inspectable at play-identifier level.
Every billable play
Ed25519 coverage across the full billable set, verifiable against a published public key.
225,900 obstructed
Plays that rendered while the display was blocked from the viewing area. Detectable only on measured inventory.
Delivery by daypart and market
The footprint is a single venue type — OpenOOH 103, taxi & rideshare, all 2,966 screens mobile and in-cab — so rate is set by daypart, following measured attention and ridership rather than venue class. Rates were fixed for the flight term and agreed before launch.
| Daypart | Impressions | CPM | Net media |
|---|---|---|---|
| Overnight 12a – 5a | 1,951,159 | $3.25 | $6,341.27 |
| Early 5a – 10a | 2,158,755 | $4.25 | $9,174.71 |
| Daytime 10a – 4p | 3,296,828 | $3.80 | $12,527.95 |
| Rush 4p – 8p | 2,324,338 | $7.00 | $16,270.37 |
| Evening 8p – 12a | 2,625,846 | $6.00 | $15,755.08 |
| Total | 12,356,926 | $4.86 | $60,069.38 |
Venue taxonomy follows OpenOOH v1.2. Every screen in this flight carries venue type 103 — taxi & rideshare — so the rate card varies by time of day, not by venue.
| Market | Screens | Impressions | Share | Unique reach |
|---|---|---|---|---|
| Las Vegas | 387 | 1,612,316 | 13.0% | 536,607 |
| Washington, DC | 316 | 1,316,517 | 10.7% | 438,160 |
| Kansas City | 207 | 862,402 | 7.0% | 287,022 |
| Pittsburgh | 156 | 649,926 | 5.3% | 216,307 |
| Houston | 148 | 616,596 | 5.0% | 205,214 |
| Hartford & New Haven | 130 | 541,605 | 4.4% | 180,256 |
| Denver | 125 | 520,774 | 4.2% | 173,323 |
| Jacksonville | 121 | 504,109 | 4.1% | 167,776 |
| Tampa – St. Petersburg | 105 | 437,450 | 3.5% | 145,591 |
| Indianapolis | 98 | 408,287 | 3.3% | 135,885 |
| 31 additional markets | 1,173 | 4,886,944 | 39.5% | 1,626,458 |
| Total | 2,966 | 12,356,926 | 100.0% | 4,112,599 |
Store visitation lift
Exposed devices were matched against a control cohort drawn from the same markets and balanced on market, daypart profile and observed mobility. Visitation is measured against 2,847 Chick-fil-A locations inside the flight footprint.
| Cohort | Devices | Visitors | Visit rate | Median time to visit |
|---|---|---|---|---|
| Exposed | 4,112,599 | 188,357 | 4.58% | 3.1 days |
| Control — DMA matched | 1,230,805 | 48,124 | 3.91% | 4.4 days |
| Measured lift | 27,554 | — | +0.67 pts | −1.3 days |
Attribution window is 14 days from exposure. The control cohort is held out for the full flight term at 29.9% of exposed volume.
How to verify any figure here
- Player runtime
- Google IMA SDK. The counting path uses the same SDK and the same event vocabulary as digital video.
- Billable event
- The VAST
completeevent for a rendered spot. Quartile events are reported but never billed. - Signature
- Ed25519, applied per completed play at the edge. Algorithm, key identifier and verification steps are published in the methodology document.
- Deduplication
- Each play carries a deduplication key covering screen, creative and time window. Repeat submissions collapse to one billable record before invoicing.
- Invalid traffic
- General invalid traffic is filtered pre-billing. Filtered events are retained and inspectable at play-identifier level.
- Obstructed view
- Plays where the sensor confirmed the display was blocked from the viewing area are excluded from billing entirely.
- Reach basis
- Device observations at the screen, deduplicated across footprint and flight. Census, not panel-projected.
- Attention basis
- Structured scene reads at ten-second intervals, classified per person per window and joined to the play on screen and time.
- Privacy floor
- No cohort below five is released in any cell of this report. Device identifiers are salted per counterparty and cannot be joined across buyers.
- Raw log access
- Play-level detail behind every row is available to the buyer and to an independent auditor on request, keyed by play identifier.
Standards and references
- MRC Digital Out-of-Home Measurement Guidelines, Phase 2 — counting, filtration and disclosure basis.
- IAB Tech Lab VAST 4.x — tracking event vocabulary and transport.
- OpenOOH Venue Taxonomy v1.2 — venue environment classification.
- Trillboards measurement methodology, version 2026-08-12 — api.trillboards.com/v1/partner/measurement-methodology