← All agencies

Feed status · checked 2026-09-06

Luxembourg national public transport

Based on the official feed source on file

Service mode Tram + Rail + Bus

63.2 / 100

First scorecard for this agency

Catalogued in Luxembourg.

Covers 97 daysAccessibility gapsRealtime not yet published

One national feed covering RGTR, Ville de Luxembourg buses, CFL, TICE and Luxtram; counted as one feed record, not a distinct-agency count. The portal publishes a new dated resource each week, so the download path changes and needs a periodic refresh.

A data-quality and completeness lens to help an agency improve its GTFS feed. Not an official compliance determination from any transit program. New to this? How to read your scorecard. Interactive view of this scorecard. Rubric v1.3, validator 8.0.1.

Measured 3 of 4 score categories from the official feed URL on file.

How we measured this

Confidence in this measurement: medium.

  • Realtime quality was not measured this run. It does not count against the grade.
  • The feed was downloaded from the official feed URL on file.

Confidence describes how much the pipeline could measure this run, not the feed itself. It never changes the grade.

Top things to fix

Fix 01

Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops.Likely your team

2814 of 2814 stops don't say whether a wheelchair user can board there. Riders who use wheelchairs can't plan a trip when accessibility is marked 'unknown'; apps show no information at all.

⏱ A column in stops.txt; your scheduling software likely has it.worth about +25 points in its category

Fix 02

Set wheelchair_accessible on every trip. If every vehicle is accessible, this may be one default; otherwise use the value for each trip.Likely your export tool

36448 of 36448 trips don't say whether the vehicle is wheelchair accessible. Even with accessible stops, riders need to know the transit vehicle itself can take them.

⏱ A default or per-trip field in your export.worth about +15 points in its category

Fix 03

Add feed_info.txt with feed_start_date and feed_end_date to your export.Likely your export tool

feed_info.txt is missing its start/end dates (the file itself is absent) Apps and this scorecard can't warn anyone before the feed goes stale without stated validity dates.

⏱ Two fields, set once in export settings.worth about +15 points in its category

Finding handoff

Move one finding to a recheck

Select one finding. Copy the request, make the change in the feed-producing tool, then compare the next complete run.

Feed evidence
2814 of 2814 stops don't say whether a wheelchair user can board there.
Next action
Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops.
Recheck
Publish the changed feed at the same URL. On the next complete, comparable scorecard run, confirm that this finding is no longer reported.
Copy handoff text
How to make and check these changes

Check the result on the published feed. Read the guide, make the change in your tool, and use the next comparable run to see whether the finding is still reported. Only an action or ticket record can attribute who made the change.

  1. Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops. · Read the fix guide

    Make the change. Make this change in whatever tool produces your feed, then re-export.

    Check the result. The next scorecard run checks this finding again. If a comparable check no longer reports it, the feed's clearance log records that result. This confirms feed state, not who made the change. Self-check a feed before you publish.

  2. Set wheelchair_accessible on every trip. If every vehicle is accessible, this may be one default; otherwise use the value for each trip. · Read the fix guide

    Make the change. Make this change in whatever tool produces your feed, then re-export.

    Check the result. The next scorecard run checks this finding again. If a comparable check no longer reports it, the feed's clearance log records that result. This confirms feed state, not who made the change. Self-check a feed before you publish.

  3. Add feed_info.txt with feed_start_date and feed_end_date to your export. · Read the fix guide

    Make the change. Make this change in whatever tool produces your feed, then re-export.

    Check the result. The next scorecard run checks this finding again. If a comparable check no longer reports it, the feed's clearance log records that result. This confirms feed state, not who made the change. Self-check a feed before you publish.

Rider view: what this feed publishes

A quick read of rider-facing information in this feed.

Schedule visibility
The feed's last published service date is in 97 days.
Published accessibility data
Accessibility information is stated for 0% of stops and 0% of trips. This measures published data, not whether stops or vehicles are physically usable.
Fare information
No fare information is published in the feed.
Realtime information
Realtime-feed availability and live-arrival coverage are not known from this scorecard.

Important: This does not rate service reliability. Riders should confirm current service alerts, fares, and accessibility accommodations with the transit operator before traveling.

Send your vendor a fix request

You may not control the GTFS export yourself. Copy this and send it to whoever runs your scheduling software export. It names each fix with the validator notice and a guide link.

Score by category

Correctness69.0 / 100

The MobilityData validator flagged 6 kinds of issue across 400 instances (0 error, 304 warning, 96 informational).

Freshness85.0 / 100

Service data covers the next 97 days.

Rider experience37.5 / 100

0% of stops state wheelchair accessibility (0% marked accessible, 0% marked not accessible). This measures what the feed publishes, not whether a stop is physically usable. Fare data is not published.

Accessibility0 / 100

0% of stops state accessibility (0% marked accessible). Reflects what the feed states, not verified physical usability.

2 accessibility depth signals

  • 2 route badge(s) pair a color and text color below the WCAG 4.5:1 contrast bar (L14, L92).

    Consider: Adjust route_color or route_text_color so each pair clears 4.5:1. Often switching the text between black and white is enough.

  • 83 stop name(s) use abbreviations or symbols a screen reader may mispronounce, with no spoken form set ("Kirchberg, Antoine de St Exupéry", "Luxembourg/Centre, Michel Rodange", "Neudorf/Weimershof, Fierschterhaus", and more).

    Consider: Add tts_stop_name with the spoken form, e.g. 'Main Street and Second Avenue', for the affected stops.

