Skip to main content
DwellTransit

Guide for agencies

Get your buses into Google Maps

Publishing a GTFS feed puts your schedule on a URL. It does not put your buses in anyone's app. Each app has to be told the feed exists, and Google in particular checks a feed for weeks before it shows a single rider. This page says what each one needs, how long it takes, and which parts are yours and which are Dwell's.

What "in Google Maps" actually takes

Google Maps reads transit data through its Transit Partner program. Getting in is an application, not an upload: you, or Dwell on your behalf, fill in a form describing the agency and the feed, and Google fetches the feed from its URL from then on. A software company may apply for an agency it produces the feed for; where Google already shows the agency, it asks the agency for a written endorsement first.

Four things have to be true before Google will look:

The two-week watch

Once Google has fetched the feed it checks it, shows you a private preview, and then watches the realtime feeds for 8 to 16 days before setting a launch date with you. During that watch it measures five things:

Feed age
Under 90 seconds for positions and predictions; alerts within 10 minutes. Dwell rebuilds every realtime feed every 5 seconds.
Errors and warnings
No errors, and warnings on no more than 2 % of what Google reads. Checked with the realtime validator the week before.
Predictions
At least 80 % of trips on running routes carry arrival times. Dwell's completeness page reports this number in the open.
Fetch failures
1 % or fewer of Google's fetches fail. The engine's health page reports it.
Schedule changes
Published at least 2 days before they take effect, ideally a week, and never during the watch. The feed warns 30 days before the schedule runs out.

Budget four to six weeks from application to launch. Google publishes no timeline of its own.

Detours

Google reads three realtime feeds, positions, predictions and alerts, and never the fourth, the detour path. So a detour drawn in the console reaches Google Maps as the stops it skips on each trip, plus the alert explaining why. That is exactly what Dwell publishes. The drawn replacement path shows in Dwell's own rider apps and live map.

The Mobility Database and Transitland

Two open registries list the world's transit feeds, and most apps read them rather than taking submissions of their own. Apple Maps, the Transit app, Moovit and Bing Maps all find feeds this way.

An entry is small: the agency's name and location, the feed URLs (one entry for the schedule and one for each realtime feed), a contact email, and a link to the license the data is released under. That last one matters: every app wants to know it is allowed to show your data. Dwell's default is CC BY 4.0, which lets anyone use the data with credit and which every major app accepts. You own the data and grant the license, and you can choose another in the console.

The Transit app

Transit takes feeds directly. An email to its partners team at least two weeks before launch, with the schedule URL, the realtime URLs and a contact for feedback, is the whole application. Transit discards any arrival prediction older than ten minutes; Dwell's are seconds old.

Apple Maps, Moovit and Bing Maps

Apple has no public way to submit a feed; it reads the registries above. Moovit has no intake form either. Bing Maps takes an email. Once the two registries list your feed, the rest follows, and there is nothing else to send.

The timeline

  1. 1 Four weeks before. The schedule is published and covers at least four weeks ahead. The realtime feeds are running.
  2. 2 Two weeks before. The submissions go out: Google's application, the two registry entries, Transit's email. Google's watch starts once it has fetched the feed.
  3. 3 Launch. Google sets the date with you after the watch. The registries list the feed within about a week. Transit replies.
  4. 4 After. Keep the schedule published ahead: Google wants changes at least two days early, a week ideally, and never during the watch. The console's Distribute step keeps the state of each submission.

If your buses are already in these apps under a previous vendor, the timing changes; see below.

Who does what

Dwell
Prepares the packet: every form's answers, filled in from your feed. Hosts the feeds and runs the validator on every publish. Submits on the agency's behalf when asked, and watches the dashboards afterwards. Records where each submission stands in your console.
The agency
Confirms the data license: one line in the contract. Endorses in writing when Google asks, which it does whenever it already shows your agency. Holds the Google partner account, or authorises Dwell to hold it. Answers a registry's email if its daily check finds a problem.

If you are switching from another vendor

A university that has been in Google Maps before is already in these registries, under the previous vendor's feed URLs. Nothing is created from scratch: each entry keeps its identity and changes its source URL, and the old URL goes into the entry's history. Google's application likewise asks for the existing feed's id rather than treating you as new.

The day that change lands, riders see the new feed. So for a switch the submissions go out after the new feed is live and checked, not before, and once they are in, the old vendor's feed can be switched off.

Questions agencies ask

Is the data ours?

Yes. The agency owns its schedule and its realtime data and is the one granting the license. Dwell produces the feeds and records the license you chose; it does not own or relicense anything. If you leave, the feeds and the registry entries are yours to point elsewhere.

What if the schedule changes?

Publish ahead. Google wants a changed schedule at least two days before it takes effect, ideally a week, and the registries simply re-read the URL. The feed itself warns when it is running out: from 30 days before the last day of service the console and the engine's health page say so, and at 14 days the engine reports itself degraded.

Do we need our own Google account?

Someone has to hold the partner dashboard account. It can be the agency's, with Dwell added, or Dwell's with your written say-so. The endorsement Google asks for comes from the agency either way.

What do the apps charge?

Nothing. Google, the two registries and Transit list feeds for free.

How long until riders see it?

Google: four to six weeks, most of it the watch. The registries: about a week. Transit: two weeks' notice. Apple Maps, Moovit and Bing follow the registries on their own schedules.

Ask Dwell to prepare your packet See the feed URLs