forked from ChelseaKR/gtfs-scorecard
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscoring.json
More file actions
73 lines (73 loc) · 2.6 KB
/
Copy pathscoring.json
File metadata and controls
73 lines (73 loc) · 2.6 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
{
"rubric_version": "1.2",
"overall": "Weighted average of the measured categories. The weights of any unmeasured category are renormalized, so an agency is never punished for a category it does not have (for example, realtime).",
"category_weights": {
"correctness": 0.35,
"freshness": 0.2,
"completeness": 0.25,
"realtime": 0.2
},
"grade_bands": [
{
"min_score": 90.0,
"grade": "A"
},
{
"min_score": 80.0,
"grade": "B"
},
{
"min_score": 70.0,
"grade": "C"
},
{
"min_score": 60.0,
"grade": "D"
},
{
"min_score": 0.0,
"grade": "F"
}
],
"correctness": {
"start_score": 100.0,
"deduction_per_distinct_notice_code": {
"ERROR": 12.0,
"WARNING": 4.0,
"INFO": 0.5
},
"count_scaling": "Per distinct notice code, not per instance. The base deduction is multiplied by a tier based on how many instances the code has, so one systemic export bug cannot zero the score.",
"count_multiplier_tiers": [
{
"max_instances": 5,
"multiplier": 1.0
},
{
"max_instances": 50,
"multiplier": 1.5
},
{
"max_instances": null,
"multiplier": 2.0
}
]
},
"source": "Scored on top of the MobilityData gtfs-validator. Full methodology with citations: docs/rubric.md.",
"changelog": [
{
"rubric_version": "1.2",
"effective_date": "2026-07-13",
"summary": "Realtime quality now assesses only the GTFS-Realtime feed kinds an agency publishes. Unconfigured kinds are neutral, and TripUpdates coverage or VehiclePositions plausibility enters the score only when that kind is configured. Finding points use the same measurable-component denominator as the category score, and a dependent measure drops out when its endpoint produced no successful sample. A fixed-corpus replay projected 15 of 31 partial-feed artifacts changing letter bands; see docs/rubric-impact-1.2.md."
},
{
"rubric_version": "1.1",
"effective_date": "2026-06-16",
"summary": "The most rider-affecting fix is ranked first, and every grade now carries the validator and rubric version that produced it, so a trend can tell a feed change apart from a methodology change."
},
{
"rubric_version": "1.0",
"effective_date": "2026-06-11",
"summary": "First published rubric: four weighted categories (Correctness 35%, Freshness 20%, Rider experience 25%, Realtime 20%), A-F grade bands, scored on the MobilityData gtfs-validator and anchored to the California Transit Data Guidelines v4.0."
}
]
}