← All agencies

Feed status · checked 2026-07-09

CityBus of Greater Lafayette Indiana (CityBus)

Based on the feed this agency publishes

76.6 / 100

down 0.4 since 2026-07-08

Ahead of 73% of all tracked agencies and 71% of mid-size agencies. Operates in Indiana.

Covers 45 daysAccessibility gapsNo realtime feed

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

Checked for changes 8 hours ago; last changed 8 days ago.

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

642 of 646 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

Fix 02

Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default).Likely your export tool

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

⏱ Often one default setting in your export.worth about +15 points

Agencies here usually clear this within about 1 week (based on 5 observed fixes).

Fix 03

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.

The feed contains no fare information. Riders see 'fare unknown' in trip planners and can't budget their trip; visitors are most affected.

⏱ A small file for most flat-fare systems.worth about +15 points

Close the loop on each fix. Read the guide, make the change in your tool, and let the next run verify it — the scorecard shows the fix; the agency publishes it.

  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.

    Prove it cleared. The next scorecard run re-checks this automatically and, once it is gone, mints a dated receipt. Self-check a feed before you publish.

  2. Set wheelchair_accessible on every trip (most small-agency fleets are 100% accessible, so this is often a single default). · Read the fix guide

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

    Prove it cleared. The next scorecard run re-checks this automatically and, once it is gone, mints a dated receipt. Self-check a feed before you publish.

  3. 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. · Read the fix guide

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

    Prove it cleared. The next scorecard run re-checks this automatically and, once it is gone, mints a dated receipt. Self-check a feed before you publish.

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

Correctness100.0 / 100

The validator found no problems in this feed. That is rare and worth celebrating.

Freshness75.0 / 100

Service data covers the next 45 days.

Rider experience45.2 / 100

