← All agencies

Feed status · checked 2026-07-19

Ruter

Based on the feed this agency publishes

Service mode Tram + Metro + 2 more

61.6 / 100

unchanged since 2026-07-18

Catalogued in Oslo, Norway.

Covers 126 daysAccessibility gapsRealtime not yet published

One of Entur's per-operator GTFS exports, covering Ruter in Oslo. The Entur national aggregate is a separate, much larger download that exceeds the standard archive cap; this per-operator slice stays within it.

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.2, validator 8.0.1.

Measured 3 of 4 score categories from the agency's own feed.

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 agency's own URL.

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

10815 of 11045 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 +24 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

67375 of 67375 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 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

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 126 days.
Published accessibility data
Accessibility information is stated for 2.1% 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.

Ungraded capability read

Ferry data profile

A ferry-specific view of what this GTFS feed publishes. Schedule measurements use ferry routes and trips only; fare and realtime facts are labelled as whole-feed. Unknown values are not treated as no.

Ferry service
8 routes · 600 trips
Terminal structure
31 ferry boarding locations; 31 link to 28 referenced station records.
Terminal access
Unknown: none of the 31 eligible child terminal locations publish stop_access.
Published accessibility
Unknown: none of the 31 ferry boarding locations publish wheelchair_boarding. Unknown: none of the 600 ferry trips publish wheelchair_accessible. This reports published values, not verified physical usability.
Bicycles
Unknown: none of the 600 ferry trips publish bikes_allowed.
Cars
Unknown: none of the 600 ferry trips publish cars_allowed.
Fares
Whole feed: no applied fare data is published. This is not evidence that ferry service is free.
Realtime
Whole feed: no GTFS-Realtime endpoints are configured in this scorecard.

Descriptive only. This profile does not change the grade or verify vessels, terminal facilities, vehicle carriage, fares, or accessibility in the real world. Field meanings follow the GTFS Schedule reference.

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

Correctness65.0 / 100

The MobilityData validator flagged 8 kinds of issue across 3412 instances (0 error, 3404 warning, 8 informational).

Freshness85.0 / 100

Service data covers the next 126 days.

Rider experience38.0 / 100

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

Accessibility1.3 / 100

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

3 accessibility depth signals

  • 295 route badge(s) pair a color and text color below the WCAG 4.5:1 contrast bar (1, 1131, 12, 120, 210A, and more).

    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.

  • 21 stop name(s) use abbreviations or symbols a screen reader may mispronounce, with no spoken form set ("St. Magnus plass", "St. Magnus plass", "St. Halvards plass", and more).

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

  • This feed models stations or entrances but has no pathways.txt and levels.txt.

    Consider: Add pathways.txt connecting entrances, platforms, and elevators, and levels.txt for each floor, so the step-free route is described.

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.

