--- URL: "/" LLMS_URL: "/index.md" layout: "home" hero: name: "Validation Kit" text: "Validation Rules Catalogue" tagline: "Building blocks for effective mobility data validation" image: src: "/validation-rules-logo.png" alt: "Validation rules logo" actions: - theme: "alt" text: "Reference Model" link: "/reference-model/" - theme: "alt" text: "NAPCORE Rules" link: "/rules/napcore" - theme: "brand" text: "Validation Rules Sources" link: "/sources/" features: - title: "Validation Rules" details: "Textual and executable specification, including samples and validation scenarios." - title: "Mobility Data" details: "Rules for NeTEx, SIRI, OpRa, DATEX II, TN-ITS" - title: "Build Profiles" details: "Profile creators may refer to rules from this catalogue." - title: "Build Validator" details: "Help developers develop validators using our rules." --- [//]: # "" ::: warning Project Status _Work in progress (initial phase)_ ::: --- URL: "/bundle/log.html" LLMS_URL: "/bundle/log.md" --- # Directory Update Log ## 2026-07-15 * **Creation**: Imported 462 validation rules from 3 sources (MobilityData canonical GTFS Schedule validator, DATA4PT NeTEx Validation Rules Overview, Entur netex-validator-java) and converted them to OKF concepts. --- URL: "/bundle/rules" LLMS_URL: "/bundle/rules.md" --- # Validation Rules * [mobilitydata/](mobilitydata/) - 181 rules from MobilityData canonical GTFS Schedule validator (GTFS) * [data4pt/](data4pt/) - 142 rules from DATA4PT NeTEx Validation Rules Overview (NeTEx) * [entur/](entur/) - 139 rules from Entur netex-validator-java (NeTEx) --- URL: "/bundle/rules/data4pt" LLMS_URL: "/bundle/rules/data4pt.md" --- # DATA4PT NeTEx Validation Rules Overview rules * [C.01.02](c-01-02.md) - The versions of NeTEx schema being used should be specified * [C.01.03](c-01-03.md) - The versions of the profile being used should be specified * [C.01.04](c-01-04.md) - The PublicationRequest element in the header should be populated * [C.01.05](c-01-05.md) - Any Topics mentioned in the Header must be present in the Delivery * [C.02.01](c-02-01.md) - All objects are uniquely identified * [C.02.03](c-02-03.md) - All elements (except CODESPACE) should have a version attribute. * [C.02.03-b](c-02-03-b.md) - The order number on elements in sequences of child elements should be unique * [C.02.04](c-02-04.md) - All references should include an explicit version on the reference. * [C.02.05](c-02-05.md) - All frames should have a default CODE SPACE declared * [C.02.05-b](c-02-05-b.md) - Any local reference should correspond to an object declared elsewhere in the same document. * [C.02.06](c-02-06.md) - All CODE SPACE prefixes used in identifiers should be declared with a CODE SPACE on the frame. * [C.02.07](c-02-07.md) - The format of element identifiers should follow any rules specific to the profile * [C.03.01](c-03-01.md) - The version number of each VERSION FRAME should be populated with a number * [C.03.02](c-03-02.md) - The FrameDefaults of a VERSION FRAME should have values appropriate to the content * [C.03.04](c-03-04.md) - Only the specialisation of VERSION FRAME (RESORCE FRAME, SITE FRAME, SERVICE FRAME, SERVICE FRAME< TIMETABLE FRAME, and SERVICE CALENDAR FRAME) appropriate to the profile should be used * [C.03.05](c-03-05.md) - A TYPE OF FRAME is specified on each VERSION FRAME. and corresponds to one of those required by the profile * [C.03.05-b](c-03-05-b.md) - Types of Frame in use: (EU_PI_COMMON. PI_PI_STOP. EU_PI_NETWORK. EU_PI_TIMETABLE. EU_PI_CALENDAR. EU_PI_LINE_OFFER. EU_PI_NETWORK_OFFER. EU_PI_STOP_OFFER. EU_PI_METADATA) * [C.04.01](c-04-01.md) - The same object type should only be present in a single frame type * [C.04.02](c-04-02.md) - Ordered sequences of child elements shall be serialized in sequence in the accordance with the ascending value of their order attribute - * [C.04.04](c-04-04.md) - Single instances of ancillary and child elements should be declared inline as part of an object. * [C.04.04-b](c-04-04-b.md) - Elements should not be repeated unnecessarily as separate instances. * [C.04.05](c-04-05.md) - NOTICes should be declared locally * [C.09.01](c-09-01.md) - On a VALIDITY CONDITION. ToDate must not be later than FromDate on any date range * [C.09.02](c-09-02.md) - On a VERSION FRAME. ToDate must not be later than FromDate on any date range. * [C.09.03](c-09-03.md) - ToDate must not be later than FromDate on other date ranges * [C.09.04](c-09-04.md) - Date ranges of elements in the frame must lie between date ranges of the VALIDITY CONDITION on the VERSION FRAME * [C.09.06](c-09-06.md) - If the URL field is filled. the validity of the URL must be checked and must resolved * [C.09.07](c-09-07.md) - Check valid ISO codes for lang etc. * [C.09.08](c-09-08.md) - Check valid ISO codes for Country. etc. * [C.09.10](c-09-10.md) - A coordinate system should be specified for spatial coordinates * [C.09.11](c-09-11.md) - WGS84 is the preferred coordinate system * [C.09.12](c-09-12.md) - A POINT should normally have spatial coordinates specified. * [C.09.13](c-09-13.md) - A ZONE should normally have at least a centroid point specified. * [S.01.01](s-01-01.md) - Every STOP PLACE has a Name or ShortName attibute * [S.01.03](s-01-03.md) - Every STOP PLACE has a StopPlaceType attribute with correct value * [S.01.04](s-01-04.md) - All stop identifiers (QUAY. all STOP PLACEs. GROUPs OF STOP PLACEs and ACCESS) must comply with the profile codification * [S.01.05](s-01-05.md) - A responsible OPERATOR must be declared for each STOP PLACE(Can be defaulted from frame) * [S.01.08](s-01-08.md) - Any STOP PLACE that is declared should be referenced by a STOP ASSIGNMENT * [S.03.01](s-03-01.md) - STOP PLACES should be organised hierarchically so as to separate the modes. * [S.03.02](s-03-02.md) - A Monomodal STOP PLACE should only have QUAYS of a single mode * [S.03.02-b](s-03-02-b.md) - SCHEDULED STOP POINT must be assigned to a STOP PLACE * [S.03.03](s-03-03.md) - MODE of a QUAY of a monomodal STOP PLACE should match the STOP PLACE * [S.03.04](s-03-04.md) - Multimodal STOP PLACE and should contain at two different monomodal STOP PLACEs of different MODes * [S.03.05](s-03-05.md) - GROUP OF STOP PLACEs should contain only STOP PLACEs * [S.03.06](s-03-06.md) - Name of a QUAY should not repeat those of the STOP PLACE * [S.04.01](s-04-01.md) - A SCHEDULED STOP POINT must have an instantiated Name field * [S.04.02](s-04-02.md) - SCHEDULED STOP POINT must have the same mode as the assigned STOP PLACE * [S.04.02-b](s-04-02-b.md) - SCHEDULED STOP POINT must have similar spatial coordinates to those of the assigned STOP PLACE * [S.04.03](s-04-03.md) - If a SCHEDULED STOP POINT is assigned to a STOP PLACE the type of stop should be consistent on both. And also on any QUAY * [S.08.01](s-08-01.md) - Location Is Unreasonable For QUAY * [S.08.02](s-08-02.md) - Location Is Unreasonable For STOP POINT * [S.08.03](s-08-03.md) - Distance Between QUAY and STOP PLACE too long * [S.08.04](s-08-04.md) - Check if there are any nearby, very similar locations of the same EntityType * [S.09.01](s-09-01.md) - Distance between SCHEDULED STOP POINTS at a CONNECTION is plausible * [S.09.01-b](s-09-01-b.md) - The location of QUAY and SCHEDULED STOP POINT should be within reasonable distance of the location or surface of STOP PLACE * [S.15.01](s-15-01.md) - Every TOPOGRAPHIC PLACE has a Name * [S.15.02](s-15-02.md) - Type of TOPOGRAPHIC LOCATIONS * [S.15.03](s-15-03.md) - PostalRegion attribute on ADDRESS element * [S.15.04](s-15-04.md) - Hierarchy of TOPOGRAPHIC LOCATIONS * [S.15.06](s-15-06.md) - Management of STOP PLACE's additionalTopographicPlaces (belonging to several municipalities) * [S.30.05](s-30-05.md) - Membership of a SITE by a SITE COMPONENT. * [S.31.01](s-31-01.md) - The members of a CONSTRAINT ZONE are SCHEDULED STOP POINTs * [S.31.02](s-31-02.md) - A ROUTING CONSTRAINT ZONE must be defined either by Stop or by a boundary * [S.31.03](s-31-03.md) - A ROUTING CONSTRAINT ZONE must specify the nature of its use. * [T.02.01](t-02-01.md) - Each LINE should have a different name and a different public code * [T.02.02](t-02-02.md) - TransportSubmode must be a part of the TransportMode * [T.02.02-b](t-02-02-b.md) - Every LINE must have an OPERATOR * [T.02.03](t-02-03.md) - The TypeOfLineRef must meet the profile requirements * [T.02.04](t-02-04.md) - MODE and SUBMODE of a LINE must be consistent with stops and journeys * [T.02.05](t-02-05.md) - A LINE must have at least one ROUTE * [T.02.05-b](t-02-05-b.md) - The “inverse” of the SERVICE PATTERN must match the approximate reverse of sequence * [T.02.08](t-02-08.md) - If no RouteRef is available in a SERVICE JOURNEY. a RouteView with LineRef must be available * [T.02.10](t-02-10.md) - Check that there is at least one LINE in any GROUP OF LINEs * [T.02.11](t-02-11.md) - The main line of a GROUP OF LINEs must be part of the group * [T.02.11-b](t-02-11-b.md) - Colour used for each separate LINE should be distinct * [T.02.12](t-02-12.md) - A LINE must have one or more ROUTE instances * [T.02.13](t-02-13.md) - A ROUTE must be referenced by a SERVICE JOURNEY PATTERN directly or indirectly. * [T.02.14](t-02-14.md) - The MODE of a GROUP OF LINEs NETWORK must be consistent with that of the individual LINEs * [T.03.01](t-03-01.md) - A primary SERVICE JOURNEY shall have at least one SERVICE PATTTERN, and/or have a list of CALLs * [T.03.01-b](t-03-01-b.md) - A ROUTE must have one or more SERVICE PATTERNs that use it. * [T.03.01-c](t-03-01-c.md) - A SERVICE JOURNEY must reference a SERVICE PATTERN. * [T.03.03](t-03-03.md) - SERVICE JOURNEY PATTERN must contain POINTS IN JOURNEY PATTERN * [T.03.03-b](t-03-03-b.md) - A SERVICE JOURNEY PATTERN must have a minimum of two Points * [T.03.04](t-03-04.md) - The TransportMode and TransportSubmode of the Journey must respect the choices of the profile * [T.03.04-b](t-03-04-b.md) - JOURNEY PATTERNs of SERVICE JOURNEYs shall only include S POINTS IN JOURNEY PATTERN that reference SHCEDULED STOP POINTs * [T.03.06](t-03-06.md) - An OPERATOR must be declared for each SERVIOCE JOURNEY * [T.03.09](t-03-09.md) - A substitution SERVICE JOURNEY must reference a SERVICE JOURNEY that it is replacing * [T.04.01](t-04-01.md) - Every SERVICE JOURNEY should be referenced either by a GROUP OF SERVICEs or by a SERVICE JOURNEY INTERCHANGE or by an INTERCHANGE RULE. * [T.04.02](t-04-02.md) - A SERVICE JOURNEY instances that have a similar DIRECTION and DAY TYPE and JOURNEY PATTERN should be grouped with a GROUP OF SERVICEs * [T.07.11](t-07-11.md) - DESTINATION DISPLAYs should always have at least one "FrontText" * [T.07.12](t-07-12.md) - DESTINATION DISPLAY VARIANTs always have at least one "FrontText" * [T.07.XX](t-07-xx.md) - Check if the Journey PATTERN matches any associated ROUTE * [T.08.01](t-08-01.md) - A SERVICE JOURNEY have at least one DAY TYPE * [T.08.02](t-08-02.md) - A DAY TYPE must have sufficient PropertiesOfDay to characterise it * [T.08.05](t-08-05.md) - Days without scheduled SERVICE JOURNEYs for a Line must raise a warning * [T.08.11](t-08-11.md) - Validity period of the SERVICE JOURNEYs must fall within the validity period of the VERSION FRAME * [T.08.12](t-08-12.md) - The validity of the timetable must be at least N days. * [T.09.01](t-09-01.md) - Every POINT IN JOURNEY POINT In a JOURNEY PATTERN used by a JOURNEY must have an PASSING TIME with arrival and departure time (except for the first and last stop) * [T.09.02](t-09-02.md) - There should be a time specified on each CALL of a SERVICE JOURNET * [T.09.03](t-09-03.md) - Successive DayOffset+PassingTimes for the POINTs IN JOURNEY Pattern or CALLS of a Journey must not decrease. N * [T.09.06](t-09-06.md) - Consistency of schedules: schedules at the earliest and at the latest * [T.09.07](t-09-07.md) - Successive timing between stops should be consistent with specified durations from TIMING LINKs t * [T.09.09](t-09-09.md) - PASSING TIMEs for successive POINT IN JORUNEY PATTERNS must result in a plausible speed for the MODE and VEHICLE TYPE * [T.09.10](t-09-10.md) - The duration of a SERVICE JORUNEY Journey should be consistent with the timings and distances. * [T.11.01](t-11-01.md) - Shared JOURNEY PARTs must be independent of any specific SERVICE JORUNEY * [T.11.02](t-11-02.md) - Each JOURNEY PART should be coherent with the SERVICE PATTERN of the SERVICE JOURNEY * [T.11.03](t-11-03.md) - Timings of each JOURNEY PART should be coherent with the times of the SERVICE JOURNEY * [T.11.05](t-11-05.md) - JOURNEY PART is coherent with the parent JOURNEY * [T.11.09](t-11-09.md) - JOURNEY PART COUPLEs should be consistent with JOURNEY PARTs * [T.12.02](t-12-02.md) - Distance between SCHEDULED STOP POINTS in JOURNEY PATTERN is plausible * [T.12.04](t-12-04.md) - If the DESTINATION DISPLAY is flagged as changing at a point, then the new DESTINATION DISPLAY must be present. * [T.14.01](t-14-01.md) - TEMPLATE SERVICE JOURNEYs must have an associated frequency or rhythm * [T.14.01-b](t-14-01-b.md) - Specific VEHICLE TYPE capabilities should be populated (e.g. wheelchair) * [T.14.02](t-14-02.md) - RHYTHMICAL JOUREY GROUP should not be used in EPIP * [T.14.03](t-14-03.md) - For a HEADWAY JOURNEY GROUa frequency must be specified * [T.14.04](t-14-04.md) - End of Period of cadences for JOURNEY FREQUENCY GROUP must be specified * [T.14.07](t-14-07.md) - TEMPLATE SERVICE JOURNEY must have an appropriate type attribute * [T.14.09](t-14-09.md) - Reference usage for HEADWAY JOURNEY GROUP and RHYTHMICAL JOURNEY GROUP should be declared in frame and not inline * [T.14.10](t-14-10.md) - JOURNEY FREQUENCY GROUP must contain more than one SERVICE JOURNEY * [T.14.XX](t-14-xx.md) - Consistency of the return route * [T.14.XX-b](t-14-xx-b.md) - LINE and ROUTE should be linked consistently * [T.21.01](t-21-01.md) - A TRANSFER must have a transfer time * [T.21.01-b](t-21-01-b.md) - NOTICE ASSIGNMENTS are only related to TIMETABLEs. SERVICE JOURNEYs. POINTs IN JOURNEYPATTERN. SERVICE JOURNEY INTERCHANGEs * [T.21.02](t-21-02.md) - Transit times should be specified on DEFAULT CONNECTIONs and SITE CONENCTIONs.. * [T.21.03](t-21-03.md) - Transit times should be specified on CONNECTIONs. * [T.21.04](t-21-04.md) - Checking the type of transfer * [T.21.05](t-21-05.md) - Reasonable walking speed - Consistency between duration and distance of a CONNECTION / TRANSFER * [T.21.05-b](t-21-05-b.md) - Check if the SERVICE JOURNEY INTERCHANGE transfer distance is reasonable * [T.21.07](t-21-07.md) - Duration of interchanges between SERVICE JOURNEYS * [T.25.01](t-25-01.md) - FLEXIBLE SERVICEA should be characterised by a FlexibleServiceType. This should be coherent with the LINE type. * [T.25.01-b](t-25-01-b.md) - CLASS of USE on PASSENGER CAPACITY should be restricted to subset of possible values. * [T.25.02](t-25-02.md) - FLEXIBLE SERVICEs using point standing for a zone should have the required ZONE. * [T.25.02-b](t-25-02-b.md) - Order of TRAIN COMPONENTs * [T.25.03](t-25-03.md) - FLEXIBLE SERVICEs using stopping areas require a zone containing stops. * [T.25.03-b](t-25-03-b.md) - CLASS of USE on TRAIN ELEMENT should be restricted to subset of possible values. * [T.25.04](t-25-04.md) - FLEXIBLE SERVICE should be coherent with any frequency interval * [T.25.05](t-25-05.md) - Use specific instances for FLEXIBLE SERVICE PROPERTies for each FLEXIBL SERVICE * [T.30.01](t-30-01.md) - The URL of the schematic plan must be valid * [T.30.02](t-30-02.md) - Check objects in SCHEMATIC MAPs * [T.35.01](t-35-01.md) - Specific BOOKING ARRANGEMENTs must be given * [T.40.02](t-40-02.md) - A Type of Vehicle must be named * [T.48.01](t-48-01.md) - Any SCHEDULED STOP POINT that is declared should be used. i.e. referenced by an assignment or POINT IN PATTERN etc. --- URL: "/bundle/rules/data4pt/c-01-02.html" LLMS_URL: "/bundle/rules/data4pt/c-01-02.md" type: "Validation Rule" title: "C.01.02" description: "The versions of NeTEx schema being used should be specified" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.01.02" standard: "NeTEx" source: "data4pt" severity: "10" category: "structure" maturity: "draft" --- # Notes Every NeTEx document should indicate which version of the schema it is using. e.g. PublicationDelivery version="1.01" # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** Header - versions, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-01-03.html" LLMS_URL: "/bundle/rules/data4pt/c-01-03.md" type: "Validation Rule" title: "C.01.03" description: "The versions of the profile being used should be specified" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.01.03" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes Every NeTEx document should indicate which version of the profile it is using the version number on teh TyePFFrameRef versionref="n.n' # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** Header - versions, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-01-04.html" LLMS_URL: "/bundle/rules/data4pt/c-01-04.md" type: "Validation Rule" title: "C.01.04" description: "The PublicationRequest element in the header should be populated" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.01.04" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes The Publication request provides basic information summarising the content. e.g. for which OPERATOR,. region. mode etc. the request was made. At least one topic should be present. e.g. OPERATOR. MODE # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** Header - topics, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-01-05.html" LLMS_URL: "/bundle/rules/data4pt/c-01-05.md" type: "Validation Rule" title: "C.01.05" description: "Any Topics mentioned in the Header must be present in the Delivery" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "C.01.05" standard: "NeTEx" source: "data4pt" severity: "40" category: "integrity" maturity: "draft" --- # Notes Specifically the topic indicate the intended content. The E.g. if operator is a topic. then there should be results for that operator in the contents # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Header - topics, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-02-01.html" LLMS_URL: "/bundle/rules/data4pt/c-02-01.md" type: "Validation Rule" title: "C.02.01" description: "All objects are uniquely identified" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.02.01" standard: "NeTEx" source: "data4pt" severity: "10" category: "structure" maturity: "draft" --- # Notes XML validator will do this provided a uniqueness constraint has been declared correctky in the schema. - In most cases ID is unique to type of element. - In a few cases id is common to different specialisations of the same type. rule is declared. For example all SiteElements - For some child elements it is unique within id/order rather than id. # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** identifiers, **applies_to:** All usages - **Mechanism:** xmlschema # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-02-03-b.html" LLMS_URL: "/bundle/rules/data4pt/c-02-03-b.md" type: "Validation Rule" title: "C.02.03-b" description: "The order number on elements in sequences of child elements should be unique" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "C.02.03-b" standard: "NeTEx" source: "data4pt" severity: "30" category: "semantic" maturity: "draft" --- # Notes Certain aggregation of child elements include an order attribute (which can be used to qualify the id) . - Normally child elements should be serialised in the same sequence as the order attribute. Specific examples are POINTS IN PATTERN. CALLs. - Values for the order attribute should be unique within parent. Upstream numbering clash: C.02.03 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** identifiers - Codespaces, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-02-03.html" LLMS_URL: "/bundle/rules/data4pt/c-02-03.md" type: "Validation Rule" title: "C.02.03" description: "All elements (except CODESPACE) should have a version attribute." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.02.03" standard: "NeTEx" source: "data4pt" severity: "10" category: "structure" maturity: "draft" --- # Notes The version attribute should always be populated. If necessary using a dummy value version='any'. CODE SPACE elements do not have versions. Upstream numbering clash: C.02.03 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** references, **applies_to:** All usages - **Mechanism:** xmlschema # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-02-04.html" LLMS_URL: "/bundle/rules/data4pt/c-02-04.md" type: "Validation Rule" title: "C.02.04" description: "All references should include an explicit version on the reference." tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "C.02.04" standard: "NeTEx" source: "data4pt" severity: "30" category: "integrity" maturity: "draft" --- # Notes All references (i.e. xxxRef elements) should have either a version="xxx" attribute or a versionRef-"xxx" explicitly declared. A versionRef "EXTERNAL" can be used for a dummy value if necessary # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** references, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-02-05-b.html" LLMS_URL: "/bundle/rules/data4pt/c-02-05-b.md" type: "Validation Rule" title: "C.02.05-b" description: "Any local reference should correspond to an object declared elsewhere in the same document." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.02.05-b" standard: "NeTEx" source: "data4pt" severity: "10" category: "structure" maturity: "draft" --- # Notes A local reference that has a version on (xxxRef version='xxx') will be checked automatically by the XML validator. provided a keyref rule is declared. in the schema definition Upstream numbering clash: C.02.05 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** references, **applies_to:** All usages - **Mechanism:** xmlschema # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-02-05.html" LLMS_URL: "/bundle/rules/data4pt/c-02-05.md" type: "Validation Rule" title: "C.02.05" description: "All frames should have a default CODE SPACE declared" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.02.05" standard: "NeTEx" source: "data4pt" severity: "10" category: "structure" maturity: "draft" --- # Notes All frames should have a default CODE SPACE declared. The CODE SPACE declares a default prefix to assume for all identifiers that do not have an explicit prefix. Upstream numbering clash: C.02.05 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** identifiers - Codespaces, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-02-06.html" LLMS_URL: "/bundle/rules/data4pt/c-02-06.md" type: "Validation Rule" title: "C.02.06" description: "All CODE SPACE prefixes used in identifiers should be declared with a CODE SPACE on the frame." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.02.06" standard: "NeTEx" source: "data4pt" severity: "10" category: "structure" maturity: "draft" --- # Notes E.g., if a value of 'foo:ABC'. is used for an identifier of an element. then 'foo;' should be declared as the prefix attribute value for a CODE SPACE. # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** identifiers - Codespaces, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-02-07.html" LLMS_URL: "/bundle/rules/data4pt/c-02-07.md" type: "Validation Rule" title: "C.02.07" description: "The format of element identifiers should follow any rules specific to the profile" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.02.07" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes Some profiles require identifiers to follow a specific format. See also rules on CODE SPACES # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** Identifiers, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-03-01.html" LLMS_URL: "/bundle/rules/data4pt/c-03-01.md" type: "Validation Rule" title: "C.03.01" description: "The version number of each VERSION FRAME should be populated with a number" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.03.01" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes A version number should be given at least on the outermost container level. i.e. VERSION FRAME. # Details - **Result:** Error - **Scope:** **area:** Common, **aspect:** Frame, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-03-02.html" LLMS_URL: "/bundle/rules/data4pt/c-03-02.md" type: "Validation Rule" title: "C.03.02" description: "The FrameDefaults of a VERSION FRAME should have values appropriate to the content" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.03.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes Depends on Frame type. - For all frames check and DefaultLanguage exists in DefaultLocale in FrameDefaults. - For frames that contain spatial coordinates, check that default LOcationSystem is specified (usually WGS84) - For Frames that contain elements with Timezones. (e.g. STOP PLACEs etc. in . SITE FRAME. SCHEDULED STOP POINT in SERVICE FRAME, Check that Time Zone is specified. - For frames that hold monetary values, e.g. FARE FRAMES or if amount specified . NB can be specified on outmost COMPOSITE FRAME if common to all. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Frame, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-03-04.html" LLMS_URL: "/bundle/rules/data4pt/c-03-04.md" type: "Validation Rule" title: "C.03.04" description: "Only the specialisation of VERSION FRAME (RESORCE FRAME, SITE FRAME, SERVICE FRAME, SERVICE FRAME< TIMETABLE FRAME, and SERVICE CALENDAR FRAME) appropriate to the profile should be used" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.03.04" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes Use of additional frame types is an error for EPIP # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Frame, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-03-05-b.html" LLMS_URL: "/bundle/rules/data4pt/c-03-05-b.md" type: "Validation Rule" title: "C.03.05-b" description: "Types of Frame in use: (EU_PI_COMMON. PI_PI_STOP. EU_PI_NETWORK. EU_PI_TIMETABLE. EU_PI_CALENDAR. EU_PI_LINE_OFFER. EU_PI_NETWORK_OFFER. EU_PI_STOP_OFFER. EU_PI_METADATA)" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.03.05-b" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes The recommended EPIP frame types should be used for EPIP documents. Upstream numbering clash: C.03.05 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Frames, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-03-05.html" LLMS_URL: "/bundle/rules/data4pt/c-03-05.md" type: "Validation Rule" title: "C.03.05" description: "A TYPE OF FRAME is specified on each VERSION FRAME. and corresponds to one of those required by the profile" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.03.05" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes TypeOfFrameRef can be specified on VERSION FRAME header. Upstream numbering clash: C.03.05 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Frame, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-04-01.html" LLMS_URL: "/bundle/rules/data4pt/c-04-01.md" type: "Validation Rule" title: "C.04.01" description: "The same object type should only be present in a single frame type" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.04.01" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes Certain object types may be declared in more than one type of frame. Depends on profile as to which frame should be used. In general it is desirable to declare them consistently in a specific frame. Code spaces should be declared in each frame that uses them. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Data organisation, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-04-02.html" LLMS_URL: "/bundle/rules/data4pt/c-04-02.md" type: "Validation Rule" title: "C.04.02" description: "Ordered sequences of child elements shall be serialized in sequence in the accordance with the ascending value of their order attribute -" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "C.04.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "semantic" maturity: "draft" --- # Notes Certain aggregation of child elements include an order attribute (which can be used to qualify the id) . - Normally child elements should be serialized in the same sequence as the order attribute. Specific examples are POINTS IN PATTERN, CALLs, TRAIN COMPONENTs, etc.. Code normalized from 'c.04.02' in the source sheet. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Data organisation, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-04-04-b.html" LLMS_URL: "/bundle/rules/data4pt/c-04-04-b.md" type: "Validation Rule" title: "C.04.04-b" description: "Elements should not be repeated unnecessarily as separate instances." tags: - "data4pt" - "netex" - "quality" timestamp: "2026-07-15T00:00:00" code: "C.04.04-b" standard: "NeTEx" source: "data4pt" severity: "40" category: "quality" maturity: "draft" --- # Notes In the case of simple elements such as NOTICEs. etc. there should be a single instance that is referenced via a separate NOTICE ASSIGNMENT. rather than multiple separate instances that repeat the same content. E.g. if there is a 'Runs on Sunday' notice it should be reused by a reference from each journey to which it applies. not redeclared as a separate entity Code normalized from 'c.04.04' in the source sheet. Upstream numbering clash: C.04.04 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Data organisation, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-04-04.html" LLMS_URL: "/bundle/rules/data4pt/c-04-04.md" type: "Validation Rule" title: "C.04.04" description: "Single instances of ancillary and child elements should be declared inline as part of an object." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.04.04" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes In some cases related elements may be declared either inline or from the root of the schema. Certain ancillary child elements such as NOTICE ASSIGNMENTs should be declared inline. Code normalized from 'c.04.04' in the source sheet. Upstream numbering clash: C.04.04 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Data organisation, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-04-05.html" LLMS_URL: "/bundle/rules/data4pt/c-04-05.md" type: "Validation Rule" title: "C.04.05" description: "NOTICes should be declared locally" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.04.05" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes NOTICEs referenced by ASSIGNMENTs should be declared locally so that they can be resolved easily. # Details - **Result:** Warning - **Scope:** **area:** Common, **aspect:** Data Organisation, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-01.html" LLMS_URL: "/bundle/rules/data4pt/c-09-01.md" type: "Validation Rule" title: "C.09.01" description: "On a VALIDITY CONDITION. ToDate must not be later than FromDate on any date range" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.09.01" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes Check that from date is before to date in any VALIDITY CONDITION (including. VALID BETWEEN elements. # Details - **Result:** Error - **Scope:** **area:** Common Content, **aspect:** Date ranges, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-02.html" LLMS_URL: "/bundle/rules/data4pt/c-09-02.md" type: "Validation Rule" title: "C.09.02" description: "On a VERSION FRAME. ToDate must not be later than FromDate on any date range." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.09.02" standard: "NeTEx" source: "data4pt" severity: "10" category: "structure" maturity: "draft" --- # Notes Check that from date is before to date on the VERSION FRAME # Details - **Result:** Error - **Scope:** **area:** Common Content, **aspect:** Date ranges - Frame, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-03.html" LLMS_URL: "/bundle/rules/data4pt/c-09-03.md" type: "Validation Rule" title: "C.09.03" description: "ToDate must not be later than FromDate on other date ranges" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.09.03" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes Check that from date is before to date in any date range. on other types of elements (i.e. other than VALIDITY CONDITION. # Details - **Result:** Error - **Scope:** **area:** Common Content, **aspect:** Date ranges, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-04.html" LLMS_URL: "/bundle/rules/data4pt/c-09-04.md" type: "Validation Rule" title: "C.09.04" description: "Date ranges of elements in the frame must lie between date ranges of the VALIDITY CONDITION on the VERSION FRAME" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "C.09.04" standard: "NeTEx" source: "data4pt" severity: "20" category: "semantic" maturity: "draft" --- # Notes If a date range for validity is specified on a detailed element it must be in between From Date and To Date of the containing VERSION FRAME. # Details - **Result:** Error - **Scope:** **area:** Common Content, **aspect:** Dates, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-06.html" LLMS_URL: "/bundle/rules/data4pt/c-09-06.md" type: "Validation Rule" title: "C.09.06" description: "If the URL field is filled. the validity of the URL must be checked and must resolved" tags: - "data4pt" - "netex" - "format" timestamp: "2026-07-15T00:00:00" code: "C.09.06" standard: "NeTEx" source: "data4pt" severity: "40" category: "format" maturity: "draft" --- # Notes Check if the link address exists Code normalized from 'c.09.06' in the source sheet. # Details - **Result:** Warning - **Scope:** **area:** Common Content, **aspect:** Content values - links, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-07.html" LLMS_URL: "/bundle/rules/data4pt/c-09-07.md" type: "Validation Rule" title: "C.09.07" description: "Check valid ISO codes for lang etc." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.09.07" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes ISO language codes should be used. # Details - **Result:** Error - **Scope:** **area:** Common Content, **aspect:** code values, **applies_to:** All usages - **Mechanism:** xmlschema # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-08.html" LLMS_URL: "/bundle/rules/data4pt/c-09-08.md" type: "Validation Rule" title: "C.09.08" description: "Check valid ISO codes for Country. etc." tags: - "data4pt" - "netex" - "format" timestamp: "2026-07-15T00:00:00" code: "C.09.08" standard: "NeTEx" source: "data4pt" severity: "30" category: "format" maturity: "draft" --- # Notes ISO two and three country and region codes can be used a reference to a COUNTRY (CountryRef ) these should be checked against the ISO list. # Details - **Result:** Warning - **Scope:** **area:** Common Content, **aspect:** code values, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-10.html" LLMS_URL: "/bundle/rules/data4pt/c-09-10.md" type: "Validation Rule" title: "C.09.10" description: "A coordinate system should be specified for spatial coordinates" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.09.10" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes This can be on the frame or # Details - **Result:** Error - **Scope:** **area:** Common Content, **aspect:** Spatial, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-11.html" LLMS_URL: "/bundle/rules/data4pt/c-09-11.md" type: "Validation Rule" title: "C.09.11" description: "WGS84 is the preferred coordinate system" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.09.11" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes As specified by the # Details - **Result:** Warning - **Scope:** **area:** Common Content, **aspect:** Spatial, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-12.html" LLMS_URL: "/bundle/rules/data4pt/c-09-12.md" type: "Validation Rule" title: "C.09.12" description: "A POINT should normally have spatial coordinates specified." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.09.12" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Details - **Result:** Warning - **Scope:** **area:** Common Content, **aspect:** Spatial, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/c-09-13.html" LLMS_URL: "/bundle/rules/data4pt/c-09-13.md" type: "Validation Rule" title: "C.09.13" description: "A ZONE should normally have at least a centroid point specified." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "C.09.13" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes At least centroid Coordinates should be provided for all zones. # Details - **Result:** Warning - **Scope:** **area:** Common Content, **aspect:** Spatial, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-01-01.html" LLMS_URL: "/bundle/rules/data4pt/s-01-01.md" type: "Validation Rule" title: "S.01.01" description: "Every STOP PLACE has a Name or ShortName attibute" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.01.01" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes Name attribute should be filled in for all STOP PLACEs # Details - **Result:** Error - **Scope:** **area:** Stop, **aspect:** Stop Place, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-01-03.html" LLMS_URL: "/bundle/rules/data4pt/s-01-03.md" type: "Validation Rule" title: "S.01.03" description: "Every STOP PLACE has a StopPlaceType attribute with correct value" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.01.03" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes Each STOP PLACE should have a StopPlaceType attribute. This should match any type on the QUAYs. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop Place, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-01-04.html" LLMS_URL: "/bundle/rules/data4pt/s-01-04.md" type: "Validation Rule" title: "S.01.04" description: "All stop identifiers (QUAY. all STOP PLACEs. GROUPs OF STOP PLACEs and ACCESS) must comply with the profile codification" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.01.04" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes For Stop specifically [COUNTRY code]: [INSEE common code]: [Type of object]: [Specific stop code]: [Issuer code of the technical code or LOC]. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop Place, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-01-05.html" LLMS_URL: "/bundle/rules/data4pt/s-01-05.md" type: "Validation Rule" title: "S.01.05" description: "A responsible OPERATOR must be declared for each STOP PLACE(Can be defaulted from frame)" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.01.05" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes The operator of the STOP PLACE should be indicated Can be declared on frame and inherited. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop Place, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-01-08.html" LLMS_URL: "/bundle/rules/data4pt/s-01-08.md" type: "Validation Rule" title: "S.01.08" description: "Any STOP PLACE that is declared should be referenced by a STOP ASSIGNMENT" tags: - "data4pt" - "netex" - "quality" timestamp: "2026-07-15T00:00:00" code: "S.01.08" standard: "NeTEx" source: "data4pt" severity: "50" category: "quality" maturity: "draft" --- # Notes Every STOP PLACE should be referenced in at least one STOP ASSIGNMENT. Depends on the profile. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Unused data, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-03-01.html" LLMS_URL: "/bundle/rules/data4pt/s-03-01.md" type: "Validation Rule" title: "S.03.01" description: "STOP PLACES should be organised hierarchically so as to separate the modes." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.03.01" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes STOP PLACES can be organised into hierarchies but certain rules apply to how QUAYs etc. should be organised. - A child STOP PLACE that is a terminal leaf in the hierarchy should normally only contain QUAYs of one mode, i.e. be 'monomodal' . - A 'multimodal' Parent STOP PLACE should only contain other STOP PLACEs, # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Hierarchy, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-03-02-b.html" LLMS_URL: "/bundle/rules/data4pt/s-03-02-b.md" type: "Validation Rule" title: "S.03.02-b" description: "SCHEDULED STOP POINT must be assigned to a STOP PLACE" tags: - "data4pt" - "netex" - "quality" timestamp: "2026-07-15T00:00:00" code: "S.03.02-b" standard: "NeTEx" source: "data4pt" severity: "50" category: "quality" maturity: "draft" --- # Notes Every SCHEDULED STOP POINT should be referenced in at least one STOP ASSIGNMENT. Depends on the profile. Upstream numbering clash: S.03.02 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop Point, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-03-02.html" LLMS_URL: "/bundle/rules/data4pt/s-03-02.md" type: "Validation Rule" title: "S.03.02" description: "A Monomodal STOP PLACE should only have QUAYS of a single mode" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.03.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes The QUAYS of a Monomodal STOP PLACE should have a mode and type consistent with the STOP PLACE. Upstream numbering clash: S.03.02 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Hierarchy, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-03-03.html" LLMS_URL: "/bundle/rules/data4pt/s-03-03.md" type: "Validation Rule" title: "S.03.03" description: "MODE of a QUAY of a monomodal STOP PLACE should match the STOP PLACE" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "S.03.03" standard: "NeTEx" source: "data4pt" severity: "40" category: "semantic" maturity: "draft" --- # Notes All QUAY of a Monomodal STOP PLACE are the same mode as the Monomodal STOP PLACE # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Hierarchy, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-03-04.html" LLMS_URL: "/bundle/rules/data4pt/s-03-04.md" type: "Validation Rule" title: "S.03.04" description: "Multimodal STOP PLACE and should contain at two different monomodal STOP PLACEs of different MODes" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.03.04" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes A Multimodal STOP PLACE contains at least two Monomodal STOP PLACEs of the of different modes. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Hierarchy, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-03-05.html" LLMS_URL: "/bundle/rules/data4pt/s-03-05.md" type: "Validation Rule" title: "S.03.05" description: "GROUP OF STOP PLACEs should contain only STOP PLACEs" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.03.05" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes A GROUP OF STOP PLACEs contains only STOP PLACEs (without constraints of type and mode). # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Hierarchy, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-03-06.html" LLMS_URL: "/bundle/rules/data4pt/s-03-06.md" type: "Validation Rule" title: "S.03.06" description: "Name of a QUAY should not repeat those of the STOP PLACE" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.03.06" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes QUAYs should not repeat the name of the STOP PLACE but provide a qualifier, e.g. 'Platform 5' that can be if necessary be used in conjunction with that of the name of the STOP PLACE. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Hierarchy, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-04-01.html" LLMS_URL: "/bundle/rules/data4pt/s-04-01.md" type: "Validation Rule" title: "S.04.01" description: "A SCHEDULED STOP POINT must have an instantiated Name field" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "S.04.01" standard: "NeTEx" source: "data4pt" severity: "30" category: "integrity" maturity: "draft" --- # Notes The name of a stop should be given. Applies s to Both STOP PLACE and SCHEDULE D STOP POINT # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop Point, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-04-02-b.html" LLMS_URL: "/bundle/rules/data4pt/s-04-02-b.md" type: "Validation Rule" title: "S.04.02-b" description: "SCHEDULED STOP POINT must have similar spatial coordinates to those of the assigned STOP PLACE" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.04.02-b" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes Should be with a certain tolerance of distance, varying by mode. . Will not necessarily be the same centroid. Upstream numbering clash: S.04.02 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop Point, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-04-02.html" LLMS_URL: "/bundle/rules/data4pt/s-04-02.md" type: "Validation Rule" title: "S.04.02" description: "SCHEDULED STOP POINT must have the same mode as the assigned STOP PLACE" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "S.04.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "semantic" maturity: "draft" --- # Notes Normally must be similar mode, e.g. both rail, both bus etc Upstream numbering clash: S.04.02 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop Point, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-04-03.html" LLMS_URL: "/bundle/rules/data4pt/s-04-03.md" type: "Validation Rule" title: "S.04.03" description: "If a SCHEDULED STOP POINT is assigned to a STOP PLACE the type of stop should be consistent on both. And also on any QUAY" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "S.04.03" standard: "NeTEx" source: "data4pt" severity: "30" category: "integrity" maturity: "draft" --- # Notes If a SCHEDULED STOP POINT is assigned to a STOP PLACE and/or QUAY the type of stop should be consistent, e.g. both rail stations, rail platform etc. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop Point, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-08-01.html" LLMS_URL: "/bundle/rules/data4pt/s-08-01.md" type: "Validation Rule" title: "S.08.01" description: "Location Is Unreasonable For QUAY" tags: - "data4pt" - "netex" - "plausibility" timestamp: "2026-07-15T00:00:00" code: "S.08.01" standard: "NeTEx" source: "data4pt" severity: "30" category: "plausibility" maturity: "draft" --- # Notes Take a polygon as input and check that the location is inside STOP PLACE. Should also be in COUNTRY. TOPOGRAPHIC PLACE. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Spatial, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-08-02.html" LLMS_URL: "/bundle/rules/data4pt/s-08-02.md" type: "Validation Rule" title: "S.08.02" description: "Location Is Unreasonable For STOP POINT" tags: - "data4pt" - "netex" - "plausibility" timestamp: "2026-07-15T00:00:00" code: "S.08.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "plausibility" maturity: "draft" --- # Notes Take a polygon as input and check that the location is inside # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Spatial, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-08-03.html" LLMS_URL: "/bundle/rules/data4pt/s-08-03.md" type: "Validation Rule" title: "S.08.03" description: "Distance Between QUAY and STOP PLACE too long" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "S.08.03" standard: "NeTEx" source: "data4pt" severity: "30" category: "semantic" maturity: "draft" --- # Notes Distance between QUAY and STOP PLACE should not be too far apart. STOP PLACE location is centroid of station. QUAY is centroid of QUAY . # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Spatial, **applies_to:** All usages - **Mechanism:** code # Parameters - `stop_place_quay_distance_by_mode` - Structure with distances in meters for each type of mode for the STOP PLACE (e.g., train station, bus stop, airport, …) # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-08-04.html" LLMS_URL: "/bundle/rules/data4pt/s-08-04.md" type: "Validation Rule" title: "S.08.04" description: "Check if there are any nearby, very similar locations of the same EntityType" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.08.04" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes This might happen for example if two different organisations have used different codes for the same stop. E.g. if there are two STOP PLACEs within a few meters for the same mode they may be duplicates # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Spatial, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-09-01-b.html" LLMS_URL: "/bundle/rules/data4pt/s-09-01-b.md" type: "Validation Rule" title: "S.09.01-b" description: "The location of QUAY and SCHEDULED STOP POINT should be within reasonable distance of the location or surface of STOP PLACE" tags: - "data4pt" - "netex" - "plausibility" timestamp: "2026-07-15T00:00:00" code: "S.09.01-b" standard: "NeTEx" source: "data4pt" severity: "30" category: "plausibility" maturity: "draft" --- # Notes Take the positions from the QUAY and SCHEDULED STOP POINT and calculate the distance in meters. Hard code 500m in first version. later add parameter to set distance Upstream numbering clash: S.09.01 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Error - **Scope:** **area:** Stop, **aspect:** Stop place, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-09-01.html" LLMS_URL: "/bundle/rules/data4pt/s-09-01.md" type: "Validation Rule" title: "S.09.01" description: "Distance between SCHEDULED STOP POINTS at a CONNECTION is plausible" tags: - "data4pt" - "netex" - "plausibility" timestamp: "2026-07-15T00:00:00" code: "S.09.01" standard: "NeTEx" source: "data4pt" severity: "30" category: "plausibility" maturity: "draft" --- # Notes Distance between Stop linked by a CONNECTION should be appropriate for mode e.g. Upstream numbering clash: S.09.01 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop - Common, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-15-01.html" LLMS_URL: "/bundle/rules/data4pt/s-15-01.md" type: "Validation Rule" title: "S.15.01" description: "Every TOPOGRAPHIC PLACE has a Name" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.15.01" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes Every TOPOGRAPHIC Place should have a name # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Topographic, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-15-02.html" LLMS_URL: "/bundle/rules/data4pt/s-15-02.md" type: "Validation Rule" title: "S.15.02" description: "Type of TOPOGRAPHIC LOCATIONS" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.15.02" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes All TOPOGRAPHIC LOCATIONs have a placeTypes attribute containing a unique typeOfPlace of one of the values region. department. urbanCommunity. town. or district. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Topographic, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-15-03.html" LLMS_URL: "/bundle/rules/data4pt/s-15-03.md" type: "Validation Rule" title: "S.15.03" description: "PostalRegion attribute on ADDRESS element" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.15.03" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes The PostalRegion attribute has a value corresponding to an INSEE code (COG): its form is that of an INSEE code and its value is also that of an existing INSEE code. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Topographic, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-15-04.html" LLMS_URL: "/bundle/rules/data4pt/s-15-04.md" type: "Validation Rule" title: "S.15.04" description: "Hierarchy of TOPOGRAPHIC LOCATIONS" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.15.04" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes For TOPOGRAPHIC LOCATIONS. the ParentTopographicPlaceRef attribute respects the following rules: - a Region has no parent (but necessarily a CountryRef) - a Department is contained in a Region - a Grouping of Municipalities is contained in a Department (or possibly a region if it straddles several DEPARTMENTS) - a City is contained in a Department (and NOT in Grouping Of Communes: see containedIn below) - a Suburb is contained in City - a Village / parish/ hamlet is contained in a Department # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Topographic, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-15-06.html" LLMS_URL: "/bundle/rules/data4pt/s-15-06.md" type: "Validation Rule" title: "S.15.06" description: "Management of STOP PLACE's additionalTopographicPlaces (belonging to several municipalities)" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.15.06" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes Only STOP PLACes can belong to multiple topographic # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Topographic, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-30-05.html" LLMS_URL: "/bundle/rules/data4pt/s-30-05.md" type: "Validation Rule" title: "S.30.05" description: "Membership of a SITE by a SITE COMPONENT." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.30.05" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes All SITE COMPONENTS (and objects that inherit from them) have a SiteRef attribute, which should reference an object consistent with its nature: - For a QUAY. this is the identifier of the monomodal STOP PLACE on which the QUAY depends. - For an ACCESS this is the identifier of the monomodal STOP PLACE. or multimodal L STOP PLACE to which the ACCESS leads. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Stop place, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-31-01.html" LLMS_URL: "/bundle/rules/data4pt/s-31-01.md" type: "Validation Rule" title: "S.31.01" description: "The members of a CONSTRAINT ZONE are SCHEDULED STOP POINTs" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.31.01" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes The points declare in a ROUTING CONSTRAINT ZONE should lie within it. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Alternative Modes, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-31-02.html" LLMS_URL: "/bundle/rules/data4pt/s-31-02.md" type: "Validation Rule" title: "S.31.02" description: "A ROUTING CONSTRAINT ZONE must be defined either by Stop or by a boundary" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.31.02" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes Check if RoutingConstraintZone is empty. if it is then it must have a geographical perimeter as spatial coordinates(The Polygon element must be instantiated). # Details - **Result:** Error - **Scope:** **area:** Stop, **aspect:** Alternative Modes, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/s-31-03.html" LLMS_URL: "/bundle/rules/data4pt/s-31-03.md" type: "Validation Rule" title: "S.31.03" description: "A ROUTING CONSTRAINT ZONE must specify the nature of its use." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "S.31.03" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes A ROUTING CONSTRAINT ZONE must have a ZoneUse attribute. # Details - **Result:** Warning - **Scope:** **area:** Stop, **aspect:** Alternative Modes, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-01.html" LLMS_URL: "/bundle/rules/data4pt/t-02-01.md" type: "Validation Rule" title: "T.02.01" description: "Each LINE should have a different name and a different public code" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.02.01" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes Lines with the same names should be reported as duplicated # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-02-b.html" LLMS_URL: "/bundle/rules/data4pt/t-02-02-b.md" type: "Validation Rule" title: "T.02.02-b" description: "Every LINE must have an OPERATOR" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.02.02-b" standard: "NeTEx" source: "data4pt" severity: "30" category: "integrity" maturity: "draft" --- # Notes Every LINE must have an primary OPERATOR (May have additional) Upstream numbering clash: T.02.02 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-02.html" LLMS_URL: "/bundle/rules/data4pt/t-02-02.md" type: "Validation Rule" title: "T.02.02" description: "TransportSubmode must be a part of the TransportMode" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.02.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "integrity" maturity: "draft" --- # Notes Check if TransportSubMode and TransportMode is used for a Line. Then validate that the used SubMode actually is valid for that TransportMode. E.g. localBus is a Bus Upstream numbering clash: T.02.02 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-03.html" LLMS_URL: "/bundle/rules/data4pt/t-02-03.md" type: "Validation Rule" title: "T.02.03" description: "The TypeOfLineRef must meet the profile requirements" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.02.03" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes LINES can have a LineType attribute. e.g. flexible. longDIstance. urban etc. Profile may restrict values # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-04.html" LLMS_URL: "/bundle/rules/data4pt/t-02-04.md" type: "Validation Rule" title: "T.02.04" description: "MODE and SUBMODE of a LINE must be consistent with stops and journeys" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "T.02.04" standard: "NeTEx" source: "data4pt" severity: "30" category: "semantic" maturity: "draft" --- # Notes Modes should be consistent within a document. e.g. if it is a rail timetable. 'rail 'can be the default mode on the frame. and then should be the mode on the stops . VEHICLE JOURNEYs. LINES, etc. Should also be 'rail' i the header topics. Transport submode should be one of the submodes for rail. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-05-b.html" LLMS_URL: "/bundle/rules/data4pt/t-02-05-b.md" type: "Validation Rule" title: "T.02.05-b" description: "The “inverse” of the SERVICE PATTERN must match the approximate reverse of sequence" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "T.02.05-b" standard: "NeTEx" source: "data4pt" severity: "40" category: "semantic" maturity: "draft" --- # Notes If a given timetable contains SERVICE JORUNEYS in both directions. both directions of a journey are given. then the reverse calling pattern should be similar to the forward calling pattern. I.e. they lie along a similar line. use SCHEDULED STOP POINTs associated with the same stop places in reverse sequence. etc. Upstream numbering clash: T.02.05 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Routing, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-05.html" LLMS_URL: "/bundle/rules/data4pt/t-02-05.md" type: "Validation Rule" title: "T.02.05" description: "A LINE must have at least one ROUTE" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.02.05" standard: "NeTEx" source: "data4pt" severity: "30" category: "integrity" maturity: "draft" --- # Notes Not required in all profiles. Upstream numbering clash: T.02.05 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-08.html" LLMS_URL: "/bundle/rules/data4pt/t-02-08.md" type: "Validation Rule" title: "T.02.08" description: "If no RouteRef is available in a SERVICE JOURNEY. a RouteView with LineRef must be available" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.02.08" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes EPIP frame topics should match contents. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-10.html" LLMS_URL: "/bundle/rules/data4pt/t-02-10.md" type: "Validation Rule" title: "T.02.10" description: "Check that there is at least one LINE in any GROUP OF LINEs" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.02.10" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes A GROUP should not be empty. Note that a NETWORK is a specialisation of a GROUP OF LINEs # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-11-b.html" LLMS_URL: "/bundle/rules/data4pt/t-02-11-b.md" type: "Validation Rule" title: "T.02.11-b" description: "Colour used for each separate LINE should be distinct" tags: - "data4pt" - "netex" - "quality" timestamp: "2026-07-15T00:00:00" code: "T.02.11-b" standard: "NeTEx" source: "data4pt" severity: "40" category: "quality" maturity: "draft" --- # Notes LINE presentation colours for a given LINE should be distinct from the colours used for other LINEs. Background/ font colours should be distinct. . Also Check colour contrast of LINE presentation attributes/ e/g/ black font on black background cannot be read. Upstream numbering clash: T.02.11 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Lines, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-11.html" LLMS_URL: "/bundle/rules/data4pt/t-02-11.md" type: "Validation Rule" title: "T.02.11" description: "The main line of a GROUP OF LINEs must be part of the group" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.02.11" standard: "NeTEx" source: "data4pt" severity: "30" category: "integrity" maturity: "draft" --- # Notes A GROU OF LINEs can distinguish one specific LINE as being the primary LINE for the group. This LINE should also be declared as a member of the group Upstream numbering clash: T.02.11 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-12.html" LLMS_URL: "/bundle/rules/data4pt/t-02-12.md" type: "Validation Rule" title: "T.02.12" description: "A LINE must have one or more ROUTE instances" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.02.12" standard: "NeTEx" source: "data4pt" severity: "40" category: "integrity" maturity: "draft" --- # Notes Check that a LINE is referenced in at least one ROUTE # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-13.html" LLMS_URL: "/bundle/rules/data4pt/t-02-13.md" type: "Validation Rule" title: "T.02.13" description: "A ROUTE must be referenced by a SERVICE JOURNEY PATTERN directly or indirectly." tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.02.13" standard: "NeTEx" source: "data4pt" severity: "40" category: "integrity" maturity: "draft" --- # Notes In a SERVICE JOURNEY PATTERN one must either have the RouteRef field filled in. or have the Routeview.LineRef field filled in. If both are entered. the indicated route must be part of the indicated line. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-02-14.html" LLMS_URL: "/bundle/rules/data4pt/t-02-14.md" type: "Validation Rule" title: "T.02.14" description: "The MODE of a GROUP OF LINEs NETWORK must be consistent with that of the individual LINEs" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "T.02.14" standard: "NeTEx" source: "data4pt" severity: "30" category: "semantic" maturity: "draft" --- # Notes If a MODE is specified on GROUP OF LINEs or NETWORK. should be the same as that on LINE and SERVICE JOURNEY. etc. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Line, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-01-b.html" LLMS_URL: "/bundle/rules/data4pt/t-03-01-b.md" type: "Validation Rule" title: "T.03.01-b" description: "A ROUTE must have one or more SERVICE PATTERNs that use it." tags: - "data4pt" - "netex" - "quality" timestamp: "2026-07-15T00:00:00" code: "T.03.01-b" standard: "NeTEx" source: "data4pt" severity: "50" category: "quality" maturity: "draft" --- # Notes A ROUTE must be referenced from at least one JOURNEY PATTERN Upstream numbering clash: T.03.01 is assigned to 3 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-01-c.html" LLMS_URL: "/bundle/rules/data4pt/t-03-01-c.md" type: "Validation Rule" title: "T.03.01-c" description: "A SERVICE JOURNEY must reference a SERVICE PATTERN." tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.03.01-c" standard: "NeTEx" source: "data4pt" severity: "30" category: "integrity" maturity: "draft" --- # Notes The primary SERVICE JOURNEY being described with passing times etc. should reference a SERVICE PATTERN . Secondary SERVICE JOURNEYS that are declared for interchange etc. do not need to specify a pattern. Upstream numbering clash: T.03.01 is assigned to 3 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-01.html" LLMS_URL: "/bundle/rules/data4pt/t-03-01.md" type: "Validation Rule" title: "T.03.01" description: "A primary SERVICE JOURNEY shall have at least one SERVICE PATTTERN, and/or have a list of CALLs" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.03.01" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes Primary SERVICE JOURNEYs making up the timetable journeys should each follow a SERVICE PATTERN (secondary journeys, e.g. for interchanges etc. do not need to specify details) . Also if using CALLs not essential. Upstream numbering clash: T.03.01 is assigned to 3 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-03-b.html" LLMS_URL: "/bundle/rules/data4pt/t-03-03-b.md" type: "Validation Rule" title: "T.03.03-b" description: "A SERVICE JOURNEY PATTERN must have a minimum of two Points" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.03.03-b" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes If present at least two must be specified Upstream numbering clash: T.03.03 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** All usages - **Mechanism:** xmlschema # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-03.html" LLMS_URL: "/bundle/rules/data4pt/t-03-03.md" type: "Validation Rule" title: "T.03.03" description: "SERVICE JOURNEY PATTERN must contain POINTS IN JOURNEY PATTERN" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.03.03" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes The pointsInSequence of the SERVICE JOURNEY PATTERN must contain at least 2 STOPPOINTS IN SEQUENCE or at least two CALLs Upstream numbering clash: T.03.03 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-04-b.html" LLMS_URL: "/bundle/rules/data4pt/t-03-04-b.md" type: "Validation Rule" title: "T.03.04-b" description: "JOURNEY PATTERNs of SERVICE JOURNEYs shall only include S POINTS IN JOURNEY PATTERN that reference SHCEDULED STOP POINTs" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.03.04-b" standard: "NeTEx" source: "data4pt" severity: "10" category: "structure" maturity: "draft" --- # Notes A SERVICE PATTERNs comprises a lists of STOP POINTS IN JOURNEY PATTERN. Each of these must reference as SCHEDULED STOP POINT. Upstream numbering clash: T.03.04 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** EPIP - **Mechanism:** xmlschema # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-04.html" LLMS_URL: "/bundle/rules/data4pt/t-03-04.md" type: "Validation Rule" title: "T.03.04" description: "The TransportMode and TransportSubmode of the Journey must respect the choices of the profile" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.03.04" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes The SERVICE JOURNEY TransportMode should be restricted to those on the profile. if any Upstream numbering clash: T.03.04 is assigned to 2 distinct rules in the source sheet; local -b/-c suffixes keep records apart. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-06.html" LLMS_URL: "/bundle/rules/data4pt/t-03-06.md" type: "Validation Rule" title: "T.03.06" description: "An OPERATOR must be declared for each SERVIOCE JOURNEY" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.03.06" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes The OPERATOR should be indicated for each SERVICE JOURNEY. # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-03-09.html" LLMS_URL: "/bundle/rules/data4pt/t-03-09.md" type: "Validation Rule" title: "T.03.09" description: "A substitution SERVICE JOURNEY must reference a SERVICE JOURNEY that it is replacing" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.03.09" standard: "NeTEx" source: "data4pt" severity: "40" category: "integrity" maturity: "draft" --- # Notes If SERVICE JOURNEY is tagged as a replacement then it should indicate which SERVICE JOURNEY it replaces # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Journey, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-04-01.html" LLMS_URL: "/bundle/rules/data4pt/t-04-01.md" type: "Validation Rule" title: "T.04.01" description: "Every SERVICE JOURNEY should be referenced either by a GROUP OF SERVICEs or by a SERVICE JOURNEY INTERCHANGE or by an INTERCHANGE RULE." tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.04.01" standard: "NeTEx" source: "data4pt" severity: "40" category: "integrity" maturity: "draft" --- # Notes In a typical timetable. most of the SERVICE JOURNEYs are the main content of the timetable. For presentation these will typically be grouped by direction using a GROUP OF SERVICEs i.e. into (a) Outbound and (b) Inbound journeys. . They may be further subgrouped by DAY TYPE. e.g. 'Outbound journey's Monday to Friday ' 'Outbound journeys Saturday and Sunday' etc. For such journeys a full calling pattern (i.e. SERVICE PATTERN or CALLs) and set of times will be given. Other journeys may be declared in order to reference them in a SERVICE JOURNEY INTERCHANGE . Such journeys may not be described in full. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Grouping, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-04-02.html" LLMS_URL: "/bundle/rules/data4pt/t-04-02.md" type: "Validation Rule" title: "T.04.02" description: "A SERVICE JOURNEY instances that have a similar DIRECTION and DAY TYPE and JOURNEY PATTERN should be grouped with a GROUP OF SERVICEs" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.04.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes GROUPS of SERVICE should be provided that group the SERVICE JOURNEYs into useful groups for human readability. eg 'outbound monday to friday'. 'inbound. monday to friday'. etc. - The GROUP OF SERVICE should have a DIRECTION and DAY TYPE specified. - Outbound and inbound journeys should not be included in the same GROUP OF SERVICES. - Journeys in a GROUP of SERVCIES should normally have a similar DAY TYPE. Code normalized from 'T04.02' in the source sheet. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Grouping, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-07-11.html" LLMS_URL: "/bundle/rules/data4pt/t-07-11.md" type: "Validation Rule" title: "T.07.11" description: "DESTINATION DISPLAYs should always have at least one \"FrontText\"" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.07.11" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes The "front text" is the text seen on the front of the vehicle. Not relevant for all profiles # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Display, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-07-12.html" LLMS_URL: "/bundle/rules/data4pt/t-07-12.md" type: "Validation Rule" title: "T.07.12" description: "DESTINATION DISPLAY VARIANTs always have at least one \"FrontText\"" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.07.12" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Display, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-07-xx.html" LLMS_URL: "/bundle/rules/data4pt/t-07-xx.md" type: "Validation Rule" title: "T.07.XX" description: "Check if the Journey PATTERN matches any associated ROUTE" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "T.07.XX" standard: "NeTEx" source: "data4pt" severity: "40" category: "semantic" maturity: "draft" --- # Notes Spatial coordinates of JOURNEY PATTERN and should project to the same approximate plot. Code normalized from 'T.07.xx' in the source sheet. Placeholder number in the source sheet (not yet assigned). # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Routing, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-08-01.html" LLMS_URL: "/bundle/rules/data4pt/t-08-01.md" type: "Validation Rule" title: "T.08.01" description: "A SERVICE JOURNEY have at least one DAY TYPE" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.08.01" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes A DAY TYPE should be specified for each SERVICE JOURNEY # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Day types, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-08-02.html" LLMS_URL: "/bundle/rules/data4pt/t-08-02.md" type: "Validation Rule" title: "T.08.02" description: "A DAY TYPE must have sufficient PropertiesOfDay to characterise it" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.08.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes Day types should have at least one DAY OF WEEK # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Day Types, **applies_to:** EPIP - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-08-05.html" LLMS_URL: "/bundle/rules/data4pt/t-08-05.md" type: "Validation Rule" title: "T.08.05" description: "Days without scheduled SERVICE JOURNEYs for a Line must raise a warning" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.08.05" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes When considering the whole timetable for a LINE . there should normally be at least one journey taking place every day in a given direction. If there are days of the week without a scheduled SERVICE JOURNEY for a LINE can raise a Warning # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Day Types, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-08-11.html" LLMS_URL: "/bundle/rules/data4pt/t-08-11.md" type: "Validation Rule" title: "T.08.11" description: "Validity period of the SERVICE JOURNEYs must fall within the validity period of the VERSION FRAME" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.08.11" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes If a validity is specified on a SERVICE JOURNEY it must be in between the FromDate and ToDate of the containing VERSION FRAME. # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Dates, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-08-12.html" LLMS_URL: "/bundle/rules/data4pt/t-08-12.md" type: "Validation Rule" title: "T.08.12" description: "The validity of the timetable must be at least N days." tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.08.12" standard: "NeTEx" source: "data4pt" severity: "40" category: "structure" maturity: "draft" --- # Notes Check that FromDate and ToDate on COMPOSITE FRAME is at least N days apart. (A very short period is usually suspicious. # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Dates, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-09-01.html" LLMS_URL: "/bundle/rules/data4pt/t-09-01.md" type: "Validation Rule" title: "T.09.01" description: "Every POINT IN JOURNEY POINT In a JOURNEY PATTERN used by a JOURNEY must have an PASSING TIME with arrival and departure time (except for the first and last stop)" tags: - "data4pt" - "netex" - "integrity" timestamp: "2026-07-15T00:00:00" code: "T.09.01" standard: "NeTEx" source: "data4pt" severity: "20" category: "integrity" maturity: "draft" --- # Notes Check that an appropriate ArrivalTime and DepartureTime exists in for each PASSING TIME TimetabledPassingTime in a SERVICE JOURNEY . # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Timings, **applies_to:** Profile specific - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-09-02.html" LLMS_URL: "/bundle/rules/data4pt/t-09-02.md" type: "Validation Rule" title: "T.09.02" description: "There should be a time specified on each CALL of a SERVICE JOURNET" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.09.02" standard: "NeTEx" source: "data4pt" severity: "30" category: "structure" maturity: "draft" --- # Notes If CALLS are used . Check that the each CALL has at least one time specified. o # Details - **Result:** Warning - **Scope:** **area:** Timetable, **aspect:** Timings, **applies_to:** EPIP and timetable profiles - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-09-03.html" LLMS_URL: "/bundle/rules/data4pt/t-09-03.md" type: "Validation Rule" title: "T.09.03" description: "Successive DayOffset+PassingTimes for the POINTs IN JOURNEY Pattern or CALLS of a Journey must not decrease. N" tags: - "data4pt" - "netex" - "structure" timestamp: "2026-07-15T00:00:00" code: "T.09.03" standard: "NeTEx" source: "data4pt" severity: "20" category: "structure" maturity: "draft" --- # Notes Successive DayOffset+PassingTimes for the POINTs IN JOURNEY Pattern or CALLS of a Journey must not decrease # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Timings, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-09-06.html" LLMS_URL: "/bundle/rules/data4pt/t-09-06.md" type: "Validation Rule" title: "T.09.06" description: "Consistency of schedules: schedules at the earliest and at the latest" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "T.09.06" standard: "NeTEx" source: "data4pt" severity: "20" category: "semantic" maturity: "draft" --- # Notes EarliestDepartureTime and / or LatestArrivalTime must be such that EarliestDepartureTime <= DepartureTimeLatestArrivalTime> = ArrivalTime # Details - **Result:** Error - **Scope:** **area:** Timetable, **aspect:** Timings, **applies_to:** All usages - **Mechanism:** code # Related - Source: [DATA4PT NeTEx Validation Rules Overview](/sources/data4pt.md) --- URL: "/bundle/rules/data4pt/t-09-07.html" LLMS_URL: "/bundle/rules/data4pt/t-09-07.md" type: "Validation Rule" title: "T.09.07" description: "Successive timing between stops should be consistent with specified durations from TIMING LINKs t" tags: - "data4pt" - "netex" - "semantic" timestamp: "2026-07-15T00:00:00" code: "T.09.07" standard: "NeTEx" source: "data4pt" severity: "20" category: "semantic" maturity: "draft" --- # Notes The ArrivalTime and DepartureTime times of PASSING TIMEs and/or CALLs must respect the following rules: ArrivalTime <= DepartureTimeDepartureTime stop N 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/dated_service_journey_4.html" LLMS_URL: "/bundle/rules/entur/dated_service_journey_4.md" type: "Validation Rule" title: "DATED_SERVICE_JOURNEY_4" description: "DatedServiceJourney multiple versions" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "DATED_SERVICE_JOURNEY_4" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `DatedServiceJourney is repeated with a different version` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/DatedServiceJourney[@id = preceding-sibling::DatedServiceJourney/@id] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/dated_service_journey_5.html" LLMS_URL: "/bundle/rules/entur/dated_service_journey_5.md" type: "Validation Rule" title: "DATED_SERVICE_JOURNEY_5" description: "DatedServiceJourney multiple references to the same DatedServiceJourney" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "DATED_SERVICE_JOURNEY_5" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Multiple references from a DatedServiceJourney to the same DatedServiceJourney` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/DatedServiceJourney/replacedJourneys/DatedVehicleJourneyRef[@ref = preceding-sibling::DatedVehicleJourneyRef/@ref] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/dead_run_1.html" LLMS_URL: "/bundle/rules/entur/dead_run_1.md" type: "Validation Rule" title: "DEAD_RUN_1" description: "DeadRun missing PassingTime references" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "DEAD_RUN_1" standard: "NeTEx" source: "entur" severity: "INFO" category: "integrity" maturity: "draft" --- # Details - **Message:** `The Dead run does not reference passing times` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/DeadRun[not(passingTimes)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/dead_run_2.html" LLMS_URL: "/bundle/rules/entur/dead_run_2.md" type: "Validation Rule" title: "DEAD_RUN_2" description: "DeadRun missing JourneyPattern references" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "DEAD_RUN_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `The Dead run does not reference a journey pattern` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/DeadRun[not(JourneyPatternRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/dead_run_3.html" LLMS_URL: "/bundle/rules/entur/dead_run_3.md" type: "Validation Rule" title: "DEAD_RUN_3" description: "DeadRun missing DayType references" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "DEAD_RUN_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `The Dead run does not reference day types` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/DeadRun[not(dayTypes/DayTypeRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/destination_display_1.html" LLMS_URL: "/bundle/rules/entur/destination_display_1.md" type: "Validation Rule" title: "DESTINATION_DISPLAY_1" description: "DestinationDisplay missing FrontText" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "DESTINATION_DISPLAY_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing FrontText on DestinationDisplay` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath destinationDisplays/DestinationDisplay[not(FrontText) or normalize-space(FrontText) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/destination_display_2.html" LLMS_URL: "/bundle/rules/entur/destination_display_2.md" type: "Validation Rule" title: "DESTINATION_DISPLAY_2" description: "DestinationDisplay missing DestinationDisplayRef on Via" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "DESTINATION_DISPLAY_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing DestinationDisplayRef on Via` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath destinationDisplays/DestinationDisplay/vias/Via[not(DestinationDisplayRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/flexible_line_1.html" LLMS_URL: "/bundle/rules/entur/flexible_line_1.md" type: "Validation Rule" title: "FLEXIBLE_LINE_1" description: "FlexibleLine missing FlexibleLineType" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "FLEXIBLE_LINE_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing FlexibleLineType on FlexibleLine` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/FlexibleLine[not(FlexibleLineType)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/flexible_line_10.html" LLMS_URL: "/bundle/rules/entur/flexible_line_10.md" type: "Validation Rule" title: "FLEXIBLE_LINE_10" description: "FlexibleLine illegal use of both BookWhen and MinimumBookingPeriod" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "FLEXIBLE_LINE_10" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `Only one of BookWhen or MinimumBookingPeriod should be specified on FlexibleLine` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/FlexibleLine[BookWhen and MinimumBookingPeriod] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/flexible_line_11.html" LLMS_URL: "/bundle/rules/entur/flexible_line_11.md" type: "Validation Rule" title: "FLEXIBLE_LINE_11" description: "FlexibleLine BookWhen without LatestBookingTime or LatestBookingTime without BookWhen" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "FLEXIBLE_LINE_11" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `BookWhen must be used together with LatestBookingTime on FlexibleLine` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/FlexibleLine[(BookWhen and not(LatestBookingTime)) or (not(BookWhen) and LatestBookingTime)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/flexible_service_1.html" LLMS_URL: "/bundle/rules/entur/flexible_service_1.md" type: "Validation Rule" title: "FLEXIBLE_SERVICE_1" description: "FlexibleService missing Id on FlexibleServiceProperties" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "FLEXIBLE_SERVICE_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing id on FlexibleServiceProperties` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/FlexibleServiceProperties[not(@id)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/flexible_service_2.html" LLMS_URL: "/bundle/rules/entur/flexible_service_2.md" type: "Validation Rule" title: "FLEXIBLE_SERVICE_2" description: "FlexibleService missing version on FlexibleServiceProperties" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "FLEXIBLE_SERVICE_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing version on FlexibleServiceProperties` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/FlexibleServiceProperties[not(@version)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/flexible_service_3.html" LLMS_URL: "/bundle/rules/entur/flexible_service_3.md" type: "Validation Rule" title: "FLEXIBLE_SERVICE_3" description: "FlexibleService illegal use of both BookWhen and MinimumBookingPeriod" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "FLEXIBLE_SERVICE_3" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `Only one of BookWhen or MinimumBookingPeriod should be specified on FlexibleServiceProperties` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/FlexibleServiceProperties[BookWhen and MinimumBookingPeriod] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/flexible_service_4.html" LLMS_URL: "/bundle/rules/entur/flexible_service_4.md" type: "Validation Rule" title: "FLEXIBLE_SERVICE_4" description: "FlexibleService BookWhen without LatestBookingTime or LatestBookingTime without BookWhen" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "FLEXIBLE_SERVICE_4" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `BookWhen must be used together with LatestBookingTime on FlexibleServiceProperties` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/FlexibleServiceProperties[(BookWhen and not(LatestBookingTime)) or (not(BookWhen) and LatestBookingTime)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/interchange_1.html" LLMS_URL: "/bundle/rules/entur/interchange_1.md" type: "Validation Rule" title: "INTERCHANGE_1" description: "Interchange invalid properties" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "INTERCHANGE_1" standard: "NeTEx" source: "entur" severity: "WARNING" category: "semantic" maturity: "draft" --- # Details - **Message:** `The 'Planned' and 'Advertised' properties of an Interchange should not be specified` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath journeyInterchanges/ServiceJourneyInterchange[Advertised or Planned] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/interchange_2.html" LLMS_URL: "/bundle/rules/entur/interchange_2.md" type: "Validation Rule" title: "INTERCHANGE_2" description: "Interchange unexpected MaximumWaitTime" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "INTERCHANGE_2" standard: "NeTEx" source: "entur" severity: "WARNING" category: "semantic" maturity: "draft" --- # Details - **Message:** `Guaranteed Interchange should not have a maximum wait time value of zero` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath journeyInterchanges/ServiceJourneyInterchange[Guaranteed='true' and (MaximumWaitTime='PT0S' or MaximumWaitTime='PT0M') ] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/interchange_3.html" LLMS_URL: "/bundle/rules/entur/interchange_3.md" type: "Validation Rule" title: "INTERCHANGE_3" description: "Interchange excessive MaximumWaitTime" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "INTERCHANGE_3" standard: "NeTEx" source: "entur" severity: "WARNING" category: "semantic" maturity: "draft" --- # Details - **Message:** `The maximum waiting time after planned departure for the interchange consumer journey (MaximumWaitTime) should not be longer than one hour` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath journeyInterchanges/ServiceJourneyInterchange[MaximumWaitTime > xs:dayTimeDuration('PT1H')] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_1.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_1.md" type: "Validation Rule" title: "JOURNEY_PATTERN_1" description: "JourneyPattern illegal element ServiceJourneyPattern" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `ServiceJourneyPattern not allowed` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/ServiceJourneyPattern ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_2.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_2.md" type: "Validation Rule" title: "JOURNEY_PATTERN_2" description: "JourneyPattern missing JourneyPattern" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `No JourneyPattern defined in the Service Frame` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_3.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_3.md" type: "Validation Rule" title: "JOURNEY_PATTERN_3" description: "JourneyPattern missing RouteRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing RouteRef on JourneyPattern` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern[not(RouteRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_4.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_4.md" type: "Validation Rule" title: "JOURNEY_PATTERN_4" description: "JourneyPattern missing DestinationDisplayRef on first stop point" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_4" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing DestinationDisplayRef on first StopPointInJourneyPattern` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern/pointsInSequence/StopPointInJourneyPattern[1][not(DestinationDisplayRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_5.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_5.md" type: "Validation Rule" title: "JOURNEY_PATTERN_5" description: "JourneyPattern illegal DestinationDisplayRef on last stop point" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_5" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `DestinationDisplayRef not allowed on last StopPointInJourneyPattern` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern/pointsInSequence/StopPointInJourneyPattern[last()][DestinationDisplayRef] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_6.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_6.md" type: "Validation Rule" title: "JOURNEY_PATTERN_6" description: "JourneyPattern stop point without boarding or alighting" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_6" standard: "NeTEx" source: "entur" severity: "WARNING" category: "semantic" maturity: "draft" --- # Details - **Message:** `StopPointInJourneyPattern neither allows boarding nor alighting` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern/pointsInSequence/StopPointInJourneyPattern[ForAlighting = 'false' and ForBoarding = 'false'] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_7.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_7.md" type: "Validation Rule" title: "JOURNEY_PATTERN_7" description: "JourneyPattern illegal repetition of DestinationDisplay" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_7" standard: "NeTEx" source: "entur" severity: "ERROR" category: "semantic" maturity: "draft" --- # Details - **Message:** `StopPointInJourneyPattern declares reference to the same DestinationDisplay as previous StopPointInJourneyPattern` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern/pointsInSequence/StopPointInJourneyPattern[DestinationDisplayRef/@ref = preceding-sibling::StopPointInJourneyPattern[1]/DestinationDisplayRef/@ref and number(@order) > number(preceding-sibling::StopPointInJourneyPattern[1]/@order)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_8.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_8.md" type: "Validation Rule" title: "JOURNEY_PATTERN_8" description: "JourneyPattern illegal use of both BookWhen and MinimumBookingPeriod" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_8" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `Only one of BookWhen or MinimumBookingPeriod should be specified on StopPointInJourneyPattern` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern/pointsInSequence/StopPointInJourneyPattern/BookingArrangements[BookWhen and MinimumBookingPeriod] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/journey_pattern_9.html" LLMS_URL: "/bundle/rules/entur/journey_pattern_9.md" type: "Validation Rule" title: "JOURNEY_PATTERN_9" description: "JourneyPattern BookWhen without LatestBookingTime or LatestBookingTime without BookWhen" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "JOURNEY_PATTERN_9" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `BookWhen must be used together with LatestBookingTime on StopPointInJourneyPattern` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern/pointsInSequence/StopPointInJourneyPattern/BookingArrangements[(BookWhen and not(LatestBookingTime)) or (not(BookWhen) and LatestBookingTime)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_1.html" LLMS_URL: "/bundle/rules/entur/line_1.md" type: "Validation Rule" title: "LINE_1" description: "Line - exactly one Line or FlexibleLine" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "LINE_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `There must be exactly one Line or one Flexible Line` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_2.html" LLMS_URL: "/bundle/rules/entur/line_2.md" type: "Validation Rule" title: "LINE_2" description: "Line missing Name" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "LINE_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing Name on Line` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine][not(Name) or normalize-space(Name) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_3.html" LLMS_URL: "/bundle/rules/entur/line_3.md" type: "Validation Rule" title: "LINE_3" description: "Line missing PublicCode" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "LINE_3" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing PublicCode on Line` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine][not(PublicCode) or normalize-space(PublicCode) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_4.html" LLMS_URL: "/bundle/rules/entur/line_4.md" type: "Validation Rule" title: "LINE_4" description: "Line missing TransportMode" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "LINE_4" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing TransportMode on Line` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine][not(TransportMode)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_5.html" LLMS_URL: "/bundle/rules/entur/line_5.md" type: "Validation Rule" title: "LINE_5" description: "Line missing TransportSubmode" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "LINE_5" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing TransportSubmode on Line` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine][not(TransportSubmode)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_6.html" LLMS_URL: "/bundle/rules/entur/line_6.md" type: "Validation Rule" title: "LINE_6" description: "Line with incorrect use of Route" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "LINE_6" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Routes should not be defined within a Line or FlexibleLine` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine]/routes/Route ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_7.html" LLMS_URL: "/bundle/rules/entur/line_7.md" type: "Validation Rule" title: "LINE_7" description: "Line missing Network or GroupOfLines" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "LINE_7" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `A Line must refer to a GroupOfLines or a Network through element RepresentedByGroupRef` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine][not(RepresentedByGroupRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_8.html" LLMS_URL: "/bundle/rules/entur/line_8.md" type: "Validation Rule" title: "LINE_8" description: "Invalid color coding length on Presentation" tags: - "entur" - "netex" - "format" timestamp: "2026-06-12T00:00:00" code: "LINE_8" standard: "NeTEx" source: "entur" severity: "WARNING" category: "format" maturity: "draft" --- # Details - **Message:** `Line colour should be encoded with 6 hexadecimal digits` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine]/*[self::Presentation or self::AlternativePresentation]/*[self::Colour or self::TextColour][text()][string-length(text())!=6] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/line_9.html" LLMS_URL: "/bundle/rules/entur/line_9.md" type: "Validation Rule" title: "LINE_9" description: "Invalid color coding value on Presentation" tags: - "entur" - "netex" - "format" timestamp: "2026-06-12T00:00:00" code: "LINE_9" standard: "NeTEx" source: "entur" severity: "WARNING" category: "format" maturity: "draft" --- # Details - **Message:** `Line colour should be encoded with valid hexadecimal digits` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/*[self::Line or self::FlexibleLine]/*[self::Presentation or self::AlternativePresentation]/*[self::Colour or self::TextColour][text()][not(matches(text(),'[0-9A-Fa-f]{6}'))] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/netex_id_1.html" LLMS_URL: "/bundle/rules/entur/netex_id_1.md" type: "Validation Rule" title: "NETEX_ID_1" description: "NeTEx ID duplicated across files" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NETEX_ID_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Duplicate element identifiers across files` - **Scope:** **frame:** NetexIdUniquenessValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/netex_id_10.html" LLMS_URL: "/bundle/rules/entur/netex_id_10.md" type: "Validation Rule" title: "NETEX_ID_10" description: "Duplicate NeTEx ID across common files" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NETEX_ID_10" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `Duplicate element identifiers across common files` - **Scope:** **frame:** NetexIdUniquenessValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/netex_id_5.html" LLMS_URL: "/bundle/rules/entur/netex_id_5.md" type: "Validation Rule" title: "NETEX_ID_5" description: "NeTEx ID unresolved reference" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NETEX_ID_5" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Unresolved reference to external reference data` - **Scope:** **frame:** NetexReferenceValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/netex_id_6.html" LLMS_URL: "/bundle/rules/entur/netex_id_6.md" type: "Validation Rule" title: "NETEX_ID_6" description: "NeTEx ID reference to invalid element" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NETEX_ID_6" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Reference to %s is not allowed from element %s. Generally an element named XXXXRef may only reference elements if type XXXX` - **Scope:** **frame:** ReferenceToValidEntityTypeValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/netex_id_7.html" LLMS_URL: "/bundle/rules/entur/netex_id_7.md" type: "Validation Rule" title: "NETEX_ID_7" description: "NeTEx ID invalid value" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NETEX_ID_7" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Invalid id structure on element` - **Scope:** **frame:** ReferenceToValidEntityTypeValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/netex_id_8.html" LLMS_URL: "/bundle/rules/entur/netex_id_8.md" type: "Validation Rule" title: "NETEX_ID_8" description: "NeTEx ID missing version on elements" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NETEX_ID_8" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing version attribute on elements with id attribute` - **Scope:** **frame:** VersionOnLocalNetexIdValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/netex_id_9.html" LLMS_URL: "/bundle/rules/entur/netex_id_9.md" type: "Validation Rule" title: "NETEX_ID_9" description: "NeTEx ID missing version on reference" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NETEX_ID_9" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing version attribute on reference to local elements` - **Scope:** **frame:** VersionOnRefToLocalNetexIdValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/network_1.html" LLMS_URL: "/bundle/rules/entur/network_1.md" type: "Validation Rule" title: "NETWORK_1" description: "Network missing AuthorityRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NETWORK_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing AuthorityRef on Network` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath Network[not(AuthorityRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/network_2.html" LLMS_URL: "/bundle/rules/entur/network_2.md" type: "Validation Rule" title: "NETWORK_2" description: "Network missing Name on Network" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "NETWORK_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing Name element on Network` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath Network[not(Name) or normalize-space(Name) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/network_3.html" LLMS_URL: "/bundle/rules/entur/network_3.md" type: "Validation Rule" title: "NETWORK_3" description: "Network missing Name on GroupOfLines" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "NETWORK_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing Name element on GroupOfLines` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath Network/groupsOfLines/GroupOfLines[not(Name) or normalize-space(Name) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/notice_1.html" LLMS_URL: "/bundle/rules/entur/notice_1.md" type: "Validation Rule" title: "NOTICE_1" description: "Notice missing Text" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "NOTICE_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing element Text for Notice` - **Scope:** **frame:** MultipleFrames # Implementation ```xpath (ServiceFrame | TimetableFrame)/notices/Notice[not(Text) or normalize-space(Text/text()) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/notice_2.html" LLMS_URL: "/bundle/rules/entur/notice_2.md" type: "Validation Rule" title: "NOTICE_2" description: "Notice missing Text with alternative text" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "NOTICE_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing or empty element Text for Notice Alternative Text` - **Scope:** **frame:** MultipleFrames # Implementation ```xpath (ServiceFrame | TimetableFrame)/notices/Notice/alternativeTexts/AlternativeText[not(Text) or normalize-space(Text/text()) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/notice_3.html" LLMS_URL: "/bundle/rules/entur/notice_3.md" type: "Validation Rule" title: "NOTICE_3" description: "Notice missing language with alternative text" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "NOTICE_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing element Lang for Notice Alternative Text` - **Scope:** **frame:** MultipleFrames # Implementation ```xpath (ServiceFrame | TimetableFrame)/notices/Notice/alternativeTexts/AlternativeText/Text[not(@lang)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/notice_4.html" LLMS_URL: "/bundle/rules/entur/notice_4.md" type: "Validation Rule" title: "NOTICE_4" description: "Notice duplicated alternative texts" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NOTICE_4" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `The Notice has two Alternative Texts with the same language` - **Scope:** **frame:** MultipleFrames # Implementation ```xpath (ServiceFrame | TimetableFrame)/notices/Notice/alternativeTexts/AlternativeText[Text/@lang = following-sibling::AlternativeText/Text/@lang or Text/@lang = preceding-sibling::AlternativeText/Text/@lang] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/notice_5.html" LLMS_URL: "/bundle/rules/entur/notice_5.md" type: "Validation Rule" title: "NOTICE_5" description: "Notice duplicated assignment" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NOTICE_5" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `The notice is assigned multiple times to the same object` - **Scope:** **frame:** MultipleFrames # Implementation ```xpath (ServiceFrame | TimetableFrame)/noticeAssignments/NoticeAssignment[for $a in following-sibling::NoticeAssignment return if(NoticeRef/@ref= $a/NoticeRef/@ref and NoticedObjectRef/@ref= $a/NoticedObjectRef/@ref) then $a else ()] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/notice_6.html" LLMS_URL: "/bundle/rules/entur/notice_6.md" type: "Validation Rule" title: "NOTICE_6" description: "Notice assignment missing reference to noticed object" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NOTICE_6" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `The notice assignment does not reference an object` - **Scope:** **frame:** MultipleFrames # Implementation ```xpath (ServiceFrame | TimetableFrame)/noticeAssignments/NoticeAssignment[not(NoticedObjectRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/notice_7.html" LLMS_URL: "/bundle/rules/entur/notice_7.md" type: "Validation Rule" title: "NOTICE_7" description: "Notice assignment missing reference to notice" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "NOTICE_7" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `The notice assignment does not reference a notice` - **Scope:** **frame:** MultipleFrames # Implementation ```xpath (ServiceFrame | TimetableFrame)/noticeAssignments/NoticeAssignment[not(NoticeRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/operating_period_1.html" LLMS_URL: "/bundle/rules/entur/operating_period_1.md" type: "Validation Rule" title: "OPERATING_PERIOD_1" description: "OperatingPeriod invalid time interval" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "OPERATING_PERIOD_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "semantic" maturity: "draft" --- # Details - **Message:** `FromDate cannot be after ToDate on OperatingPeriod` - **Scope:** **frame:** ServiceCalendarFrame # Implementation ```xpath //OperatingPeriod[FromDate and ToDate and ToDate < FromDate] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/operator_1.html" LLMS_URL: "/bundle/rules/entur/operator_1.md" type: "Validation Rule" title: "OPERATOR_1" description: "Operator missing CompanyNumber" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "OPERATOR_1" standard: "NeTEx" source: "entur" severity: "INFO" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing CompanyNumber element on Operator` - **Scope:** **frame:** ResourceFrame # Implementation ```xpath organisations/Operator[not(CompanyNumber) or normalize-space(CompanyNumber) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/operator_2.html" LLMS_URL: "/bundle/rules/entur/operator_2.md" type: "Validation Rule" title: "OPERATOR_2" description: "Operator missing Name" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "OPERATOR_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing Name on Operator` - **Scope:** **frame:** ResourceFrame # Implementation ```xpath organisations/Operator[not(Name) or normalize-space(Name) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/operator_3.html" LLMS_URL: "/bundle/rules/entur/operator_3.md" type: "Validation Rule" title: "OPERATOR_3" description: "Operator missing LegalName" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "OPERATOR_3" standard: "NeTEx" source: "entur" severity: "INFO" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing LegalName element on Operator` - **Scope:** **frame:** ResourceFrame # Implementation ```xpath organisations/Operator[not(LegalName) or normalize-space(LegalName) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/operator_4.html" LLMS_URL: "/bundle/rules/entur/operator_4.md" type: "Validation Rule" title: "OPERATOR_4" description: "Operator missing ContactDetails" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "OPERATOR_4" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing ContactDetails element on Operator` - **Scope:** **frame:** ResourceFrame # Implementation ```xpath organisations/Operator[not(ContactDetails)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/operator_5.html" LLMS_URL: "/bundle/rules/entur/operator_5.md" type: "Validation Rule" title: "OPERATOR_5" description: "Operator missing Url for ContactDetails" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "OPERATOR_5" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `At least one of Url, Phone or Email must be defined for ContactDetails on Operator` - **Scope:** **frame:** ResourceFrame # Implementation ```xpath organisations/Operator/ContactDetails[(not(Email) or normalize-space(Email) = '') and (not(Phone) or normalize-space(Phone) = '') and (not(Url) or normalize-space(Url) = '')] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/operator_6.html" LLMS_URL: "/bundle/rules/entur/operator_6.md" type: "Validation Rule" title: "OPERATOR_6" description: "Operator missing CustomerServiceContactDetails" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "OPERATOR_6" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing CustomerServiceContactDetails element on Operator` - **Scope:** **frame:** ResourceFrame # Implementation ```xpath organisations/Operator[not(CustomerServiceContactDetails)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/operator_7.html" LLMS_URL: "/bundle/rules/entur/operator_7.md" type: "Validation Rule" title: "OPERATOR_7" description: "Operator missing Url for CustomerServiceContactDetails" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "OPERATOR_7" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing Url element for CustomerServiceContactDetails on Operator` - **Scope:** **frame:** ResourceFrame # Implementation ```xpath organisations/Operator/CustomerServiceContactDetails[not(Url) or normalize-space(Url) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/passenger_stop_assignment_1.html" LLMS_URL: "/bundle/rules/entur/passenger_stop_assignment_1.md" type: "Validation Rule" title: "PASSENGER_STOP_ASSIGNMENT_1" description: "PassengerStopAssignment missing ScheduledStopPointRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "PASSENGER_STOP_ASSIGNMENT_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing ScheduledStopPointRef on PassengerStopAssignment` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath stopAssignments/PassengerStopAssignment[not(ScheduledStopPointRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/passenger_stop_assignment_2.html" LLMS_URL: "/bundle/rules/entur/passenger_stop_assignment_2.md" type: "Validation Rule" title: "PASSENGER_STOP_ASSIGNMENT_2" description: "PassengerStopAssignment missing QuayRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "PASSENGER_STOP_ASSIGNMENT_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing QuayRef on PassengerStopAssignment` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath stopAssignments/PassengerStopAssignment[not(QuayRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/passenger_stop_assignment_3.html" LLMS_URL: "/bundle/rules/entur/passenger_stop_assignment_3.md" type: "Validation Rule" title: "PASSENGER_STOP_ASSIGNMENT_3" description: "PassengerStopAssignment duplicated Quay assignment" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "PASSENGER_STOP_ASSIGNMENT_3" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `The same quay is assigned more than once in PassengerStopAssignments` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath stopAssignments/PassengerStopAssignment[QuayRef/@ref = following-sibling::PassengerStopAssignment/QuayRef/@ref] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/resource_frame_in_line_file.html" LLMS_URL: "/bundle/rules/entur/resource_frame_in_line_file.md" type: "Validation Rule" title: "RESOURCE_FRAME_IN_LINE_FILE" description: "ResourceFrame must be exactly one" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "RESOURCE_FRAME_IN_LINE_FILE" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Exactly one ResourceFrame should be present` - **Scope:** **frame:** SingleFrames # Implementation ```xpath ResourceFrame ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/route_1.html" LLMS_URL: "/bundle/rules/entur/route_1.md" type: "Validation Rule" title: "ROUTE_1" description: "Route missing" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "ROUTE_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `There should be at least one Route` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routes/Route ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/route_2.html" LLMS_URL: "/bundle/rules/entur/route_2.md" type: "Validation Rule" title: "ROUTE_2" description: "Route missing Name" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "ROUTE_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing Name on Route` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routes/Route[not(Name) or normalize-space(Name) = ''] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/route_3.html" LLMS_URL: "/bundle/rules/entur/route_3.md" type: "Validation Rule" title: "ROUTE_3" description: "Route missing LineRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "ROUTE_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing lineRef on Route` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routes/Route[not(LineRef) and not(FlexibleLineRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/route_4.html" LLMS_URL: "/bundle/rules/entur/route_4.md" type: "Validation Rule" title: "ROUTE_4" description: "Route missing pointsInSequence" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "ROUTE_4" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing pointsInSequence on Route` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routes/Route[not(pointsInSequence)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/route_5.html" LLMS_URL: "/bundle/rules/entur/route_5.md" type: "Validation Rule" title: "ROUTE_5" description: "Route illegal DirectionRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "ROUTE_5" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `DirectionRef not allowed on Route (use DirectionType)` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routes/Route/DirectionRef ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/route_6.html" LLMS_URL: "/bundle/rules/entur/route_6.md" type: "Validation Rule" title: "ROUTE_6" description: "Route duplicated order" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "ROUTE_6" standard: "NeTEx" source: "entur" severity: "WARNING" category: "semantic" maturity: "draft" --- # Details - **Message:** `Several points on route have the same order` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routes/Route/pointsInSequence/PointOnRoute[@order = preceding-sibling::PointOnRoute/@order] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/route_7.html" LLMS_URL: "/bundle/rules/entur/route_7.md" type: "Validation Rule" title: "ROUTE_7" description: "Route missing JourneyPattern" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "ROUTE_7" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `A Route should have at least one JourneyPattern` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routes/Route[not(@id = ../../journeyPatterns/JourneyPattern/RouteRef/@ref)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_calendar_1.html" LLMS_URL: "/bundle/rules/entur/service_calendar_1.md" type: "Validation Rule" title: "SERVICE_CALENDAR_1" description: "ServiceCalendar unused DayType" tags: - "entur" - "netex" - "quality" timestamp: "2026-06-12T00:00:00" code: "SERVICE_CALENDAR_1" standard: "NeTEx" source: "entur" severity: "WARNING" category: "quality" maturity: "draft" --- # Details - **Message:** `The DayType is not assigned to any calendar dates or periods` - **Scope:** **frame:** ServiceCalendarFrame # Implementation ```xpath //DayType[not(//DayTypeAssignment/DayTypeRef/@ref = @id)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_calendar_2.html" LLMS_URL: "/bundle/rules/entur/service_calendar_2.md" type: "Validation Rule" title: "SERVICE_CALENDAR_2" description: "ServiceCalendar empty ServiceCalendar" tags: - "entur" - "netex" - "quality" timestamp: "2026-06-12T00:00:00" code: "SERVICE_CALENDAR_2" standard: "NeTEx" source: "entur" severity: "WARNING" category: "quality" maturity: "draft" --- # Details - **Message:** `ServiceCalendar does not contain neither DayTypes nor DayTypeAssignments` - **Scope:** **frame:** ServiceCalendarFrame # Implementation ```xpath //ServiceCalendar[not(dayTypes) and not(dayTypeAssignments)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_calendar_3.html" LLMS_URL: "/bundle/rules/entur/service_calendar_3.md" type: "Validation Rule" title: "SERVICE_CALENDAR_3" description: "ServiceCalendar missing ToDate" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_CALENDAR_3" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing ToDate on ServiceCalendar` - **Scope:** **frame:** ServiceCalendarFrame # Implementation ```xpath //ServiceCalendar[not(ToDate)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_calendar_4.html" LLMS_URL: "/bundle/rules/entur/service_calendar_4.md" type: "Validation Rule" title: "SERVICE_CALENDAR_4" description: "ServiceCalendar missing FromDate" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_CALENDAR_4" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing FromDate on ServiceCalendar` - **Scope:** **frame:** ServiceCalendarFrame # Implementation ```xpath //ServiceCalendar[not(FromDate)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_calendar_5.html" LLMS_URL: "/bundle/rules/entur/service_calendar_5.md" type: "Validation Rule" title: "SERVICE_CALENDAR_5" description: "ServiceCalendar invalid time interval" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "SERVICE_CALENDAR_5" standard: "NeTEx" source: "entur" severity: "ERROR" category: "semantic" maturity: "draft" --- # Details - **Message:** `FromDate cannot be after ToDate on ServiceCalendar` - **Scope:** **frame:** ServiceCalendarFrame # Implementation ```xpath //ServiceCalendar[FromDate and ToDate and ToDate < FromDate] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_frame_1.html" LLMS_URL: "/bundle/rules/entur/service_frame_1.md" type: "Validation Rule" title: "SERVICE_FRAME_1" description: "ServiceFrame unexpected element GroupOfLines" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_FRAME_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Unexpected element groupsOfLines outside of Network` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath groupsOfLines ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_frame_2.html" LLMS_URL: "/bundle/rules/entur/service_frame_2.md" type: "Validation Rule" title: "SERVICE_FRAME_2" description: "ServiceFrame unexpected element timingPoints" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_FRAME_2" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Unexpected element timingPoints. Content ignored` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath timingPoints ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_frame_3.html" LLMS_URL: "/bundle/rules/entur/service_frame_3.md" type: "Validation Rule" title: "SERVICE_FRAME_3" description: "ServiceFrame missing Projection on RoutePoint" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_FRAME_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing Projection on RoutePoint` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routePoints/RoutePoint[not(projections)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_frame_in_common_file_1.html" LLMS_URL: "/bundle/rules/entur/service_frame_in_common_file_1.md" type: "Validation Rule" title: "SERVICE_FRAME_IN_COMMON_FILE_1" description: "ServiceFrame unexpected element Line" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_FRAME_IN_COMMON_FILE_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Line not allowed in common files` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath lines/Line ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_frame_in_common_file_2.html" LLMS_URL: "/bundle/rules/entur/service_frame_in_common_file_2.md" type: "Validation Rule" title: "SERVICE_FRAME_IN_COMMON_FILE_2" description: "ServiceFrame unexpected element Route" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_FRAME_IN_COMMON_FILE_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Route not allowed in common files` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath routes/Route ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_frame_in_common_file_3.html" LLMS_URL: "/bundle/rules/entur/service_frame_in_common_file_3.md" type: "Validation Rule" title: "SERVICE_FRAME_IN_COMMON_FILE_3" description: "ServiceFrame unexpected element JourneyPattern" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_FRAME_IN_COMMON_FILE_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `JourneyPattern not allowed in common files` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath journeyPatterns/JourneyPattern | journeyPatterns/ServiceJourneyPattern ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_1.html" LLMS_URL: "/bundle/rules/entur/service_journey_1.md" type: "Validation Rule" title: "SERVICE_JOURNEY_1" description: "ServiceJourney must exist" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `There should be at least one ServiceJourney` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_10.html" LLMS_URL: "/bundle/rules/entur/service_journey_10.md" type: "Validation Rule" title: "SERVICE_JOURNEY_10" description: "ServiceJourney missing reference to JourneyPattern" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_10" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `The ServiceJourney does not refer to a JourneyPattern` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[not(JourneyPatternRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_11.html" LLMS_URL: "/bundle/rules/entur/service_journey_11.md" type: "Validation Rule" title: "SERVICE_JOURNEY_11" description: "ServiceJourney invalid overriding of transport modes" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_11" standard: "NeTEx" source: "entur" severity: "WARNING" category: "semantic" maturity: "draft" --- # Details - **Message:** `If overriding Line TransportMode or TransportSubmode on a ServiceJourney, both elements must be present` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[(TransportMode and not(TransportSubmode)) or (not(TransportMode) and TransportSubmode)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_12.html" LLMS_URL: "/bundle/rules/entur/service_journey_12.md" type: "Validation Rule" title: "SERVICE_JOURNEY_12" description: "ServiceJourney missing OperatorRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_12" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing OperatorRef on ServiceJourney (not defined on Line)` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[not(OperatorRef) and not(//ServiceFrame/lines/*[self::Line or self::FlexibleLine]/OperatorRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_13.html" LLMS_URL: "/bundle/rules/entur/service_journey_13.md" type: "Validation Rule" title: "SERVICE_JOURNEY_13" description: "ServiceJourney missing reference to calendar data" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_13" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `The ServiceJourney does not refer to DayTypes nor DatedServiceJourneys` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[not(dayTypes/DayTypeRef) and not(@id=//TimetableFrame/vehicleJourneys/DatedServiceJourney/ServiceJourneyRef/@ref)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_14.html" LLMS_URL: "/bundle/rules/entur/service_journey_14.md" type: "Validation Rule" title: "SERVICE_JOURNEY_14" description: "ServiceJourney duplicated reference to calendar data" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_14" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `The ServiceJourney references both DayTypes and DatedServiceJourneys` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[dayTypes/DayTypeRef and @id=//TimetableFrame/vehicleJourneys/DatedServiceJourney/ServiceJourneyRef/@ref] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_16.html" LLMS_URL: "/bundle/rules/entur/service_journey_16.md" type: "Validation Rule" title: "SERVICE_JOURNEY_16" description: "ServiceJourney multiple versions" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_16" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `ServiceJourney is repeated with a different version` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[@id = preceding-sibling::ServiceJourney/@id] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_17.html" LLMS_URL: "/bundle/rules/entur/service_journey_17.md" type: "Validation Rule" title: "SERVICE_JOURNEY_17" description: "Non-unique NeTEx id for TimetabledPassingTime" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_17" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Scope:** **frame:** ValidateDuplicatedTimetabledPassingTimeId # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_2.html" LLMS_URL: "/bundle/rules/entur/service_journey_2.md" type: "Validation Rule" title: "SERVICE_JOURNEY_2" description: "ServiceJourney illegal element Call" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Element Call not allowed` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/calls ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_3.html" LLMS_URL: "/bundle/rules/entur/service_journey_3.md" type: "Validation Rule" title: "SERVICE_JOURNEY_3" description: "ServiceJourney missing element PassingTimes" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `The ServiceJourney does not specify any TimetabledPassingTimes` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[not(passingTimes)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_4.html" LLMS_URL: "/bundle/rules/entur/service_journey_4.md" type: "Validation Rule" title: "SERVICE_JOURNEY_4" description: "ServiceJourney missing arrival and departure" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_4" standard: "NeTEx" source: "entur" severity: "ERROR" category: "semantic" maturity: "draft" --- # Details - **Message:** `TimetabledPassingTime contains neither DepartureTime/EarliestDepartureTime nor ArrivalTime/LatestArrivalTime` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/passingTimes/TimetabledPassingTime[not(DepartureTime or EarliestDepartureTime) and not(ArrivalTime or LatestArrivalTime)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_5.html" LLMS_URL: "/bundle/rules/entur/service_journey_5.md" type: "Validation Rule" title: "SERVICE_JOURNEY_5" description: "ServiceJourney missing departure times" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_5" standard: "NeTEx" source: "entur" severity: "ERROR" category: "semantic" maturity: "draft" --- # Details - **Message:** `All TimetabledPassingTime except last call must have DepartureTime` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[not(passingTimes/TimetabledPassingTime[1]/DepartureTime) and not(passingTimes/TimetabledPassingTime[1]/EarliestDepartureTime)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_6.html" LLMS_URL: "/bundle/rules/entur/service_journey_6.md" type: "Validation Rule" title: "SERVICE_JOURNEY_6" description: "ServiceJourney missing arrival time for last stop" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_6" standard: "NeTEx" source: "entur" severity: "ERROR" category: "semantic" maturity: "draft" --- # Details - **Message:** `Last TimetabledPassingTime must have ArrivalTime` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney[count(passingTimes/TimetabledPassingTime[last()]/ArrivalTime) = 0 and count(passingTimes/TimetabledPassingTime[last()]/LatestArrivalTime) = 0] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_7.html" LLMS_URL: "/bundle/rules/entur/service_journey_7.md" type: "Validation Rule" title: "SERVICE_JOURNEY_7" description: "ServiceJourney identical arrival and departure" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_7" standard: "NeTEx" source: "entur" severity: "WARNING" category: "semantic" maturity: "draft" --- # Details - **Message:** `ArrivalTime is identical to DepartureTime` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/passingTimes/TimetabledPassingTime[DepartureTime = ArrivalTime] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_8.html" LLMS_URL: "/bundle/rules/entur/service_journey_8.md" type: "Validation Rule" title: "SERVICE_JOURNEY_8" description: "ServiceJourney missing id on TimetabledPassingTime" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_8" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing id on TimetabledPassingTime` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/passingTimes/TimetabledPassingTime[not(@id)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_journey_9.html" LLMS_URL: "/bundle/rules/entur/service_journey_9.md" type: "Validation Rule" title: "SERVICE_JOURNEY_9" description: "ServiceJourney missing version on TimetabledPassingTime" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_JOURNEY_9" standard: "NeTEx" source: "entur" severity: "WARNING" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing version on TimetabledPassingTime` - **Scope:** **frame:** TimetableFrame # Implementation ```xpath vehicleJourneys/ServiceJourney/passingTimes/TimetabledPassingTime[not(@version)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_link_1.html" LLMS_URL: "/bundle/rules/entur/service_link_1.md" type: "Validation Rule" title: "SERVICE_LINK_1" description: "ServiceLink missing FromPointRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_LINK_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing FromPointRef on ServiceLink` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath serviceLinks/ServiceLink[not(FromPointRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_link_2.html" LLMS_URL: "/bundle/rules/entur/service_link_2.md" type: "Validation Rule" title: "SERVICE_LINK_2" description: "ServiceLink missing ToPointRef" tags: - "entur" - "netex" - "integrity" timestamp: "2026-06-12T00:00:00" code: "SERVICE_LINK_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "integrity" maturity: "draft" --- # Details - **Message:** `Missing ToPointRef on ServiceLink` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath serviceLinks/ServiceLink[not(ToPointRef)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_link_3.html" LLMS_URL: "/bundle/rules/entur/service_link_3.md" type: "Validation Rule" title: "SERVICE_LINK_3" description: "ServiceLink missing element Projections" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_LINK_3" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing projections element on ServiceLink` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath serviceLinks/ServiceLink[not(projections)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_link_4.html" LLMS_URL: "/bundle/rules/entur/service_link_4.md" type: "Validation Rule" title: "SERVICE_LINK_4" description: "ServiceLink missing coordinate list" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SERVICE_LINK_4" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Missing coordinates list on ServiceLink` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath serviceLinks/ServiceLink/projections/LinkSequenceProjection/g:LineString/g:posList[not(normalize-space(text()))] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/service_link_5.html" LLMS_URL: "/bundle/rules/entur/service_link_5.md" type: "Validation Rule" title: "SERVICE_LINK_5" description: "ServiceLink less than 2 points" tags: - "entur" - "netex" - "semantic" timestamp: "2026-06-12T00:00:00" code: "SERVICE_LINK_5" standard: "NeTEx" source: "entur" severity: "WARNING" category: "semantic" maturity: "draft" --- # Details - **Message:** `Less than 2 points on ServiceLink` - **Scope:** **frame:** ServiceFrame # Implementation ```xpath serviceLinks/ServiceLink/projections/LinkSequenceProjection/g:LineString[count(g:pos) = 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/site_frame_in_common_file.html" LLMS_URL: "/bundle/rules/entur/site_frame_in_common_file.md" type: "Validation Rule" title: "SITE_FRAME_IN_COMMON_FILE" description: "SiteFrame unexpected SiteFrame in Common file" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SITE_FRAME_IN_COMMON_FILE" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Unexpected element SiteFrame. It will be ignored` - **Scope:** **frame:** SiteFrame # Implementation ```xpath . ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/site_frame_in_line_file.html" LLMS_URL: "/bundle/rules/entur/site_frame_in_line_file.md" type: "Validation Rule" title: "SITE_FRAME_IN_LINE_FILE" description: "SiteFrame unexpected SiteFrame in Line file" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "SITE_FRAME_IN_LINE_FILE" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `Unexpected element SiteFrame. It will be ignored` - **Scope:** **frame:** SiteFrame # Implementation ```xpath . ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/timetable_frame_in_common_file.html" LLMS_URL: "/bundle/rules/entur/timetable_frame_in_common_file.md" type: "Validation Rule" title: "TIMETABLE_FRAME_IN_COMMON_FILE" description: "TimetableFrame illegal in Common file" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "TIMETABLE_FRAME_IN_COMMON_FILE" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Timetable frame not allowed in common files` - **Scope:** **frame:** SingleFrames # Implementation ```xpath TimetableFrame ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_common_file_1.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_common_file_1.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_COMMON_FILE_1" description: "ValidityConditions missing in ServiceFrame or ServiceCalendarFrame" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_COMMON_FILE_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Neither ServiceFrame nor ServiceCalendarFrame defines ValidityConditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath ServiceFrame[validityConditions] | ServiceCalendarFrame[validityConditions] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_common_file_2.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_common_file_2.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_COMMON_FILE_2" description: "ValidityConditions missing in ResourceFrames" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_COMMON_FILE_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Multiple ResourceFrames without validity conditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath ResourceFrame[not(validityConditions) and count(//ResourceFrame) > 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_common_file_3.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_common_file_3.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_COMMON_FILE_3" description: "ValidityConditions missing in ServiceFrames" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_COMMON_FILE_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Multiple ServiceFrames without validity conditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath ServiceFrame[not(validityConditions) and count(//ServiceFrame) > 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_common_file_4.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_common_file_4.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_COMMON_FILE_4" description: "ValidityConditions missing in ServiceCalendarFrames" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_COMMON_FILE_4" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Multiple ServiceCalendarFrames without validity conditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath ServiceCalendarFrame[not(validityConditions) and count(//ServiceCalendarFrame) > 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_line_file_1.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_line_file_1.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_LINE_FILE_1" description: "ValidityConditions missing in all frames" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_LINE_FILE_1" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Neither ServiceFrame, ServiceCalendarFrame nor TimetableFrame defines ValidityConditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath ServiceFrame[validityConditions] | ServiceCalendarFrame[validityConditions] | TimetableFrame[validityConditions] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_line_file_2.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_line_file_2.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_LINE_FILE_2" description: "ValidityConditions missing in ServiceFrames" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_LINE_FILE_2" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Multiple frames of same type without validity conditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath ServiceFrame[not(validityConditions) and count(//ServiceFrame) > 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_line_file_3.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_line_file_3.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_LINE_FILE_3" description: "ValidityConditions missing in ServiceCalendarFrames" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_LINE_FILE_3" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Multiple frames of same type without validity conditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath ServiceCalendarFrame[not(validityConditions) and count(//ServiceCalendarFrame) > 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_line_file_4.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_line_file_4.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_LINE_FILE_4" description: "ValidityConditions missing in TimeTableFrames" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_LINE_FILE_4" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Multiple frames of same type without validity conditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath TimetableFrame[not(validityConditions) and count(//TimetableFrame) > 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/validity_conditions_in_line_file_5.html" LLMS_URL: "/bundle/rules/entur/validity_conditions_in_line_file_5.md" type: "Validation Rule" title: "VALIDITY_CONDITIONS_IN_LINE_FILE_5" description: "ValidityConditions missing in VehicleScheduleFrame" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "VALIDITY_CONDITIONS_IN_LINE_FILE_5" standard: "NeTEx" source: "entur" severity: "ERROR" category: "structure" maturity: "draft" --- # Details - **Message:** `Multiple frames of same type without validity conditions` - **Scope:** **frame:** SingleFrames # Implementation ```xpath VehicleScheduleFrame[not(validityConditions) and count(//VehicleScheduleFrame) > 1] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/version_non_numeric.html" LLMS_URL: "/bundle/rules/entur/version_non_numeric.md" type: "Validation Rule" title: "VERSION_NON_NUMERIC" description: "Non-numeric NeTEx version" tags: - "entur" - "netex" - "format" timestamp: "2026-06-12T00:00:00" code: "VERSION_NON_NUMERIC" standard: "NeTEx" source: "entur" severity: "WARNING" category: "format" maturity: "draft" --- # Details - **Scope:** **frame:** Root # Implementation ```xpath .//*[@version != 'any' and number(@version) != number(@version)] ``` # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/xml_schema_error.html" LLMS_URL: "/bundle/rules/entur/xml_schema_error.md" type: "Validation Rule" title: "XML_SCHEMA_ERROR" description: "NeTEx XML Schema validation error" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "XML_SCHEMA_ERROR" standard: "NeTEx" source: "entur" severity: "CRITICAL" category: "structure" maturity: "draft" --- # Details - **Message:** `%s` - **Scope:** **frame:** NetexSchemaValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/entur/xml_schema_warning.html" LLMS_URL: "/bundle/rules/entur/xml_schema_warning.md" type: "Validation Rule" title: "XML_SCHEMA_WARNING" description: "NeTEx XML Schema validation warning" tags: - "entur" - "netex" - "structure" timestamp: "2026-06-12T00:00:00" code: "XML_SCHEMA_WARNING" standard: "NeTEx" source: "entur" severity: "WARNING" category: "structure" maturity: "draft" --- # Details - **Message:** `%s` - **Scope:** **frame:** NetexSchemaValidator # Related - Source: [Entur netex-validator-java](/sources/entur.md) # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/rules/mobilitydata" LLMS_URL: "/bundle/rules/mobilitydata.md" --- # MobilityData canonical GTFS Schedule validator rules * [attribution_without_role](attribution_without_role.md) - Attribution with no role. * [bidirectional_exit_gate](bidirectional_exit_gate.md) - Pathway is bidirectional and has mode 7 (exit gate). * [big_gap_in_service](big_gap_in_service.md) - A service has a gap of more than 13 days between active service dates. * [block_trips_with_overlapping_stop_times](block_trips_with_overlapping_stop_times.md) - Trips with the same block id have overlapping stop times. * [csv_parsing_failed](csv_parsing_failed.md) - Parsing of a CSV file failed. * [decreasing_or_equal_stop_time_distance](decreasing_or_equal_stop_time_distance.md) - Decreasing or equal `shape_dist_traveled` in `stop_times.txt`. * [decreasing_shape_distance](decreasing_shape_distance.md) - Decreasing `shape_dist_traveled` in `shapes.txt`. * [duplicate_fare_media](duplicate_fare_media.md) - Two distinct fare media have the same fare media name and type. * [duplicate_geo_json_key](duplicate_geo_json_key.md) - A key in `locations.geojson` is duplicated. * [duplicate_geography_id](duplicate_geography_id.md) - Geography id is duplicated across multiple files. * [duplicate_key](duplicate_key.md) - Duplicated entity. * [duplicate_route_name](duplicate_route_name.md) - Two distinct routes have either the same `route_short_name`, the same `route_long_name`, or the same combination of `route_short_name` and `route_long_name`. * [duplicated_column](duplicated_column.md) - Duplicated column in CSV. * [empty_column_name](empty_column_name.md) - A column name is empty. * [empty_file](empty_file.md) - A CSV file is empty. * [empty_row](empty_row.md) - A row in the input file has only spaces. * [equal_shape_distance_diff_coordinates](equal_shape_distance_diff_coordinates.md) - Two consecutive points have equal `shape_dist_traveled` and different lat/lon coordinates in `shapes.txt` and the distance between the two points is greater than the 1.11m. * [equal_shape_distance_diff_coordinates_distance_below_threshold](equal_shape_distance_diff_coordinates_distance_below_threshold.md) - Two consecutive points have equal `shape_dist_traveled` and different lat/lon coordinates in `shapes.txt` and the distance between the two points is greater than 0 but less than 1.11m. * [equal_shape_distance_same_coordinates](equal_shape_distance_same_coordinates.md) - Two consecutive points have equal `shape_dist_traveled` and the same lat/lon coordinates in `shapes.txt`. * [expired_calendar](expired_calendar.md) - Dataset should not contain date ranges for services that have already expired. * [fare_product_with_multiple_default_rider_categories](fare_product_with_multiple_default_rider_categories.md) - This notice is generated when a fare product is associated with multiple rider categories that are marked as default. * [fare_transfer_rule_duration_limit_type_without_duration_limit](fare_transfer_rule_duration_limit_type_without_duration_limit.md) - A row from GTFS file `fare_transfer_rules.txt` has a defined `duration_limit_type` field but no `duration_limit` specified. * [fare_transfer_rule_duration_limit_without_type](fare_transfer_rule_duration_limit_without_type.md) - A row from GTFS file `fare_transfer_rules.txt` has a defined `duration_limit` field but no `duration_limit_type` specified. * [fare_transfer_rule_invalid_transfer_count](fare_transfer_rule_invalid_transfer_count.md) - A row from GTFS file `fare_transfer_rules.txt` has a defined `transfer_count` with an invalid value. * [fare_transfer_rule_missing_transfer_count](fare_transfer_rule_missing_transfer_count.md) - A row from `fare_transfer_rules.txt` has `from_leg_group_id` equal to `to_leg_group_id`, but has no `transfer_count` specified. * [fare_transfer_rule_with_forbidden_transfer_count](fare_transfer_rule_with_forbidden_transfer_count.md) - A row from `fare_transfer_rules.txt` has `from_leg_group_id` not equal to `to_leg_group_id`, but has `transfer_count` specified. * [fare_transfer_rule_without_transfer_count](fare_transfer_rule_without_transfer_count.md) - A row from `fare_transfer_rules.txt` has `from_leg_group_id` equal to `to_leg_group_id`, but has no `transfer_count` specified. * [fast_travel_between_consecutive_stops](fast_travel_between_consecutive_stops.md) - A transit vehicle moves too fast between two consecutive stops. * [fast_travel_between_far_stops](fast_travel_between_far_stops.md) - A transit vehicle moves too fast between two far stops. * [feed_expiration_date30_days](feed_expiration_date30_days.md) - Dataset should cover at least the next 30 days of service. * [feed_expiration_date7_days](feed_expiration_date7_days.md) - Dataset should be valid for at least the next 7 days. * [feed_info_lang_and_agency_lang_mismatch](feed_info_lang_and_agency_lang_mismatch.md) - Mismatching feed and agency language fields. * [feed_valid_beyond_total_service_window](feed_valid_beyond_total_service_window.md) - The feed is valid 14 days beyond its total service window. * [forbidden_arrival_or_departure_time](forbidden_arrival_or_departure_time.md) - The arrival or departure times are provided alongside pickup or drop-off windows in `stop_times.txt`. * [forbidden_continuous_pickup_drop_off](forbidden_continuous_pickup_drop_off.md) - Continuous pickup or drop-off are forbidden when routes.continuous_pickup or routes.continuous_drop_off are 0, 2 or 3 and stop_times.start_pickup_drop_off_window or stop_times.end_pickup_drop_off_window are defined for any trip of this route. * [forbidden_drop_off_type](forbidden_drop_off_type.md) - pickup_drop_off_window fields are forbidden when the drop_off_type is regularly scheduled (0). * [forbidden_geography_id](forbidden_geography_id.md) - A stop_time entry has more than one geographical id defined. * [forbidden_pickup_type](forbidden_pickup_type.md) - pickup_drop_off_window fields are forbidden when the pickup_type is regularly scheduled (0) or must be coordinated with the driver (3). * [forbidden_prior_day_booking_field_value](forbidden_prior_day_booking_field_value.md) - A forbidden field value is present for a prior-day booking rule in `booking_rules.txt` * [forbidden_prior_notice_start_day](forbidden_prior_notice_start_day.md) - `prior_notice_start_day` value is forbidden when `prior_notice_duration_max` is set. * [forbidden_prior_notice_start_time](forbidden_prior_notice_start_time.md) - `prior_notice_start_time` value is forbidden when `prior_notice_start_day` value is not set in booking_rules.txt. * [forbidden_real_time_booking_field_value](forbidden_real_time_booking_field_value.md) - A forbidden field value is present for a real-time booking rule in `booking_rules.txt`. * [forbidden_same_day_booking_field_value](forbidden_same_day_booking_field_value.md) - A forbidden field value is present for a same-day booking rule in `booking_rules.txt`. * [forbidden_shape_dist_traveled](forbidden_shape_dist_traveled.md) - A stop_time entry has a `shape_dist_traveled` without a `stop_id` value. * [foreign_key_violation](foreign_key_violation.md) - Wrong foreign key. * [future_calendar](future_calendar.md) - All services in the feed start in the future; no service covers today's date. * [future_feed](future_feed.md) - The feed covers the future only. * [geo_json_duplicated_element](geo_json_duplicated_element.md) - Duplicated elements in locations.geojson file. * [geo_json_unknown_element](geo_json_unknown_element.md) - Unknown elements in locations.geojson file. * [i_o_error](i_o_error.md) - Error in IO operation. * [inconsistent_agency_lang](inconsistent_agency_lang.md) - Inconsistent language among agencies. * [inconsistent_agency_timezone](inconsistent_agency_timezone.md) - Inconsistent Timezone among agencies. * [inconsistent_route_type_for_block_id](inconsistent_route_type_for_block_id.md) - A block should have the same route mode. * [inconsistent_route_type_for_in_seat_transfer](inconsistent_route_type_for_in_seat_transfer.md) - An in-seat transfer should occur in the same route mode. * [invalid_character](invalid_character.md) - This field contains invalid characters, such as the replacement character ("\uFFFD"). * [invalid_color](invalid_color.md) - A field contains an invalid color value. * [invalid_currency](invalid_currency.md) - A field contains a wrong currency code. * [invalid_currency_amount](invalid_currency_amount.md) - A currency amount field has a value that does not match the format of its corresponding currency code field. * [invalid_date](invalid_date.md) - A field cannot be parsed as date. * [invalid_email](invalid_email.md) - A field contains a malformed email address. * [invalid_float](invalid_float.md) - A field cannot be parsed as a floating point number. * [invalid_geometry](invalid_geometry.md) - A polygon in `locations.geojson` is unparsable or invalid. * [invalid_input_files_in_subfolder](invalid_input_files_in_subfolder.md) - At least 1 GTFS file is in a subfolder. * [invalid_integer](invalid_integer.md) - A field cannot be parsed as an integer. * [invalid_language_code](invalid_language_code.md) - A field contains a wrong language code. * [invalid_phone_number](invalid_phone_number.md) - A field contains a malformed phone number. * [invalid_pickup_drop_off_window](invalid_pickup_drop_off_window.md) - The pickup/drop-off window in `stop_times.txt` is invalid. * [invalid_prior_notice_duration_min](invalid_prior_notice_duration_min.md) - An invalid `prior_notice_duration_min` value is present in a booking rule. * [invalid_row_length](invalid_row_length.md) - Invalid csv row length. * [invalid_time](invalid_time.md) - A field cannot be parsed as time. * [invalid_timezone](invalid_timezone.md) - A field cannot be parsed as a timezone. * [invalid_url](invalid_url.md) - A field contains a malformed URL. * [leading_or_trailing_whitespaces](leading_or_trailing_whitespaces.md) - The value in CSV file has leading or trailing whitespaces. * [location_with_unexpected_stop_time](location_with_unexpected_stop_time.md) - A location in `stops.txt` that is not a stop is referenced by some `stop_times.stop_id`. * [location_without_parent_station](location_without_parent_station.md) - A location that must have `parent_station` field does not have it. * [malformed_json](malformed_json.md) - A JSON file is malformed. * [missing_bike_allowance](missing_bike_allowance.md) - Ferry trips should include bike allowance information. * [missing_calendar_and_calendar_date_files](missing_calendar_and_calendar_date_files.md) - Missing GTFS files `calendar.txt` and `calendar_dates.txt`. * [missing_feed_contact_email_and_url](missing_feed_contact_email_and_url.md) - Best Practices for `feed_info.txt` suggest providing at least one of `feed_contact_email` and `feed_contact_url`. * [missing_feed_info_date](missing_feed_info_date.md) - One of `feed_start_date` or `feed_end_date` is specified, but not both. * [missing_level_id](missing_level_id.md) - `stops.level_id` is conditionally required. * [missing_pickup_drop_off_booking_rule_id](missing_pickup_drop_off_booking_rule_id.md) - pickup_booking_rule_id is recommended when pickup_type=2 and drop_off_booking_rule_id is recommended when drop_off_type=2. * [missing_pickup_or_drop_off_window](missing_pickup_or_drop_off_window.md) - Either the start or end pickup/drop-off window is missing in `stop_times.txt`. * [missing_prior_day_booking_field_value](missing_prior_day_booking_field_value.md) - The `prior_notice_last_day` and the `prior_notice_last_time` values are required for prior day `booking_type` in booking_rules.txt. * [missing_prior_notice_duration_min](missing_prior_notice_duration_min.md) - `prior_notice_duration_min` value is required for same day `booking_type` in booking_rules.txt. * [missing_prior_notice_last_day](missing_prior_notice_last_day.md) - The `prior_notice_last_day` is required when booking_type=2 (prior day booking) is specified in booking_rules.txt. * [missing_prior_notice_last_time](missing_prior_notice_last_time.md) - The `prior_notice_last_time` is required when booking_type=2 (prior day booking) is specified in booking_rules.txt. * [missing_prior_notice_start_time](missing_prior_notice_start_time.md) - `prior_notice_start_time` value is required when `prior_notice_start_day` value is set in booking_rules.txt. * [missing_recommended_column](missing_recommended_column.md) - A recommended column is missing in the input file. * [missing_recommended_field](missing_recommended_field.md) - A recommended field is missing. * [missing_recommended_file](missing_recommended_file.md) - A recommended file is missing. * [missing_required_agency_id](missing_required_agency_id.md) - Agency id is required when there are multiple agencies. * [missing_required_column](missing_required_column.md) - A required column is missing in the input file. * [missing_required_element](missing_required_element.md) - A required element is missing in `locations.geojson`. * [missing_required_field](missing_required_field.md) - A required field is missing. * [missing_required_file](missing_required_file.md) - A required file is missing. * [missing_stop_name](missing_stop_name.md) - `stops.stop_name` is required for `location_type` equal to `0`, `1`, or `2`. * [missing_stop_times_record](missing_stop_times_record.md) - Only one stop_times record is found where two are required. * [missing_timepoint_value](missing_timepoint_value.md) - `stop_times.timepoint` value is missing for a record. * [missing_trip_edge](missing_trip_edge.md) - Missing trip edge `arrival_time` or `departure_time`. * [mixed_case_recommended_field](mixed_case_recommended_field.md) - This field has customer-facing text and should use Mixed Case (should contain upper and lower case letters). * [more_than_one_entity](more_than_one_entity.md) - More than one row in CSV. * [new_line_in_value](new_line_in_value.md) - New line or carriage return in a value in CSV file. * [non_ascii_or_non_printable_char](non_ascii_or_non_printable_char.md) - Non ascii or non printable char in ID field. * [number_out_of_range](number_out_of_range.md) - Out of range value. * [overlapping_frequency](overlapping_frequency.md) - Trip frequencies overlap. * [overlapping_zone_and_pickup_drop_off_window](overlapping_zone_and_pickup_drop_off_window.md) - Two entities have overlapping pickup/drop-off windows and zones. * [pathway_dangling_generic_node](pathway_dangling_generic_node.md) - A generic node has only one incident location in a pathway graph. * [pathway_loop](pathway_loop.md) - A pathway starts and ends at the same location. * [pathway_to_platform_with_boarding_areas](pathway_to_platform_with_boarding_areas.md) - A pathway has an endpoint that is a platform which has boarding areas. * [pathway_to_stop_with_access_outside_of_station_pathways](pathway_to_stop_with_access_outside_of_station_pathways.md) - A pathway has an endpoint that is a stop with stop_access=1, which should be accessible outside of the station's pathways. * [pathway_to_wrong_location_type](pathway_to_wrong_location_type.md) - A pathway has an endpoint that is a station. * [pathway_unreachable_location](pathway_unreachable_location.md) - A location is not reachable at least in one direction: from the entrances or to the exits. * [platform_without_parent_station](platform_without_parent_station.md) - A platform has no `parent_station` field set. * [point_near_origin](point_near_origin.md) - A point is too close to origin `(0, 0)`. * [point_near_pole](point_near_pole.md) - A point is too close to the North or South Pole. * [prior_notice_last_day_after_start_day](prior_notice_last_day_after_start_day.md) - Prior notice last day should not be greater than the prior notice start day in booking_rules.txt. * [route_both_short_and_long_name_missing](route_both_short_and_long_name_missing.md) - Both `route_short_name` and `route_long_name` are missing for a route. * [route_color_contrast](route_color_contrast.md) - Insufficient route color contrast. * [route_long_name_contains_short_name](route_long_name_contains_short_name.md) - Long name should not contain short name for a single route. * [route_networks_specified_in_more_than_one_file](route_networks_specified_in_more_than_one_file.md) - Indicates that route network identifiers are specified across multiple files. * [route_short_name_too_long](route_short_name_too_long.md) - Short name of a route is too long (more than 12 characters). * [runtime_exception_in_loader_error](runtime_exception_in_loader_error.md) - RuntimeException while loading GTFS dataset in memory. * [runtime_exception_in_validator_error](runtime_exception_in_validator_error.md) - RuntimeException while validating GTFS archive. * [same_name_and_description_for_route](same_name_and_description_for_route.md) - Same name and description for route. * [same_name_and_description_for_stop](same_name_and_description_for_stop.md) - Same name and description for stop. * [same_route_and_agency_url](same_route_and_agency_url.md) - Same `routes.route_url` and `agency.agency_url`. * [same_stop_and_agency_url](same_stop_and_agency_url.md) - Same `stops.stop_url` and `agency.agency_url`. * [same_stop_and_route_url](same_stop_and_route_url.md) - Same `stops.stop_url` and `routes.route_url`. * [service_extends_far_in_the_future](service_extends_far_in_the_future.md) - A service end date is more than 2 years in the future. * [service_has_no_active_day_of_the_week](service_has_no_active_day_of_the_week.md) - A service is not valid for any day of the week. * [service_window_outside_feed_period](service_window_outside_feed_period.md) - A service window is not covered by the feed's validity period. * [single_shape_point](single_shape_point.md) - The shape within `shapes.txt` contains a single shape point. * [start_and_end_range_equal](start_and_end_range_equal.md) - Two date or time fields are equal. * [start_and_end_range_out_of_order](start_and_end_range_out_of_order.md) - Two date or time fields are out of order. * [station_with_parent_station](station_with_parent_station.md) - A station has `parent_station` field set. * [stop_access_specified_for_incorrect_location](stop_access_specified_for_incorrect_location.md) - A location that is not a stop has stop_access specified. * [stop_access_specified_for_stop_with_no_parent_station](stop_access_specified_for_stop_with_no_parent_station.md) - A stop without a value for parent station has stop_access specified. * [stop_has_too_many_matches_for_shape](stop_has_too_many_matches_for_shape.md) - Stop entry that has many potential matches to the trip's path of travel, as defined by the shape entry in `shapes.txt`. * [stop_time_timepoint_without_times](stop_time_timepoint_without_times.md) - `arrival_time` or `departure_time` not specified for timepoint. * [stop_time_with_arrival_before_previous_departure_time](stop_time_with_arrival_before_previous_departure_time.md) - Backwards time travel between stops in `stop_times.txt` * [stop_time_with_only_arrival_or_departure_time](stop_time_with_only_arrival_or_departure_time.md) - Missing `stop_times.arrival_time` or `stop_times.departure_time`. * [stop_too_far_from_shape](stop_too_far_from_shape.md) - Stop too far from trip shape. * [stop_too_far_from_shape_using_user_distance](stop_too_far_from_shape_using_user_distance.md) - Stop time too far from shape. * [stop_without_location](stop_without_location.md) - `stop_lat` and/or `stop_lon` is missing for stop with `location_type` equal to`0`, `1`, or `2` * [stop_without_stop_time](stop_without_stop_time.md) - A stop in `stops.txt` is not referenced by any `stop_times.stop_id`. * [stop_without_zone_id](stop_without_zone_id.md) - Stop without value for `stops.zone_id` contained in a route with a zone-dependent fare rule. * [stops_match_shape_out_of_order](stops_match_shape_out_of_order.md) - Two stop entries are different than their arrival-departure order defined by `shapes.txt`. * [thread_execution_error](thread_execution_error.md) - ExecutionException during multithreaded validation * [timeframe_only_start_or_end_time_specified](timeframe_only_start_or_end_time_specified.md) - A row from `timeframes.txt` was found with only one of `start_time` and `end_time` specified. * [timeframe_overlap](timeframe_overlap.md) - Two entries in `timeframes.txt` with the same `timeframe_group_id` and `service_id` have overlapping time intervals. * [timeframe_start_or_end_time_greater_than_twenty_four_hours](timeframe_start_or_end_time_greater_than_twenty_four_hours.md) - A time in `timeframes.txt` is greater than `24:00:00`. * [too_many_rows](too_many_rows.md) - A CSV file has too many rows. * [transfer_distance_above_2_km](transfer_distance_above_2_km.md) - The transfer distance from stop to stop in `transfers.txt` is larger than 2 km. * [transfer_distance_too_large](transfer_distance_too_large.md) - The transfer distance from stop to stop in `transfers.txt` is larger than 10 km. * [transfer_with_invalid_stop_location_type](transfer_with_invalid_stop_location_type.md) - A stop id field from GTFS file `transfers.txt` references a stop that has a `location_type` other than 0 or 1 (aka Stop/Platform or Station). * [transfer_with_invalid_trip_and_route](transfer_with_invalid_trip_and_route.md) - A trip id field from GTFS file `transfers.txt` references a route that does not match its `trips.txt` `route_id`. * [transfer_with_invalid_trip_and_stop](transfer_with_invalid_trip_and_stop.md) - A trip id field from GTFS file `transfers.txt` references a stop that is not included in the referenced trip's stop-times. * [transfer_with_suspicious_mid_trip_in_seat](transfer_with_suspicious_mid_trip_in_seat.md) - A trip id field from GTFS file `transfers.txt` with an in-seat transfer type references a stop that is not in the expected position in the trip's stop-times. * [translation_foreign_key_violation](translation_foreign_key_violation.md) - An entity with the given `record_id` and `record_sub_id` cannot be found in the referenced table. * [translation_unexpected_value](translation_unexpected_value.md) - A field in a translations row has value but must be empty. * [translation_unknown_table_name](translation_unknown_table_name.md) - A translation references an unknown or missing GTFS table. * [trip_coverage_not_active_for_next7_days](trip_coverage_not_active_for_next7_days.md) - Trips data should be valid for at least the next seven days. * [trip_distance_exceeds_shape_distance](trip_distance_exceeds_shape_distance.md) - The distance between the last shape point and last stop point is greater than or equal to the 11.1m threshold. * [trip_distance_exceeds_shape_distance_below_threshold](trip_distance_exceeds_shape_distance_below_threshold.md) - The distance between the last shape point and last stop point is greater than 0 but less than the 11.1m threshold. * [trip_headsign_matches_intermediate_stop](trip_headsign_matches_intermediate_stop.md) - Trip headsign matches the name of an intermediate stop, not the last stop. * [trip_with_shape_dist_traveled_but_no_shape_distances](trip_with_shape_dist_traveled_but_no_shape_distances.md) - A trip has shape_dist_traveled values in stop_times.txt but the shape referenced by the trip's shape_id does not have shape_dist_traveled values on all of its points in shapes.txt. * [u_r_i_syntax_error](u_r_i_syntax_error.md) - A string could not be parsed as a URI reference. * [unexpected_enum_value](unexpected_enum_value.md) - An enum has an unexpected value. * [unknown_column](unknown_column.md) - A column name is unknown. * [unknown_file](unknown_file.md) - A file is unknown. * [unsorted_stop_times](unsorted_stop_times.md) - Stop times are not sorted by trip_id and stop_sequence. * [unsupported_feature_type](unsupported_feature_type.md) - An unsupported feature type is used in the `locations.geojson` file. * [unsupported_geo_json_type](unsupported_geo_json_type.md) - An unsupported GeoJSON type is used in the `locations.geojson` file. * [unsupported_geometry_type](unsupported_geometry_type.md) - A GeoJSON feature has an unsupported geometry type in `locations.geojson`. * [unusable_trip](unusable_trip.md) - Trips must have more than one stop to be usable. * [unused_parent_station](unused_parent_station.md) - Unused parent station. * [unused_shape](unused_shape.md) - Shape is not used in GTFS file `trips.txt`. * [unused_station](unused_station.md) - Unused station. * [unused_trip](unused_trip.md) - Trip is not be used in `stop_times.txt` * [wrong_parent_location_type](wrong_parent_location_type.md) - Incorrect type of the parent location. --- URL: "/bundle/rules/mobilitydata/attribution_without_role.html" LLMS_URL: "/bundle/rules/mobilitydata/attribution_without_role.md" type: "Validation Rule" title: "attribution_without_role" description: "Attribution with no role." resource: "https://gtfs-validator.mobilitydata.org/rules.html#attribution_without_role" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "attribution_without_role" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [attribution_without_role rule reference](https://gtfs-validator.mobilitydata.org/rules.html#attribution_without_role) --- URL: "/bundle/rules/mobilitydata/bidirectional_exit_gate.html" LLMS_URL: "/bundle/rules/mobilitydata/bidirectional_exit_gate.md" type: "Validation Rule" title: "bidirectional_exit_gate" description: "Pathway is bidirectional and has mode 7 (exit gate)." resource: "https://gtfs-validator.mobilitydata.org/rules.html#bidirectional_exit_gate" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "bidirectional_exit_gate" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [bidirectional_exit_gate rule reference](https://gtfs-validator.mobilitydata.org/rules.html#bidirectional_exit_gate) --- URL: "/bundle/rules/mobilitydata/big_gap_in_service.html" LLMS_URL: "/bundle/rules/mobilitydata/big_gap_in_service.md" type: "Validation Rule" title: "big_gap_in_service" description: "A service has a gap of more than 13 days between active service dates." resource: "https://gtfs-validator.mobilitydata.org/rules.html#big_gap_in_service" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "big_gap_in_service" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "currency" maturity: "draft" --- # Parameters - `gap_days` = 13 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [big_gap_in_service rule reference](https://gtfs-validator.mobilitydata.org/rules.html#big_gap_in_service) --- URL: "/bundle/rules/mobilitydata/block_trips_with_overlapping_stop_times.html" LLMS_URL: "/bundle/rules/mobilitydata/block_trips_with_overlapping_stop_times.md" type: "Validation Rule" title: "block_trips_with_overlapping_stop_times" description: "Trips with the same block id have overlapping stop times." resource: "https://gtfs-validator.mobilitydata.org/rules.html#block_trips_with_overlapping_stop_times" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "block_trips_with_overlapping_stop_times" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [block_trips_with_overlapping_stop_times rule reference](https://gtfs-validator.mobilitydata.org/rules.html#block_trips_with_overlapping_stop_times) --- URL: "/bundle/rules/mobilitydata/csv_parsing_failed.html" LLMS_URL: "/bundle/rules/mobilitydata/csv_parsing_failed.md" type: "Validation Rule" title: "csv_parsing_failed" description: "Parsing of a CSV file failed." resource: "https://gtfs-validator.mobilitydata.org/rules.html#csv_parsing_failed" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "csv_parsing_failed" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [csv_parsing_failed rule reference](https://gtfs-validator.mobilitydata.org/rules.html#csv_parsing_failed) --- URL: "/bundle/rules/mobilitydata/decreasing_or_equal_stop_time_distance.html" LLMS_URL: "/bundle/rules/mobilitydata/decreasing_or_equal_stop_time_distance.md" type: "Validation Rule" title: "decreasing_or_equal_stop_time_distance" description: "Decreasing or equal `shape_dist_traveled` in `stop_times.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#decreasing_or_equal_stop_time_distance" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "decreasing_or_equal_stop_time_distance" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [decreasing_or_equal_stop_time_distance rule reference](https://gtfs-validator.mobilitydata.org/rules.html#decreasing_or_equal_stop_time_distance) --- URL: "/bundle/rules/mobilitydata/decreasing_shape_distance.html" LLMS_URL: "/bundle/rules/mobilitydata/decreasing_shape_distance.md" type: "Validation Rule" title: "decreasing_shape_distance" description: "Decreasing `shape_dist_traveled` in `shapes.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#decreasing_shape_distance" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "decreasing_shape_distance" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [decreasing_shape_distance rule reference](https://gtfs-validator.mobilitydata.org/rules.html#decreasing_shape_distance) --- URL: "/bundle/rules/mobilitydata/duplicate_fare_media.html" LLMS_URL: "/bundle/rules/mobilitydata/duplicate_fare_media.md" type: "Validation Rule" title: "duplicate_fare_media" description: "Two distinct fare media have the same fare media name and type." resource: "https://gtfs-validator.mobilitydata.org/rules.html#duplicate_fare_media" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "duplicate_fare_media" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [duplicate_fare_media rule reference](https://gtfs-validator.mobilitydata.org/rules.html#duplicate_fare_media) --- URL: "/bundle/rules/mobilitydata/duplicate_geo_json_key.html" LLMS_URL: "/bundle/rules/mobilitydata/duplicate_geo_json_key.md" type: "Validation Rule" title: "duplicate_geo_json_key" description: "A key in `locations.geojson` is duplicated." resource: "https://gtfs-validator.mobilitydata.org/rules.html#duplicate_geo_json_key" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "duplicate_geo_json_key" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [duplicate_geo_json_key rule reference](https://gtfs-validator.mobilitydata.org/rules.html#duplicate_geo_json_key) --- URL: "/bundle/rules/mobilitydata/duplicate_geography_id.html" LLMS_URL: "/bundle/rules/mobilitydata/duplicate_geography_id.md" type: "Validation Rule" title: "duplicate_geography_id" description: "Geography id is duplicated across multiple files." resource: "https://gtfs-validator.mobilitydata.org/rules.html#duplicate_geography_id" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "duplicate_geography_id" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [duplicate_geography_id rule reference](https://gtfs-validator.mobilitydata.org/rules.html#duplicate_geography_id) --- URL: "/bundle/rules/mobilitydata/duplicate_key.html" LLMS_URL: "/bundle/rules/mobilitydata/duplicate_key.md" type: "Validation Rule" title: "duplicate_key" description: "Duplicated entity." resource: "https://gtfs-validator.mobilitydata.org/rules.html#duplicate_key" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "duplicate_key" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [duplicate_key rule reference](https://gtfs-validator.mobilitydata.org/rules.html#duplicate_key) --- URL: "/bundle/rules/mobilitydata/duplicate_route_name.html" LLMS_URL: "/bundle/rules/mobilitydata/duplicate_route_name.md" type: "Validation Rule" title: "duplicate_route_name" description: "Two distinct routes have either the same `route_short_name`, the same `route_long_name`, or the same combination of `route_short_name` and `route_long_name`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#duplicate_route_name" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "duplicate_route_name" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [duplicate_route_name rule reference](https://gtfs-validator.mobilitydata.org/rules.html#duplicate_route_name) --- URL: "/bundle/rules/mobilitydata/duplicated_column.html" LLMS_URL: "/bundle/rules/mobilitydata/duplicated_column.md" type: "Validation Rule" title: "duplicated_column" description: "Duplicated column in CSV." resource: "https://gtfs-validator.mobilitydata.org/rules.html#duplicated_column" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "duplicated_column" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [duplicated_column rule reference](https://gtfs-validator.mobilitydata.org/rules.html#duplicated_column) --- URL: "/bundle/rules/mobilitydata/empty_column_name.html" LLMS_URL: "/bundle/rules/mobilitydata/empty_column_name.md" type: "Validation Rule" title: "empty_column_name" description: "A column name is empty." resource: "https://gtfs-validator.mobilitydata.org/rules.html#empty_column_name" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "empty_column_name" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [empty_column_name rule reference](https://gtfs-validator.mobilitydata.org/rules.html#empty_column_name) --- URL: "/bundle/rules/mobilitydata/empty_file.html" LLMS_URL: "/bundle/rules/mobilitydata/empty_file.md" type: "Validation Rule" title: "empty_file" description: "A CSV file is empty." resource: "https://gtfs-validator.mobilitydata.org/rules.html#empty_file" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "empty_file" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [empty_file rule reference](https://gtfs-validator.mobilitydata.org/rules.html#empty_file) --- URL: "/bundle/rules/mobilitydata/empty_row.html" LLMS_URL: "/bundle/rules/mobilitydata/empty_row.md" type: "Validation Rule" title: "empty_row" description: "A row in the input file has only spaces." resource: "https://gtfs-validator.mobilitydata.org/rules.html#empty_row" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "empty_row" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [empty_row rule reference](https://gtfs-validator.mobilitydata.org/rules.html#empty_row) --- URL: "/bundle/rules/mobilitydata/equal_shape_distance_diff_coordinates_distance_below_threshold.html" LLMS_URL: "/bundle/rules/mobilitydata/equal_shape_distance_diff_coordinates_distance_below_threshold.md" type: "Validation Rule" title: "equal_shape_distance_diff_coordinates_distance_below_threshold" description: "Two consecutive points have equal `shape_dist_traveled` and different lat/lon coordinates in `shapes.txt` and the distance between the two points is greater than 0 but less than 1.11m." resource: "https://gtfs-validator.mobilitydata.org/rules.html#equal_shape_distance_diff_coordinates_distance_below_threshold" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "equal_shape_distance_diff_coordinates_distance_below_threshold" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Parameters - `distance_threshold_m` = 1.11 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [equal_shape_distance_diff_coordinates_distance_below_threshold rule reference](https://gtfs-validator.mobilitydata.org/rules.html#equal_shape_distance_diff_coordinates_distance_below_threshold) --- URL: "/bundle/rules/mobilitydata/equal_shape_distance_diff_coordinates.html" LLMS_URL: "/bundle/rules/mobilitydata/equal_shape_distance_diff_coordinates.md" type: "Validation Rule" title: "equal_shape_distance_diff_coordinates" description: "Two consecutive points have equal `shape_dist_traveled` and different lat/lon coordinates in `shapes.txt` and the distance between the two points is greater than the 1.11m." resource: "https://gtfs-validator.mobilitydata.org/rules.html#equal_shape_distance_diff_coordinates" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "equal_shape_distance_diff_coordinates" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Parameters - `distance_threshold_m` = 1.11 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [equal_shape_distance_diff_coordinates rule reference](https://gtfs-validator.mobilitydata.org/rules.html#equal_shape_distance_diff_coordinates) --- URL: "/bundle/rules/mobilitydata/equal_shape_distance_same_coordinates.html" LLMS_URL: "/bundle/rules/mobilitydata/equal_shape_distance_same_coordinates.md" type: "Validation Rule" title: "equal_shape_distance_same_coordinates" description: "Two consecutive points have equal `shape_dist_traveled` and the same lat/lon coordinates in `shapes.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#equal_shape_distance_same_coordinates" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "equal_shape_distance_same_coordinates" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [equal_shape_distance_same_coordinates rule reference](https://gtfs-validator.mobilitydata.org/rules.html#equal_shape_distance_same_coordinates) --- URL: "/bundle/rules/mobilitydata/expired_calendar.html" LLMS_URL: "/bundle/rules/mobilitydata/expired_calendar.md" type: "Validation Rule" title: "expired_calendar" description: "Dataset should not contain date ranges for services that have already expired." resource: "https://gtfs-validator.mobilitydata.org/rules.html#expired_calendar" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "expired_calendar" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "currency" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [expired_calendar rule reference](https://gtfs-validator.mobilitydata.org/rules.html#expired_calendar) --- URL: "/bundle/rules/mobilitydata/fare_product_with_multiple_default_rider_categories.html" LLMS_URL: "/bundle/rules/mobilitydata/fare_product_with_multiple_default_rider_categories.md" type: "Validation Rule" title: "fare_product_with_multiple_default_rider_categories" description: "This notice is generated when a fare product is associated with multiple rider categories that are marked as default." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fare_product_with_multiple_default_rider_categories" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "fare_product_with_multiple_default_rider_categories" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fare_product_with_multiple_default_rider_categories rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fare_product_with_multiple_default_rider_categories) --- URL: "/bundle/rules/mobilitydata/fare_transfer_rule_duration_limit_type_without_duration_limit.html" LLMS_URL: "/bundle/rules/mobilitydata/fare_transfer_rule_duration_limit_type_without_duration_limit.md" type: "Validation Rule" title: "fare_transfer_rule_duration_limit_type_without_duration_limit" description: "A row from GTFS file `fare_transfer_rules.txt` has a defined `duration_limit_type` field but no `duration_limit` specified." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_duration_limit_type_without_duration_limit" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "fare_transfer_rule_duration_limit_type_without_duration_limit" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fare_transfer_rule_duration_limit_type_without_duration_limit rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_duration_limit_type_without_duration_limit) --- URL: "/bundle/rules/mobilitydata/fare_transfer_rule_duration_limit_without_type.html" LLMS_URL: "/bundle/rules/mobilitydata/fare_transfer_rule_duration_limit_without_type.md" type: "Validation Rule" title: "fare_transfer_rule_duration_limit_without_type" description: "A row from GTFS file `fare_transfer_rules.txt` has a defined `duration_limit` field but no `duration_limit_type` specified." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_duration_limit_without_type" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "fare_transfer_rule_duration_limit_without_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fare_transfer_rule_duration_limit_without_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_duration_limit_without_type) --- URL: "/bundle/rules/mobilitydata/fare_transfer_rule_invalid_transfer_count.html" LLMS_URL: "/bundle/rules/mobilitydata/fare_transfer_rule_invalid_transfer_count.md" type: "Validation Rule" title: "fare_transfer_rule_invalid_transfer_count" description: "A row from GTFS file `fare_transfer_rules.txt` has a defined `transfer_count` with an invalid value." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_invalid_transfer_count" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "fare_transfer_rule_invalid_transfer_count" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fare_transfer_rule_invalid_transfer_count rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_invalid_transfer_count) --- URL: "/bundle/rules/mobilitydata/fare_transfer_rule_missing_transfer_count.html" LLMS_URL: "/bundle/rules/mobilitydata/fare_transfer_rule_missing_transfer_count.md" type: "Validation Rule" title: "fare_transfer_rule_missing_transfer_count" description: "A row from `fare_transfer_rules.txt` has `from_leg_group_id` equal to `to_leg_group_id`, but has no `transfer_count` specified." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_missing_transfer_count" tags: - "mobilitydata" - "gtfs" - "integrity" - "deprecated" timestamp: "2026-06-12T00:00:00" code: "fare_transfer_rule_missing_transfer_count" standard: "GTFS" source: "mobilitydata" category: "integrity" maturity: "deprecated" severity: null --- # Notes Replaced by fare_transfer_rule_without_transfer_count. # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fare_transfer_rule_missing_transfer_count rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_missing_transfer_count) --- URL: "/bundle/rules/mobilitydata/fare_transfer_rule_with_forbidden_transfer_count.html" LLMS_URL: "/bundle/rules/mobilitydata/fare_transfer_rule_with_forbidden_transfer_count.md" type: "Validation Rule" title: "fare_transfer_rule_with_forbidden_transfer_count" description: "A row from `fare_transfer_rules.txt` has `from_leg_group_id` not equal to `to_leg_group_id`, but has `transfer_count` specified." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_with_forbidden_transfer_count" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "fare_transfer_rule_with_forbidden_transfer_count" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fare_transfer_rule_with_forbidden_transfer_count rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_with_forbidden_transfer_count) --- URL: "/bundle/rules/mobilitydata/fare_transfer_rule_without_transfer_count.html" LLMS_URL: "/bundle/rules/mobilitydata/fare_transfer_rule_without_transfer_count.md" type: "Validation Rule" title: "fare_transfer_rule_without_transfer_count" description: "A row from `fare_transfer_rules.txt` has `from_leg_group_id` equal to `to_leg_group_id`, but has no `transfer_count` specified." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_without_transfer_count" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "fare_transfer_rule_without_transfer_count" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fare_transfer_rule_without_transfer_count rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fare_transfer_rule_without_transfer_count) --- URL: "/bundle/rules/mobilitydata/fast_travel_between_consecutive_stops.html" LLMS_URL: "/bundle/rules/mobilitydata/fast_travel_between_consecutive_stops.md" type: "Validation Rule" title: "fast_travel_between_consecutive_stops" description: "A transit vehicle moves too fast between two consecutive stops." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fast_travel_between_consecutive_stops" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "fast_travel_between_consecutive_stops" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "plausibility" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fast_travel_between_consecutive_stops rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fast_travel_between_consecutive_stops) --- URL: "/bundle/rules/mobilitydata/fast_travel_between_far_stops.html" LLMS_URL: "/bundle/rules/mobilitydata/fast_travel_between_far_stops.md" type: "Validation Rule" title: "fast_travel_between_far_stops" description: "A transit vehicle moves too fast between two far stops." resource: "https://gtfs-validator.mobilitydata.org/rules.html#fast_travel_between_far_stops" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "fast_travel_between_far_stops" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "plausibility" maturity: "draft" --- # Parameters - `min_distance_km` = 10 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [fast_travel_between_far_stops rule reference](https://gtfs-validator.mobilitydata.org/rules.html#fast_travel_between_far_stops) --- URL: "/bundle/rules/mobilitydata/feed_expiration_date30_days.html" LLMS_URL: "/bundle/rules/mobilitydata/feed_expiration_date30_days.md" type: "Validation Rule" title: "feed_expiration_date30_days" description: "Dataset should cover at least the next 30 days of service." resource: "https://gtfs-validator.mobilitydata.org/rules.html#feed_expiration_date30_days" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "feed_expiration_date30_days" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "currency" maturity: "draft" --- # Parameters - `horizon_days` = 30 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [feed_expiration_date30_days rule reference](https://gtfs-validator.mobilitydata.org/rules.html#feed_expiration_date30_days) --- URL: "/bundle/rules/mobilitydata/feed_expiration_date7_days.html" LLMS_URL: "/bundle/rules/mobilitydata/feed_expiration_date7_days.md" type: "Validation Rule" title: "feed_expiration_date7_days" description: "Dataset should be valid for at least the next 7 days." resource: "https://gtfs-validator.mobilitydata.org/rules.html#feed_expiration_date7_days" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "feed_expiration_date7_days" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "currency" maturity: "draft" --- # Parameters - `horizon_days` = 7 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [feed_expiration_date7_days rule reference](https://gtfs-validator.mobilitydata.org/rules.html#feed_expiration_date7_days) --- URL: "/bundle/rules/mobilitydata/feed_info_lang_and_agency_lang_mismatch.html" LLMS_URL: "/bundle/rules/mobilitydata/feed_info_lang_and_agency_lang_mismatch.md" type: "Validation Rule" title: "feed_info_lang_and_agency_lang_mismatch" description: "Mismatching feed and agency language fields." resource: "https://gtfs-validator.mobilitydata.org/rules.html#feed_info_lang_and_agency_lang_mismatch" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "feed_info_lang_and_agency_lang_mismatch" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [feed_info_lang_and_agency_lang_mismatch rule reference](https://gtfs-validator.mobilitydata.org/rules.html#feed_info_lang_and_agency_lang_mismatch) --- URL: "/bundle/rules/mobilitydata/feed_valid_beyond_total_service_window.html" LLMS_URL: "/bundle/rules/mobilitydata/feed_valid_beyond_total_service_window.md" type: "Validation Rule" title: "feed_valid_beyond_total_service_window" description: "The feed is valid 14 days beyond its total service window." resource: "https://gtfs-validator.mobilitydata.org/rules.html#feed_valid_beyond_total_service_window" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "feed_valid_beyond_total_service_window" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "currency" maturity: "draft" --- # Parameters - `horizon_days` = 14 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [feed_valid_beyond_total_service_window rule reference](https://gtfs-validator.mobilitydata.org/rules.html#feed_valid_beyond_total_service_window) --- URL: "/bundle/rules/mobilitydata/forbidden_arrival_or_departure_time.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_arrival_or_departure_time.md" type: "Validation Rule" title: "forbidden_arrival_or_departure_time" description: "The arrival or departure times are provided alongside pickup or drop-off windows in `stop_times.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_arrival_or_departure_time" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_arrival_or_departure_time" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_arrival_or_departure_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_arrival_or_departure_time) --- URL: "/bundle/rules/mobilitydata/forbidden_continuous_pickup_drop_off.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_continuous_pickup_drop_off.md" type: "Validation Rule" title: "forbidden_continuous_pickup_drop_off" description: "Continuous pickup or drop-off are forbidden when routes.continuous_pickup or routes.continuous_drop_off are 0, 2 or 3 and stop_times.start_pickup_drop_off_window or stop_times.end_pickup_drop_off_window are defined for any trip of this route." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_continuous_pickup_drop_off" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_continuous_pickup_drop_off" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_continuous_pickup_drop_off rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_continuous_pickup_drop_off) --- URL: "/bundle/rules/mobilitydata/forbidden_drop_off_type.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_drop_off_type.md" type: "Validation Rule" title: "forbidden_drop_off_type" description: "pickup_drop_off_window fields are forbidden when the drop_off_type is regularly scheduled (0)." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_drop_off_type" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_drop_off_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_drop_off_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_drop_off_type) --- URL: "/bundle/rules/mobilitydata/forbidden_geography_id.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_geography_id.md" type: "Validation Rule" title: "forbidden_geography_id" description: "A stop_time entry has more than one geographical id defined." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_geography_id" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_geography_id" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_geography_id rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_geography_id) --- URL: "/bundle/rules/mobilitydata/forbidden_pickup_type.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_pickup_type.md" type: "Validation Rule" title: "forbidden_pickup_type" description: "pickup_drop_off_window fields are forbidden when the pickup_type is regularly scheduled (0) or must be coordinated with the driver (3)." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_pickup_type" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_pickup_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_pickup_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_pickup_type) --- URL: "/bundle/rules/mobilitydata/forbidden_prior_day_booking_field_value.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_prior_day_booking_field_value.md" type: "Validation Rule" title: "forbidden_prior_day_booking_field_value" description: "A forbidden field value is present for a prior-day booking rule in `booking_rules.txt`" resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_prior_day_booking_field_value" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_prior_day_booking_field_value" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_prior_day_booking_field_value rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_prior_day_booking_field_value) --- URL: "/bundle/rules/mobilitydata/forbidden_prior_notice_start_day.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_prior_notice_start_day.md" type: "Validation Rule" title: "forbidden_prior_notice_start_day" description: "`prior_notice_start_day` value is forbidden when `prior_notice_duration_max` is set." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_prior_notice_start_day" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_prior_notice_start_day" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_prior_notice_start_day rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_prior_notice_start_day) --- URL: "/bundle/rules/mobilitydata/forbidden_prior_notice_start_time.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_prior_notice_start_time.md" type: "Validation Rule" title: "forbidden_prior_notice_start_time" description: "`prior_notice_start_time` value is forbidden when `prior_notice_start_day` value is not set in booking_rules.txt." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_prior_notice_start_time" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_prior_notice_start_time" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_prior_notice_start_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_prior_notice_start_time) --- URL: "/bundle/rules/mobilitydata/forbidden_real_time_booking_field_value.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_real_time_booking_field_value.md" type: "Validation Rule" title: "forbidden_real_time_booking_field_value" description: "A forbidden field value is present for a real-time booking rule in `booking_rules.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_real_time_booking_field_value" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_real_time_booking_field_value" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_real_time_booking_field_value rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_real_time_booking_field_value) --- URL: "/bundle/rules/mobilitydata/forbidden_same_day_booking_field_value.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_same_day_booking_field_value.md" type: "Validation Rule" title: "forbidden_same_day_booking_field_value" description: "A forbidden field value is present for a same-day booking rule in `booking_rules.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_same_day_booking_field_value" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_same_day_booking_field_value" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_same_day_booking_field_value rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_same_day_booking_field_value) --- URL: "/bundle/rules/mobilitydata/forbidden_shape_dist_traveled.html" LLMS_URL: "/bundle/rules/mobilitydata/forbidden_shape_dist_traveled.md" type: "Validation Rule" title: "forbidden_shape_dist_traveled" description: "A stop_time entry has a `shape_dist_traveled` without a `stop_id` value." resource: "https://gtfs-validator.mobilitydata.org/rules.html#forbidden_shape_dist_traveled" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "forbidden_shape_dist_traveled" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [forbidden_shape_dist_traveled rule reference](https://gtfs-validator.mobilitydata.org/rules.html#forbidden_shape_dist_traveled) --- URL: "/bundle/rules/mobilitydata/foreign_key_violation.html" LLMS_URL: "/bundle/rules/mobilitydata/foreign_key_violation.md" type: "Validation Rule" title: "foreign_key_violation" description: "Wrong foreign key." resource: "https://gtfs-validator.mobilitydata.org/rules.html#foreign_key_violation" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "foreign_key_violation" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [foreign_key_violation rule reference](https://gtfs-validator.mobilitydata.org/rules.html#foreign_key_violation) --- URL: "/bundle/rules/mobilitydata/future_calendar.html" LLMS_URL: "/bundle/rules/mobilitydata/future_calendar.md" type: "Validation Rule" title: "future_calendar" description: "All services in the feed start in the future; no service covers today's date." resource: "https://gtfs-validator.mobilitydata.org/rules.html#future_calendar" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "future_calendar" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "currency" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [future_calendar rule reference](https://gtfs-validator.mobilitydata.org/rules.html#future_calendar) --- URL: "/bundle/rules/mobilitydata/future_feed.html" LLMS_URL: "/bundle/rules/mobilitydata/future_feed.md" type: "Validation Rule" title: "future_feed" description: "The feed covers the future only." resource: "https://gtfs-validator.mobilitydata.org/rules.html#future_feed" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "future_feed" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "currency" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [future_feed rule reference](https://gtfs-validator.mobilitydata.org/rules.html#future_feed) --- URL: "/bundle/rules/mobilitydata/geo_json_duplicated_element.html" LLMS_URL: "/bundle/rules/mobilitydata/geo_json_duplicated_element.md" type: "Validation Rule" title: "geo_json_duplicated_element" description: "Duplicated elements in locations.geojson file." resource: "https://gtfs-validator.mobilitydata.org/rules.html#geo_json_duplicated_element" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "geo_json_duplicated_element" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [geo_json_duplicated_element rule reference](https://gtfs-validator.mobilitydata.org/rules.html#geo_json_duplicated_element) --- URL: "/bundle/rules/mobilitydata/geo_json_unknown_element.html" LLMS_URL: "/bundle/rules/mobilitydata/geo_json_unknown_element.md" type: "Validation Rule" title: "geo_json_unknown_element" description: "Unknown elements in locations.geojson file." resource: "https://gtfs-validator.mobilitydata.org/rules.html#geo_json_unknown_element" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "geo_json_unknown_element" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [geo_json_unknown_element rule reference](https://gtfs-validator.mobilitydata.org/rules.html#geo_json_unknown_element) --- URL: "/bundle/rules/mobilitydata/i_o_error.html" LLMS_URL: "/bundle/rules/mobilitydata/i_o_error.md" type: "Validation Rule" title: "i_o_error" description: "Error in IO operation." resource: "https://gtfs-validator.mobilitydata.org/rules.html#i_o_error" tags: - "mobilitydata" - "gtfs" - "runtime" timestamp: "2026-06-12T00:00:00" code: "i_o_error" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "runtime" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [i_o_error rule reference](https://gtfs-validator.mobilitydata.org/rules.html#i_o_error) --- URL: "/bundle/rules/mobilitydata/inconsistent_agency_lang.html" LLMS_URL: "/bundle/rules/mobilitydata/inconsistent_agency_lang.md" type: "Validation Rule" title: "inconsistent_agency_lang" description: "Inconsistent language among agencies." resource: "https://gtfs-validator.mobilitydata.org/rules.html#inconsistent_agency_lang" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "inconsistent_agency_lang" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [inconsistent_agency_lang rule reference](https://gtfs-validator.mobilitydata.org/rules.html#inconsistent_agency_lang) --- URL: "/bundle/rules/mobilitydata/inconsistent_agency_timezone.html" LLMS_URL: "/bundle/rules/mobilitydata/inconsistent_agency_timezone.md" type: "Validation Rule" title: "inconsistent_agency_timezone" description: "Inconsistent Timezone among agencies." resource: "https://gtfs-validator.mobilitydata.org/rules.html#inconsistent_agency_timezone" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "inconsistent_agency_timezone" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [inconsistent_agency_timezone rule reference](https://gtfs-validator.mobilitydata.org/rules.html#inconsistent_agency_timezone) --- URL: "/bundle/rules/mobilitydata/inconsistent_route_type_for_block_id.html" LLMS_URL: "/bundle/rules/mobilitydata/inconsistent_route_type_for_block_id.md" type: "Validation Rule" title: "inconsistent_route_type_for_block_id" description: "A block should have the same route mode." resource: "https://gtfs-validator.mobilitydata.org/rules.html#inconsistent_route_type_for_block_id" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "inconsistent_route_type_for_block_id" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [inconsistent_route_type_for_block_id rule reference](https://gtfs-validator.mobilitydata.org/rules.html#inconsistent_route_type_for_block_id) --- URL: "/bundle/rules/mobilitydata/inconsistent_route_type_for_in_seat_transfer.html" LLMS_URL: "/bundle/rules/mobilitydata/inconsistent_route_type_for_in_seat_transfer.md" type: "Validation Rule" title: "inconsistent_route_type_for_in_seat_transfer" description: "An in-seat transfer should occur in the same route mode." resource: "https://gtfs-validator.mobilitydata.org/rules.html#inconsistent_route_type_for_in_seat_transfer" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "inconsistent_route_type_for_in_seat_transfer" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [inconsistent_route_type_for_in_seat_transfer rule reference](https://gtfs-validator.mobilitydata.org/rules.html#inconsistent_route_type_for_in_seat_transfer) --- URL: "/bundle/rules/mobilitydata/invalid_character.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_character.md" type: "Validation Rule" title: "invalid_character" description: "This field contains invalid characters, such as the replacement character (\"\\uFFFD\")." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_character" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_character" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_character rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_character) --- URL: "/bundle/rules/mobilitydata/invalid_color.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_color.md" type: "Validation Rule" title: "invalid_color" description: "A field contains an invalid color value." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_color" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_color" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_color rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_color) --- URL: "/bundle/rules/mobilitydata/invalid_currency_amount.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_currency_amount.md" type: "Validation Rule" title: "invalid_currency_amount" description: "A currency amount field has a value that does not match the format of its corresponding currency code field." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_currency_amount" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_currency_amount" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_currency_amount rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_currency_amount) --- URL: "/bundle/rules/mobilitydata/invalid_currency.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_currency.md" type: "Validation Rule" title: "invalid_currency" description: "A field contains a wrong currency code." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_currency" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_currency" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_currency rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_currency) --- URL: "/bundle/rules/mobilitydata/invalid_date.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_date.md" type: "Validation Rule" title: "invalid_date" description: "A field cannot be parsed as date." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_date" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_date" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_date rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_date) --- URL: "/bundle/rules/mobilitydata/invalid_email.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_email.md" type: "Validation Rule" title: "invalid_email" description: "A field contains a malformed email address." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_email" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_email" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_email rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_email) --- URL: "/bundle/rules/mobilitydata/invalid_float.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_float.md" type: "Validation Rule" title: "invalid_float" description: "A field cannot be parsed as a floating point number." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_float" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_float" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_float rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_float) --- URL: "/bundle/rules/mobilitydata/invalid_geometry.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_geometry.md" type: "Validation Rule" title: "invalid_geometry" description: "A polygon in `locations.geojson` is unparsable or invalid." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_geometry" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_geometry" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_geometry rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_geometry) --- URL: "/bundle/rules/mobilitydata/invalid_input_files_in_subfolder.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_input_files_in_subfolder.md" type: "Validation Rule" title: "invalid_input_files_in_subfolder" description: "At least 1 GTFS file is in a subfolder." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_input_files_in_subfolder" tags: - "mobilitydata" - "gtfs" - "package" timestamp: "2026-06-12T00:00:00" code: "invalid_input_files_in_subfolder" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "package" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_input_files_in_subfolder rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_input_files_in_subfolder) --- URL: "/bundle/rules/mobilitydata/invalid_integer.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_integer.md" type: "Validation Rule" title: "invalid_integer" description: "A field cannot be parsed as an integer." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_integer" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_integer" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_integer rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_integer) --- URL: "/bundle/rules/mobilitydata/invalid_language_code.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_language_code.md" type: "Validation Rule" title: "invalid_language_code" description: "A field contains a wrong language code." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_language_code" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_language_code" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_language_code rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_language_code) --- URL: "/bundle/rules/mobilitydata/invalid_phone_number.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_phone_number.md" type: "Validation Rule" title: "invalid_phone_number" description: "A field contains a malformed phone number." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_phone_number" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_phone_number" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_phone_number rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_phone_number) --- URL: "/bundle/rules/mobilitydata/invalid_pickup_drop_off_window.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_pickup_drop_off_window.md" type: "Validation Rule" title: "invalid_pickup_drop_off_window" description: "The pickup/drop-off window in `stop_times.txt` is invalid." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_pickup_drop_off_window" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "invalid_pickup_drop_off_window" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_pickup_drop_off_window rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_pickup_drop_off_window) --- URL: "/bundle/rules/mobilitydata/invalid_prior_notice_duration_min.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_prior_notice_duration_min.md" type: "Validation Rule" title: "invalid_prior_notice_duration_min" description: "An invalid `prior_notice_duration_min` value is present in a booking rule." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_prior_notice_duration_min" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "invalid_prior_notice_duration_min" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_prior_notice_duration_min rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_prior_notice_duration_min) --- URL: "/bundle/rules/mobilitydata/invalid_row_length.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_row_length.md" type: "Validation Rule" title: "invalid_row_length" description: "Invalid csv row length." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_row_length" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "invalid_row_length" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_row_length rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_row_length) --- URL: "/bundle/rules/mobilitydata/invalid_time.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_time.md" type: "Validation Rule" title: "invalid_time" description: "A field cannot be parsed as time." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_time" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_time" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_time) --- URL: "/bundle/rules/mobilitydata/invalid_timezone.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_timezone.md" type: "Validation Rule" title: "invalid_timezone" description: "A field cannot be parsed as a timezone." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_timezone" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_timezone" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_timezone rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_timezone) --- URL: "/bundle/rules/mobilitydata/invalid_url.html" LLMS_URL: "/bundle/rules/mobilitydata/invalid_url.md" type: "Validation Rule" title: "invalid_url" description: "A field contains a malformed URL." resource: "https://gtfs-validator.mobilitydata.org/rules.html#invalid_url" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "invalid_url" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [invalid_url rule reference](https://gtfs-validator.mobilitydata.org/rules.html#invalid_url) --- URL: "/bundle/rules/mobilitydata/leading_or_trailing_whitespaces.html" LLMS_URL: "/bundle/rules/mobilitydata/leading_or_trailing_whitespaces.md" type: "Validation Rule" title: "leading_or_trailing_whitespaces" description: "The value in CSV file has leading or trailing whitespaces." resource: "https://gtfs-validator.mobilitydata.org/rules.html#leading_or_trailing_whitespaces" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "leading_or_trailing_whitespaces" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [leading_or_trailing_whitespaces rule reference](https://gtfs-validator.mobilitydata.org/rules.html#leading_or_trailing_whitespaces) --- URL: "/bundle/rules/mobilitydata/location_with_unexpected_stop_time.html" LLMS_URL: "/bundle/rules/mobilitydata/location_with_unexpected_stop_time.md" type: "Validation Rule" title: "location_with_unexpected_stop_time" description: "A location in `stops.txt` that is not a stop is referenced by some `stop_times.stop_id`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#location_with_unexpected_stop_time" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "location_with_unexpected_stop_time" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [location_with_unexpected_stop_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#location_with_unexpected_stop_time) --- URL: "/bundle/rules/mobilitydata/location_without_parent_station.html" LLMS_URL: "/bundle/rules/mobilitydata/location_without_parent_station.md" type: "Validation Rule" title: "location_without_parent_station" description: "A location that must have `parent_station` field does not have it." resource: "https://gtfs-validator.mobilitydata.org/rules.html#location_without_parent_station" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "location_without_parent_station" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [location_without_parent_station rule reference](https://gtfs-validator.mobilitydata.org/rules.html#location_without_parent_station) --- URL: "/bundle/rules/mobilitydata/malformed_json.html" LLMS_URL: "/bundle/rules/mobilitydata/malformed_json.md" type: "Validation Rule" title: "malformed_json" description: "A JSON file is malformed." resource: "https://gtfs-validator.mobilitydata.org/rules.html#malformed_json" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "malformed_json" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [malformed_json rule reference](https://gtfs-validator.mobilitydata.org/rules.html#malformed_json) --- URL: "/bundle/rules/mobilitydata/missing_bike_allowance.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_bike_allowance.md" type: "Validation Rule" title: "missing_bike_allowance" description: "Ferry trips should include bike allowance information." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_bike_allowance" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "missing_bike_allowance" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_bike_allowance rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_bike_allowance) --- URL: "/bundle/rules/mobilitydata/missing_calendar_and_calendar_date_files.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_calendar_and_calendar_date_files.md" type: "Validation Rule" title: "missing_calendar_and_calendar_date_files" description: "Missing GTFS files `calendar.txt` and `calendar_dates.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_calendar_and_calendar_date_files" tags: - "mobilitydata" - "gtfs" - "package" timestamp: "2026-06-12T00:00:00" code: "missing_calendar_and_calendar_date_files" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "package" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_calendar_and_calendar_date_files rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_calendar_and_calendar_date_files) --- URL: "/bundle/rules/mobilitydata/missing_feed_contact_email_and_url.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_feed_contact_email_and_url.md" type: "Validation Rule" title: "missing_feed_contact_email_and_url" description: "Best Practices for `feed_info.txt` suggest providing at least one of `feed_contact_email` and `feed_contact_url`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_feed_contact_email_and_url" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "missing_feed_contact_email_and_url" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_feed_contact_email_and_url rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_feed_contact_email_and_url) --- URL: "/bundle/rules/mobilitydata/missing_feed_info_date.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_feed_info_date.md" type: "Validation Rule" title: "missing_feed_info_date" description: "One of `feed_start_date` or `feed_end_date` is specified, but not both." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_feed_info_date" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_feed_info_date" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_feed_info_date rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_feed_info_date) --- URL: "/bundle/rules/mobilitydata/missing_level_id.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_level_id.md" type: "Validation Rule" title: "missing_level_id" description: "`stops.level_id` is conditionally required." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_level_id" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_level_id" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_level_id rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_level_id) --- URL: "/bundle/rules/mobilitydata/missing_pickup_drop_off_booking_rule_id.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_pickup_drop_off_booking_rule_id.md" type: "Validation Rule" title: "missing_pickup_drop_off_booking_rule_id" description: "pickup_booking_rule_id is recommended when pickup_type=2 and drop_off_booking_rule_id is recommended when drop_off_type=2." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_pickup_drop_off_booking_rule_id" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_pickup_drop_off_booking_rule_id" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_pickup_drop_off_booking_rule_id rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_pickup_drop_off_booking_rule_id) --- URL: "/bundle/rules/mobilitydata/missing_pickup_or_drop_off_window.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_pickup_or_drop_off_window.md" type: "Validation Rule" title: "missing_pickup_or_drop_off_window" description: "Either the start or end pickup/drop-off window is missing in `stop_times.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_pickup_or_drop_off_window" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_pickup_or_drop_off_window" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_pickup_or_drop_off_window rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_pickup_or_drop_off_window) --- URL: "/bundle/rules/mobilitydata/missing_prior_day_booking_field_value.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_prior_day_booking_field_value.md" type: "Validation Rule" title: "missing_prior_day_booking_field_value" description: "The `prior_notice_last_day` and the `prior_notice_last_time` values are required for prior day `booking_type` in booking_rules.txt." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_day_booking_field_value" tags: - "mobilitydata" - "gtfs" - "integrity" - "deprecated" timestamp: "2026-06-12T00:00:00" code: "missing_prior_day_booking_field_value" standard: "GTFS" source: "mobilitydata" category: "integrity" maturity: "deprecated" severity: null --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_prior_day_booking_field_value rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_day_booking_field_value) --- URL: "/bundle/rules/mobilitydata/missing_prior_notice_duration_min.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_prior_notice_duration_min.md" type: "Validation Rule" title: "missing_prior_notice_duration_min" description: "`prior_notice_duration_min` value is required for same day `booking_type` in booking_rules.txt." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_notice_duration_min" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_prior_notice_duration_min" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_prior_notice_duration_min rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_notice_duration_min) --- URL: "/bundle/rules/mobilitydata/missing_prior_notice_last_day.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_prior_notice_last_day.md" type: "Validation Rule" title: "missing_prior_notice_last_day" description: "The `prior_notice_last_day` is required when booking_type=2 (prior day booking) is specified in booking_rules.txt." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_notice_last_day" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_prior_notice_last_day" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_prior_notice_last_day rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_notice_last_day) --- URL: "/bundle/rules/mobilitydata/missing_prior_notice_last_time.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_prior_notice_last_time.md" type: "Validation Rule" title: "missing_prior_notice_last_time" description: "The `prior_notice_last_time` is required when booking_type=2 (prior day booking) is specified in booking_rules.txt." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_notice_last_time" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_prior_notice_last_time" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_prior_notice_last_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_notice_last_time) --- URL: "/bundle/rules/mobilitydata/missing_prior_notice_start_time.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_prior_notice_start_time.md" type: "Validation Rule" title: "missing_prior_notice_start_time" description: "`prior_notice_start_time` value is required when `prior_notice_start_day` value is set in booking_rules.txt." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_notice_start_time" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_prior_notice_start_time" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_prior_notice_start_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_prior_notice_start_time) --- URL: "/bundle/rules/mobilitydata/missing_recommended_column.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_recommended_column.md" type: "Validation Rule" title: "missing_recommended_column" description: "A recommended column is missing in the input file." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_recommended_column" tags: - "mobilitydata" - "gtfs" - "quality" - "deprecated" timestamp: "2026-06-12T00:00:00" code: "missing_recommended_column" standard: "GTFS" source: "mobilitydata" category: "quality" maturity: "deprecated" severity: null --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_recommended_column rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_recommended_column) --- URL: "/bundle/rules/mobilitydata/missing_recommended_field.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_recommended_field.md" type: "Validation Rule" title: "missing_recommended_field" description: "A recommended field is missing." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_recommended_field" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "missing_recommended_field" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_recommended_field rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_recommended_field) --- URL: "/bundle/rules/mobilitydata/missing_recommended_file.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_recommended_file.md" type: "Validation Rule" title: "missing_recommended_file" description: "A recommended file is missing." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_recommended_file" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "missing_recommended_file" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_recommended_file rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_recommended_file) --- URL: "/bundle/rules/mobilitydata/missing_required_agency_id.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_required_agency_id.md" type: "Validation Rule" title: "missing_required_agency_id" description: "Agency id is required when there are multiple agencies." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_required_agency_id" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_required_agency_id" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_required_agency_id rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_required_agency_id) --- URL: "/bundle/rules/mobilitydata/missing_required_column.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_required_column.md" type: "Validation Rule" title: "missing_required_column" description: "A required column is missing in the input file." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_required_column" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "missing_required_column" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_required_column rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_required_column) --- URL: "/bundle/rules/mobilitydata/missing_required_element.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_required_element.md" type: "Validation Rule" title: "missing_required_element" description: "A required element is missing in `locations.geojson`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_required_element" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "missing_required_element" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_required_element rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_required_element) --- URL: "/bundle/rules/mobilitydata/missing_required_field.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_required_field.md" type: "Validation Rule" title: "missing_required_field" description: "A required field is missing." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_required_field" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "missing_required_field" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_required_field rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_required_field) --- URL: "/bundle/rules/mobilitydata/missing_required_file.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_required_file.md" type: "Validation Rule" title: "missing_required_file" description: "A required file is missing." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_required_file" tags: - "mobilitydata" - "gtfs" - "package" timestamp: "2026-06-12T00:00:00" code: "missing_required_file" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "package" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_required_file rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_required_file) --- URL: "/bundle/rules/mobilitydata/missing_stop_name.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_stop_name.md" type: "Validation Rule" title: "missing_stop_name" description: "`stops.stop_name` is required for `location_type` equal to `0`, `1`, or `2`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_stop_name" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_stop_name" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_stop_name rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_stop_name) --- URL: "/bundle/rules/mobilitydata/missing_stop_times_record.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_stop_times_record.md" type: "Validation Rule" title: "missing_stop_times_record" description: "Only one stop_times record is found where two are required." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_stop_times_record" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "missing_stop_times_record" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_stop_times_record rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_stop_times_record) --- URL: "/bundle/rules/mobilitydata/missing_timepoint_value.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_timepoint_value.md" type: "Validation Rule" title: "missing_timepoint_value" description: "`stop_times.timepoint` value is missing for a record." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_timepoint_value" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "missing_timepoint_value" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_timepoint_value rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_timepoint_value) --- URL: "/bundle/rules/mobilitydata/missing_trip_edge.html" LLMS_URL: "/bundle/rules/mobilitydata/missing_trip_edge.md" type: "Validation Rule" title: "missing_trip_edge" description: "Missing trip edge `arrival_time` or `departure_time`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#missing_trip_edge" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "missing_trip_edge" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [missing_trip_edge rule reference](https://gtfs-validator.mobilitydata.org/rules.html#missing_trip_edge) --- URL: "/bundle/rules/mobilitydata/mixed_case_recommended_field.html" LLMS_URL: "/bundle/rules/mobilitydata/mixed_case_recommended_field.md" type: "Validation Rule" title: "mixed_case_recommended_field" description: "This field has customer-facing text and should use Mixed Case (should contain upper and lower case letters)." resource: "https://gtfs-validator.mobilitydata.org/rules.html#mixed_case_recommended_field" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "mixed_case_recommended_field" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [mixed_case_recommended_field rule reference](https://gtfs-validator.mobilitydata.org/rules.html#mixed_case_recommended_field) --- URL: "/bundle/rules/mobilitydata/more_than_one_entity.html" LLMS_URL: "/bundle/rules/mobilitydata/more_than_one_entity.md" type: "Validation Rule" title: "more_than_one_entity" description: "More than one row in CSV." resource: "https://gtfs-validator.mobilitydata.org/rules.html#more_than_one_entity" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "more_than_one_entity" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [more_than_one_entity rule reference](https://gtfs-validator.mobilitydata.org/rules.html#more_than_one_entity) --- URL: "/bundle/rules/mobilitydata/new_line_in_value.html" LLMS_URL: "/bundle/rules/mobilitydata/new_line_in_value.md" type: "Validation Rule" title: "new_line_in_value" description: "New line or carriage return in a value in CSV file." resource: "https://gtfs-validator.mobilitydata.org/rules.html#new_line_in_value" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "new_line_in_value" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [new_line_in_value rule reference](https://gtfs-validator.mobilitydata.org/rules.html#new_line_in_value) --- URL: "/bundle/rules/mobilitydata/non_ascii_or_non_printable_char.html" LLMS_URL: "/bundle/rules/mobilitydata/non_ascii_or_non_printable_char.md" type: "Validation Rule" title: "non_ascii_or_non_printable_char" description: "Non ascii or non printable char in ID field." resource: "https://gtfs-validator.mobilitydata.org/rules.html#non_ascii_or_non_printable_char" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "non_ascii_or_non_printable_char" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [non_ascii_or_non_printable_char rule reference](https://gtfs-validator.mobilitydata.org/rules.html#non_ascii_or_non_printable_char) --- URL: "/bundle/rules/mobilitydata/number_out_of_range.html" LLMS_URL: "/bundle/rules/mobilitydata/number_out_of_range.md" type: "Validation Rule" title: "number_out_of_range" description: "Out of range value." resource: "https://gtfs-validator.mobilitydata.org/rules.html#number_out_of_range" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "number_out_of_range" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [number_out_of_range rule reference](https://gtfs-validator.mobilitydata.org/rules.html#number_out_of_range) --- URL: "/bundle/rules/mobilitydata/overlapping_frequency.html" LLMS_URL: "/bundle/rules/mobilitydata/overlapping_frequency.md" type: "Validation Rule" title: "overlapping_frequency" description: "Trip frequencies overlap." resource: "https://gtfs-validator.mobilitydata.org/rules.html#overlapping_frequency" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "overlapping_frequency" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [overlapping_frequency rule reference](https://gtfs-validator.mobilitydata.org/rules.html#overlapping_frequency) --- URL: "/bundle/rules/mobilitydata/overlapping_zone_and_pickup_drop_off_window.html" LLMS_URL: "/bundle/rules/mobilitydata/overlapping_zone_and_pickup_drop_off_window.md" type: "Validation Rule" title: "overlapping_zone_and_pickup_drop_off_window" description: "Two entities have overlapping pickup/drop-off windows and zones." resource: "https://gtfs-validator.mobilitydata.org/rules.html#overlapping_zone_and_pickup_drop_off_window" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "overlapping_zone_and_pickup_drop_off_window" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [overlapping_zone_and_pickup_drop_off_window rule reference](https://gtfs-validator.mobilitydata.org/rules.html#overlapping_zone_and_pickup_drop_off_window) --- URL: "/bundle/rules/mobilitydata/pathway_dangling_generic_node.html" LLMS_URL: "/bundle/rules/mobilitydata/pathway_dangling_generic_node.md" type: "Validation Rule" title: "pathway_dangling_generic_node" description: "A generic node has only one incident location in a pathway graph." resource: "https://gtfs-validator.mobilitydata.org/rules.html#pathway_dangling_generic_node" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "pathway_dangling_generic_node" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [pathway_dangling_generic_node rule reference](https://gtfs-validator.mobilitydata.org/rules.html#pathway_dangling_generic_node) --- URL: "/bundle/rules/mobilitydata/pathway_loop.html" LLMS_URL: "/bundle/rules/mobilitydata/pathway_loop.md" type: "Validation Rule" title: "pathway_loop" description: "A pathway starts and ends at the same location." resource: "https://gtfs-validator.mobilitydata.org/rules.html#pathway_loop" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "pathway_loop" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [pathway_loop rule reference](https://gtfs-validator.mobilitydata.org/rules.html#pathway_loop) --- URL: "/bundle/rules/mobilitydata/pathway_to_platform_with_boarding_areas.html" LLMS_URL: "/bundle/rules/mobilitydata/pathway_to_platform_with_boarding_areas.md" type: "Validation Rule" title: "pathway_to_platform_with_boarding_areas" description: "A pathway has an endpoint that is a platform which has boarding areas." resource: "https://gtfs-validator.mobilitydata.org/rules.html#pathway_to_platform_with_boarding_areas" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "pathway_to_platform_with_boarding_areas" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [pathway_to_platform_with_boarding_areas rule reference](https://gtfs-validator.mobilitydata.org/rules.html#pathway_to_platform_with_boarding_areas) --- URL: "/bundle/rules/mobilitydata/pathway_to_stop_with_access_outside_of_station_pathways.html" LLMS_URL: "/bundle/rules/mobilitydata/pathway_to_stop_with_access_outside_of_station_pathways.md" type: "Validation Rule" title: "pathway_to_stop_with_access_outside_of_station_pathways" description: "A pathway has an endpoint that is a stop with stop_access=1, which should be accessible outside of the station's pathways." resource: "https://gtfs-validator.mobilitydata.org/rules.html#pathway_to_stop_with_access_outside_of_station_pathways" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "pathway_to_stop_with_access_outside_of_station_pathways" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [pathway_to_stop_with_access_outside_of_station_pathways rule reference](https://gtfs-validator.mobilitydata.org/rules.html#pathway_to_stop_with_access_outside_of_station_pathways) --- URL: "/bundle/rules/mobilitydata/pathway_to_wrong_location_type.html" LLMS_URL: "/bundle/rules/mobilitydata/pathway_to_wrong_location_type.md" type: "Validation Rule" title: "pathway_to_wrong_location_type" description: "A pathway has an endpoint that is a station." resource: "https://gtfs-validator.mobilitydata.org/rules.html#pathway_to_wrong_location_type" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "pathway_to_wrong_location_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [pathway_to_wrong_location_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#pathway_to_wrong_location_type) --- URL: "/bundle/rules/mobilitydata/pathway_unreachable_location.html" LLMS_URL: "/bundle/rules/mobilitydata/pathway_unreachable_location.md" type: "Validation Rule" title: "pathway_unreachable_location" description: "A location is not reachable at least in one direction: from the entrances or to the exits." resource: "https://gtfs-validator.mobilitydata.org/rules.html#pathway_unreachable_location" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "pathway_unreachable_location" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [pathway_unreachable_location rule reference](https://gtfs-validator.mobilitydata.org/rules.html#pathway_unreachable_location) --- URL: "/bundle/rules/mobilitydata/platform_without_parent_station.html" LLMS_URL: "/bundle/rules/mobilitydata/platform_without_parent_station.md" type: "Validation Rule" title: "platform_without_parent_station" description: "A platform has no `parent_station` field set." resource: "https://gtfs-validator.mobilitydata.org/rules.html#platform_without_parent_station" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "platform_without_parent_station" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [platform_without_parent_station rule reference](https://gtfs-validator.mobilitydata.org/rules.html#platform_without_parent_station) --- URL: "/bundle/rules/mobilitydata/point_near_origin.html" LLMS_URL: "/bundle/rules/mobilitydata/point_near_origin.md" type: "Validation Rule" title: "point_near_origin" description: "A point is too close to origin `(0, 0)`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#point_near_origin" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "point_near_origin" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "plausibility" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [point_near_origin rule reference](https://gtfs-validator.mobilitydata.org/rules.html#point_near_origin) --- URL: "/bundle/rules/mobilitydata/point_near_pole.html" LLMS_URL: "/bundle/rules/mobilitydata/point_near_pole.md" type: "Validation Rule" title: "point_near_pole" description: "A point is too close to the North or South Pole." resource: "https://gtfs-validator.mobilitydata.org/rules.html#point_near_pole" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "point_near_pole" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "plausibility" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [point_near_pole rule reference](https://gtfs-validator.mobilitydata.org/rules.html#point_near_pole) --- URL: "/bundle/rules/mobilitydata/prior_notice_last_day_after_start_day.html" LLMS_URL: "/bundle/rules/mobilitydata/prior_notice_last_day_after_start_day.md" type: "Validation Rule" title: "prior_notice_last_day_after_start_day" description: "Prior notice last day should not be greater than the prior notice start day in booking_rules.txt." resource: "https://gtfs-validator.mobilitydata.org/rules.html#prior_notice_last_day_after_start_day" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "prior_notice_last_day_after_start_day" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [prior_notice_last_day_after_start_day rule reference](https://gtfs-validator.mobilitydata.org/rules.html#prior_notice_last_day_after_start_day) --- URL: "/bundle/rules/mobilitydata/route_both_short_and_long_name_missing.html" LLMS_URL: "/bundle/rules/mobilitydata/route_both_short_and_long_name_missing.md" type: "Validation Rule" title: "route_both_short_and_long_name_missing" description: "Both `route_short_name` and `route_long_name` are missing for a route." resource: "https://gtfs-validator.mobilitydata.org/rules.html#route_both_short_and_long_name_missing" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "route_both_short_and_long_name_missing" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [route_both_short_and_long_name_missing rule reference](https://gtfs-validator.mobilitydata.org/rules.html#route_both_short_and_long_name_missing) --- URL: "/bundle/rules/mobilitydata/route_color_contrast.html" LLMS_URL: "/bundle/rules/mobilitydata/route_color_contrast.md" type: "Validation Rule" title: "route_color_contrast" description: "Insufficient route color contrast." resource: "https://gtfs-validator.mobilitydata.org/rules.html#route_color_contrast" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "route_color_contrast" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [route_color_contrast rule reference](https://gtfs-validator.mobilitydata.org/rules.html#route_color_contrast) --- URL: "/bundle/rules/mobilitydata/route_long_name_contains_short_name.html" LLMS_URL: "/bundle/rules/mobilitydata/route_long_name_contains_short_name.md" type: "Validation Rule" title: "route_long_name_contains_short_name" description: "Long name should not contain short name for a single route." resource: "https://gtfs-validator.mobilitydata.org/rules.html#route_long_name_contains_short_name" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "route_long_name_contains_short_name" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [route_long_name_contains_short_name rule reference](https://gtfs-validator.mobilitydata.org/rules.html#route_long_name_contains_short_name) --- URL: "/bundle/rules/mobilitydata/route_networks_specified_in_more_than_one_file.html" LLMS_URL: "/bundle/rules/mobilitydata/route_networks_specified_in_more_than_one_file.md" type: "Validation Rule" title: "route_networks_specified_in_more_than_one_file" description: "Indicates that route network identifiers are specified across multiple files." resource: "https://gtfs-validator.mobilitydata.org/rules.html#route_networks_specified_in_more_than_one_file" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "route_networks_specified_in_more_than_one_file" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [route_networks_specified_in_more_than_one_file rule reference](https://gtfs-validator.mobilitydata.org/rules.html#route_networks_specified_in_more_than_one_file) --- URL: "/bundle/rules/mobilitydata/route_short_name_too_long.html" LLMS_URL: "/bundle/rules/mobilitydata/route_short_name_too_long.md" type: "Validation Rule" title: "route_short_name_too_long" description: "Short name of a route is too long (more than 12 characters)." resource: "https://gtfs-validator.mobilitydata.org/rules.html#route_short_name_too_long" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "route_short_name_too_long" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Parameters - `max_length` = 12 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [route_short_name_too_long rule reference](https://gtfs-validator.mobilitydata.org/rules.html#route_short_name_too_long) --- URL: "/bundle/rules/mobilitydata/runtime_exception_in_loader_error.html" LLMS_URL: "/bundle/rules/mobilitydata/runtime_exception_in_loader_error.md" type: "Validation Rule" title: "runtime_exception_in_loader_error" description: "RuntimeException while loading GTFS dataset in memory." resource: "https://gtfs-validator.mobilitydata.org/rules.html#runtime_exception_in_loader_error" tags: - "mobilitydata" - "gtfs" - "runtime" timestamp: "2026-06-12T00:00:00" code: "runtime_exception_in_loader_error" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "runtime" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [runtime_exception_in_loader_error rule reference](https://gtfs-validator.mobilitydata.org/rules.html#runtime_exception_in_loader_error) --- URL: "/bundle/rules/mobilitydata/runtime_exception_in_validator_error.html" LLMS_URL: "/bundle/rules/mobilitydata/runtime_exception_in_validator_error.md" type: "Validation Rule" title: "runtime_exception_in_validator_error" description: "RuntimeException while validating GTFS archive." resource: "https://gtfs-validator.mobilitydata.org/rules.html#runtime_exception_in_validator_error" tags: - "mobilitydata" - "gtfs" - "runtime" timestamp: "2026-06-12T00:00:00" code: "runtime_exception_in_validator_error" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "runtime" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [runtime_exception_in_validator_error rule reference](https://gtfs-validator.mobilitydata.org/rules.html#runtime_exception_in_validator_error) --- URL: "/bundle/rules/mobilitydata/same_name_and_description_for_route.html" LLMS_URL: "/bundle/rules/mobilitydata/same_name_and_description_for_route.md" type: "Validation Rule" title: "same_name_and_description_for_route" description: "Same name and description for route." resource: "https://gtfs-validator.mobilitydata.org/rules.html#same_name_and_description_for_route" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "same_name_and_description_for_route" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [same_name_and_description_for_route rule reference](https://gtfs-validator.mobilitydata.org/rules.html#same_name_and_description_for_route) --- URL: "/bundle/rules/mobilitydata/same_name_and_description_for_stop.html" LLMS_URL: "/bundle/rules/mobilitydata/same_name_and_description_for_stop.md" type: "Validation Rule" title: "same_name_and_description_for_stop" description: "Same name and description for stop." resource: "https://gtfs-validator.mobilitydata.org/rules.html#same_name_and_description_for_stop" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "same_name_and_description_for_stop" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [same_name_and_description_for_stop rule reference](https://gtfs-validator.mobilitydata.org/rules.html#same_name_and_description_for_stop) --- URL: "/bundle/rules/mobilitydata/same_route_and_agency_url.html" LLMS_URL: "/bundle/rules/mobilitydata/same_route_and_agency_url.md" type: "Validation Rule" title: "same_route_and_agency_url" description: "Same `routes.route_url` and `agency.agency_url`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#same_route_and_agency_url" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "same_route_and_agency_url" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [same_route_and_agency_url rule reference](https://gtfs-validator.mobilitydata.org/rules.html#same_route_and_agency_url) --- URL: "/bundle/rules/mobilitydata/same_stop_and_agency_url.html" LLMS_URL: "/bundle/rules/mobilitydata/same_stop_and_agency_url.md" type: "Validation Rule" title: "same_stop_and_agency_url" description: "Same `stops.stop_url` and `agency.agency_url`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#same_stop_and_agency_url" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "same_stop_and_agency_url" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [same_stop_and_agency_url rule reference](https://gtfs-validator.mobilitydata.org/rules.html#same_stop_and_agency_url) --- URL: "/bundle/rules/mobilitydata/same_stop_and_route_url.html" LLMS_URL: "/bundle/rules/mobilitydata/same_stop_and_route_url.md" type: "Validation Rule" title: "same_stop_and_route_url" description: "Same `stops.stop_url` and `routes.route_url`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#same_stop_and_route_url" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "same_stop_and_route_url" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [same_stop_and_route_url rule reference](https://gtfs-validator.mobilitydata.org/rules.html#same_stop_and_route_url) --- URL: "/bundle/rules/mobilitydata/service_extends_far_in_the_future.html" LLMS_URL: "/bundle/rules/mobilitydata/service_extends_far_in_the_future.md" type: "Validation Rule" title: "service_extends_far_in_the_future" description: "A service end date is more than 2 years in the future." resource: "https://gtfs-validator.mobilitydata.org/rules.html#service_extends_far_in_the_future" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "service_extends_far_in_the_future" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "currency" maturity: "draft" --- # Parameters - `horizon_years` = 2 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [service_extends_far_in_the_future rule reference](https://gtfs-validator.mobilitydata.org/rules.html#service_extends_far_in_the_future) --- URL: "/bundle/rules/mobilitydata/service_has_no_active_day_of_the_week.html" LLMS_URL: "/bundle/rules/mobilitydata/service_has_no_active_day_of_the_week.md" type: "Validation Rule" title: "service_has_no_active_day_of_the_week" description: "A service is not valid for any day of the week." resource: "https://gtfs-validator.mobilitydata.org/rules.html#service_has_no_active_day_of_the_week" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "service_has_no_active_day_of_the_week" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [service_has_no_active_day_of_the_week rule reference](https://gtfs-validator.mobilitydata.org/rules.html#service_has_no_active_day_of_the_week) --- URL: "/bundle/rules/mobilitydata/service_window_outside_feed_period.html" LLMS_URL: "/bundle/rules/mobilitydata/service_window_outside_feed_period.md" type: "Validation Rule" title: "service_window_outside_feed_period" description: "A service window is not covered by the feed's validity period." resource: "https://gtfs-validator.mobilitydata.org/rules.html#service_window_outside_feed_period" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "service_window_outside_feed_period" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "currency" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [service_window_outside_feed_period rule reference](https://gtfs-validator.mobilitydata.org/rules.html#service_window_outside_feed_period) --- URL: "/bundle/rules/mobilitydata/single_shape_point.html" LLMS_URL: "/bundle/rules/mobilitydata/single_shape_point.md" type: "Validation Rule" title: "single_shape_point" description: "The shape within `shapes.txt` contains a single shape point." resource: "https://gtfs-validator.mobilitydata.org/rules.html#single_shape_point" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "single_shape_point" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [single_shape_point rule reference](https://gtfs-validator.mobilitydata.org/rules.html#single_shape_point) --- URL: "/bundle/rules/mobilitydata/start_and_end_range_equal.html" LLMS_URL: "/bundle/rules/mobilitydata/start_and_end_range_equal.md" type: "Validation Rule" title: "start_and_end_range_equal" description: "Two date or time fields are equal." resource: "https://gtfs-validator.mobilitydata.org/rules.html#start_and_end_range_equal" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "start_and_end_range_equal" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [start_and_end_range_equal rule reference](https://gtfs-validator.mobilitydata.org/rules.html#start_and_end_range_equal) --- URL: "/bundle/rules/mobilitydata/start_and_end_range_out_of_order.html" LLMS_URL: "/bundle/rules/mobilitydata/start_and_end_range_out_of_order.md" type: "Validation Rule" title: "start_and_end_range_out_of_order" description: "Two date or time fields are out of order." resource: "https://gtfs-validator.mobilitydata.org/rules.html#start_and_end_range_out_of_order" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "start_and_end_range_out_of_order" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [start_and_end_range_out_of_order rule reference](https://gtfs-validator.mobilitydata.org/rules.html#start_and_end_range_out_of_order) --- URL: "/bundle/rules/mobilitydata/station_with_parent_station.html" LLMS_URL: "/bundle/rules/mobilitydata/station_with_parent_station.md" type: "Validation Rule" title: "station_with_parent_station" description: "A station has `parent_station` field set." resource: "https://gtfs-validator.mobilitydata.org/rules.html#station_with_parent_station" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "station_with_parent_station" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [station_with_parent_station rule reference](https://gtfs-validator.mobilitydata.org/rules.html#station_with_parent_station) --- URL: "/bundle/rules/mobilitydata/stop_access_specified_for_incorrect_location.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_access_specified_for_incorrect_location.md" type: "Validation Rule" title: "stop_access_specified_for_incorrect_location" description: "A location that is not a stop has stop_access specified." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_access_specified_for_incorrect_location" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "stop_access_specified_for_incorrect_location" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_access_specified_for_incorrect_location rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_access_specified_for_incorrect_location) --- URL: "/bundle/rules/mobilitydata/stop_access_specified_for_stop_with_no_parent_station.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_access_specified_for_stop_with_no_parent_station.md" type: "Validation Rule" title: "stop_access_specified_for_stop_with_no_parent_station" description: "A stop without a value for parent station has stop_access specified." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_access_specified_for_stop_with_no_parent_station" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "stop_access_specified_for_stop_with_no_parent_station" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_access_specified_for_stop_with_no_parent_station rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_access_specified_for_stop_with_no_parent_station) --- URL: "/bundle/rules/mobilitydata/stop_has_too_many_matches_for_shape.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_has_too_many_matches_for_shape.md" type: "Validation Rule" title: "stop_has_too_many_matches_for_shape" description: "Stop entry that has many potential matches to the trip's path of travel, as defined by the shape entry in `shapes.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_has_too_many_matches_for_shape" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "stop_has_too_many_matches_for_shape" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "plausibility" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_has_too_many_matches_for_shape rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_has_too_many_matches_for_shape) --- URL: "/bundle/rules/mobilitydata/stop_time_timepoint_without_times.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_time_timepoint_without_times.md" type: "Validation Rule" title: "stop_time_timepoint_without_times" description: "`arrival_time` or `departure_time` not specified for timepoint." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_time_timepoint_without_times" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "stop_time_timepoint_without_times" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_time_timepoint_without_times rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_time_timepoint_without_times) --- URL: "/bundle/rules/mobilitydata/stop_time_with_arrival_before_previous_departure_time.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_time_with_arrival_before_previous_departure_time.md" type: "Validation Rule" title: "stop_time_with_arrival_before_previous_departure_time" description: "Backwards time travel between stops in `stop_times.txt`" resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_time_with_arrival_before_previous_departure_time" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "stop_time_with_arrival_before_previous_departure_time" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_time_with_arrival_before_previous_departure_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_time_with_arrival_before_previous_departure_time) --- URL: "/bundle/rules/mobilitydata/stop_time_with_only_arrival_or_departure_time.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_time_with_only_arrival_or_departure_time.md" type: "Validation Rule" title: "stop_time_with_only_arrival_or_departure_time" description: "Missing `stop_times.arrival_time` or `stop_times.departure_time`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_time_with_only_arrival_or_departure_time" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "stop_time_with_only_arrival_or_departure_time" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_time_with_only_arrival_or_departure_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_time_with_only_arrival_or_departure_time) --- URL: "/bundle/rules/mobilitydata/stop_too_far_from_shape_using_user_distance.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_too_far_from_shape_using_user_distance.md" type: "Validation Rule" title: "stop_too_far_from_shape_using_user_distance" description: "Stop time too far from shape." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_too_far_from_shape_using_user_distance" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "stop_too_far_from_shape_using_user_distance" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "plausibility" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_too_far_from_shape_using_user_distance rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_too_far_from_shape_using_user_distance) --- URL: "/bundle/rules/mobilitydata/stop_too_far_from_shape.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_too_far_from_shape.md" type: "Validation Rule" title: "stop_too_far_from_shape" description: "Stop too far from trip shape." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_too_far_from_shape" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "stop_too_far_from_shape" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "plausibility" maturity: "draft" --- # Parameters - `max_distance_m` = 100 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_too_far_from_shape rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_too_far_from_shape) --- URL: "/bundle/rules/mobilitydata/stop_without_location.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_without_location.md" type: "Validation Rule" title: "stop_without_location" description: "`stop_lat` and/or `stop_lon` is missing for stop with `location_type` equal to`0`, `1`, or `2`" resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_without_location" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "stop_without_location" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_without_location rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_without_location) --- URL: "/bundle/rules/mobilitydata/stop_without_stop_time.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_without_stop_time.md" type: "Validation Rule" title: "stop_without_stop_time" description: "A stop in `stops.txt` is not referenced by any `stop_times.stop_id`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_without_stop_time" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "stop_without_stop_time" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_without_stop_time rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_without_stop_time) --- URL: "/bundle/rules/mobilitydata/stop_without_zone_id.html" LLMS_URL: "/bundle/rules/mobilitydata/stop_without_zone_id.md" type: "Validation Rule" title: "stop_without_zone_id" description: "Stop without value for `stops.zone_id` contained in a route with a zone-dependent fare rule." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stop_without_zone_id" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "stop_without_zone_id" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stop_without_zone_id rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stop_without_zone_id) --- URL: "/bundle/rules/mobilitydata/stops_match_shape_out_of_order.html" LLMS_URL: "/bundle/rules/mobilitydata/stops_match_shape_out_of_order.md" type: "Validation Rule" title: "stops_match_shape_out_of_order" description: "Two stop entries are different than their arrival-departure order defined by `shapes.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#stops_match_shape_out_of_order" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "stops_match_shape_out_of_order" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "plausibility" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [stops_match_shape_out_of_order rule reference](https://gtfs-validator.mobilitydata.org/rules.html#stops_match_shape_out_of_order) --- URL: "/bundle/rules/mobilitydata/thread_execution_error.html" LLMS_URL: "/bundle/rules/mobilitydata/thread_execution_error.md" type: "Validation Rule" title: "thread_execution_error" description: "ExecutionException during multithreaded validation" resource: "https://gtfs-validator.mobilitydata.org/rules.html#thread_execution_error" tags: - "mobilitydata" - "gtfs" - "runtime" timestamp: "2026-06-12T00:00:00" code: "thread_execution_error" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "runtime" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [thread_execution_error rule reference](https://gtfs-validator.mobilitydata.org/rules.html#thread_execution_error) --- URL: "/bundle/rules/mobilitydata/timeframe_only_start_or_end_time_specified.html" LLMS_URL: "/bundle/rules/mobilitydata/timeframe_only_start_or_end_time_specified.md" type: "Validation Rule" title: "timeframe_only_start_or_end_time_specified" description: "A row from `timeframes.txt` was found with only one of `start_time` and `end_time` specified." resource: "https://gtfs-validator.mobilitydata.org/rules.html#timeframe_only_start_or_end_time_specified" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "timeframe_only_start_or_end_time_specified" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [timeframe_only_start_or_end_time_specified rule reference](https://gtfs-validator.mobilitydata.org/rules.html#timeframe_only_start_or_end_time_specified) --- URL: "/bundle/rules/mobilitydata/timeframe_overlap.html" LLMS_URL: "/bundle/rules/mobilitydata/timeframe_overlap.md" type: "Validation Rule" title: "timeframe_overlap" description: "Two entries in `timeframes.txt` with the same `timeframe_group_id` and `service_id` have overlapping time intervals." resource: "https://gtfs-validator.mobilitydata.org/rules.html#timeframe_overlap" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "timeframe_overlap" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [timeframe_overlap rule reference](https://gtfs-validator.mobilitydata.org/rules.html#timeframe_overlap) --- URL: "/bundle/rules/mobilitydata/timeframe_start_or_end_time_greater_than_twenty_four_hours.html" LLMS_URL: "/bundle/rules/mobilitydata/timeframe_start_or_end_time_greater_than_twenty_four_hours.md" type: "Validation Rule" title: "timeframe_start_or_end_time_greater_than_twenty_four_hours" description: "A time in `timeframes.txt` is greater than `24:00:00`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#timeframe_start_or_end_time_greater_than_twenty_four_hours" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "timeframe_start_or_end_time_greater_than_twenty_four_hours" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [timeframe_start_or_end_time_greater_than_twenty_four_hours rule reference](https://gtfs-validator.mobilitydata.org/rules.html#timeframe_start_or_end_time_greater_than_twenty_four_hours) --- URL: "/bundle/rules/mobilitydata/too_many_rows.html" LLMS_URL: "/bundle/rules/mobilitydata/too_many_rows.md" type: "Validation Rule" title: "too_many_rows" description: "A CSV file has too many rows." resource: "https://gtfs-validator.mobilitydata.org/rules.html#too_many_rows" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "too_many_rows" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [too_many_rows rule reference](https://gtfs-validator.mobilitydata.org/rules.html#too_many_rows) --- URL: "/bundle/rules/mobilitydata/transfer_distance_above_2_km.html" LLMS_URL: "/bundle/rules/mobilitydata/transfer_distance_above_2_km.md" type: "Validation Rule" title: "transfer_distance_above_2_km" description: "The transfer distance from stop to stop in `transfers.txt` is larger than 2 km." resource: "https://gtfs-validator.mobilitydata.org/rules.html#transfer_distance_above_2_km" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "transfer_distance_above_2_km" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "plausibility" maturity: "draft" --- # Parameters - `max_distance_km` = 2 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [transfer_distance_above_2_km rule reference](https://gtfs-validator.mobilitydata.org/rules.html#transfer_distance_above_2_km) --- URL: "/bundle/rules/mobilitydata/transfer_distance_too_large.html" LLMS_URL: "/bundle/rules/mobilitydata/transfer_distance_too_large.md" type: "Validation Rule" title: "transfer_distance_too_large" description: "The transfer distance from stop to stop in `transfers.txt` is larger than 10 km." resource: "https://gtfs-validator.mobilitydata.org/rules.html#transfer_distance_too_large" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "transfer_distance_too_large" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "plausibility" maturity: "draft" --- # Parameters - `max_distance_km` = 10 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [transfer_distance_too_large rule reference](https://gtfs-validator.mobilitydata.org/rules.html#transfer_distance_too_large) --- URL: "/bundle/rules/mobilitydata/transfer_with_invalid_stop_location_type.html" LLMS_URL: "/bundle/rules/mobilitydata/transfer_with_invalid_stop_location_type.md" type: "Validation Rule" title: "transfer_with_invalid_stop_location_type" description: "A stop id field from GTFS file `transfers.txt` references a stop that has a `location_type` other than 0 or 1 (aka Stop/Platform or Station)." resource: "https://gtfs-validator.mobilitydata.org/rules.html#transfer_with_invalid_stop_location_type" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "transfer_with_invalid_stop_location_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [transfer_with_invalid_stop_location_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#transfer_with_invalid_stop_location_type) --- URL: "/bundle/rules/mobilitydata/transfer_with_invalid_trip_and_route.html" LLMS_URL: "/bundle/rules/mobilitydata/transfer_with_invalid_trip_and_route.md" type: "Validation Rule" title: "transfer_with_invalid_trip_and_route" description: "A trip id field from GTFS file `transfers.txt` references a route that does not match its `trips.txt` `route_id`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#transfer_with_invalid_trip_and_route" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "transfer_with_invalid_trip_and_route" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [transfer_with_invalid_trip_and_route rule reference](https://gtfs-validator.mobilitydata.org/rules.html#transfer_with_invalid_trip_and_route) --- URL: "/bundle/rules/mobilitydata/transfer_with_invalid_trip_and_stop.html" LLMS_URL: "/bundle/rules/mobilitydata/transfer_with_invalid_trip_and_stop.md" type: "Validation Rule" title: "transfer_with_invalid_trip_and_stop" description: "A trip id field from GTFS file `transfers.txt` references a stop that is not included in the referenced trip's stop-times." resource: "https://gtfs-validator.mobilitydata.org/rules.html#transfer_with_invalid_trip_and_stop" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "transfer_with_invalid_trip_and_stop" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [transfer_with_invalid_trip_and_stop rule reference](https://gtfs-validator.mobilitydata.org/rules.html#transfer_with_invalid_trip_and_stop) --- URL: "/bundle/rules/mobilitydata/transfer_with_suspicious_mid_trip_in_seat.html" LLMS_URL: "/bundle/rules/mobilitydata/transfer_with_suspicious_mid_trip_in_seat.md" type: "Validation Rule" title: "transfer_with_suspicious_mid_trip_in_seat" description: "A trip id field from GTFS file `transfers.txt` with an in-seat transfer type references a stop that is not in the expected position in the trip's stop-times." resource: "https://gtfs-validator.mobilitydata.org/rules.html#transfer_with_suspicious_mid_trip_in_seat" tags: - "mobilitydata" - "gtfs" - "plausibility" timestamp: "2026-06-12T00:00:00" code: "transfer_with_suspicious_mid_trip_in_seat" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "plausibility" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [transfer_with_suspicious_mid_trip_in_seat rule reference](https://gtfs-validator.mobilitydata.org/rules.html#transfer_with_suspicious_mid_trip_in_seat) --- URL: "/bundle/rules/mobilitydata/translation_foreign_key_violation.html" LLMS_URL: "/bundle/rules/mobilitydata/translation_foreign_key_violation.md" type: "Validation Rule" title: "translation_foreign_key_violation" description: "An entity with the given `record_id` and `record_sub_id` cannot be found in the referenced table." resource: "https://gtfs-validator.mobilitydata.org/rules.html#translation_foreign_key_violation" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "translation_foreign_key_violation" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [translation_foreign_key_violation rule reference](https://gtfs-validator.mobilitydata.org/rules.html#translation_foreign_key_violation) --- URL: "/bundle/rules/mobilitydata/translation_unexpected_value.html" LLMS_URL: "/bundle/rules/mobilitydata/translation_unexpected_value.md" type: "Validation Rule" title: "translation_unexpected_value" description: "A field in a translations row has value but must be empty." resource: "https://gtfs-validator.mobilitydata.org/rules.html#translation_unexpected_value" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "translation_unexpected_value" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [translation_unexpected_value rule reference](https://gtfs-validator.mobilitydata.org/rules.html#translation_unexpected_value) --- URL: "/bundle/rules/mobilitydata/translation_unknown_table_name.html" LLMS_URL: "/bundle/rules/mobilitydata/translation_unknown_table_name.md" type: "Validation Rule" title: "translation_unknown_table_name" description: "A translation references an unknown or missing GTFS table." resource: "https://gtfs-validator.mobilitydata.org/rules.html#translation_unknown_table_name" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "translation_unknown_table_name" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [translation_unknown_table_name rule reference](https://gtfs-validator.mobilitydata.org/rules.html#translation_unknown_table_name) --- URL: "/bundle/rules/mobilitydata/trip_coverage_not_active_for_next7_days.html" LLMS_URL: "/bundle/rules/mobilitydata/trip_coverage_not_active_for_next7_days.md" type: "Validation Rule" title: "trip_coverage_not_active_for_next7_days" description: "Trips data should be valid for at least the next seven days." resource: "https://gtfs-validator.mobilitydata.org/rules.html#trip_coverage_not_active_for_next7_days" tags: - "mobilitydata" - "gtfs" - "currency" timestamp: "2026-06-12T00:00:00" code: "trip_coverage_not_active_for_next7_days" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "currency" maturity: "draft" --- # Parameters - `horizon_days` = 7 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [trip_coverage_not_active_for_next7_days rule reference](https://gtfs-validator.mobilitydata.org/rules.html#trip_coverage_not_active_for_next7_days) --- URL: "/bundle/rules/mobilitydata/trip_distance_exceeds_shape_distance_below_threshold.html" LLMS_URL: "/bundle/rules/mobilitydata/trip_distance_exceeds_shape_distance_below_threshold.md" type: "Validation Rule" title: "trip_distance_exceeds_shape_distance_below_threshold" description: "The distance between the last shape point and last stop point is greater than 0 but less than the 11.1m threshold." resource: "https://gtfs-validator.mobilitydata.org/rules.html#trip_distance_exceeds_shape_distance_below_threshold" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "trip_distance_exceeds_shape_distance_below_threshold" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Parameters - `distance_threshold_m` = 11.1 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [trip_distance_exceeds_shape_distance_below_threshold rule reference](https://gtfs-validator.mobilitydata.org/rules.html#trip_distance_exceeds_shape_distance_below_threshold) --- URL: "/bundle/rules/mobilitydata/trip_distance_exceeds_shape_distance.html" LLMS_URL: "/bundle/rules/mobilitydata/trip_distance_exceeds_shape_distance.md" type: "Validation Rule" title: "trip_distance_exceeds_shape_distance" description: "The distance between the last shape point and last stop point is greater than or equal to the 11.1m threshold." resource: "https://gtfs-validator.mobilitydata.org/rules.html#trip_distance_exceeds_shape_distance" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "trip_distance_exceeds_shape_distance" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "semantic" maturity: "draft" --- # Parameters - `distance_threshold_m` = 11.1 # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [trip_distance_exceeds_shape_distance rule reference](https://gtfs-validator.mobilitydata.org/rules.html#trip_distance_exceeds_shape_distance) --- URL: "/bundle/rules/mobilitydata/trip_headsign_matches_intermediate_stop.html" LLMS_URL: "/bundle/rules/mobilitydata/trip_headsign_matches_intermediate_stop.md" type: "Validation Rule" title: "trip_headsign_matches_intermediate_stop" description: "Trip headsign matches the name of an intermediate stop, not the last stop." resource: "https://gtfs-validator.mobilitydata.org/rules.html#trip_headsign_matches_intermediate_stop" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "trip_headsign_matches_intermediate_stop" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [trip_headsign_matches_intermediate_stop rule reference](https://gtfs-validator.mobilitydata.org/rules.html#trip_headsign_matches_intermediate_stop) --- URL: "/bundle/rules/mobilitydata/trip_with_shape_dist_traveled_but_no_shape_distances.html" LLMS_URL: "/bundle/rules/mobilitydata/trip_with_shape_dist_traveled_but_no_shape_distances.md" type: "Validation Rule" title: "trip_with_shape_dist_traveled_but_no_shape_distances" description: "A trip has shape_dist_traveled values in stop_times.txt but the shape referenced by the trip's shape_id does not have shape_dist_traveled values on all of its points in shapes.txt." resource: "https://gtfs-validator.mobilitydata.org/rules.html#trip_with_shape_dist_traveled_but_no_shape_distances" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "trip_with_shape_dist_traveled_but_no_shape_distances" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [trip_with_shape_dist_traveled_but_no_shape_distances rule reference](https://gtfs-validator.mobilitydata.org/rules.html#trip_with_shape_dist_traveled_but_no_shape_distances) --- URL: "/bundle/rules/mobilitydata/u_r_i_syntax_error.html" LLMS_URL: "/bundle/rules/mobilitydata/u_r_i_syntax_error.md" type: "Validation Rule" title: "u_r_i_syntax_error" description: "A string could not be parsed as a URI reference." resource: "https://gtfs-validator.mobilitydata.org/rules.html#u_r_i_syntax_error" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "u_r_i_syntax_error" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [u_r_i_syntax_error rule reference](https://gtfs-validator.mobilitydata.org/rules.html#u_r_i_syntax_error) --- URL: "/bundle/rules/mobilitydata/unexpected_enum_value.html" LLMS_URL: "/bundle/rules/mobilitydata/unexpected_enum_value.md" type: "Validation Rule" title: "unexpected_enum_value" description: "An enum has an unexpected value." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unexpected_enum_value" tags: - "mobilitydata" - "gtfs" - "format" timestamp: "2026-06-12T00:00:00" code: "unexpected_enum_value" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "format" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unexpected_enum_value rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unexpected_enum_value) --- URL: "/bundle/rules/mobilitydata/unknown_column.html" LLMS_URL: "/bundle/rules/mobilitydata/unknown_column.md" type: "Validation Rule" title: "unknown_column" description: "A column name is unknown." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unknown_column" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "unknown_column" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unknown_column rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unknown_column) --- URL: "/bundle/rules/mobilitydata/unknown_file.html" LLMS_URL: "/bundle/rules/mobilitydata/unknown_file.md" type: "Validation Rule" title: "unknown_file" description: "A file is unknown." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unknown_file" tags: - "mobilitydata" - "gtfs" - "package" timestamp: "2026-06-12T00:00:00" code: "unknown_file" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "package" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unknown_file rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unknown_file) --- URL: "/bundle/rules/mobilitydata/unsorted_stop_times.html" LLMS_URL: "/bundle/rules/mobilitydata/unsorted_stop_times.md" type: "Validation Rule" title: "unsorted_stop_times" description: "Stop times are not sorted by trip_id and stop_sequence." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unsorted_stop_times" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "unsorted_stop_times" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unsorted_stop_times rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unsorted_stop_times) --- URL: "/bundle/rules/mobilitydata/unsupported_feature_type.html" LLMS_URL: "/bundle/rules/mobilitydata/unsupported_feature_type.md" type: "Validation Rule" title: "unsupported_feature_type" description: "An unsupported feature type is used in the `locations.geojson` file." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unsupported_feature_type" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "unsupported_feature_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unsupported_feature_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unsupported_feature_type) --- URL: "/bundle/rules/mobilitydata/unsupported_geo_json_type.html" LLMS_URL: "/bundle/rules/mobilitydata/unsupported_geo_json_type.md" type: "Validation Rule" title: "unsupported_geo_json_type" description: "An unsupported GeoJSON type is used in the `locations.geojson` file." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unsupported_geo_json_type" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "unsupported_geo_json_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unsupported_geo_json_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unsupported_geo_json_type) --- URL: "/bundle/rules/mobilitydata/unsupported_geometry_type.html" LLMS_URL: "/bundle/rules/mobilitydata/unsupported_geometry_type.md" type: "Validation Rule" title: "unsupported_geometry_type" description: "A GeoJSON feature has an unsupported geometry type in `locations.geojson`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unsupported_geometry_type" tags: - "mobilitydata" - "gtfs" - "structure" timestamp: "2026-06-12T00:00:00" code: "unsupported_geometry_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "structure" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unsupported_geometry_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unsupported_geometry_type) --- URL: "/bundle/rules/mobilitydata/unusable_trip.html" LLMS_URL: "/bundle/rules/mobilitydata/unusable_trip.md" type: "Validation Rule" title: "unusable_trip" description: "Trips must have more than one stop to be usable." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unusable_trip" tags: - "mobilitydata" - "gtfs" - "semantic" timestamp: "2026-06-12T00:00:00" code: "unusable_trip" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "semantic" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unusable_trip rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unusable_trip) --- URL: "/bundle/rules/mobilitydata/unused_parent_station.html" LLMS_URL: "/bundle/rules/mobilitydata/unused_parent_station.md" type: "Validation Rule" title: "unused_parent_station" description: "Unused parent station." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unused_parent_station" tags: - "mobilitydata" - "gtfs" - "quality" - "deprecated" timestamp: "2026-06-12T00:00:00" code: "unused_parent_station" standard: "GTFS" source: "mobilitydata" category: "quality" maturity: "deprecated" severity: null --- # Notes Replaced by unused_station. # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unused_parent_station rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unused_parent_station) --- URL: "/bundle/rules/mobilitydata/unused_shape.html" LLMS_URL: "/bundle/rules/mobilitydata/unused_shape.md" type: "Validation Rule" title: "unused_shape" description: "Shape is not used in GTFS file `trips.txt`." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unused_shape" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "unused_shape" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unused_shape rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unused_shape) --- URL: "/bundle/rules/mobilitydata/unused_station.html" LLMS_URL: "/bundle/rules/mobilitydata/unused_station.md" type: "Validation Rule" title: "unused_station" description: "Unused station." resource: "https://gtfs-validator.mobilitydata.org/rules.html#unused_station" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "unused_station" standard: "GTFS" source: "mobilitydata" severity: "INFO" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unused_station rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unused_station) --- URL: "/bundle/rules/mobilitydata/unused_trip.html" LLMS_URL: "/bundle/rules/mobilitydata/unused_trip.md" type: "Validation Rule" title: "unused_trip" description: "Trip is not be used in `stop_times.txt`" resource: "https://gtfs-validator.mobilitydata.org/rules.html#unused_trip" tags: - "mobilitydata" - "gtfs" - "quality" timestamp: "2026-06-12T00:00:00" code: "unused_trip" standard: "GTFS" source: "mobilitydata" severity: "WARNING" category: "quality" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [unused_trip rule reference](https://gtfs-validator.mobilitydata.org/rules.html#unused_trip) --- URL: "/bundle/rules/mobilitydata/wrong_parent_location_type.html" LLMS_URL: "/bundle/rules/mobilitydata/wrong_parent_location_type.md" type: "Validation Rule" title: "wrong_parent_location_type" description: "Incorrect type of the parent location." resource: "https://gtfs-validator.mobilitydata.org/rules.html#wrong_parent_location_type" tags: - "mobilitydata" - "gtfs" - "integrity" timestamp: "2026-06-12T00:00:00" code: "wrong_parent_location_type" standard: "GTFS" source: "mobilitydata" severity: "ERROR" category: "integrity" maturity: "draft" --- # Related - Source: [MobilityData canonical GTFS Schedule validator](/sources/mobilitydata.md) # Citations [1] [wrong_parent_location_type rule reference](https://gtfs-validator.mobilitydata.org/rules.html#wrong_parent_location_type) --- URL: "/bundle/rules/napcore" LLMS_URL: "/bundle/rules/napcore.md" --- # NAPCORE Validation Kit --- URL: "/bundle/sources" LLMS_URL: "/bundle/sources.md" --- # Validation Rule Sources ## Validation kit * [NAPCORE Validation Kit](napcore.md) - Compiled validation rules following our reference model ## Sources we use as inspiration * [MobilityData canonical GTFS Schedule validator](mobilitydata.md) - GTFS validation rules * [DATA4PT NeTEx Validation Rules Overview](data4pt.md) - NeTEx validation rules * [Entur netex-validator-java](entur.md) - NeTEx validation rules --- URL: "/bundle/sources/data4pt.html" LLMS_URL: "/bundle/sources/data4pt.md" type: "Validation Rule Source" title: "DATA4PT NeTEx Validation Rules Overview" description: "Validation rules for NeTEx from DATA4PT NeTEx Validation Rules Overview." tags: - "netex" - "validation-rules" - "data4pt" timestamp: "2026-07-15T00:00:00" standard: "NeTEx" slug: "data4pt" rule_count: 142 profile: "mixed: per-rule scope.applies_to (All usages | EPIP | Profile specific)" source_file: "external/NeTEx - Validation Rules Overview.xlsx" source_sha256: "204a881a9603dc13d09f06418ab4606d8a1b8c7b6bcb238ed8549b268430e3e4" severity_vocabulary: - "10" - "20" - "30" - "40" - "50" origin: "import" --- # Overview Source legend: 10 severe error, 20 significant error, 30 minor error or omission, 40 caution, 50 inefficiency (e.g. unused data). Each record also keeps the source's message type in `result` (Error | Warning). - **Standard:** NeTEx - **Profile:** mixed: per-rule scope.applies_to (All usages | EPIP | Profile specific) - **Origin:** import - **Retrieved:** 2026-07-15 - **Total rules:** 142 (0 deprecated) # Browse * [Rules from this source](/rules/data4pt/) - 142 rules # Citations [1] Source file: `external/NeTEx - Validation Rules Overview.xlsx` (sha256: `204a881a9603dc13d09f06418ab4606d8a1b8c7b6bcb238ed8549b268430e3e4`) --- URL: "/bundle/sources/entur.html" LLMS_URL: "/bundle/sources/entur.md" type: "Validation Rule Source" title: "Entur netex-validator-java" description: "Validation rules for NeTEx from Entur netex-validator-java." resource: "https://github.com/entur/netex-validator-java" tags: - "netex" - "validation-rules" - "entur" timestamp: "2026-06-12T00:00:00" standard: "NeTEx" slug: "entur" rule_count: 139 profile: "Nordic NeTEx Profile" source_commit: "dfce1c76ba657cfb42105b73fcc2f9f5e59c4ff5" source_version: "12.0.1-SNAPSHOT" severity_vocabulary: - "INFO" - "WARNING" - "ERROR" - "CRITICAL" origin: "import" --- # Overview Defaults set by Entur for the Norwegian NAP; name, severity and message of every rule are overridable per deployment via YAML configuration. - **Standard:** NeTEx - **Profile:** Nordic NeTEx Profile - **Origin:** import - **Retrieved:** 2026-06-12 - **Total rules:** 139 (0 deprecated) # Browse * [Rules from this source](/rules/entur/) - 139 rules # Citations [1] [Entur netex-validator-java](https://github.com/entur/netex-validator-java) --- URL: "/bundle/sources/mobilitydata.html" LLMS_URL: "/bundle/sources/mobilitydata.md" type: "Validation Rule Source" title: "MobilityData canonical GTFS Schedule validator" description: "Validation rules for GTFS from MobilityData canonical GTFS Schedule validator." resource: "https://gtfs-validator.mobilitydata.org/rules.html" tags: - "gtfs" - "validation-rules" - "mobilitydata" timestamp: "2026-06-12T00:00:00" standard: "GTFS" slug: "mobilitydata" rule_count: 181 source_commit: "87109ed0858fbad23ccf47bb5925cd3ea38acf99" severity_vocabulary: - "ERROR" - "WARNING" - "INFO" origin: "import" --- # Overview ERROR = violation of a "Required"/"must" statement in the GTFS Reference; WARNING = "recommended"/"should" or GTFS Best Practices; INFO = quality observation. - **Standard:** GTFS - **Profile:** (none specified) - **Origin:** import - **Retrieved:** 2026-06-12 - **Total rules:** 181 (4 deprecated) # Browse * [Rules from this source](/rules/mobilitydata/) - 181 rules # Citations [1] [MobilityData canonical GTFS Schedule validator](https://gtfs-validator.mobilitydata.org/rules.html) [2] [Source repository](https://github.com/MobilityData/gtfs-validator) --- URL: "/bundle/sources/napcore.html" LLMS_URL: "/bundle/sources/napcore.md" type: "Validation Rule Source" title: "NAPCORE Validation Kit" description: "Compiled validation rules following our reference model" tags: - "NAPCORE" - "validation-rules" timestamp: "2026-07-15T00:00:00" standard: "multiple" slug: "napcore" rule_count: 0 profile: "" source_file: null source_sha256: null severity_vocabulary: null origin: "self" --- # Overview Compiled validation rules following our reference model. # Browse * [Rules from this source](/rules/napcore/) --- URL: "/help.html" LLMS_URL: "/help.md" --- # Help ## Keyboard shortcuts Navigate the site without touching the mouse. Press g followed by a letter within one second: | Shortcut | Action | | ------------------------------ | ---------------------------- | | g then h | Go to the home page | | g then r | Browse all rules | | g then s | Go to sources | | g then c | Go to the catalogue overview | | g then l | Go to the changelog | | ? | Open this page | After navigating, focus lands in the page's search box where one is available. The built-in site search opens with Ctrl+K (or +K on macOS). --- URL: "/reference-model" LLMS_URL: "/reference-model.md" --- # Reference model _Work in progress_ ## 1. Purpose Establish shared vocabulary for the NAPCORE Validation Rules Catalogue: the data model rules operate on, the scopes at which rules apply, and the structure of validation reports they produce. ## 2. Containment hierarchy Validation rules operate over a five-level containment hierarchy. Each level is a class with its own properties; lower levels inherit context from their parents. ``` Dataset └── Distribution └── Session └── Sample └── Entity ``` ### 2.1 Dataset Abstract data source of a given type and scope (as defined by mobilityDCAT-AP). Properties include publisher, declared geographic and thematic scope, declared format family. ### 2.2 Distribution Concrete representation of a dataset using one format, protocol, and scope (mobilityDCAT-AP). One dataset may have 1..N distributions (e.g. `ParkingTablePublication` for static data + `ParkingStatusPublication` for dynamic data). Properties include endpoint, protocol, format version, scope subset. ### 2.3 Session One continuous subscription period to one distribution, captured by InQMS/KOA. A session typically starts with an initial snapshot followed by deltas and must not lose messages. Properties include subscription start, subscription parameters, expected message types, declared update frequency. ### 2.4 Sample One delivery unit captured within a session - a file in file-based publishing, or a single message in messaging-based delivery. Properties: - `timestamp_collected` - when InQMS received it - `timestamp_published` - `publicationTime` from the payload - `payload` and `payload_format` (e.g. DATEX II 2.3 vs 3.x, encoding) - `session_ref` - `message_type` - for multi-type streams - `kind` ∈ {`snapshot`, `delta`, `keepalive`, `heartbeat`} - publishing pattern - `sequence_number` (or equivalent) - for delta ordering and gap detection The term _publication_ originates in DATEX II; _sample_ is the format-agnostic name used in this catalogue. ### 2.5 Entity An independently identifiable unit of information with stable identity across samples. In DATEX II these are "identifiable" or "version-identifiable" instances; in NeTEx, instances of `EntityInVersion`; in TN-ITS, road features with persistent IDs. SIRI's message-centric model is handled via its own identity scheme (see §4). One sample contains 1..N entities. The InQMS metric _number of records_ counts entities; "record" is retained as a synonym for tabular-flavoured payloads but **entity** is the canonical term. ### 2.6 Property inheritance Each level has its own properties and inherits context from its parent. A rule operating on an entity has access to the enclosing sample, session, distribution, and dataset properties through containment. Each property is marked as **declared** (set at registration / subscription / contract) or **observed** (extracted from arriving data). Many validation rules compare the two. ## 3. Validation scopes The scope of a rule determines what data the validation engine must access to evaluate it. | Scope | Validates | | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Entity-level** | Structural validity of one entity at one version (mandatory fields, value ranges, enum membership) | | **Entity-history** | The same logical identity across versions/samples (version monotonicity, lifecycle transitions, identity recycling, no resurrection of cancelled situations) | | **Sample-level** | Properties of one delivery as a whole (schema-validates, expected `publicationTime`, `kind` matches subscription contract, expected message types present) | | **Intra-sample referential** | References between entities within one sample (e.g. a `SituationRecord`'s location reference resolves inside the same publication) | | **Session-level** | Temporal/sequence properties across samples in one session (no gaps, sequence numbers contiguous, snapshot present at session start, delta cadence within SLA) | | **Cross-distribution** | Consistency across distributions of the same dataset (e.g. `ParkingStatus` IDs ⊂ `ParkingTable` IDs) | | **Dataset-level** | Properties of the dataset as a whole (geographic coverage, declared vs. observed update frequency, all promised distributions live) | Cross-distribution and intra-sample referential are conceptually about referential integrity; the distinction reflects where the referenced data physically resides, not what the rule conceptually checks. ## 4. Entity identity ### 4.1 Logical identity The publisher's claimed identity of an entity. Format-specific: - DATEX II default: `(class, id, version)` - DATEX II when `version` is unreliable: `(class, id, publicationTime)` - NeTEx default: `(class, id, version)` - SIRI: `(MessageIdentifier, ProducerRef)` or equivalent - TN-ITS: `(featureClass, featureId, changeEventId)` or equivalent Each distribution declares its **identity_key** scheme. Rules operate on `identity_key` generically; the catalogue stays format-agnostic at the rule level. ### 4.2 Observation identity A unique handle on one specific occurrence of an entity as it arrived in our system. Required because: - The same logical identity may appear in many samples (legitimate history). - The same logical identity may be **recycled** by the publisher with different content (a bug to detect). - One sample may contain duplicate logical identities (also a bug to detect). Observation identity is composed of: enclosing `sample_id` + `identity_key` + `index` (1 by default, incremented for duplicates within the same sample). This allows duplicates and recycling to appear as report findings rather than being suppressed as preconditions. ### 4.3 Recycling detection Stated generically: _for any two entity occurrences with the same_ `identity_key`_, content must match._ Independent of underlying format. ## 5. Test context and parametrisation Rules are parametrised. Parameters supply: - **Containment context** - dataset, distribution, session (and sometimes sample) properties relevant to the rule. - **Supporting data** - external reference data needed to evaluate the rule, e.g. expected geographic boundaries, ALERT-C location tables for validating ALERT-C location identifiers. The same rule definition can be reused across distributions by varying its parameters. ## 6. Report records Rules are executed using `pytest` as the runtime. Outcomes follow pytest conventions. ### 6.1 Outcomes | Outcome | Meaning | | ---------------------- | ------------------------------------------------------------------------------- | | **PASS** | Rule executed, condition satisfied | | **FAIL** | Rule executed, assertion violated - a data problem | | **ERROR** | Rule could not execute due to an unexpected problem - an infrastructure problem | | **SKIP** | Rule deliberately not executed because preconditions were not met | | **XFAIL** _(optional)_ | Rule failed but the failure is known/accepted/tracked | FAILs are reported to the data publisher (because data failed to pass a rule conformance test); ERRORs are routed to the team maintaining the validator (because the validator implementation for given rule failed to operate properly). ### 6.2 Severity Severity is **orthogonal** to outcome: `{INFO, WARNING, ERROR, CRITICAL}` or similar. The same rule may produce different severities depending on context. ### 6.3 Report record structure ``` ReportRecord ├── rule_ref which rule produced this record ├── outcome PASS | FAIL | ERROR | SKIP | XFAIL ├── severity applicable when FAIL/ERROR ├── scope entity | entity-history | sample | ... (from §3) ├── subject_ref what was tested - nested structure (see §6.4) ├── evaluated_at when validation ran ├── message human-readable explanation ├── evidence structured detail (expected vs actual, offending values) └── context_refs other entities/samples needed to understand the result ``` ### 6.4 subject_ref `subject_ref` is a nested structure tagged by the scope of the rule. The structure carries the full containment chain so report consumers can navigate upward. Example for an entity-level finding: ```json { "kind": "entity", "dataset_id": "...", "distribution_id": "...", "session_id": "...", "sample_id": "...", "entity": { "class": "SituationRecord", "id": "ABC-123", "identity_key": { "class": "SituationRecord", "id": "ABC-123", "version": "7" }, "index": 1 } } ``` Other `kind` values (`sample`, `session`, `distribution`, `dataset`) carry the chain truncated at the appropriate level. `context_refs` carries additional references needed for debugging - e.g. for a cross-distribution rule, the `ParkingTable` sample consulted when evaluating a `ParkingStatus` record. ## 7. Open issues The following points need clarification before or during implementation: 1. **Report storage vs streaming.** Are report records stored (queryable history, trend analysis, SLA reporting) or streamed (emitted live, consumed by alerting, not retained in structured form)? This shapes how self-describing each record needs to be on the wire. 2. **Record vs entity terminology.** Confirm whether the InQMS metric "number of records" remains under that name, or is renamed to "number of entities" to align with the catalogue. Equivalence is documented either way. 3. **SIRI identity scheme.** Confirm `(MessageIdentifier, ProducerRef)` (or alternative) as the identity scheme for SIRI and whether SIRI messages map cleanly to single-entity samples or require a separate sub-taxonomy. 4. **TN-ITS identity scheme.** Confirm the identity composition for TN-ITS road feature change events. 5. **XFAIL adoption.** Decide whether to use the XFAIL outcome for documented publisher non-conformances, and how such known issues are tracked alongside the catalogue. 6. **Severity vocabulary.** Confirm the exact severity levels and their definitions. 7. **Identity_key declaration.** Where is each distribution's `identity_key` scheme declared - in the distribution registration, in the rule parameters, or both? 8. **Report aggregation.** How do per-record results roll up to per-sample / per-session / per-distribution / per-dataset health views? Not addressed in this document. 9. **Rule specification format.** How rules are authored in the catalogue (pytest is the runtime; the authoring layer is still open).