Opportunities to strengthen the data, not deductions from the sub-score above. States what the second accessibility lens can check from the feed, not verified physical usability.

Realtime qualityNot yet measured

Not scored yet. Nothing here counts against the grade.

Routes and stops

Each route is drawn once, using the longest shape its trips follow; stops are the dots.

This feed has 2814 stops.

Skip to route and stop data

The route and stop data is ready below. Load the map only when you want the geographic view. It uses additional data.

Basemap: OpenFreeMap, © OpenStreetMap contributors. Routes and stops: this agency's GTFS feed.

  • 15 (green)
  • 76 (green)
  • 26 (green)
  • 27 (green)
  • 29 (green)
  • 30 (green)
  • 130 (green)
  • 132 (green)
  • 165 (green)
  • 144 (green)
  • 172 (green)
  • 121 (green)
  • 403 (green)
  • 421 (green)
  • 422 (green)
  • 502 (green)
  • 503 (green)
  • 504 (green)
  • 505 (green)
  • 506 (green)
  • 642 (green)
  • 650 (green)
  • 942 (green)
  • 134 (green)
  • 233 (green)
  • 262 (green)
  • 950 (green)
  • 135 (green)
  • 160 (green)
  • 161 (green)
  • 176 (green)
  • 414 (green)
  • 507 (green)
  • 250 (green)
  • 655 (green)
  • 152 (green)
  • 182 (green)
  • 306 (green)
  • 116 (green)
  • 117 (green)
  • 131 (green)
  • 140 (green)
  • 142 (green)
  • 163 (green)
  • 272 (green)
  • 325 (green)
  • 512 (green)
  • 622 (green)
  • 119 (green)
  • 155 (green)
  • 157 (green)
  • 170 (green)
  • 180 (green)
  • 304 (green)
  • 305 (green)
  • 309 (green)
  • 321 (green)
  • 322 (green)
  • 323 (green)
  • 332 (green)
  • 402 (green)
  • 405 (green)
  • 605 (green)
  • 608 (green)
  • 303 (green)
  • T1 (red)
  • 301 (green)
  • 431 (green)
  • 550 (green)
  • 10 (green)
  • 151 (green)
  • 11 (green)
  • 511 (green)
  • 750 (green)
  • 812 (green)
  • 12 (green)
  • 822 (green)
  • 13 (green)
  • 32 (green)
  • 14 (green)
  • 145 (green)
  • 164 (green)
  • 171 (green)
  • 15 (green)
  • 331 (green)
  • 341 (green)
  • 342 (green)
  • 423 (green)
  • 16 (green)
  • 424 (green)
  • 17 (green)
  • 18 (green)
  • 19 (green)
  • 2 (green)
  • 20 (green)
  • 21 (green)
  • 22 (green)
  • 23 (green)
  • 24 (green)
  • 3 (green)
  • 4 (green)
  • 5 (green)
  • 241 (green)
  • 6 (green)
  • 311 (green)
  • 350 (green)
  • 455 (green)
  • 7 (green)
  • 508 (green)
  • 8 (green)
  • 606 (green)
  • 609 (green)
  • 641 (green)
  • 9 (green)
  • 633 (green)
  • 141 (green)
  • 513 (green)
  • 146 (green)
  • 181 (green)
  • 302 (green)
  • 621 (green)
  • 143 (green)
  • 133 (green)
  • 324 (green)
  • IC (purple)
  • 71 (green)
  • 72 (green)
  • 73 (green)
  • 74 (green)
  • 75 (green)
  • 78 (green)
  • 81 (green)
  • 83 (green)
  • 86 (green)
  • 88 (green)
  • 90 (green)
  • 92 (green)
  • 93 (green)
  • 94 (green)
  • RB (purple)
  • 96 (green)
  • 188 (green)
  • 189 (green)
  • RE (purple)
  • 461 (green)
  • TER (purple)
  • 95 (green)
  • 97 (green)
  • TGV (purple)
  • 137 (green)
  • 432 (green)
  • 602 (green)
  • 604 (green)
  • CN1 (green)
  • CN2 (green)
  • CN3 (green)
  • CN4 (green)
  • CN5 (green)
  • CN6 (green)
  • CN7 (green)
  • 404 (green)
  • 611 (green)
  • 603 (green)
  • 607 (green)
  • 111 (green)
  • 112 (green)
  • 115 (green)
  • 120 (green)
  • 136 (green)
  • 138 (green)
  • 139 (green)
  • 147 (green)
  • 148 (green)
  • 153 (green)
  • 154 (green)
  • 162 (green)
  • 173 (green)
  • 174 (green)
  • 175 (green)
  • 231 (green)
  • 232 (green)
  • 234 (green)
  • 235 (green)
  • 242 (green)
  • 243 (green)
  • 244 (green)
  • 273 (green)
  • 274 (green)
  • 13 (green)
  • 326 (green)
  • 333 (green)
  • 361 (green)
  • 362 (green)
  • 401 (green)
  • 406 (green)
  • 411 (green)
  • 412 (green)
  • 413 (green)
  • 14 (green)
  • 501 (green)
  • 601 (green)
  • 612 (green)
  • 623 (green)
  • 631 (green)
  • 632 (green)
  • 701 (green)
  • 702 (green)
  • 703 (green)
  • 711 (green)
  • 731 (green)
  • 732 (green)
  • 741 (green)
  • 801 (green)
  • 802 (green)
  • 811 (green)
  • 821 (green)
  • 823 (green)
  • 824 (green)
  • 831 (green)
  • 832 (green)
  • 833 (green)
  • 901 (green)
  • 902 (green)
  • 903 (green)
  • 904 (green)
  • 911 (green)
  • 921 (green)
  • 931 (green)
  • 932 (green)
  • 933 (green)
  • 934 (green)
  • 935 (green)
  • 936 (green)
  • 937 (green)
  • 941 (green)
  • 961 (green)
  • A01 (green)
  • A02 (green)
  • A03 (green)
  • A04 (green)
  • A05 (green)
  • A06 (green)
  • A07 (green)
  • A08 (green)
  • A09 (green)
  • A10 (green)
  • A12 (green)
  • A13 (green)
  • A14 (green)
  • A15 (green)
  • A19 (green)
  • B01 (green)
  • B03 (green)
  • B04 (green)
  • B05 (green)
  • B06 (green)
  • B07 (green)
  • B08 (green)
  • B09 (green)
  • B10 (green)
  • B11 (green)
  • B12 (green)
  • B13 (green)
  • B14 (green)
  • B15 (green)
  • B16 (green)
  • B17 (green)
  • B18 (green)
  • B19 (green)
  • B20 (green)
  • B21 (green)
  • B22 (green)
  • B24 (green)
  • B26 (green)
  • C01 (green)
  • C02 (green)
  • C03 (green)
  • C04 (green)
  • C05 (green)
  • C06 (green)
  • C07 (green)
  • C08 (green)
  • C09 (green)
  • C10 (green)
  • C11 (green)
  • C12 (green)
  • C14 (green)
  • C15 (green)
  • C16 (green)
  • C17 (green)
  • C18 (green)
  • D01 (green)
  • D02 (green)
  • D03 (green)
  • D04 (green)
  • D05 (green)
  • D06 (green)
  • D07 (green)
  • D08 (green)
  • D09 (green)
  • D10 (green)
  • D11 (green)
  • D12 (green)
  • D13 (green)
  • D14 (green)
  • D15 (green)
  • D16 (green)
  • D17 (green)
  • D18 (green)
  • D19 (green)
  • D20 (green)
  • D21 (green)
  • D22 (green)
  • D23 (green)
  • D24 (green)
  • D25 (green)
  • D26 (green)
  • D27 (green)
  • D28 (green)
  • D29 (green)
  • D30 (green)
  • D31 (green)
  • D32 (green)
  • D33 (green)
  • D38 (green)
  • E01 (green)
  • E02 (green)
  • E03 (green)
  • E04 (green)
  • E05 (green)
  • E06 (green)
  • E07 (green)
  • E08 (green)
  • E09 (green)
  • E10 (green)
  • E11 (green)
  • E12 (green)
  • E13 (green)
  • E14 (green)
  • E15 (green)
  • E16 (green)
  • E17 (green)
  • E18 (green)
  • E19 (green)
  • E20 (green)
  • E21 (green)
  • E22 (green)
  • E23 (green)
  • E24 (green)
  • E25 (green)
  • E26 (green)
  • E27 (green)
  • E28 (green)
  • E29 (green)
  • E30 (green)
  • E31 (green)
  • E33 (green)
  • EE1 (green)
  • EE2 (green)
  • EE3 (green)
  • EE4 (green)
  • EE5 (green)
  • EE6 (green)
  • EE7 (green)
  • EE8 (green)
  • F01 (green)
  • F02 (green)
  • F03 (green)
  • G01 (green)
  • G02 (green)
  • G03 (green)
  • G04 (green)
  • G05 (green)
  • G06 (green)
  • G07 (green)
  • G08 (green)
  • G09 (green)
  • G10 (green)
  • G11 (green)
  • G12 (green)
  • H01 (green)
  • H02 (green)
  • H03 (green)
  • H04 (green)
  • H05 (green)
  • H06 (green)
  • H07 (green)
  • H08 (green)
  • H09 (green)
  • H10 (green)
  • K01 (green)
  • K02 (green)
  • K03 (green)
  • K05 (green)
  • K06 (green)
  • K07 (green)
  • K08 (green)
  • K09 (green)
  • K10 (green)
  • K11 (green)
  • K12 (green)
  • K13 (green)
  • K14 (green)
  • K15 (green)
  • K16 (green)
  • K17 (green)
  • K18 (green)
  • K19 (green)
  • K20 (green)
  • K21 (green)
  • K23 (green)
  • K24 (green)
  • K25 (green)
  • K26 (green)
  • K27 (green)
  • K28 (green)
  • K29 (green)
  • K30 (green)
  • K31 (green)
  • K32 (green)
  • K33 (green)
  • K34 (green)
  • K35 (green)
  • K36 (green)
  • K37 (green)
  • K38 (green)
  • K41 (green)
  • K42 (green)
  • K43 (green)
  • K44 (green)
  • L01 (green)
  • L02 (green)
  • L03 (green)
  • L04 (green)
  • L05 (green)
  • L06 (green)
  • M01 (green)
  • M02 (green)
  • M03 (green)
  • M04 (green)
  • M05 (green)
  • M06 (green)
  • M07 (green)
  • M08 (green)
  • M09 (green)
  • M10 (green)
  • M11 (green)
  • M12 (green)
  • M13 (green)
  • M14 (green)
  • M15 (green)
  • M16 (green)
  • M17 (green)
  • M18 (green)
  • N01 (green)
  • N02 (green)
  • N03 (green)
  • N04 (green)
  • N05 (green)
  • N06 (green)
  • N07 (green)
  • P01 (green)
  • P02 (green)
  • P03 (green)
  • P04 (green)
  • P05 (green)
  • P06 (green)
  • P09 (green)
  • P10 (green)
  • P11 (green)
  • P12 (green)
  • P13 (green)
  • P14 (green)
  • P15 (green)
  • P16 (green)
  • P18 (green)
  • P19 (green)
  • P22 (green)
  • R01 (green)
  • R02 (green)
  • R03 (green)
  • R04 (green)
  • R05 (green)
  • R06 (green)
  • S01 (green)
  • S02 (green)
  • S03 (green)
  • U01 (green)
  • U02 (green)
  • W01 (green)
  • 190 (green)
  • 191 (green)
  • 201 (green)
  • 211 (green)
  • 212 (green)
  • 221 (green)
  • 222 (green)
  • 223 (green)
  • 261 (green)
  • 271 (green)