Skip to route and stop data

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

  • 1 (orange)
  • 100 (red)
  • 110 (red)
  • 1131 (brown)
  • 12 (teal)
  • 120 (brown)
  • 210A (brown)
  • 215A (brown)
  • 13 (teal)
  • 130 (red)
  • 1331 (brown)
  • 1332 (brown)
  • 1333 (red)
  • 1371 (brown)
  • 140 (red)
  • 1431 (brown)
  • 1432 (brown)
  • 1433 (brown)
  • 145 (red)
  • 15 (teal)
  • 150 (brown)
  • 1532 (red)
  • 1571 (brown)
  • 1572 (brown)
  • 160 (brown)
  • 1631 (brown)
  • 1632 (brown)
  • 1671 (brown)
  • 17 (teal)
  • 18 (teal)
  • 19 (teal)
  • 2 (orange)
  • 20 (red)
  • 201 (brown)
  • 2015 (brown)
  • 2018 (brown)
  • 202 (brown)
  • 203 (brown)
  • 31E (red)
  • 2032 (brown)
  • 2033 (brown)
  • 2034 (brown)
  • 204 (brown)
  • 2041 (brown)
  • 2042 (brown)
  • 2043 (brown)
  • 2044 (brown)
  • 2045 (brown)
  • 2047 (brown)
  • 205 (brown)
  • 56B (red)
  • 2072 (brown)
  • 2073 (brown)
  • 2074 (brown)
  • 75B (red)
  • 77B (red)
  • 78B (red)
  • 2079 (brown)
  • 21 (red)
  • 211 (brown)
  • 212 (brown)
  • 213 (brown)
  • 2131 (brown)
  • 2132 (brown)
  • 2135 (brown)
  • 2137 (brown)
  • 2138 (brown)
  • 2139 (brown)
  • 214 (brown)
  • 2140 (brown)
  • 2141 (brown)
  • 2142 (brown)
  • 2143 (brown)
  • 2145 (brown)
  • 2146 (brown)
  • 2148 (brown)
  • 2150 (brown)
  • 216 (brown)
  • 160E (brown)
  • 2171 (brown)
  • 2172 (brown)
  • 2175 (brown)
  • 2177 (brown)
  • 220 (brown)
  • 210B (brown)
  • 215B (brown)
  • 250E (brown)
  • 255E (brown)
  • 265E (brown)
  • 23 (red)
  • 230 (brown)
  • 300E (red)
  • 235 (brown)
  • 370B (brown)
  • 390E (brown)
  • 24 (red)
  • 240 (brown)
  • 400E (brown)
  • 245 (brown)
  • 470E (brown)
  • 25 (red)
  • 250 (brown)
  • 505E (brown)
  • 251 (brown)
  • 535X (brown)
  • 540N (brown)
  • 545A (brown)
  • 256 (brown)
  • 560N (brown)
  • 565E (brown)
  • 26 (red)
  • 260 (brown)
  • 261 (brown)
  • 2630 (brown)
  • 2631 (brown)
  • 2632 (brown)
  • 2633 (brown)
  • 2634 (brown)
  • 2635 (brown)
  • 2636 (brown)
  • 2639 (brown)
  • 2640 (brown)
  • 2641 (brown)
  • 2642 (brown)
  • 265 (brown)
  • 2671 (brown)
  • 2673 (brown)
  • 270 (brown)
  • 2731 (brown)
  • 2732 (brown)
  • 2733 (brown)
  • 2734 (brown)
  • 275 (brown)
  • 28 (red)
  • 280 (brown)
  • 281 (brown)
  • 140E (brown)
  • 285 (brown)
  • 150E (brown)
  • 286 (brown)
  • 2871 (brown)
  • 2873 (brown)
  • 290 (brown)
  • 291 (brown)
  • 292 (brown)
  • 293 (brown)
  • 2931 (brown)
  • 2932 (brown)
  • 2933 (brown)
  • 294 (brown)
  • 295 (brown)
  • 296 (brown)
  • 297 (brown)
  • 298 (brown)
  • 3 (orange)
  • 30 (red)
  • 300 (red)
  • 3B (red)
  • 4B (red)
  • 5B (red)
  • 13B (red)
  • 3073 (brown)
  • 75C (red)
  • 77X (red)
  • 80X (red)
  • 81X (red)
  • 31 (red)
  • 310 (brown)
  • 110E (brown)
  • 115E (brown)
  • 125E (brown)
  • 130N (red)
  • 3131 (brown)
  • 140N (red)
  • 315 (brown)
  • 3172 (brown)
  • 3175 (brown)
  • 320 (brown)
  • 321 (brown)
  • 240N (brown)
  • 250N (brown)
  • 330 (brown)
  • 3331 (brown)
  • 3333 (brown)
  • 3334 (brown)
  • 3335 (brown)
  • 335 (brown)
  • 3371 (brown)
  • 3374 (brown)
  • 34 (red)
  • 340 (brown)
  • 3431 (brown)
  • 345 (brown)
  • 350 (brown)
  • 500N (brown)
  • 3531 (brown)
  • 3532 (brown)
  • 3533 (brown)
  • 3534 (brown)
  • 3535 (brown)
  • 3538 (brown)
  • 545B (brown)
  • 3571 (brown)
  • 3574 (brown)
  • 3575 (brown)
  • 360 (brown)
  • 3633 (brown)
  • 3634 (brown)
  • 3636 (brown)
  • 3637 (brown)
  • 3638 (brown)
  • 3639 (brown)
  • 3640 (brown)
  • 3641 (brown)
  • 3643 (brown)
  • 3644 (brown)
  • 365 (brown)
  • 3652 (brown)
  • 3657 (brown)
  • 3658 (brown)
  • 3659 (brown)
  • 366 (brown)
  • 3674 (brown)
  • 3676 (brown)
  • 3682 (brown)
  • 37 (red)
  • 370A (brown)
  • B1 (purple)
  • B2 (purple)
  • B1X (purple)
  • 3731 (brown)
  • 3734 (brown)
  • 3735 (brown)
  • 3737 (brown)
  • 3740 (brown)
  • 3742 (brown)
  • 3743 (brown)
  • 375 (brown)
  • 3771 (brown)
  • 3772 (brown)
  • 3773 (brown)
  • 3780 (brown)
  • 380 (brown)
  • 381 (brown)
  • B10 (purple)
  • B11 (purple)
  • B20 (purple)
  • B21 (purple)
  • B22 (purple)
  • 3833 (brown)
  • 3834 (brown)
  • 3837 (brown)
  • 3838 (brown)
  • 3839 (brown)
  • 385 (brown)
  • 386 (brown)
  • 3871 (brown)
  • 3872 (brown)
  • 3874 (brown)
  • 390 (brown)
  • 1N (red)
  • 2N (red)
  • 3N (red)
  • 4N (red)
  • 5N (red)
  • 11N (red)
  • 12N (red)
  • 19N (red)
  • 395 (brown)
  • 396 (brown)
  • 63N (red)
  • 70E (red)
  • 397 (brown)
  • 70N (red)
  • 81N (red)
  • 83N (red)
  • 4 (orange)
  • 40 (red)
  • 400 (brown)
  • 13E (red)
  • 405 (brown)
  • 73X (red)
  • 41 (red)
  • 410 (brown)
  • 413 (brown)
  • 42 (red)
  • 420 (brown)
  • 425 (brown)
  • 426 (brown)
  • 430 (brown)
  • 432 (brown)
  • 433 (brown)
  • 434 (brown)
  • 436 (brown)
  • 437 (brown)
  • 440 (brown)
  • 441 (brown)
  • 442 (brown)
  • 443 (brown)
  • 444 (brown)
  • 445 (brown)
  • 446 (brown)
  • 447 (brown)
  • 448 (brown)
  • 449 (brown)
  • 45 (red)
  • 450 (brown)
  • 451 (brown)
  • 452 (brown)
  • 453 (brown)
  • 455 (brown)
  • 46 (red)
  • 460 (brown)
  • 461 (brown)
  • 463 (brown)
  • 465 (brown)
  • 470 (brown)
  • 480 (brown)
  • 485 (brown)
  • 490 (brown)
  • 5 (orange)
  • 500 (brown)
  • 505 (brown)
  • 506 (brown)
  • 506X (brown)
  • 507 (brown)
  • 51 (red)
  • 510 (brown)
  • 511 (brown)
  • 515 (brown)
  • 516 (brown)
  • 517 (brown)
  • 520 (brown)
  • 521 (brown)
  • 522 (brown)
  • 523 (brown)
  • 524 (brown)
  • 525 (brown)
  • 526 (brown)
  • 260E (brown)
  • 527 (brown)
  • 530 (brown)
  • 531 (brown)
  • 532 (brown)
  • 533 (brown)
  • 535 (brown)
  • 536 (brown)
  • 54 (red)
  • 540 (brown)
  • 550 (brown)
  • 551 (brown)
  • 56 (red)
  • 560 (brown)
  • 561 (brown)
  • 565 (brown)
  • 570 (brown)
  • 575 (brown)
  • 576 (brown)
  • 58 (red)
  • 580 (brown)
  • 585 (brown)
  • 60 (red)
  • 62 (red)
  • 63 (red)
  • 64 (red)
  • 65 (red)
  • 66 (red)
  • 67 (red)
  • 68 (red)
  • 69 (red)
  • 70 (red)
  • 71 (red)
  • 72 (red)
  • 73 (red)
  • 74 (red)
  • 75A (red)
  • 76 (red)
  • 77 (red)
  • 78A (red)
  • 79 (red)
  • 80E (red)
  • 81 (red)
  • 83 (red)
  • 84E (red)
  • 85 (red)
  • 87 (red)
  • 89 (red)
  • 74X (red)
  • 91 (red)
  • 93 (red)
  • NC2 (red)
  • 42N (red)
  • 23X (red)
  • 34X (red)
