Four steps.
No model in the middle.
Vugo® Measure never estimates. It reads where each vehicle was from the operator’s own feed, checks that against the published schedule and your posting chart, and reports the hours that pass. Everything it can’t establish is left blank with a reason, never filled in.
Four inputs. All of them yours or the operator’s.
Posting chart
Which vehicle carried which creative, from when to when. For a route buy, the route the buy guarantees; for a bus buy, every scheduled trip the bus runs counts.
Realtime positions
The transit agency’s own vehicle feed (GTFS-Realtime or its websocket) or a fleet’s dispatch system, read by the provider’s timestamp, never the time it arrived.
Published schedule
The agency’s static GTFS: calendar, trips, stop times and timezone, kept by version so a result is always checked against the schedule in force that day.
Rights
A verified grant to use each source, and the operator’s permission to show its output. Time without both is withheld with the reason, not counted as zero.
Every raw payload is archived with its SHA-256 before it is parsed, so any figure can be traced back to the data it came from.
What a supported hour is.
- Observed
- Positions are ordered by the provider’s timestamp, de-duplicated, and turned into intervals per vehicle. A silence longer than three publication intervals is a gap, not movement. A vehicle reported by two sources at once is counted once.
- Assigned
- Each interval must fall inside exactly one row of your posting chart. No row, or two rows, and the time is excluded and listed as such.
- Scheduled
- The interval is checked against the schedule: an exact scheduled trip counts at full strength; a vehicle on a scheduled route without a trip id counts, at a lower grade; a vehicle moving when nothing was scheduled is excluded.
- On plan
- For a route buy, scheduled time on another route is off plan and reported separately. What remains is supported: one vehicle, one hour.
One clock per market.
A flight is a pair of local calendar dates, cut at midnight in the market’s own timezone, taken from the agency’s published schedule. Every instant in a report is shown in that zone, with the zone named, so a buyer in New York and an operator in Los Angeles read the same clock for the same bus.
For a flight still running, the cutoff is the last completed hour, so everyone who opens the report within that hour sees the same signed receipt. After the flight ends, the cutoff is the flight end.
A to E, on every figure.
A grade describes how much of a number rests on strong evidence. It is set by the weakest of seven measured inputs: how much time was counted on route rather than exact trip, how many feed polls succeeded, how much time fell in gaps, how often the feed published, how late its positions arrived, whether the schedule covered the service day, and whether every vehicle had an exact posting row. An input that couldn’t be measured caps the grade at E; an unknown is never assumed good.
Exact scheduled trips, a near-continuous feed, a current schedule, an exact roster.
The same claim with small, disclosed gaps, or a small share counted on route rather than trip.
A material route-only share, or noticeably incomplete collection. The number is still conservative.
Large collection gaps or schedule and roster coverage problems. Read it with the exclusions.
An input the grade needs could not be measured, or collection was poor.
The grading rules are a versioned methodology release, approved by Vugo’s product owner and pinned to each receipt. A grade never changes the number.
Confirmed on the street, where the rights allow.
Cameras don’t measure — they verify. The feed and the schedule count the hours. On paid plans, where public roadside traffic cameras permit it, a Vugo reviewer reads a capture and confirms your creative is still on the vehicle; the service around it then counts as verified: hours a photo confirms.
Camera checks only ever add confidence to the count. If a reviewer sees that the creative is missing or out of date, it’s recorded for that moment, so you know exactly what to fix, and the rest of the flight still stands on the feed.
Six parts, in the same order every time.
- Delivery
- The result, pace against booked, makegoods, website traffic shown as a correlation, and, on some plans, cost per supported hour.
- Where
- Counted hours along each route by daypart, the stops where the creative sat longest, the neighborhoods served, described from Census data, time near your stores, and speed and dwell. A description of places, not an audience.
- When
- Weekday by hour, route by day, and the schedule versions in force.
- What ran
- Vehicles and creative.
- Proof
- The evidence grade, posting completeness, what wasn’t counted and why, sources and, on paid plans, camera captures and the signed receipt.
- Setup
- Booked hours, the vehicles assigned, and the data connections behind the report.
No mystery numbers.
Vugo Measure reports what it can count and labels everything else. If no audience model is connected, there’s no audience number.
- Not claimed
- No impressions, audience, reach, frequency, or visibility adjustment. No claim that a creative was seen, or even legible, from the feed alone
- Unobserved
- A vehicle with no observed movement is listed as unavailable, never as zero service
- Personal data
- None: no device IDs, emails, or customer lists. Only aggregates are signed, and a receipt never carries vehicle coordinates. Live positions are shown only to the campaign’s advertiser, for its own vehicles
Bring a posting chart. We’ll bring the feed.
Send us a flight you ran, and we’ll show you what Vugo Measure would have reported for it.