Stops matching
Matching Stages
| Stage | Count | % of Total | Many-to-One | Not Closest | Mean (m) | Median (m) | P95 (m) |
|---|---|---|---|---|---|---|---|
| Exact (UIC ref) | 21,241 | 33.3% | 13,212 | 5,794 | 20.62 | 8.51 | 77.37 |
| Name matching | 444 | 0.7% | 6 | 162 | 48.48 | 14.23 | 118.7 |
| Route matching (total) | 15,356 | 24.1% | 13 | 3,816 | 7.13 | 5.19 | 20.79 |
| GTFS | 15,356 | 24.1% | 13 | 3,816 | 7.13 | 5.19 | 20.79 |
| Distance (total) | 12,260 | 19.2% | 2,493 | 3,576 | - | - | - |
| Stage 0: Trio side matching | 2,458 | 3.9% | 2,458 | 858 | 8.55 | 4.46 | 23.24 |
| Stage 1: Group proximity (50m) | 8,823 | 13.8% | 27 | 2,280 | - | - | - |
| Stage 1a: UIC ref | 8,513 | 13.3% | 24 | 2,209 | 7.75 | 5.15 | 25.12 |
| Stage 1b: UIC name | 41 | 0.1% | 0 | 7 | 8.83 | 6.16 | 33.41 |
| Stage 1c: Name | 269 | 0.4% | 3 | 64 | 12.16 | 8.19 | 37.87 |
| Stage 1b: Group proximity (150m) | 496 | 0.8% | 3 | 373 | - | - | - |
| Stage 1d: UIC ref (150m) | 468 | 0.7% | 1 | 350 | 81.82 | 75.11 | 136.25 |
| Stage 1e: UIC name (150m) | 5 | 0.0% | 0 | 4 | 121.32 | 123.62 | 149.23 |
| Stage 1f: Name (150m) | 23 | 0.0% | 2 | 19 | 74.09 | 60.62 | 126.95 |
| Stage 2: Local ref | 73 | 0.1% | 4 | 25 | 16.21 | 12.89 | 39.9 |
| Stage 3a: Single candidate | 362 | 0.6% | 1 | 40 | - | - | - |
| 3a pass 1 | 327 | 0.5% | 1 | 34 | 12.68 | 8.63 | 44.18 |
| 3a pass 2 | 35 | 0.1% | 0 | 6 | 11.55 | 5.53 | 44.52 |
| Stage 3b: Ratio test | 48 | 0.1% | 0 | 0 | 2.86 | 2.42 | 6.62 |
| Post-processing: ATLAS Duplicate propagation | 331 | 0.5% | 331 | 118 | 23.88 | 8.62 | 101.53 |
| Post-processing: OSM stop partner propagation | 14,182 | 22.2% | 1,779 | 8,330 | 8.81 | 5.38 | 26.23 |
Distance Quality
Cross-Predicate Consistency
If we had matched every pair to its nearest OSM node instead:
Many-to-One Analysis
OSM platform/stop_position groups are counted as one OSM stop in this section.
Distribution: 1 ATLAS to N OSM stops
Ratio key: 1A:2O = one ATLAS platform matched to two OSM stops.
Distribution: N ATLAS to 1 OSM stop
Ratio key: 2A:1O = two ATLAS platforms matched to one OSM stop.
OSM Stops
OSM Stop Inventory
operator:wikidatanetwork:wikidataNon-node OSM Stops (Ways)
OSM Groups (Platform / Stop Position Pairs)
Groups by Type
| Group Type | Count |
|---|---|
| osm_trio | 1,230 |
| osm_pair_uic_equal_15m | 10,362 |
| osm_pair_uic | 2,936 |
| osm_pair_name | 654 |
| osm_pair_name_equal_15m | 30 |
| osm_pair_tram | 317 |
| osm_pair_tram_equal_15m | 12 |
Unmatched
Unmatched Analysis
Unmatched ATLAS (5,726)
| No OSM within 50m | 2,980 |
| Has nearby OSM | 2,746 |
Unmatched OSM (9,212)
| No ATLAS within 50m | 3,392 |
| Has nearby ATLAS | 5,820 |
| Has Attributes | Count |
|---|---|
| UIC & Local Ref & Routes | 161 |
| UIC & Local Ref | 102 |
| UIC & Routes | 2,193 |
| Local Ref & Routes | 87 |
| UIC only | 2,923 |
| Local Ref only | 85 |
| Routes only | 1,002 |
| None | 2,659 |
ATLAS
ATLAS Duplicates
| Total duplicate SLOIDs | 640 |
| Matched duplicates | 638 |
| Unmatched duplicates | 48 |
Problems
Problem Detection Statistics
| Problem Type | Count |
|---|---|
| Distance — Too far from OSM node | 1,216 |
| Unmatched — Isolated ATLAS / OSM node | 4,510 |
| Attributes — Missing or mismatched data | 927 |
| Problem Type | Count |
|---|---|
| Distance — Too far from OSM node | 4,549 |
| Unmatched — Isolated ATLAS / OSM node | 7,473 |
| Attributes — Missing or mismatched data | 335 |
| Duplicates — OSM or ATLAS side collisions | 340 |
| Problem Type | Count |
|---|---|
| Distance — Too far from OSM node | 5,626 |
| Unmatched — Isolated ATLAS / OSM node | 2,955 |
| Attributes — Missing or mismatched data | 10,959 |
| Duplicates — OSM or ATLAS side collisions | 1,453 |
Routes
Route Coverage
| ATLAS stops matched by GTFS routes | 44,004 / 54,979 | 80.0% |
| OSM stops with routes coverage | 35,272 | 71.3% |
Route-Route Matching
| Metric | Count |
|---|---|
| Route-route links (ATLAS ↔ OSM) | 2,058 |
| Linked ATLAS route IDs | 2,058 |
| Linked OSM route IDs | 2,058 |
| Coverage | Count | Percent |
|---|---|---|
| ATLAS route IDs with link | 2,058 / 4,032 | 51.0% |
| OSM route IDs with link | 2,058 / 2,874 | 71.6% |
| ATLAS itineraries with link | 1,059 / 14,394 | 7.4% |
| OSM itineraries with link | 1,059 / 8,206 | 12.9% |
| ATLAS route directions (total) | 7,608 | - |
| OSM route directions (total) | 4,920 | - |
Match Method Breakdown
| Method | Count | % of Total |
|---|---|---|
| Exact GTFS route ID | 1,662 | 80.8% |
| Normalized GTFS route ID | 396 | 19.2% |
| OSM display route ID matches ATLAS route ID | 0 | 0.0% |
Route Pipeline Shape
| Metric | Mean | Median |
|---|---|---|
| ATLAS itineraries per family | 3.57 | 3.0 |
| OSM itineraries per family | 2.86 | 2.0 |
| GTFS trips collapsed into one ATLAS itinerary | 136.09 | 17.0 |
| Matched family itinerary gap (ATLAS - OSM) | 1.01 | 0.0 |
| Matched Family Comparison | Count |
|---|---|
| Matched families where ATLAS has more itineraries | 908 |
| Matched families with equal itinerary counts | 802 |
| Matched families where OSM has more itineraries | 348 |
OSM Route Family Grouping Method
How OSM route relations are grouped into line families. Priority order: route_master → GTFS route ID → (route, ref, operator, network) → per-relation fallback.
| Grouping Method | Families | % of Families | Relations |
|---|---|---|---|
| route_master (explicit OSM grouping) | 2,672 | 93.0% | 7,959 |
| Normalized GTFS route ID | 5 | 0.2% | 7 |
| Synthetic key (route, ref, operator, network) | 197 | 6.9% | 240 |
| Per-relation fallback (no grouping key) | 0 | 0.0% | 0 |
| Total | 2,874 | 100% | 8,206 |
GTFS stop_id → ATLAS sloid Mapping
Matching Paths
① Direct SLOID match
Matches where original_stop_id directly contains a valid ATLAS SLOID.
② Strict matching
Matches on (UIC number, local ref) = (number, designation) in ATLAS.
③ Coordinate proximity
For remaining: ATLAS stops with the same UIC number within 0.5m (must be unambiguous).
④ Unique-number fallback
For remaining: if a UIC number maps to exactly one ATLAS row, use that sloid.
Cardinality
GTFS stop_id side
ATLAS sloid side
Unmatched Reasons
| Reason | Count |
|---|---|
| No ATLAS candidate for this UIC number | 690 |
| Non-unique ATLAS number (strict miss, fallback not applicable) | 31,933 |
| Coordinate proximity conflict (multiple candidates within radius) | 303 |