Routes in Ruter's feed
RouteTypeLine color
1 Frognerseteren - BergkrystallenSubway / metroorange
100 Kjeller - Oslo bussterminalBusred
110 Lillestrøm - Oslo bussterminalBusred
1131 Hølen - Garder - Vestby stasjonBusbrown
12 Kjelsås - Majorstuen o/ løkka og Aker BryggeTram / light railteal
120 Nesåsen - StovnerBusbrown
210A Bykrysset - Helset- SandvikaBusbrown
215A Kolsås - Vøyenenga- SandvikaBusbrown
13 Bekkestua - LjabruTram / light railteal
130 Sandvika -SkøyenBusred
1331 Siggerud skoleBusbrown
1332 Kråkstad skoleBusbrown
1333 Bjastad - Kråkstad skoleBusred
1371 Nesodden - SkiBusbrown
140 Bekkestua - Østerås - SkøyenBusred
1431 Kjærnes - Nordby skoleBusbrown
1432 Kongeveien - Nordby skoleBusbrown
1433 TusenFryd - Nordby skoleBusbrown
145 Bekkestua - FornebuBusred
15 Jernbanetorget - Majorstuen via NatTram / light railteal
150 Gullhaug - NationaltheatretBusbrown
1532 Tomter - HeerBusred
1571 Ski - Vinterbro - Frogn videregående skoleBusbrown
1572 Ski - Frogn videregående skoleBusbrown
160 Rykkinn -NationaltheatretBusbrown
1631 Hellvik - Alværn ungdomsskoleBusbrown
1632 Blylaget - Alværn ungdomsskoleBusbrown
1671 Fjellstrand - Nesodden vgsBusbrown
17 Rikshospitalet - Sinsen o/ Carl BernerTram / light railteal
18 Grefsen st [4311] - RikshospitaletTram / light railteal
19 Ljabru - MajorstuenTram / light railteal
2 Østerås - EllingsrudåsenSubway / metroorange
20 Skøyen - GalgebergBusred
201 Sandvika - JongBusbrown
2015 Nesøya - LandøyaBusbrown
2018 Undelstad - TorstadBusbrown
202 Tanum kirke - Henie Onstad seniorsenter - SandvikaBusbrown
203 Skui - SandvikaBusbrown
31E Fornebu - KalbakkenBusred
2032 Kleiverfeltet - Midtbygda skoleBusbrown
2033 Grimsrud -Spikkestad ungdomsskoleBusbrown
2034 Kleiverfeltet - SPUSKBusbrown
204 Rykkinn - Kolsås - SandvikaBusbrown
2041 Folkestad sk- Holmsbu -Rødtangen -VerketBusbrown
2042 Folkestad sk -Kana -Verket- Åsheim -SteinerskolenBusbrown
2043 Åsheimterminalen - Rødtangen-Folkestad sk -TofteBusbrown
2044 Steinerskolen Hurum - Storsand sentrum - SageneBusbrown
2045 Sætre - Tofte skoleBusbrown
2047 Verket - Mølleveien -Folkestad skole -SætreBusbrown
205 Sandvika - GjettumBusbrown
56B Nydalen - GrefsenkollenBusred
2072 Grimsrud - Røyken vgs.Busbrown
2073 Åsheim bussterminal - Tofte -Røyken vgs.Busbrown
2074 Verpen - Røyken vgs.Busbrown
75B Nordstrand ringBusred
77B Holmlia stasjon - AsperudåsenBusred
78B Østensjø ringBusred
2079 Sundbykrysset -Morbergtoppen - Røyken vgs.Busbrown
21 Tjuvholmen - Helsfyr TBusred
211 Bekkestua - Sandvika storsenterBusbrown
212 Bekkestua - ØsteråsBusbrown
213 Bekkestua - Høvik - SandvikaBusbrown
2131 Finstadbru - Haneborg skole - Aursmoen skoleBusbrown
2132 Aursmoen skole - Ulviken - Haneborg skoleBusbrown
2135 Søndre Mangen - Haneborg skoleBusbrown
2137 Harkerud - Aursmoen skole - BjørkelangenBusbrown
2138 Rømskog - Setskog - BjørkelangenBusbrown
2139 Bjørkelangen skole - Smedsrud - Rud - BjørkelangenBusbrown
214 Bekkestua - Lysaker - Ekern - JernbaneveienBusbrown
2140 Bjørkelangen - Liermosen - MokrokenBusbrown
2141 Løken - Momoen - Ovrum - Sjøberg - LøkenBusbrown
2142 Smedsrud - Nærby - Nes - LøkenBusbrown
2143 Løken - Momoen - Ovrum - BråteBusbrown
2145 Halvorsrud - Bjørnebråten - Løken - Bråte skoleBusbrown
2146 Bråte skole - Sjøberg - Løken - BjørkelangenBusbrown
2148 Studsrud - Pavestad - Bråte skoleBusbrown
2150 Sollum - Fylkesdele - Bråte skoleBusbrown
216 Bekkestua - Søråsen - KleivveienBusbrown
160E Rykkinn - NationaltheatretBusbrown
2171 Garderåsen - BjørkelangenBusbrown
2172 Basmo - Bråte - Løken - Fosser - BjørkelangenBusbrown
2175 Fjellsrud - Løken - BjørkelangenBusbrown
2177 Harkerud - Sørumsand - BjørkelangenBusbrown
220 Sandvika - BekkestuaBusbrown
210B Slalåmveien -Mølledammen- SandvikaBusbrown
215B Kolsås - SandvikaBusbrown
250E Slemmestad - NationaltheatretBusbrown
255E Sætre - Slemmestad - Oslo bussterminalBusbrown
265E Nesøya - Oslo bussterminalBusbrown
23 Lysaker - SimensbråtenBusred
230 Sandvika - Bekkestua - Østerås - IlaBusbrown
300E Ekspress Blystadlia - HelsfyrBusred
235 Østerås - Grini Næringspark - ListuveienBusbrown
370B Sørumsand - Blaker - SørumsandBusbrown
390E Hellerudhaugen - Oslo bussterminalBusbrown
24 Fornebu vest - Brynseng TBusred
240 Skui - SandvikaBusbrown
400E Eltonåsen - Oslo EkspressBusbrown
245 Kattås - Tanum - SandvikaBusbrown
470E Eidslia - HelsfyrBusbrown
25 Majorstuen-HaugerudBusred
250 Sætre - Slemmestad - NationaltheatretBusbrown
505E Skorkeberg - OsloBusbrown
251 Drammen - Hyggen - Åsheim - SætreBusbrown
535X Ås læringssenterBusbrown
540N Oslo - Ski - Ås - Vestby (nattbuss)Busbrown
545A Son med klokkaBusbrown
256 Verket - Åsheim - Holmsbu - Tofte - SætreBusbrown
560N Blylaget - Hellvik - Nesoddt.(natt- og morgenbuss)Busbrown
565E Hellvik - NesoddtangenBusbrown
26 Ellingsrudåsen - BislettBusred
260 Hyggen - Bråset -Slemmestad (- Asker)Busbrown
261 Drammen - Lahell - Røyken - SætreBusbrown
2630 Bingsfoss - OrmstadBusbrown
2631 Lørenfallet - Simarud - Veslesjea - SørumsandBusbrown
2632 Grønnbekkveien - Blaker skole - SørumsandBusbrown
2633 Bingsfoss - GrønnbekkveienBusbrown
2634 Skugstad - Mork - Blaker skole - SørumsandBusbrown
2635 Blaker skole - Hellne - SørumsandBusbrown
2636 Blaker skole - Kvevli - Mork - HarkerudBusbrown
2639 Vardefjellet - Frogner skoleBusbrown
2640 Knatten - Arteid - FrognerBusbrown
2641 Frogner skole - Lundermoen - Vesterskaun skoleBusbrown
2642 Vardefjellet - Frogner skole - SørumsandBusbrown
265 Sandvika - Nesøya - SandvikaBusbrown
2671 Sundet - SørumsandBusbrown
2673 Bjørkelangen - SørumsandBusbrown
270 Asker - Sandvika (- Fornebu)Busbrown
2731 Vinsnes - Jølsen - Garderåsen - SundetBusbrown
2732 Dammerud - Tofsrud - Lystad - Riddersand skoleBusbrown
2733 Stigen - Stensrud - Dalen skole - SundetBusbrown
2734 Krokedal - Sand - Dalen skole - SundetBusbrown
275 Asker - VøyenBusbrown
28 Fornebu vest - Økern TBusred
280 Asker - Dikemark - HeggedalBusbrown
281 Borgen - AskerBusbrown
140E Hosle - NationaltheatretBusbrown
285 Heggedal - Blakstad - AskerBusbrown
150E Gullhaug - NationaltheatretBusbrown
286 Rustadgrenda-HeggedalBusbrown
2871 Ask - Lillestrøm - Rælingen vgs.Busbrown
2873 Røykås - Lørenskog sentrum - Strømmen - RælingenBusbrown
290 Asker - BlakstadBusbrown
291 Asker - Ånnerud - Vardåsen - DrengsrudBusbrown
292 Asker - Bondi - Blakstad - BleikerkollenBusbrown
293 Asker - Leangkollen - KonglungenBusbrown
2931 Dalefjerdingen - Enebakk kirkeBusbrown
2932 Ekebergdalen - Enebakk kirkeBusbrown
2933 Ytre Enebakk skoleBusbrown
294 Asker - Borgen - Bondivann stasjonBusbrown
295 Guibekken - VollenBusbrown
296 Asker - Heggedal - SlemmestadBusbrown
297 Asker - Solgården - Høn - UndelstadBusbrown
298 Konglungen - VettreBusbrown
3 Kolsås - MortensrudSubway / metroorange
30 Bygdøy - NydalenBusred
300 Blystadlia - Ahus - Oslo bussterminalBusred
3B Buss for linje 3Busred
4B Buss for linje 4Busred
5B Buss for linje 5Busred
13B Buss for linje 13Busred
3073 Vallerudtoppen - Skåreråsen - Ahus - KnattenBusbrown
75C Lambertseter ringBusred
77X Hauketo stasjon - BjørndalBusred
80X Buss for tog Tollboden - HolmliaBusred
81X Buss for tog Oslo S - KolbotnBusred
31 Snarøya - Fornebu - Tonsenhagen - GrorudBusred
310 Fjerdingby (Smestad) - VallerudtoppenBusbrown
110E Sørlihavna - HelsfyrBusbrown
115E Vallerudtoppen - HelsfyrBusbrown
125E Nesåsen - ØkernBusbrown
130N Nationaltheatret - SandvikaBusred
3131 Vardeåsen - TærudhallenBusbrown
140N Nationaltheatret - BekkestuaBusred
315 Vallerudtoppen - AhusBusbrown
3172 Hakadal - Gjelleråstoppen - Skjetten - LillestrømBusbrown
3175 Lørenfallet - Arteid - LillestrømBusbrown
320 Garderåsen - LillestrømBusbrown
321 Fetsund - GarderåsenBusbrown
240N Sandvika - Tanum - SkuiBusbrown
250N Nationaltheatretl - Sandvika- Slemmestad- SætreBusbrown
330 Fjerdingby - LillestrømBusbrown
3331 Holum skog - Li skoleBusbrown
3333 Åneby stasjon - ElvetangenBusbrown
3334 Elvetangen - KongskogBusbrown
3335 Hellerudhaugen - ElvetangenBusbrown
335 Lillestrøm - BranderudBusbrown
3371 Lillestrøm - Skjetten - Holum skog - Bjertnes vgsBusbrown
3374 Skedsmokorset - Solberg - Bjertnes vgsBusbrown
34 Tåsen - Ekeberg hagebyBusred
340 Skedsmokorset - Olavsgaard - LillestrømBusbrown
3431 Nitteberg - KankedalenBusbrown
345 Vestvollen - ØkernBusbrown
350 Lillestrøm - SkiBusbrown
500N Drøbak - Oslo (natt- og morgenbuss)Busbrown
3531 Ekornrud - AlgarheimBusbrown
3532 Gystadmaraka - Hauerseter - NordkisaBusbrown
3533 Lundsletta - Borgen - JessheimBusbrown
3534 Stokker - LøkendalenBusbrown
3535 Østli - MogreinaBusbrown
3538 Nordkisa - Jessheim - NannestadBusbrown
545B Son mot klokkaBusbrown
3571 Veståsen - Ask - Kløfta - JessheimBusbrown
3574 Stokker-Borgen -Nybakk-JessheimBusbrown
3575 Nannestad - Krokfoss - JessheimBusbrown
360 Vardefjellet/Vardeåsen - BlystadliaBusbrown
3633 Frilset/Bårstad - Fenstad - VormsundBusbrown
3634 Brårud/Neskollen - VormsundBusbrown
3636 Tomteråsen - Vormsund - GrenihagenBusbrown
3637 Brårud - Fenstad - VormsundBusbrown
3638 Skogbygda - Vormsund - NeskollenBusbrown
3639 Herbergåsen - Skogbygda - VormsundBusbrown
3640 Bjertnestunet - SkogbygdaBusbrown
3641 Vormsund - Uvesund - Opaker - SkogbygdaBusbrown
3643 Simarud - Udnes - Fuglefjellet - NeskollenBusbrown
3644 Fuglefjellet - Hvam - NeskollenBusbrown
365 Sørumsand - Frogner - SkedsmokorsetBusbrown
3652 Opaker - Smedsrud - ØstgårdBusbrown
3657 Årnes - Brauter - FramtunBusbrown
3658 Huserteiet - Aulitoppen - FramtunBusbrown
3659 Østgård - Dragsjøvegen - ÅrnesBusbrown
366 Orredalen - SørumsandBusbrown
3674 Fallet - Skogbygda - Vormsund - ÅrnesBusbrown
3676 Bjørkelangen - Aurskog - Hellne - Haga - Nes vgs.Busbrown
3682 Skedsmokorset - Frogner - Kløfta - Hvam vgsBusbrown
3686 Runni - Tomteråsen/ Neskollen - RånåsfossBusbrown (no shape in feed)
37 Nydalen T - HelsfyrBusred
370A Sørumsand - Blaker - SørumsandBusbrown
B1 ØyeneFerrypurple
B2 LangøyeneFerrypurple
B1X Aker Brygge - HovedøyaFerrypurple
3731 Millidal - Skovseth - Eidsvoll/ VilbergBusbrown
3734 Tømtedalen - EidsvollBusbrown
3735 Vilberg/ Eidsvoll - Finstad/ BårstadBusbrown
3737 Nygård/Vestheim - Sandvoll - LangsetBusbrown
3740 Venger - RåholtBusbrown
3742 Eidsvoll - Ås skole - FinstadBusbrown
3743 Eidsvoll - Finstad - Dal - RåholtBusbrown
375 Strømmen - Olavsgaard - HelsfyrBusbrown
3771 Jessheim - Dal - Råholt - EidsvollBusbrown
3772 Jessheim - Eidsvoll/ Eidsvoll - Dal - ØstliBusbrown
3773 Åsgreina - Maura - EidsvollBusbrown
3780 Eidsvoll - Bårlidalen - NeskollenBusbrown
380 Lillestrøm - Rv4 - Oslo bussterminalBusbrown
381 Guldhaug-Tømte - LillestrømBusbrown
B10 Nesoddtangen - Aker bryggeFerrypurple
B11 Lysaker - NesoddtangenFerrypurple
B20 Slemmestad - Aker bryggeFerrypurple
B21 Son - Aker bryggeFerrypurple
B22 Aker brygge - Drøbak via VollenFerrypurple
3833 Ask - Veståsen - Eltonåsen - NannestadBusbrown
3834 Kringlerdalen - Maura - NannestadBusbrown
3837 Eltonåsen - Løkendalen - Fagerli sykehjemBusbrown
3838 Nannestad - Engelstad - GrasmoBusbrown
3839 Nannestad - Maura - SandnessenterBusbrown
385 Nittedal stasjon - Olavsgaard - AhusBusbrown
386 Nittedal stasjon - Kruttverket - DamBusbrown
3871 Kongskog - Olavsgaard - Jessheim vgsBusbrown
3872 Eidsvoll - Råholt - Dal - NannestadBusbrown
3874 Olavsgaard - Skedsmo - Jessheim - NannestadBusbrown
390 Kongskog/Hellerudhaugen - Oslo bussterminalBusbrown
1N Jernbanetorget - UllerntoppenBusred
2N Østerås T - EllingsrudåsenBusred
3N Jernbanetorget - Skullerud TBusred
4N Jernbanetorget - Bergkrystallen TBusred
5N Jernbanetorget - Vestli TBusred
11N Majorstuen - KjelsåsBusred
12N Majorstuen - KjelsåsBusred
19N Kringsjå - ÅsbråtenBusred
395 Slattum - Li - HaganBusbrown
396 Slattum - Li - SkyttaBusbrown
63N Romsås ringBusred
70E Nationaltheatret - SkullerudBusred
397 Skillebekk - SkyttaBusbrown
70N Jernbanetorget - BjørndalBusred
81N Nationaltheatret - SkiBusred
83N Nationaltheatret - FløysbonnBusred
4 Vestli - BergkrystallenSubway / metroorange
40 Øvre Sogn - SkøyenBusred
400 Oslo lufthavn - Veståsen - Olavsgaard - OsloBusbrown
13E Ekspressbuss for linje 13Busred
405 Kløfta - Ask terminalBusbrown
73X Hauketo stasjon - MaikollenBusred
41 Sørkedalen - Røa TBusred
410 Nannestad - Ask/ VeståsenBusbrown
413 Bestilling NannestadBusbrown
42 Voksen skog - TjuvholmenBusred
420 Maura - JessheimBusbrown
425 Kløfta – Oslo lufthavnBusbrown
426 Jessheim ringBusbrown
430 Eidsvoll - JessheimBusbrown
432 Servicelinje Finstad - EidsvollBusbrown
433 Servicelinje Eidsvoll - BønsdalenBusbrown
434 Bestilling Ulvin - MinnesundBusbrown
436 Bestillings linje UllensakerBusbrown
437 Bestillingslinje UllensakerBusbrown
440 Fenstad/Nordkisa - Oslo lufthavnBusbrown
441 Eidsvoll - ÅrnesBusbrown
442 Gullverket - EidsvollBusbrown
443 Feiring/ Minnesund - EidsvollBusbrown
444 Bestilling Gullverket - Frislet EidsvollBusbrown
445 Hurdal - Eidsvoll verkBusbrown
446 Hurdal - Jessheim/ NannestadBusbrown
447 Bestilling HurdalBusbrown
448 Langset - Eidsvoll via ØstsidavegenBusbrown
449 Bestilling Feiring - Minnesund - EidsvollBusbrown
45 Majorstuen - Voksen skogBusred
450 Årnes - Oslo lufthavnBusbrown
451 Dysterud - ÅrnesBusbrown
452 Auli - Årnes - Østgård - ÅrnesBusbrown
453 Rånåsfoss - ÅrnesBusbrown
455 Årnes -RånåsfossBusbrown
46 Majorstuen - UllerntoppenBusred
460 Herbergåsen - KløftaBusbrown
461 Bestilling Fenstad øst/ vest (461)Busbrown
463 Bestilling Udnes & Haga (464)Busbrown
465 Bestilling Skogbygda-Greni/Opaker-Seterstøa (466)Busbrown
470 (Rømskog) - Bjørkelangen - LillestrømBusbrown
480 Bjørkelangen - Løken - LillestrømBusbrown
485 Hemnes - Løken - BjørkelangenBusbrown
490 Trøgstad - LillestrømBusbrown
5 Sognsvann - VestliSubway / metroorange
500 Drøbak - OsloBusbrown
505 Drøbak - OsloBusbrown
506 Dyrløkke - Sogsti - Drøbak - Frogn vgsBusbrown
506X Sommerbuss i DrøbakBusbrown
507 Elle - DyrløkkeBusbrown
51 Maridalen - NydalenBusred
510 Bøleråsen - Ski - Ås - DrøbakBusbrown
511 Sætreskogen - Ski stasjonBusbrown
515 Ski - OsloBusbrown
516 Siggerud - Ski stasjonBusbrown
517 Siggerud - Ski stasjonBusbrown
520 Vinterbro - Ski stasjonBusbrown
521 TusenFryd - Ski stasjonBusbrown
522 Ås - VinterbroBusbrown
523 Kjærnes - Vinterbro - Ski stasjonBusbrown
524 Ås - Vinterbro - Ski stasjonBusbrown
525 Kråkstad - Ski - KråkstadBusbrown
526 Ellingsrudlia - Ski stasjonBusbrown
260E Bødalen - Slemmestad - Holmen - Sandvika- UllevålBusbrown
527 Skotbu - Ski stasjonBusbrown
530 Pepperstad - Vestby stasjonBusbrown
531 Hvitsten - Vestby stasjonBusbrown
532 Kaxrud - Garder - Vestby stasjonBusbrown
533 Randem - Vestby stasjonBusbrown
535 Kroer - Ås stasjonBusbrown
536 Dyster/Eldor - Ås stasjonBusbrown
54 Kværnerbyen - Kjelsås stasjonBusred
540 Moss - Son - Vestby stasjonBusbrown
550 Enebakk - OsloBusbrown
551 Dalefjerdingen - Enebakk kirkeBusbrown
56 Nydalen - SolemskogenBusred
560 Blylaget - NesoddtangenBusbrown
561 Drøbak - NesoddtangenBusbrown
565 Myklerud - NesoddtangenBusbrown
570 Vinterbro - NesoddtangenBusbrown
575 Fagerstrand - NesoddtangenBusbrown
576 Fagerstrand - DrøbakBusbrown
58 Nydalen - Tveita (- Bøler) via BjerkeBusred
580 Kolbotn - SkiBusbrown
585 Kolbotn - SvartskogBusbrown
60 Vippetangen-TonsenhagenBusred
62 Grorud T - Ammerud ringBusred
63 Grorud T - Romsås ringBusred
64 Furuset T - Stovner T via HøybråtenBusred
65 Furuset T - Stovner T via SmedstuaBusred
66 Helsfyr T - Grorud TBusred
67 Økern-Lørenskog sentrumBusred
68 Helsfyr T - Grorud T via AlfasetBusred
69 Tveita-LutvannBusred
70 Nationaltheatret - SkullerudBusred
71 Bjørndal - Mortensrud T (-Jernbanetorget)Busred
72 Mortensrud T - SeterbråtenBusred
73 Holmlia stasjon - BrennaBusred
74 Jernbanetorget - Mortensrud TBusred
75A Nordstrand ringBusred
76 Helsfyr T - Mortensrud TBusred
77 Holmlia stasjon - BjørndalBusred
78A Østensjø ringBusred
79 Grorud T - ÅsbråtenBusred
80E Jernbanetorget - ÅsbråtenBusred
81 Fornebu - Myrvoll stasjonBusred
83 Jernbanetorget - TårnåsenBusred
84E Jernbanetorget-Oppegård st.Busred
85 Jernbanetorget - UlvøyaBusred
87 Hauketo stasjon - KolbotnBusred
89 Jernbanetorget - IngierstrandBusred
74X Bjørvika - BekkelagshjemmetBusred
91 Jernbanetorget - StoroBusred
93 Jernbanetorget - BrynsengBusred
NC2 Ekeberg - Bøler TBusred
42N Voksen skog - JernbanetorgetBusred
23X Tåsen - SimensbråtenBusred
34X Jernbanetorget - EkebergBusred