First 500 of 725 routes in Luxembourg national public transport's feed
RouteTypeLine color
15Busgreen
76Busgreen
26Busgreen
27Busgreen
29Busgreen
30Busgreen
130Busgreen
132Busgreen
165Busgreen
144Busgreen
172Busgreen
121Busgreen
403Busgreen
421Busgreen
422Busgreen
502Busgreen
503Busgreen
504Busgreen
505Busgreen
506Busgreen
642Busgreen
650Busgreen
942Busgreen
134Busgreen
233Busgreen
262Busgreen
950Busgreen
135Busgreen
160Busgreen
161Busgreen
176Busgreen
414Busgreen
507Busgreen
250Busgreen
655Busgreen
152Busgreen
182Busgreen
306Busgreen
116Busgreen
117Busgreen
131Busgreen
140Busgreen
142Busgreen
163Busgreen
272Busgreen
325Busgreen
512Busgreen
622Busgreen
119Busgreen
155Busgreen
157Busgreen
170Busgreen
180Busgreen
304Busgreen
305Busgreen
309Busgreen
321Busgreen
322Busgreen
323Busgreen
332Busgreen
402Busgreen
405Busgreen
605Busgreen
608Busgreen
303Busgreen
T1Tram / light railred
301Busgreen
431Busgreen
550Busgreen
10Busgreen
151Busgreen
11Busgreen
511Busgreen
750Busgreen
812Busgreen
12Busgreen
822Busgreen
13Busgreen
32Busgreen
14Busgreen
145Busgreen
164Busgreen
171Busgreen
15Busgreen
331Busgreen
341Busgreen
342Busgreen
423Busgreen
16Busgreen
424Busgreen
17Busgreen
18Busgreen
19Busgreen
2Busgreen
20Busgreen
21Busgreen
22Busgreen
23Busgreen
24Busgreen
3Busgreen
4Busgreen
5Busgreen
241Busgreen
6Busgreen
311Busgreen
350Busgreen
455Busgreen
7Busgreen
508Busgreen
8Busgreen
606Busgreen
609Busgreen
641Busgreen
9Busgreen
633Busgreen
141Busgreen
513Busgreen
146Busgreen
181Busgreen
302Busgreen
621Busgreen
143Busgreen
133Busgreen
324Busgreen
ICRailpurple
71Busgreen
72Busgreen
73Busgreen
74Busgreen
75Busgreen
78Busgreen
81Busgreen
83Busgreen
86Busgreen
88Busgreen
90Busgreen
92Busgreen
93Busgreen
94Busgreen
RBRailpurple
96Busgreen
188Busgreen
189Busgreen
RERailpurple
461Busgreen
TERRailpurple
95Busgreen
97Busgreen
TGVRailpurple
137Busgreen
432Busgreen
602Busgreen
604Busgreen
CN1Busgreen
CN2Busgreen
CN3Busgreen
CN4Busgreen
CN5Busgreen
CN6Busgreen
CN7Busgreen
404Busgreen
611Busgreen
603Busgreen
607Busgreen
111Busgreen
112Busgreen
115Busgreen
120Busgreen
136Busgreen
138Busgreen
139Busgreen
147Busgreen
148Busgreen
153Busgreen
154Busgreen
162Busgreen
173Busgreen
174Busgreen
175Busgreen
231Busgreen
232Busgreen
234Busgreen
235Busgreen
242Busgreen
243Busgreen
244Busgreen
273Busgreen
274Busgreen
13Busgreen
326Busgreen
333Busgreen
361Busgreen
362Busgreen
401Busgreen
406Busgreen
411Busgreen
412Busgreen
413Busgreen
14Busgreen
501Busgreen
601Busgreen
612Busgreen
623Busgreen
631Busgreen
632Busgreen
701Busgreen
702Busgreen
703Busgreen
711Busgreen
731Busgreen
732Busgreen
741Busgreen
801Busgreen
802Busgreen
811Busgreen
821Busgreen
823Busgreen
824Busgreen
831Busgreen
832Busgreen
833Busgreen
901Busgreen
902Busgreen
903Busgreen
904Busgreen
911Busgreen
921Busgreen
931Busgreen
932Busgreen
933Busgreen
934Busgreen
935Busgreen
936Busgreen
937Busgreen
941Busgreen
961Busgreen
A01Busgreen
A02Busgreen
A03Busgreen
A04Busgreen
A05Busgreen
A06Busgreen
A07Busgreen
A08Busgreen
A09Busgreen
A10Busgreen
A12Busgreen
A13Busgreen
A14Busgreen
A15Busgreen
A19Busgreen
B01Busgreen
B03Busgreen
B04Busgreen
B05Busgreen
B06Busgreen
B07Busgreen
B08Busgreen
B09Busgreen
B10Busgreen
B11Busgreen
B12Busgreen
B13Busgreen
B14Busgreen
B15Busgreen
B16Busgreen
B17Busgreen
B18Busgreen
B19Busgreen
B20Busgreen
B21Busgreen
B22Busgreen
B24Busgreen
B26Busgreen
C01Busgreen
C02Busgreen
C03Busgreen
C04Busgreen
C05Busgreen
C06Busgreen
C07Busgreen
C08Busgreen
C09Busgreen
C10Busgreen
C11Busgreen
C12Busgreen
C14Busgreen
C15Busgreen
C16Busgreen
C17Busgreen
C18Busgreen
D01Busgreen
D02Busgreen
D03Busgreen
D04Busgreen
D05Busgreen
D06Busgreen
D07Busgreen
D08Busgreen
D09Busgreen
D10Busgreen
D11Busgreen
D12Busgreen
D13Busgreen
D14Busgreen
D15Busgreen
D16Busgreen
D17Busgreen
D18Busgreen
D19Busgreen
D20Busgreen
D21Busgreen
D22Busgreen
D23Busgreen
D24Busgreen
D25Busgreen
D26Busgreen
D27Busgreen
D28Busgreen
D29Busgreen
D30Busgreen
D31Busgreen
D32Busgreen
D33Busgreen
D38Busgreen
E01Busgreen
E02Busgreen
E03Busgreen
E04Busgreen
E05Busgreen
E06Busgreen
E07Busgreen
E08Busgreen
E09Busgreen
E10Busgreen
E11Busgreen
E12Busgreen
E13Busgreen
E14Busgreen
E15Busgreen
E16Busgreen
E17Busgreen
E18Busgreen
E19Busgreen
E20Busgreen
E21Busgreen
E22Busgreen
E23Busgreen
E24Busgreen
E25Busgreen
E26Busgreen
E27Busgreen
E28Busgreen
E29Busgreen
E30Busgreen
E31Busgreen
E33Busgreen
EE1Busgreen
EE2Busgreen
EE3Busgreen
EE4Busgreen
EE5Busgreen
EE6Busgreen
EE7Busgreen
EE8Busgreen
F01Busgreen
F02Busgreen
F03Busgreen
G01Busgreen
G02Busgreen
G03Busgreen
G04Busgreen
G05Busgreen
G06Busgreen
G07Busgreen
G08Busgreen
G09Busgreen
G10Busgreen
G11Busgreen
G12Busgreen
H01Busgreen
H02Busgreen
H03Busgreen
H04Busgreen
H05Busgreen
H06Busgreen
H07Busgreen
H08Busgreen
H09Busgreen
H10Busgreen
K01Busgreen
K02Busgreen
K03Busgreen
K05Busgreen
K06Busgreen
K07Busgreen
K08Busgreen
K09Busgreen
K10Busgreen
K11Busgreen
K12Busgreen
K13Busgreen
K14Busgreen
K15Busgreen
K16Busgreen
K17Busgreen
K18Busgreen
K19Busgreen
K20Busgreen
K21Busgreen
K23Busgreen
K24Busgreen
K25Busgreen
K26Busgreen
K27Busgreen
K28Busgreen
K29Busgreen
K30Busgreen
K31Busgreen
K32Busgreen
K33Busgreen
K34Busgreen
K35Busgreen
K36Busgreen
K37Busgreen
K38Busgreen
K41Busgreen
K42Busgreen
K43Busgreen
K44Busgreen
L01Busgreen
L02Busgreen
L03Busgreen
L04Busgreen
L05Busgreen
L06Busgreen
M01Busgreen
M02Busgreen
M03Busgreen
M04Busgreen
M05Busgreen
M06Busgreen
M07Busgreen
M08Busgreen
M09Busgreen
M10Busgreen
M11Busgreen
M12Busgreen
M13Busgreen
M14Busgreen
M15Busgreen
M16Busgreen
M17Busgreen
M18Busgreen
N01Busgreen
N02Busgreen
N03Busgreen
N04Busgreen
N05Busgreen
N06Busgreen
N07Busgreen
P01Busgreen
P02Busgreen
P03Busgreen
P04Busgreen
P05Busgreen
P06Busgreen
P09Busgreen
P10Busgreen
P11Busgreen
P12Busgreen
P13Busgreen
P14Busgreen
P15Busgreen
P16Busgreen
P18Busgreen
P19Busgreen
P22Busgreen
R01Busgreen
R02Busgreen
R03Busgreen
R04Busgreen
R05Busgreen
R06Busgreen
S01Busgreen
S02Busgreen
S03Busgreen
U01Busgreen
U02Busgreen
W01Busgreen
190Busgreen
191Busgreen
201Busgreen
211Busgreen
212Busgreen
221Busgreen
222Busgreen
223Busgreen
261Busgreen
271Busgreen