1% of stops state wheelchair accessibility (1% 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.4 / 100

1% of stops state accessibility (1% marked accessible). Reflects what the feed states, 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.

Routes in CityBus of Greater Lafayette Indiana (CityBus)'s feed
RouteTypeLine color
11 Creasy LaneBusyellow
12 South StreetBusblue
13 Main StreetBusorange
14 Brady LaneBusblue
21 McCormick RoadBusyellow
22 Salisbury StreetBusteal
23 Sagamore WestBusteal
31 North 9th StreetBuspink
32 Schuyler AvenueBusteal
33 Ferry StreetBusyellow
34 Teal RoadBuspink
35 Park East BoulevardBuswhite
36 South 18th StreetBusorange
41 The ConnectorBusteal
42 Happy Hollow RoadBusred
43 Northwestern AvenueBuspink

This feed has 646 stops.

List every stop
  • Lafayette VA Clinic: Stop 1507
  • Precedent Flats Apts: Stop 1515
  • Yeager Rd & Kent Ave (SE Corner)
  • Yeager Rd & Kent Ave (NW Corner)
  • Sagamore Pkwy W and Sachem Blvd (SW corner): 5146
  • Payless South Transfer Point: 5555
  • Yeager Rd & Endeavour Dr (NW): 5883
  • 18th St & Iroquois Trl (NW Corner): 5891
  • Trillium Ln: 5892
  • Castaway Bay: 5903
  • Beck Ln & Limestone Ln (SW Corner): 5904
  • Speedway on Park East Blvd: 5905
  • VA Clinic East: 5906
  • Park East Blvd & Mezzanine Dr (SE Corner): 5907
  • Park East Blvd & Kettle Cir (SE Corner): 5908
  • 18th St & Eastway St (SE Corner): 5909
  • Wendy's on Teal Rd: 5919
  • Ivy Tech Transfer Point: 5927
  • Concord Rd and Maple Point Dr (SE): 5919
  • Concord Rd and Maple Point Dr (NE): 5939
  • Brown St & 9th St (SW Corner): 5940
  • Greenbush St & 14th St (SW Corner): 5941
  • Creasy Ln & Harper Dr (SE Corner): 5942
  • Creasy Ln & Harper Dr (NW Corner): 5943
  • Creasy Ln & McCarty Ln (North of): 5944
  • Main St & Sagamore Pkwy (SW Corner): 5945
  • SR 38/25 @ Audi: 5946
  • SR 28/25 & Professional Ct (NE Corner): 5947
  • South St & Sagamore Pkwy (East of): 5948
  • South St & Fairington Ave (East of): 5949
  • Park East Blvd & Commerce (SW Corner): 5950
  • Marketplace Dr @ IHOP: 5951
  • South St & Progress Dr (East of): 5952
  • South St @ RRX (NE Corner): 5953
  • 4th St & Central St (SW Corner): 5954
  • Brady Ln & Oneida Dr (NE Corner): 5955
  • Brady Lane & 18th St (NE Corner): 5956
  • Twyckenham Blvd & Poland Hill Rd (NW Corner): 5957
  • Twyckenham Blvd & Tantara Way (SW Corner): 5958
  • Snowy Owl Apartments: 5959
  • 4th St & Bomberding Ave (SE Corner): 5960
  • Village West on Lindberg (South): 5964
  • Lindberg Rd and Kestral Blvd (SW Corner): 5965
  • Lindberg Rd and Summit Dr (SW Corner): 5966
  • Faith West Community Center: 5967
  • Northwestern and Neil Armstrong Dr: 5968
  • Grant St & Stadium Ave (NW Corner): 5971
  • 9th St & Widewater Dr (NW Corner): 5975
  • 9th St & Widewater Dr (SE Corner): 5976
  • 18th St & Elmwood Ave (SE Corner): 5977
  • Elmwood Ave & 20th St (SW Corner): 5978
  • Underwood St & Ulen Ln (NE Corner): 5979
  • Underwood St & 20th St (NE Corner): 5981
  • 20th St & Colfax St (SE Corner): 5982
  • McAllister Rec Center: 5983
  • 15th St & Vinton St (NW Corner): 5985
  • 31st St & Union St (South of): 5986
  • 31st St & Cincinnati St (SW Corner): 5987
  • Kossuth St & 16th St (SW Corner): 5990
  • Kossuth St & 16th St (NE Corner): 5991
  • Kossuth St & 14th St (NE Corner): 5992
  • State St & Elmhurst Dr (NE Corner): 5993
  • State St & 9th St (NE Corner): 5994
  • 9th St & Elliott St (NW Corner): 5995
  • Park East Blvd & Kettle Cir (NW Corner): 5996
  • Mezzanine Dr & Park East Blvd (SW Corner): 5997
  • IU Arnett Outpatient Surgery Center: 5998
  • Glasswater Creek (North): 5999
  • Glasswater Creek (South): 6000
  • Beck Ln @ RRX (SW Corner): 6001
  • Beck Ln & Duroc Dr (NE Corner): 6002
  • Beck Ln & Bennett Rd (NE Corner): 6003
  • 9th St & Lafayette Dr (SE Corner): 6004
  • 9th St & Sarasota Dr (SE Corner): 6005
  • 9th St & Rosemont St (SE Corner): 6006
  • Teal Rd & Edgelea Dr (SW Corner): 6007
  • Teal Rd & Edgelea Dr (NE Corner): 6008
  • 18th St & Shoshone Dr (NW Corner): 6009
  • 18th St & Shoshone Dr (SE Corner): 6010
  • 18th St & Foxhall Dr (NW Corner): 6011
  • 18th St & Foxhall Dr (SE Corner): 6012
  • Concord Rd & Daugherty Dr (NW Corner): 6013
  • Concord Rd & Daugherty Dr (SE Corner): 6014
  • Concord Rd & Olympia Dr (NW Corner): 6015
  • Concord Rd & Olympia Dr (SE Corner): 6016
  • Maple Point Dr & Sirocco Way (SW Corner): 6019
  • Maple Point Dr & Sirocco Way (NE Corner): 6020
  • Humane Society & Master Gardeners (SW Corner):6021
  • 9th St & Main St (NW Corner): 6022
  • Tapawingo Dr & Roebuck Dr (NE Corner): 6023
  • Tapawingo Dr & Street B (NE Corner): 6024
  • McCutcheon Dr & 3rd St (SE Corner): 6025
  • Tapawingo Dr & State St (SE Corner): 6026
  • Montessori School of Greater Lafayette: 6027
  • Happy Hollow Rd & Fernleaf Dr (NE Corner): 6028
  • Roundtable Dr: 6029
  • Roundtable Dr & Yeager Rd (SW Corner): 6030
  • Yeager Rd & Kalberer Rd (NW Corner): 6031
  • Just Us Kids Early Learning Center: 6032
  • Northwestern Ave & Hillcrest Dr (NW Corner): 6033
  • Northwestern Ave & Northridge Dr (NW Corner): 6034
  • Blackbird Farms III Apts: 6035
  • 3rd Street & Columbia St (NW corner): 6037
  • 3rd Street & Alabama St (NW corner): 6039
  • Brown St & 8th St (NE Corner): 6041
  • South St & Century Place (East of): 6042
  • 9th St & Greenbush St (North of): 6043
  • Columbia St & 4th St (NE Corner): 6044
  • McDonald's at Meijer West Lafayette: 6045
  • Dollar General on South 18th Street: 6046
  • Eagles-Twyckenham & 18th St (south of): 6047
  • South St & 31st St (NE Corner): 6048
  • 18th St & Salem St (NE Corner): 6049
  • Creasy Ln & McCarty Ln (North of): 6052
  • Aspire Apts at Discovery Park: BUS011
  • Kent Ave @ Purdue Research Center: BUS046
  • Win Hentschel Blvd & MED Institute: BUS047
  • Mcclure Ave @ Kurz Tech Center: BUS048
  • Munger Trl on Shenandoah Dr (West Side): BUS050
  • Munger Trl on Shenandoah Dr (East Side): BUS051
  • Stadium Ave & Salisbury St (SW Corner): BUS061
  • Launch Apts (North Drive): BUS065
  • North River Rd (SW at shelter): BUS066
  • Mayfair Village Apts on Sycamore Ln: BUS101NE
  • Mayfair Village Apts on Sycamore Ln: BUS101SW
  • Carlisle Rd & Lindberg Rd (North of): BUS102NE
  • Carlisle Rd & Lindberg Rd (NW Corner): BUS102NW
  • Anthrop Dr & Yeager Rd (NE Corner): BUS104N
  • Anthrop Dr & Yeager (at Shelter): BUS104S
  • Northwestern Ave & Evergreen St(SE Corner): BUS105
  • Kossuth St & 14th St (SW Corner): BUS108
  • Mason Dixon Dr & Shining Armor(SE Corner):BUS110SE
  • Lambert Fieldhouse on Stadium Ave: BUS111
  • Morehouse Rd & Mason Dixon Dr (SE Corner):BUS112SE
  • Morehouse Rd & Ellison Dr (East Side): BUS113NE
  • Trailside Flats on Morehouse (East): BUS114E
  • Kalberer Rd & Morehouse Rd (NE Corner): BUS115N
  • Ferry St & 28th St (NW Corner): BUS116
  • Ferry St & 28th St (SW Corner): BUS116S
  • Yeager Rd & McClure Ave (SW Corner): BUS117
  • Yeager Rd & Roxboro St (SE Corner): BUS118
  • Country Villa Apts on Yeager (SE Corner): BUS119
  • MAIL Inc: BUS121
  • McAllister Park: BUS122
  • Nobb Hill Apts on Happy Hollow Rd (East): BUS123E
  • Nobb Hill Apts on Happy Hollow (West): BUS123W
  • River Rd & Quincy St (at Shelter): BUS124
  • Tippecanoe County Community Corrections: BUS127
  • Ferry St & 31st St (SW Corner): BUS128
  • Peppermill Apts on Yeager Rd (at shelter): BUS129
  • Westminster Village S & N Salisbury St: BUS130
  • N Salisbury St & Westminster Village N: BUS131W
  • Elmwood Ave & Rainbow Dr (SW Corner): BUS132
  • Cumberland Pointe on Cumberland Ave(South): BUS133
  • Cumberland Ave & Manchester St (SW Corner): BUS136
  • Quality Inn on Cumberland Ave (NE Corner):BUS137
  • Cumberland Ave & Salisbury St (SW Corner): BUS138
  • 9th St & Canal Rd (North of): BUS139
  • SR 38/25 @ Shoe Carnival: BUS141
  • Ivy Tech on Creasy Ln (at Shelter): BUS142S
  • Univ Crossing Apts Soldiers Home(@Shelter): BUS144
  • Duncan & 9th St (West of): BUS145
  • 4th St & Thise Ct (SE Corner): BUS148
  • Salisbury St & Kent Ave (at Shelter): BUS149
  • Alabama St & 4th St (SW Corner): BUS150
  • River Walk Apartments on 9th St: BUS152
  • Young Hall on Grant St (West): BUS153
  • Young Hall on Grant St (East): BUS154
  • Edgelea Elementary School on 18th St: BUS155
  • Wabash Landing on State St (at shelter): BUS156
  • Roundtable Dr & Shining Armor Ln(SW Corner):BUS157
  • Old Romney Rd & US52 / SR25 (NW Corner): BUS159
  • Tick Tock Tavern: BUS160
  • Northwestern Ave & Yeager Rd (NW Corner): BUS161
  • Northwestern Ave & Neil Armstrong Dr (NW): BUS162
  • Oscar Winski on 9th St: BUS163
  • Duncan & 9th St (East of): BUS164
  • Northwestern Ave & Chelsea Rd (West Side): BUS169
  • Meijer West Lafayette: BUS171
  • Meijer West Lafayette frontage road: BUS174
  • Maples Park and Barrington West: BUS178
  • Sagamore Pkwy & Paramount Dr: BUS180
  • Sagamore Pkwy & Paramount Dr (NW corner): BUS180NW
  • Grissom Hall on Grant St (at Shelter): BUS184
  • Armstrong Hall on Stadium Ave (@Shelter): BUS190
  • Frozen Custard on Main St: BUS191
  • Creasy Ln & South St (West Side North of): BUS192
  • Fountain St & 4th St (NW Corner): BUS194
  • 4th St & Fountain St (SE Corner): BUS194SE
  • Earl Ave & Union St (East side South of): BUS196E
  • Sagamore Pkwy & Bethel Dr (West of): BUS197
  • Rutherford Dr: BUS199
  • Northwestern Ave & Northridge Dr(SE Corner):BUS203
  • West Ridge Flats on Klondike Rd: BUS204
  • Lindberg Rd & Kestral Blvd (NE Corner): BUS205
  • South St & 14th St (SW Corner): BUS206
  • Wayne Terrace & Elmwood Ave (SW Corner): BUS207
  • Old Romney Rd and US52 / SR25 (South of): BUS208
  • Elmwood Ave & Underwood St (SE Corner): BUS209
  • Twyckenham Blvd & Old Romney (NW Corner): BUS211
  • Romney Meadows Apts (at Shelter): BUS212
  • Old Romney Rd and US52 / SR25 (NE Corner): BUS214
  • CityBus Center: BUS215
  • Main St & 24th St (East Side North of): BUS216E
  • Main St & 24th St (West Side North of): BUS216W
  • Cumberland Ave & Yeager Rd (East of): BUS218NE
  • Yeager Rd & Cumberland Ave (SE Corner): BUS218SE
  • Old Romney Rd & Twyckenham (NE Corner): BUS222
  • Salisbury St & Leslie Ave (NW Corner): BUS224
  • Klondike & Elite Lane (West): BUS226
  • Schuyler Ave & 20th St (NW Corner): BUS227
  • Wabash Center on Greenbush St (@Shelter): BUS230N
  • Greenbush Crossing Apartments: BUS230S
  • Greenbush St & Sagamore Pkwy N (West of): BUS231N
  • Greenbush St & Sagamore Pkwy N (SW Corner):BUS231S
  • McCormick Rd & Lindberg Rd (SE Corner): BUS236
  • Twyckenham Blvd & CR 10W (North): BUS239
  • 4th St & Fairmont St (NW Corner): BUS240
  • 4th St & Fairmont St (SE Corner): BUS240SE
  • Columbia St & 9th St (NE Corner): BUS242
  • Columbia St & 7th St (NE Corner): BUS243N
  • Ferry St & 26th St (SW Corner): BUS244
  • Market Square (WEST) on Greenbush St: BUS245NW
  • Market Square (EAST) on Greenbush St: BUS245SE
  • Market Square (WEST) on Greenbush St: BUS245SW
  • Columbia St & 4th St (NE Corner): BUS248
  • Sagamore Pkwy W & Geddes Way (South of): BUS250
  • McCormick Rd & Stadium Ave (NE Corner): BUS251E
  • McCormick Rd & Stadium Ave (NW Corner): BUS251W
  • Sagamore Pkwy & Win Hentschel Blvd (NE): BUS252
  • Kossuth St & 9th St (East of): BUS253E
  • Elston Rd & Old US231 (West of): BUS254
  • State St & 18th St (NE Corner): BUS256N
  • State St & 18th (SE Corner): BUS256S
  • Meijer Store East (at Shelter): BUS257
  • Old US 231S & Elston Rd: BUS258
  • Krannert Grad School: BUS260
  • 4th St & Teal Rd (North of): BUS261
  • 4th St & Montefiore St (SE Corner): BUS264E
  • 4th St & Montefiore St (NW Corner): BUS264W
  • South St & 4th St (SW Corner): BUS265
  • Redpoint (@Snowdrop Dr): BUS268
  • Snowdrop Dr (for Cumberland Ave): BUS268SW
  • Elston Rd & Beck Ln (West of): BUS270
  • Purdue Memorial Union (PMU) on MD Blvd: BUS271
  • Vinton St & Elmwood Ave (SE Corner): BUS276
  • SR 26 & Frontage Rd (NE Corner): BUS277N
  • SR 26 & Frontage Rd (South Side of SR26): BUS277S
  • Greenbush St & Elmwood Ave (East of): BUS278NE
  • Greenbush St & Elmwood Ave (SW Corner): BUS278SW
  • and 396 more (see the full list on the map or in the GeoJSON)

Over time

Overall score across the last 20 checks — down 0.4 since 2026-07-08.

2026-06-19: 82.92026-06-20: 82.92026-06-21: 82.92026-06-22: 82.92026-06-23: 82.92026-06-24: 82.42026-06-25: 82.02026-06-26: 81.62026-06-27: 81.22026-06-28: 80.82026-06-29: 80.42026-06-30: 80.02026-07-01: 79.92026-07-02: 79.52026-07-04: 78.72026-07-05: 78.32026-07-06: 77.92026-07-07: 77.52026-07-08: 77.02026-07-09: 76.6
Show the numbers
Overall score by check, with the change from the previous check
CheckScoreChange
2026-06-1982.9 first check
2026-06-2082.9 no change
2026-06-2182.9 no change
2026-06-2282.9 no change
2026-06-2382.9 no change
2026-06-2482.4 down 0.5
2026-06-2582.0 down 0.4
2026-06-2681.6 down 0.4
2026-06-2781.2 down 0.4
2026-06-2880.8 down 0.4
2026-06-2980.4 down 0.4
2026-06-3080.0 down 0.4
2026-07-0179.9 down 0.1
2026-07-0279.5 down 0.4
2026-07-0478.7 down 0.8
2026-07-0578.3 down 0.4
2026-07-0677.9 down 0.4
2026-07-0777.5 down 0.4
2026-07-0877.0 down 0.5
2026-07-0976.6 down 0.4

What changed since your last check

What changed in this feed

Overall score fell 0.4 points since 2026-07-08.

Same feed file as 2026-07-08; the published zip did not change.

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

What changed over time

On 2026-06-19 this feed started at grade B. On 2026-06-30 the grade moved from B to C. As of 2026-07-09 it holds grade C.

A plain-language history of this feed, newest first.

Everything we checked

Beyond the grade

Opportunities that do not change your grade today: fare detail, on-demand service, and deeper accessibility data.

NTD certification readiness Ready

Published at a public URL, valid, and current: the three things the NTD GTFS requirement asks of a feed all hold here. Only your own D-10 certification makes that official; this is a heads-up, not a determination.

Published Ready
Published at a public URL.
Valid Ready
Passes validation with no errors.
Current Ready
Service data covers the next 45 days.
agency_id matches your NTD ID Not checked yet
Setting your GTFS agency_id to your five-digit NTD ID is an optional way to line a feed up with its National Transit Database record. FTA links the two on your P-50 form, so it is not a required feed change. We don't have your NTD ID on file, so this is not checked yet.

In plain words: if you report to the federal transit database, you have to publish a working, up-to-date feed and confirm it once a year. This box is a heads-up on whether yours looks ready; it is not the official sign-off.

A readiness signal mapping this feed to the FTA National Transit Database GTFS requirement (Report Year 2023 onward: a public, valid, current feed, certified annually on the D-10). Aligning agency_id with your NTD ID lets the feed line up with your NTD record; the July 2025 final rule links the two on the P-50 form rather than requiring that feed change, and requires shapes.txt in the published GTFS: Full Reporters from Report Year 2025, and Reduced, Rural, and Tribal Reporters from Report Year 2026. Not an official determination; your certification is the official check.

Conformance mark Not yet

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

A data-quality lens, not a compliance determination. Each category shows this feed's score and the standards it relates to: the FTA National Transit Database GTFS requirement, the MobilityData grading scheme, and the Google Transit gate. Read the full standards crosswalk.

Correctness 100 / 100
GTFS Schedule best practices, checked by the MobilityData validator. MobilityData grading: stop locations, route names and colors. Google Transit: a feed must pass validation to stay in Maps.
Freshness 75 / 100
The FTA National Transit Database expectation of a valid, current feed. Google Transit: an expired calendar drops the agency from Maps.
Rider experience 45 / 100
GTFS Best Practices for rider-facing fields. MobilityData grading: 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 live badge on your agency site or feed README. It updates daily and links back to this scorecard.

CityBus of Greater Lafayette Indiana (CityBus) GTFS data quality grade: C

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/citybus-of-greater-lafayette-indiana-citybus/2026-07-09.json and never overwritten, pinning the grade, category scores, rubric version, validator version, and the scored feed's sha256 as they stood on 2026-07-09. Use it in a board packet, an NTD narrative, 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.