This feed has 11045 stops.

List every stop
  • Løkenåsveien
  • Skrytastubben
  • Øierudåsen
  • Glenneveien
  • Skrytastubben
  • Glenneveien
  • Øierudåsen
  • Rasta senter
  • Rasta senter
  • Øierud
  • Ekebergveien
  • Ekebergveien
  • Skryta
  • Skryta
  • Røykåsveien
  • Røykåsveien
  • Haveråsveien
  • Haveråsveien
  • Njåls vei
  • Njåls vei
  • Odalen
  • Odalen
  • Røykås nordre
  • Austad
  • Austad
  • Røykås
  • Røykås
  • Vestbyveien
  • Vestbyveien
  • Brånåslia
  • Sønnaveien
  • Brånåslia
  • Sønnaveien
  • Kleiva sør
  • Kleiva sør
  • Havstad
  • Muri
  • Muri
  • Løkenåsfaret
  • Solbukta
  • Løkenåsfaret
  • Slora
  • Visperud
  • Visperud
  • Nedre Glenne
  • Visperud
  • Stubberud
  • Stubberud
  • Ullerud
  • Ullerud
  • Lørenskog stasjon
  • Lørenskog stasjon
  • Digerud veikryss
  • Digerud veikryss
  • Strømsbergveien
  • Strømsbergveien
  • Stasjonsveien
  • Digerud gård
  • Stasjonsveien
  • Brages veg
  • Brages veg
  • Ørajordet
  • Gamlevegen
  • Vestby kirke
  • Gretes vei
  • Gretes vei
  • Pepperstadmarka
  • Pepperstadmarka
  • Son havn nord
  • Son havn nord
  • Julset
  • Fossum snuplass
  • Stortorvet
  • Julset
  • Frydenlundsgata
  • Digerud
  • Sætreskogen
  • Frydenlundsgata
  • Digerud
  • Huseby
  • Frydenbergveien
  • Huseby
  • Frydenbergveien
  • Orderudtoppen
  • Stokstadvegen
  • Strømmen storsenter
  • Billitt
  • Stokstadvegen
  • Strømmen storsenter
  • Billitt
  • Strømmen stasjon
  • Tomter
  • Strømmen stasjon
  • Tomter
  • Strømmen stasjon
  • Strømmen stasjon
  • Skjetten senter
  • Fossum snuplass
  • Skjetten senter
  • Heer
  • Skrythagen
  • Skrythagen
  • Bråtejordet
  • Bråtejordet
  • Ottarsrud
  • Ottarsrud
  • Olavsgaard
  • Olavsgaard
  • Olavsgaard
  • Olavsgaard
  • Olavsgaard
  • Olavsgaard
  • Horgen
  • Horgen
  • Stokstad
  • Stokstad
  • Svømmehallen
  • Svømmehallen
  • Horgenmyra
  • Horgenmyra
  • Hellerud
  • Hellerud
  • Bakker gård
  • Bakker gård
  • Hellerudsletta
  • Hellerudsletta
  • Gosenveien
  • Gosenveien
  • Berg
  • Berg
  • Plantasjen
  • Plantasjen
  • Kolbotn torg
  • Røed
  • Røed
  • Gislerud
  • Gislerud
  • Guldhaug-Tømte
  • Dyrløkke
  • Dyrløkke
  • Jødal
  • Jødal
  • Nordens vei
  • Welhavens gate
  • Welhavens gate
  • Nordens vei
  • Rosbakkløkka
  • Solvangen
  • Fugleveien
  • Tårnbyveien
  • Simensbråten
  • Tårnbyveien
  • Sars' gate
  • Sars' gate
  • Trolldalen
  • Trolldalen
  • Mittun
  • Mittun
  • Rikard Nordraaks vei
  • Rikard Nordraaks vei
  • Hausmanns bru
  • Hausmanns bru
  • Dueveien
  • Landskronaveien
  • Landskronaveien
  • Skorkeberg
  • Skorkeberg
  • Sagdalen skole
  • Sagdalen skole
  • Ullerudsletta
  • Ullerudsletta
  • Vardeåsen
  • Algarheim skole
  • Holterteigen
  • Holterteigen
  • Rustad
  • Rustad
  • Rustadstuen
  • Rustadstuen
  • Ski sykehus
  • Ski sykehus
  • Fugleåsen
  • Vardekroken
  • Vardekroken
  • Sognsvann T
  • Seiersten
  • Sognsvann T
  • Seiersten
  • Vardeveien
  • Vardeveien
  • Seiersten skole
  • Herslebs gate
  • Lurudveien
  • Herslebs gate
  • Lurudveien
  • Rulnes
  • Rulnes
  • Lysne
  • Lysne
  • Berger geopark
  • Sundet
  • Berger geopark
  • Sofienbergparken
  • Sofienbergparken
  • Grøndal
  • Industriveien
  • Industriveien
  • Wessels plass
  • Kvadraturen
  • Lauten nordre
  • Drøbak kirke
  • Drøbak kirke
  • Søndre Berger
  • Hestefaret
  • Skrivergårdskogen
  • Hestefaret
  • Skrivergårdskogen
  • Sagdalen
  • Sagdalen
  • Sagdalen
  • Stortorvet
  • Tinghuset
  • Tinghuset
  • Drøbak brygge
  • Løkendalen
  • Tandberg
  • Tandberg
  • Drøbak
  • Kjellerholen
  • Kjellerholen
  • Øvre Sogn
  • Kjeller bru
  • Kjeller bru
  • Oscarsborg vestre kai
  • Prost Hallings vei
  • Bryn skole
  • Fougners vei
  • Fougners vei
  • Løren
  • Løren
  • Flatby
  • Flatby
  • Kjeller
  • Nordeng
  • Nordeng
  • Fugleveien
  • Kjeller
  • Løken
  • Sætre bussterminal
  • Bjørkelangen skole
  • and 10795 more (see the full list on the map or in the GeoJSON)