Showing 500 of 725 routes. The current scorecard JSON contains the complete route list.

List every stop
  • Clervaux, Clinique
  • Clervaux, Gare routière/Lycée
  • Clervaux, Maison de Retraite
  • Clervaux, Place de la Libération
  • Clervaux, Place Benelux
  • Clervaux, Police
  • Clervaux, Postes
  • Clervaux, Baastnecherstrooss
  • Clervaux, Kalborn/Kaalber
  • Clervaux, Hall Polyvalent
  • Clervaux, Gare
  • Clervaux, Lycée
  • Marnach, Beim Cube
  • Marnach, Beim Sender
  • Marnach, Dosberstrooss
  • Marnach, Fëschberstrooss
  • Marnach, Geschäftszenter
  • Marnach, Bei der Kierch
  • Marnach, Munzerstrooss
  • Marnach, Op der Bréck
  • Marnach, Pënnik
  • Marnach, Schwaarzenhiwwel
  • Marnach, Bombatsch
  • Heinerscheid, Bei Dikches
  • Heinerscheid, Bei Millisch
  • Heinerscheid, Geméin
  • Heinerscheid, Buregaass
  • Hupperdange, Schull
  • Hupperdange, Hualewee
  • Hupperdange, Knupp
  • Weicherdange, Café Bourg
  • Weicherdange, Kierch
  • Weicherdange, Kirelshaff
  • Mecher (Clervaux), Dueref
  • Lausdorn, Lausdorn
  • Lieler, Beim Biereg
  • Lieler, Gässelchen
  • Lieler, Om Knupp
  • Lieler, Schull
  • Drauffelt, Op der Gare
  • Drauffelt, Op der Léi
  • Drauffelt, Gare
  • Drauffelt, Park & Rail
  • Eselborn, Dueref
  • Eselborn, Neidierfchen
  • Fischbach (Clervaux), Bei Prëntzen
  • Grindhausen, Grandsen
  • Munshausen, Iewescht Duerf
  • Munshausen, bei der Kierch
  • Reuler, Centre Scolaire
  • Reuler, Duerf
  • Reuler, Hôh
  • Roder, Roder
  • Siebenaler, Bei der Kierch
  • Urspelt, Knupp
  • Urspelt, Schlass
  • Kaesfurt, Kaesfurt
  • Dorscheid, Am Duerf
  • Dorscheid, Am Poul
  • Dorscheid, Lehmkaul
  • Holzthum, Op der Hoecht
  • Holzthum, Bei der Kierch
  • Holzthum, Kiirfecht
  • Holzthum, Ferme Theves
  • Holzthum, Ennert Schinker
  • Holzthum, Um Rank
  • Holzthum, Um Schinker
  • Hosingen, Eesberwee
  • Hosingen, Ewescht Duerf
  • Hosingen, ZAER
  • Hosingen, Parc Housen
  • Hosingen, Bei der Kierch
  • Hosingen, Bayrischt
  • Hosingen, Forum pour l'Emploi
  • Consthum, Ennescht Duerf
  • Consthum, Wollefswee
  • Consthum, Knupp
  • Consthum, Kémel
  • Neidhausen, Kiirch
  • Eisenbach, Bei der Baach
  • Eisenbach, Bongertswies
  • Eisenbach, Bréck
  • Eisenbach, Kounenhaff
  • Rodershausen, Kiirch
  • Rodershausen, Um Weier
  • Rodershausen, Millewee
  • Rodershausen, Dosberbréck
  • Wahlhausen, Akescht
  • Wahlhausen, Jouseps
  • Wahlhausen, Burebierg
  • Wahlhausen, Kiirch
  • Wahlhausen, Gemönnerbréck
  • Bockholtz (Parc Hosingen), Kiirch
  • Hoscheid, Braaken
  • Hoscheid, Kräizgaass
  • Hoscheid, Maarkenbach
  • Hoscheid-Dickt, Um Pëtz
  • Hoscheid-Dickt, Um Wald
  • Basbellain, Kirrich
  • Basbellain, Willmes
  • Drinklange, Drinklange
  • Goedange, Goedange
  • Hautbellain, Kirrich
  • Hautbellain, Bellain Gare
  • Huldange, Kirrich
  • Huldange, Grotte
  • Huldange, Groussefeld
  • Huldange, Helzt
  • Huldange, Lenglerlooch
  • Huldange, Schmëtt
  • Huldange, Scierie
  • Huldange, Maison Knauf
  • Troisvierges, Gare routière
  • Troisvierges, Gemeng
  • Troisvierges, Millebierg
  • Troisvierges, Pasterknapp
  • Troisvierges, Police
  • Troisvierges, Tomm
  • Troisvierges, Bënzelterstrooss
  • Troisvierges, Gare
  • Wilwerdange, Kirrich
  • Wilwerdange, Schull
  • Wilwerdange, Gare
  • Biwisch, Biwisch
  • Beiler, Op der Halt
  • Beiler, Bei der aler Schull
  • Beiler, Beim Krécks
  • Beiler, Kisfurt
  • Binsfeld, Om Béchel
  • Binsfeld, Beim alen Burren
  • Binsfeld, Beim Musée
  • Breidfeld, Al Molkerei
  • Holler, Bréiel
  • Leithum, Bei der aler Schull
  • Leithum, Bei der Kirich
  • Weiswampach, Om Leempuddel
  • Weiswampach, Illenburren
  • Weiswampach, Hugeriit
  • Weiswampach, Om Knupp
  • Weiswampach, Ennischt Duarref
  • Weiswampach, Duarrefstrooss 86
  • Weiswampach, Bei der aler Post
  • Weiswampach, Iäwwischt Duarref
  • Weiswampach, Grait
  • Weiswampach, Kiämmel
  • Wemperhardt, Op der Haart
  • Wemperhardt, Op der Wemperhaart
  • Wemperhardt, 3 Braken
  • Wemperhardt, Beim Massen
  • Maulusmühle, Cliärrwer Strooss
  • Allerborn, Kräizung
  • Allerborn, Duerefstrooss
  • Allerborn, Bläiminnestrooss
  • Allerborn, Féitsch
  • Asselborn, Burregaass
  • Asselborn, Uäwwelaanst
  • Asselborn, Seeërei
  • Asselborn, Emeschbach
  • Asselborn, Legaye
  • Asselborn, Elwenter Weeg
  • Boxhorn, Am Eck
  • Boxhorn, Hauptstrooss
  • Boxhorn, Schemer
  • Brachtenbach, Bei der Kirich
  • Brachtenbach, Om Bierig
  • Crendal, Duerefstrooss
  • Deiffelt, Haaptstrooss
  • Derenbach, Kapell
  • Derenbach, Groësteen
  • Derenbach, Bei der Kirich
  • Derenbach, Weischent
  • Derenbach, Beim Wämperwee
  • Derenbach, Am Dueref
  • Doennange, Haaptstrooss
  • Hachiville, Duärrefstrooss
  • Hachiville, Kräizung
  • Hamiville, Beim Toutschewee
  • Hamiville, Haaptstrooss
  • Hoffelt, Driicht
  • Hoffelt, Bei der Kirich
  • Hoffelt, Beim Huälleweeg
  • Hoffelt, Duärrefstrooss
  • Lentzweiler, Haaptstrooss
  • Lentzweiler, An der Feckel
  • Lentzweiler, Op der Sang
  • Lullange, Haaptstrooss
  • Niederwampach, A Beetel
  • Niederwampach, Haaptstrooss
  • Oberwampach, Bréck
  • Oberwampach, Duerefstrooss Belzen
  • Rumlange, Om Knäppchen
  • Sassel, Beim Millewee
  • Troine-Route, Op der Strooss
  • Troine-Route, Op der Haard
  • Stockem, Duärrefstrooss
  • Troine, Bréck
  • Troine, Duarrefstrooss
  • Wincrange, Bei der Kapell
  • Wincrange, Haaptstrooss
  • Wincrange, Op der Loh
  • Wincrange, Béigener Strooss
  • Wincrange, Centre Médical
  • Weiler (Wincrange), Duärrefstrooss
  • Boevange, Wëntgerdall
  • Hinterhassel, Maison 3
  • Baschleiden, Elber
  • Baschleiden, Kiirch
  • Baschleiden, Flebour
  • Baschleiden, Hareler Poteau
  • Surré, Bei der Bréck
  • Surré, Gënzebierg
  • Surré, Montée St. Hubert
  • Boulaide, Beim Camping
  • Boulaide, Post
  • Bockholtz (Goesdorf), Bockholtz
  • Bockholtz (Goesdorf), Op der Millen
  • Buederscheid, Bitschtermillen
  • Buederscheid, Village
  • Dahl, Ale Wee
  • Dahl, Masselerstrooss
  • Dahl, Al Molkerei
  • Dahl, Waassertuurm
  • Goesdorf, Gemeng
  • Goesdorf, Maeschgaart
  • Goesdorf, Pompjeën
  • Masseler, Masseler
  • Masseler, Op der Houscht
  • Nocher, Schoul
  • Nocher, Um Knupp
  • Nocher, Welscheedgen
  • Nocher, Kautebaacherwee
  • Nocher-Route, Zenner
  • Nocher-Route, Trin
  • Nocher-Route, An der Delt
  • Eschdorf, An der Driicht
  • Eschdorf, Mairie
  • Eschdorf, Quatre Vents
  • Eschdorf, Um ale Bësch
  • Heiderscheid, Fuussekaul
  • Heiderscheid, Heiderscheid
  • Heiderscheid, Zone Commerciale
  • Heiderscheidergrund, Beim Bréckert
  • Hierheck, Hierheck
  • Merscheid (Heiderscheid), Merscheid
  • Ringel, Ringel
  • Tadler, al Schoul
  • Tadler, Kierfecht
  • Esch-sur-Sûre, Sebes
  • Esch-sur-Sûre, An de Gäert
  • Bonnal, Um Bommel
  • and 2564 more (see the full list on the map or in the GeoJSON)

