How does NeTEx compare with GTFS?

Google General Transport Feed Specification (GTFS) is a widely used format for distributing timetables to third parties. The NeTEx and GTFS  formats should be considered as complementary, covering different stages in the data management process: NeTEx is “upstream”, GTFS is “downstream”. NeTEx differs from GTFS in that it has a much wider scope, and that it is intended for use in back office use cases under which data is generated, refined and integrated (requiring the exchange of additional elements used to construct the timetable) , rather than just for provisioning journey planning systems (the prime purpose of GTFS).

GTFS covers stops, lines, and timetabled journey information (Gtf trips) sufficient to answer basic journey planning queries. It supports only a few simple types of fare product . GTFS data identifiers are specific to each data set and require registration of an identifier with Google.

NeTEx covers many other aspects of Public Transport Information apart from timetables (e.g. network descriptions, fare products,), as well as supporting a richer timetable model for export including journey patterns, timing patterns, joined journeys, train makeup, connection timings, etc. . This makes it able to exchange the data sets used to build timetables as well as the resulting timetables themselves. NeTEx includes the additional information needed to provision real-time systems (such as destination displays) and to link to operational systems (such as blocks) It also includes versioning and validity condition mechanisms to support the repeated peer-to peer integration of many data from many different parties.

Because it uses XML, NeTEx is able to package a complete data set as a single coherent document that can be managed and validated.

GTFS uses a traditional flat file format;   this is compact and efficient but requires multiple files to describe the different types of element and thus additional rules for naming and packaging the files as a zip.  Custom written tools are need to interpret and process the data.

It is possible to generate a full GTFS data set from NeTEx but not vice versa. The NeTEx UML includes a GTFS mapping package which shows how each GTFS element may be populated from the corresponding NeTEx element.