forked from ChelseaKR/gtfs-scorecard
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
137 lines (137 loc) · 10.2 KB
/
Copy pathindex.html
File metadata and controls
137 lines (137 loc) · 10.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Fix: stops that no trip ever serves — GTFS Scorecard</title>
<meta name="description" content="Some stops in stops.txt are never referenced in stop_times.txt, so no scheduled trip stops there. The stop exists in the feed but nothing arrives.">
<link rel="canonical" href="https://gtfsscorecard.org/fix/stop_without_stop_time/">
<meta property="og:type" content="website">
<meta property="og:title" content="Fix: stops that no trip ever serves — GTFS Scorecard">
<meta property="og:description" content="Some stops in stops.txt are never referenced in stop_times.txt, so no scheduled trip stops there. The stop exists in the feed but nothing arrives.">
<meta property="og:url" content="https://gtfsscorecard.org/fix/stop_without_stop_time/">
<meta property="og:image" content="https://gtfsscorecard.org/og.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="https://gtfsscorecard.org/og.png">
<link rel="stylesheet" href="/src/styles.css">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='13' fill='%23204e3a'/%3E%3Ccircle cx='16' cy='16' r='5' fill='%23f2f3ee'/%3E%3C/svg%3E">
<script type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"Fix: stops that no trip ever serves","description":"Some stops in stops.txt are never referenced in stop_times.txt, so no scheduled trip stops there. The stop exists in the feed but nothing arrives.","url":"https://gtfsscorecard.org/fix/stop_without_stop_time/","about":{"@type":"Thing","name":"GTFS validator notice stop_without_stop_time"},"author":{"@type":"Organization","name":"GTFS Scorecard","url":"https://gtfsscorecard.org"},"dateModified":"2026-07-14","mainEntityOfPage":"https://gtfsscorecard.org/fix/stop_without_stop_time/","publisher":{"@type":"Organization","name":"GTFS Scorecard","url":"https://gtfsscorecard.org"}}</script>
<script>
/* Apply the saved theme before first paint to avoid a flash (WCAG 1.4.8). */
try {
var t = localStorage.getItem("scorecard-theme");
if (t && ["light", "contrast", "dark"].indexOf(t) >= 0)
document.documentElement.setAttribute("data-theme", t);
} catch (e) {}
</script>
<script src="/src/theme.js" defer></script>
<script src="/src/nav.js" defer></script>
<noscript><style>
/* Without JS the menu button cannot expand the collapsed nav, so show the
stacked nav permanently and hide the button (content stays operable
without scripting). nav.js never runs here, so nothing double-toggles. */
@media (max-width: 1040px) {
.nav-menu-btn { display: none !important; }
.nav-cluster { display: flex !important; position: static; }
}
</style></noscript>
</head>
<body>
<a class="skip-link" href="#main">Skip to main content</a>
<header class="site-header"><div class="wrap"><a class="brand" href="/"><span class="brand-mark" aria-hidden="true"></span><span class="brand-name">GTFS Scorecard</span></a><button class="nav-menu-btn" type="button" aria-expanded="false" aria-controls="nav-cluster"><span aria-hidden="true">☰</span> Menu</button><div class="nav-cluster" id="nav-cluster"><nav class="nav-stops" aria-label="Primary"><a class="nav-stop" href="/agencies/" aria-current="page"><span class="pip" aria-hidden="true"></span>Find an agency</a><a class="nav-stop" href="/pulse/"><span class="pip" aria-hidden="true"></span>Coverage</a><a class="nav-stop" href="/focus/"><span class="pip" aria-hidden="true"></span>Focus areas</a><a class="nav-stop" href="/tools/"><span class="pip" aria-hidden="true"></span>Tools</a><a class="nav-stop" href="/how-to-read/"><span class="pip" aria-hidden="true"></span>How it works</a><a class="nav-stop" href="/about/"><span class="pip" aria-hidden="true"></span>About</a></nav><div id="theme-control"></div></div></div></header>
<main id="main" class="wrap" tabindex="-1">
<nav class="breadcrumb" aria-label="Breadcrumb"><ol itemscope itemtype="https://schema.org/BreadcrumbList"><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="/"><span itemprop="name">Home</span></a><meta itemprop="position" content="1"></li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="/fix/"><span itemprop="name">GTFS errors and fixes</span></a><meta itemprop="position" content="2"></li><li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><span itemprop="name" aria-current="page">Fix: stop_without_stop_time</span><meta itemprop="position" content="3"></li></ol></nav>
<a class="backlink" href="/fix/">← All GTFS fixes</a>
<article class="feed-details"><h1>Fix: stops that no trip ever serves</h1>
<p>Code: <code>stop_without_stop_time</code> (MobilityData validator)</p>
<h2 class="section-title">What this means</h2>
<p>Some stops in <code>stops.txt</code> are never referenced in <code>stop_times.txt</code>, so no
scheduled trip stops there. The stop exists in the feed but nothing arrives.</p>
<h2 class="section-title">Why it matters</h2>
<p>A rider can find one of these stops in a trip planner or on a map and walk to a
corner where no bus is scheduled to come. It also tends to mean the feed is
carrying retired stops the export never cleaned up.</p>
<h2 class="section-title">How to fix it</h2>
<p>First decide which case each stop is:</p>
<ul>
<li><strong>A retired stop</strong> that should no longer be published: remove it from the
export. Many tools have a "do not export unused stops" option, or you remove
the stop record at the source.</li>
<li><strong>A stop that should be served</strong> but was dropped from its trips by mistake:
add it back to the trips that should serve it, so it gets <code>stop_times</code>
entries again.</li>
</ul>
<p>A stop that is a parent station or a boarding area referenced by other stops is
a different case and is not flagged by this notice.</p>
<h2 class="section-title">How long it usually takes</h2>
<p>A review pass in your scheduling software. The count tells you how big the pass
is; a handful is minutes, dozens is an afternoon of cleanup.</p>
<h2 class="section-title">Authoritative rule</h2>
<p><code>stop_without_stop_time</code> is a canonical MobilityData GTFS Validator notice used in validator reports across the GTFS ecosystem. <a class="rule-ref" href="https://gtfs-validator.mobilitydata.org/rules.html#stop_without_stop_time-rule">Read the authoritative rule for stop_without_stop_time in the GTFS Validator rules</a>.<span class="visually-hidden"> (opens on an external site)</span></p><section aria-labelledby="afterfix-h"><h2 class="section-title" id="afterfix-h">After you republish</h2><p>Once the changed feed is live at your published URL, the next scorecard run checks it again. When the same complete producer contract no longer reports this finding, it can be recorded as a dated finding clearance. That confirms the later feed state, not who changed the feed or why.</p></section></article>
</main>
<footer class="site-footer">
<div class="wrap">
<div class="footer-intro">
<a class="footer-brand" href="/">GTFS Scorecard</a>
<p>An open-source data quality tool for small and rural transit agencies.</p>
</div>
<nav class="footer-grid" aria-label="Footer">
<section aria-labelledby="footer-find-h">
<h2 id="footer-find-h">Find a scorecard</h2>
<ul>
<li><a href="/agencies/">Agency directory</a></li>
<li><a href="/app/">Interactive search</a></li>
<li><a href="/map/">Agency map</a></li>
<li><a href="/routes/">All routes</a></li>
<li><a href="/compare/">Compare two agencies</a></li>
</ul>
</section>
<section aria-labelledby="footer-improve-h">
<h2 id="footer-improve-h">Improve a feed</h2>
<ul>
<li><a href="/fix/">GTFS errors & fixes</a></li>
<li><a href="/check/">Check before publishing</a></li>
<li><a href="/try.html">Request a one-off score</a></li>
<li><a href="/subscribe.html">Feed-health alerts</a></li>
<li><a href="/submit.html">Add an agency</a></li>
<li><a href="/claim/">Correct or claim a listing</a></li>
<li><a href="/procurement/">Procurement language</a></li>
</ul>
</section>
<section aria-labelledby="footer-explore-h">
<h2 id="footer-explore-h">Explore the data</h2>
<ul>
<li><a href="/pulse/">Coverage overview</a></li>
<li><a href="/problems/">Common problems</a></li>
<li><a href="/realtime/">Realtime quality</a></li>
<li><a href="/adoption/">What feeds publish</a></li>
<li><a href="/focus/">Focus areas</a></li>
<li class="footer-subhead">United States tools</li>
<li><a href="/ntd/">U.S. NTD readiness</a></li>
<li><a href="/equity/">U.S. equity</a></li>
<li><a href="/query/">Query the dataset</a></li>
<li><a href="/data/">Open data</a></li>
</ul>
</section>
<section aria-labelledby="footer-project-h">
<h2 id="footer-project-h">Project</h2>
<ul>
<li><a href="/about/">About</a></li>
<li><a href="/status/">Status</a></li>
<li><a href="/support/">Get help or sponsor</a></li>
<li><a href="/how-to-read/">How to read a scorecard</a></li>
<li><a href="/how-to-read/#glossary">Glossary</a></li>
<li><a href="/crosswalk/">Standards crosswalk</a></li>
<li><a href="/press/">For reporters</a></li>
<li><a href="/accessibility/">Accessibility</a></li>
<li><a href="https://github.com/ChelseaKR/gtfs-scorecard/blob/main/CONTRIBUTING.md">Contribute</a></li>
<li><a href="https://github.com/ChelseaKR/gtfs-scorecard/blob/main/docs/listing-policy.md">Listing & removal policy</a></li>
</ul>
</section>
</nav>
</div>
</footer>
</body>
</html>