Over time

This is the first scorecard for this agency. A trend and a "what changed" summary appear here once it has been checked more than once.

Everything we checked

11 findings, ordered by severity.

Show every finding
  • Warning36448 instances

    36448 of 36448 trips don't say whether the vehicle is wheelchair accessible.

    Even with accessible stops, riders need to know the transit vehicle itself can take them.

    Fix: Set wheelchair_accessible on every trip. If every vehicle is accessible, this may be one default; otherwise use the value for each trip. (A default or per-trip field in your export.)

    Finding code: scorecard_wheelchair_accessible_unknown · Read the fix guide · See GTFS Schedule reference (opens the GTFS Schedule reference on an external site)

  • Warning2814 instances

    2814 of 2814 stops don't say whether a wheelchair user can board there.

    Riders who use wheelchairs can't plan a trip when accessibility is marked 'unknown'; apps show no information at all.

    Fix: Set wheelchair_boarding to 1 (accessible) or 2 (not accessible) for every stop. A field survey can start with the busiest stops. (A column in stops.txt; your scheduling software likely has it.)

    Finding code: scorecard_wheelchair_boarding_unknown · Read the fix guide · See GTFS Schedule reference (opens the GTFS Schedule reference on an external site)

  • Warning213 instances

    Some service calendars have no days of the week switched on.

    Trips tied to these calendars never run; they are dead data that can mask real schedule problems.

    Fix: Delete the empty calendars or set their service days. (A few minutes in your scheduling software.)

    Finding code: service_has_no_active_day_of_the_week · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning65 instances

    Some stops sit far from the route line they belong to.

    Trip planners may draw the transit vehicle route through the wrong path or point riders to the wrong boarding location.

    Fix: Check the flagged stops' coordinates and the route shape in your scheduling software; re-snap whichever is misplaced. (A few minutes per flagged stop.)

    Finding code: stop_too_far_from_shape · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning24 instances

    Some service calendars in the feed have already ended.

    Expired calendars are dead weight and can hide real schedule problems from your staff and vendors.

    Fix: Remove past service periods the next time you export the feed. (One setting in most export tools.)

    Finding code: expired_calendar · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    A file GTFS asks for (usually feed_info.txt) is missing.

    feed_info.txt tells apps who publishes the feed and when it expires; without it nobody is warned before data goes stale.

    Fix: Add feed_info.txt with publisher name, URL, language, and feed_start_date/feed_end_date. (One small file, set once in export settings.)

    Finding code: missing_recommended_file · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    On some trips the stops fall along the route line in a different order than the schedule lists.

    Trip planners can draw the transit vehicle doubling back or skipping ahead, which confuses riders reading the map.

    Fix: Check the stop order and the shape direction in your scheduling software; the shape is often drawn backwards. (A few minutes per flagged trip.)

    Finding code: stops_match_shape_out_of_order · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    feed_info.txt is missing its start/end dates (the file itself is absent)

    Apps and this scorecard can't warn anyone before the feed goes stale without stated validity dates.

    Fix: Add feed_info.txt with feed_start_date and feed_end_date to your export. (Two fields, set once in export settings.)

    Finding code: scorecard_missing_feed_info_dates · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    The feed contains no fare information.

    Riders see 'fare unknown' in trip planners and can't budget their trip; visitors are most affected.

    Fix: Add fare_attributes.txt (or Fares v2 files) with your fare structure. If your service is fare-free, ask to have it marked fare-free instead. (A small file for most flat-fare systems.)

    Finding code: scorecard_no_fare_data · Read the fix guide · See GTFS Best Practices (opens GTFS Best Practices on an external site)

  • Info96 instances

    The feed has a stretch of two weeks or more with no service running.

    A long gap can mean dates were left out of the calendar. Apps then show no trips on those days.

    Fix: Check whether the gap is real, like a seasonal break; if not, add the missing dates to the calendar. (A review of your calendar dates.)

    Finding code: big_gap_in_service · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Info1 instance

    feed_info.txt has no technical contact (feed_contact_email or feed_contact_url).

    App makers and state data programs have nobody to email when they spot a problem. Small errors then sit in the feed for months.

    Fix: Add feed_contact_email to feed_info.txt. (One field.)

    Finding code: scorecard_no_feed_contact · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