Over time

Overall score across the last 2 checks — unchanged since 2026-07-18.

2026-07-18: 61.62026-07-19: 61.6
Show the numbers
Overall score by check, with the change from the previous check
CheckScoreChange
2026-07-1861.6 first check
2026-07-1961.6 no change

What changed since your last check

  • Correctness no change
  • Freshness no change
  • Rider experience no change

What changed in this feed

Overall grade and score held steady since 2026-07-18.

The feed file was re-published since 2026-07-18 (-4 KB).

Subscribe to this feed’s changes (Atom) to hear about grade drops in a reader, with no sign-up.

Everything we checked

14 findings, ordered by severity.

Show every finding
  • Warning67375 instances

    67375 of 67375 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.)

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

  • Warning10815 instances

    10815 of 11045 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.)

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

  • Warning2985 instances

    Equal shape distance diff coordinates distance below threshold (flagged by the MobilityData validator).

    See the linked rule for what this affects.

    Fix: Review the rule documentation for 'equal_shape_distance_diff_coordinates_distance_below_threshold' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed. (Varies.)

    Validator rule: equal_shape_distance_diff_coordinates_distance_below_threshold · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning395 instances

    Unexpected enum value (flagged by the MobilityData validator).

    See the linked rule for what this affects.

    Fix: Review the rule documentation for 'unexpected_enum_value' at https://gtfs-validator.mobilitydata.org/rules.html and check the flagged rows in your feed. (Varies.)

    Validator rule: unexpected_enum_value · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning17 instances

    Some rider-facing names are in ALL CAPS or all lowercase.

    ALL-CAPS stop and headsign names are harder to read in apps and are read awkwardly by screen readers.

    Fix: Use mixed case for stop names and headsigns (e.g. 'Main St & 2nd Ave', not 'MAIN ST & 2ND AVE'). (Often a bulk fix in your scheduling software.)

    Validator rule: mixed_case_recommended_field · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning3 instances

    Some scheduled trips move faster between stops than a transit vehicle can.

    Usually a typo'd stop time; riders get arrival times no transit vehicle can meet.

    Fix: Check the flagged stop times for transposed minutes. (A few minutes per flagged trip.)

    Validator rule: fast_travel_between_consecutive_stops · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning3 instances

    Some files leave out fields that GTFS asks for but does not require.

    Recommended fields like agency_phone or stop descriptions make the feed more useful to riders and trip planners.

    Fix: Review the flagged fields and fill in the ones your riders would use. (A field at a time; not urgent.)

    Validator rule: missing_recommended_field · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    feed_info.txt lists no contact email and no contact URL.

    Without a contact, apps like Google Maps can't reach you when they find a problem in the feed.

    Fix: Add feed_contact_email or feed_contact_url to feed_info.txt. (One field, set once in export settings.)

    Validator rule: missing_feed_contact_email_and_url · Read the fix guide · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Warning1 instance

    feed_info.txt is missing its start/end dates

    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.)

    Validator rule: 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.)

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

  • Warning1 instance

    This feed models stations or entrances but has no pathways.txt.

    Trip planners can't guide riders through the station, and there is no step-free route information for wheelchair users.

    Fix: Add pathways.txt connecting entrances, platforms, and any elevators, with a level for each. (Worth it for multi-level or large stations; flat stops don't need it.)

    Validator rule: scorecard_station_no_pathways · Read the fix guide · See GTFS Schedule reference (opens the GTFS Schedule reference on an external site)

  • Info5 instances

    Some trip headsigns name a stop along the way, not the final destination.

    The sign should tell riders where the transit vehicle ends up, so a midpoint name can send them the wrong way.

    Fix: Set trip_headsign to the trip's last stop or its overall destination. (Usually a bulk edit in your scheduling software.)

    Validator rule: trip_headsign_matches_intermediate_stop · See MobilityData GTFS Validator rules (opens the validator rules on an external site)

  • Info3 instances

    Some files contain columns that are not part of the GTFS spec.

    Harmless to riders, but apps ignore these columns and they can hide typos in real column names.

    Fix: Check the flagged column names for misspellings of standard GTFS fields; remove them if they are vendor extras. (A quick look at the flagged files.)

    Validator rule: unknown_column · 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).

    Trip-planning apps and regional data coordinators have nobody to email when they spot a problem with your feed, so problems linger.

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

    Validator rule: 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

This feed is close to the conformance mark. States wheelchair access on 2% 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 126 days.
Accessible Not yet
States wheelchair access on 2% 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 126 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 65 / 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.

Ruter 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/ruter-oslo/2026-07-19.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-07-19. 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.