Conformance mark Not yet

One requirement remains for this feed to earn the conformance mark. States wheelchair access on 0% of stops and 0% of trips; the mark needs 90% of each.

Valid Met
Passes validation with no errors.
Current Met
Service data covers the next 97 days.
Accessible Not yet
States wheelchair access on 0% of stops and 0% of trips; the mark needs 90% of each.

In plain words: earn this mark when your feed passes validation, has not expired, and says whether nearly every stop and trip is wheelchair accessible.

A pass credential for a feed that is valid, current, and states wheelchair access on nearly every stop and trip. Accessibility here measures what the feed publishes, not whether a stop is physically usable. How the conformance mark works.

Clears the Google and Apple Maps four-week coverage bar. This feed has 97 days of service ahead, clearing the four-week (28-day) window Maps asks for. No validator errors either, so riders keep seeing this agency in their trip planners; warnings lower the grade here but do not remove a feed from Maps.

How this agency maps to the standards

The scorecard is a data-quality lens, not a compliance determination. Its universal references describe good GTFS and useful rider information. Useful references here are GTFS Schedule Best Practices, GTFS-Realtime Best Practices, MobilityData grading scheme, Google Transit publication guidance. Read the full standards crosswalk.

Correctness 69 / 100
GTFS Schedule best practices, checked by the MobilityData validator. MobilityData grading covers stop locations, route names, and colors. Google Transit requires a feed to pass validation for publication.
Freshness 85 / 100
GTFS Schedule best practices call for a dataset that stays current. An expired calendar can remove service from Google Transit and other rider trip planners.
Rider experience 38 / 100
GTFS Best Practices for rider-facing fields. MobilityData grading covers stop names and headsigns.
Realtime quality Not yet published
GTFS-Realtime best practices: a stable URL, high uptime, and frequent updates.

Show your grade

Put a badge on your agency site or feed README. It updates after each completed scoring check and links back to this scorecard.

Luxembourg national public transport GTFS data quality grade: D

Prefer a shields.io style? Point a dynamic endpoint badge at the published badge.json.

Cite this record

This page updates on every check. The record below does not: it is the dated file this grade came from, published at https://gtfsscorecard.org/data/artifacts/luxembourg-national-transport/2026-09-06.json and never overwritten, pinning the grade, category scores, rubric version, validator version, reader archive profile, and the scored feed's sha256 as they stood on 2026-09-06. Use it in a board packet, a regulatory filing, or a research citation instead of linking the live page, whose content will differ on your next visit.

Citing the tool itself rather than one agency's record? Use the repo's CITATION.cff.