{"schema":"https://otranspo.ca/schemas/public-api/v1/route-evidence","schemaVersion":"1.0.0","evidenceState":"measured","generatedAt":"2026-11-04T12:32:34.569Z","route":{"id":"oc_transpo:49","publicNumber":"49","operatorId":"oc_transpo","operatorName":"OC Transpo","variantIds":["49"]},"grading":{"servicePurpose":"conventional","policy":"all_settled_arrivals","contextToVerify":[],"numericOtpPublished":true},"definitions":{"onTime":"absolute difference between the last eligible provider prediction and the scheduled arrival is no more than 300 seconds; this does not measure actual arrival","worstFiveInOneHundred":"95th-percentile difference between last eligible provider predictions and scheduled arrivals; a threshold, not a maximum or average of the latest 5%","noPublishedPosition":"a scheduled trip with no matching public vehicle position in this coverage check; this is not by itself a confirmed no-show or cancellation","riderReports":"investigation leads only; not counted as service-failure proof"},"methods":{"settledArrivals":"last-prediction-within-ten-minutes-v1","scheduledTripPositions":"retained-timetable-trip-position-v2"},"cohorts":[{"routeId":"49","computedAt":"2026-11-04T12:32:34.569Z","summary":{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","observations":16440,"weekdaysObserved":19,"serviceDaysObserved":27,"onTimePct":77.5,"averageDelaySeconds":206.2,"p95DelaySeconds":673,"computedAt":"2026-11-04T12:32:34.569Z","windowStart":"2026-10-06T00:00:00.000Z","windowEnd":"2026-11-03T23:59:59.999Z"},"hourlyReliability":[{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":6,"observations":420,"serviceDays":10,"onTimePct":96,"medianDelaySeconds":74,"p95DelaySeconds":267},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":7,"observations":420,"serviceDays":10,"onTimePct":81,"medianDelaySeconds":167,"p95DelaySeconds":431},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":8,"observations":1006,"serviceDays":12,"onTimePct":70.4,"medianDelaySeconds":224,"p95DelaySeconds":791},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":9,"observations":409,"serviceDays":14,"onTimePct":78.5,"medianDelaySeconds":171,"p95DelaySeconds":756},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":10,"observations":567,"serviceDays":14,"onTimePct":95.9,"medianDelaySeconds":89,"p95DelaySeconds":278},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":11,"observations":164,"serviceDays":4,"onTimePct":100,"medianDelaySeconds":-14,"p95DelaySeconds":66},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":12,"observations":574,"serviceDays":14,"onTimePct":94.3,"medianDelaySeconds":112,"p95DelaySeconds":324},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":13,"observations":164,"serviceDays":4,"onTimePct":86.6,"medianDelaySeconds":53,"p95DelaySeconds":758},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":14,"observations":720,"serviceDays":14,"onTimePct":89.3,"medianDelaySeconds":108,"p95DelaySeconds":350},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":15,"observations":887,"serviceDays":14,"onTimePct":77.5,"medianDelaySeconds":151,"p95DelaySeconds":566},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":16,"observations":964,"serviceDays":14,"onTimePct":68.5,"medianDelaySeconds":216,"p95DelaySeconds":794},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":17,"observations":1015,"serviceDays":14,"onTimePct":73.1,"medianDelaySeconds":153,"p95DelaySeconds":630},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":18,"observations":785,"serviceDays":12,"onTimePct":57.6,"medianDelaySeconds":261,"p95DelaySeconds":629},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":19,"observations":393,"serviceDays":10,"onTimePct":88,"medianDelaySeconds":139,"p95DelaySeconds":398},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":20,"observations":31,"serviceDays":10,"onTimePct":87.1,"medianDelaySeconds":129,"p95DelaySeconds":327},{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","hour":22,"observations":200,"serviceDays":10,"onTimePct":84.5,"medianDelaySeconds":198,"p95DelaySeconds":332}],"scheduledTripPositionCoverage":{"routeId":"49","routeLabel":"49","operatorId":"oc_transpo","scheduledTrips":214,"observedTrips":212,"notObservedTrips":2,"coveragePct":99.1,"serviceDays":5},"scheduledTripPositionCoverageByHour":[{"hour":6,"scheduledTrips":10,"observedTrips":10,"notObservedTrips":0,"coveragePct":100},{"hour":7,"scheduledTrips":10,"observedTrips":10,"notObservedTrips":0,"coveragePct":100},{"hour":8,"scheduledTrips":26,"observedTrips":26,"notObservedTrips":0,"coveragePct":100},{"hour":9,"scheduledTrips":9,"observedTrips":9,"notObservedTrips":0,"coveragePct":100},{"hour":10,"scheduledTrips":14,"observedTrips":14,"notObservedTrips":0,"coveragePct":100},{"hour":11,"scheduledTrips":4,"observedTrips":4,"notObservedTrips":0,"coveragePct":100},{"hour":12,"scheduledTrips":14,"observedTrips":14,"notObservedTrips":0,"coveragePct":100},{"hour":13,"scheduledTrips":4,"observedTrips":4,"notObservedTrips":0,"coveragePct":100},{"hour":14,"scheduledTrips":19,"observedTrips":19,"notObservedTrips":0,"coveragePct":100},{"hour":15,"scheduledTrips":24,"observedTrips":24,"notObservedTrips":0,"coveragePct":100},{"hour":16,"scheduledTrips":24,"observedTrips":24,"notObservedTrips":0,"coveragePct":100},{"hour":17,"scheduledTrips":24,"observedTrips":23,"notObservedTrips":1,"coveragePct":95.8},{"hour":18,"scheduledTrips":17,"observedTrips":16,"notObservedTrips":1,"coveragePct":94.1},{"hour":19,"scheduledTrips":10,"observedTrips":10,"notObservedTrips":0,"coveragePct":100},{"hour":22,"scheduledTrips":5,"observedTrips":5,"notObservedTrips":0,"coveragePct":100}],"headwayRegularity":null}],"recurringProblemStops":[{"stopId":"2081","stopName":"PLEASANT PARK / NORWAY","observations":418,"onTimeArrivals":214,"onTimePct":51.2,"medianDelaySeconds":291,"worstFiveInOneHundredDelaySeconds":836,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:26.756Z"},{"stopId":"2080","stopName":"PLEASANT PARK / LYNDA","observations":418,"onTimeArrivals":223,"onTimePct":53.3,"medianDelaySeconds":286,"worstFiveInOneHundredDelaySeconds":820,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:26.756Z"},{"stopId":"2079","stopName":"PLEASANT PARK / AD. 504","observations":418,"onTimeArrivals":228,"onTimePct":54.5,"medianDelaySeconds":279,"worstFiveInOneHundredDelaySeconds":827,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:27.049Z"},{"stopId":"2078","stopName":"PLEASANT PARK / AD. 452","observations":418,"onTimeArrivals":232,"onTimePct":55.5,"medianDelaySeconds":276,"worstFiveInOneHundredDelaySeconds":800,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:27.049Z"},{"stopId":"2082","stopName":"PLEASANT PARK / DORVAL","observations":417,"onTimeArrivals":237,"onTimePct":56.8,"medianDelaySeconds":267,"worstFiveInOneHundredDelaySeconds":862,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:25.904Z"},{"stopId":"2077","stopName":"PLEASANT PARK / FAIRBANKS","observations":418,"onTimeArrivals":238,"onTimePct":56.9,"medianDelaySeconds":267,"worstFiveInOneHundredDelaySeconds":785,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:27.049Z"},{"stopId":"2076","stopName":"PLEASANT PARK / AD. 328","observations":418,"onTimeArrivals":242,"onTimePct":57.9,"medianDelaySeconds":264,"worstFiveInOneHundredDelaySeconds":797,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:27.396Z"},{"stopId":"2084","stopName":"PLEASANT PARK / CAMROSE","observations":417,"onTimeArrivals":242,"onTimePct":58,"medianDelaySeconds":251,"worstFiveInOneHundredDelaySeconds":906,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:25.904Z"},{"stopId":"2083","stopName":"PLEASANT PARK / HAIG","observations":417,"onTimeArrivals":245,"onTimePct":58.8,"medianDelaySeconds":262,"worstFiveInOneHundredDelaySeconds":888,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:25.904Z"},{"stopId":"6916","stopName":"PLEASANT PARK / ARCH","observations":417,"onTimeArrivals":247,"onTimePct":59.2,"medianDelaySeconds":248,"worstFiveInOneHundredDelaySeconds":938,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:25.904Z"},{"stopId":"6917","stopName":"PLEASANT PARK / SAUNDERSON","observations":417,"onTimeArrivals":247,"onTimePct":59.2,"medianDelaySeconds":244,"worstFiveInOneHundredDelaySeconds":945,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:25.904Z"},{"stopId":"919","stopName":"ST-LAURENT / AD. 1971","observations":417,"onTimeArrivals":251,"onTimePct":60.2,"medianDelaySeconds":247,"worstFiveInOneHundredDelaySeconds":977,"serviceDays":30,"windowStart":"2026-10-05","windowEnd":"2026-11-03","lastSettledAt":"2026-11-04T04:03:25.587Z"}],"publishedScheduleChange":{"state":"measured","operatorId":"oc_transpo","publicNumber":"49","effectiveDate":"2026-10-30","generatedAt":"2026-11-04T12:19:39.928Z","before":{"phase":"before","comparisonDate":"2026-10-26","feedVersionId":"3932bee1-4577-4968-9a97-2987e88312ad","sourceChecksum":"1d13d0abb2506002092feaff3dc08c45abd96d7b94ad4ed13c73616dab7e8ed8","sourceUrl":"https://oct-gtfs-emasagcnfmcgeham.z01.azurefd.net/public-access/GTFSExport.zip","sourceFetchedAt":"2026-10-23T01:15:52.775Z","serviceStart":"2026-10-23","serviceEnd":"2026-11-23","routeIds":["49"],"longNames":["Elmvale <> Hurdman"],"headsigns":["Elmvale","Hurdman"],"scheduledTrips":35,"distinctStops":43,"distinctShapes":2,"firstServiceSeconds":22200,"lastServiceSeconds":81180,"shapeChecksums":["169a318bcc9110881de2ba4bda14b802c7d76a6e768c6b8570703ebe04b376ca","3f6093ca3667261a0307155276a05858ad1f35bbe385a842193d3338154233ca","56e89ac2352c8e1ad985a5ab370dea337d6c8c643fad2dcf9867c09add28a155","62011f57c2c40d799b63797305d17650d00fd2df2d4f92dfc2a39909c81f7026","77a627b1ff7a79e62e9a75b98a1c4748c05837a87345d49d53f595c3d0286f73","77c686ebebe790306348e5e9235fc356d071361d790fce5d9500fce43789af61","881bc86bfb483a699f3a3c5a43473a8671ad621fcead0246b2f126e9220c9cdc","ff61ec39435fcf9ba9d9697f8db110765cfa707ea9cc6b96bef4e9e2e5ee37de"],"calendarAddedServiceCount":0,"calendarRemovedServiceCount":2},"after":{"phase":"after","comparisonDate":"2026-11-02","feedVersionId":"6ee8491d-8f94-4122-a67b-ef228d9e0945","sourceChecksum":"91dd8e42516043447b7a3e7185d65557916494aaafeb36792fa1c09c514e2bbb","sourceUrl":"https://oct-gtfs-emasagcnfmcgeham.z01.azurefd.net/public-access/GTFSExport.zip","sourceFetchedAt":"2026-10-30T01:00:32.195Z","serviceStart":"2026-10-30","serviceEnd":"2026-11-30","routeIds":["49"],"longNames":["Elmvale <> Hurdman"],"headsigns":["Elmvale","Hurdman"],"scheduledTrips":35,"distinctStops":43,"distinctShapes":2,"firstServiceSeconds":22200,"lastServiceSeconds":81180,"shapeChecksums":["169a318bcc9110881de2ba4bda14b802c7d76a6e768c6b8570703ebe04b376ca","3f6093ca3667261a0307155276a05858ad1f35bbe385a842193d3338154233ca","56e89ac2352c8e1ad985a5ab370dea337d6c8c643fad2dcf9867c09add28a155","62011f57c2c40d799b63797305d17650d00fd2df2d4f92dfc2a39909c81f7026","77a627b1ff7a79e62e9a75b98a1c4748c05837a87345d49d53f595c3d0286f73","77c686ebebe790306348e5e9235fc356d071361d790fce5d9500fce43789af61","881bc86bfb483a699f3a3c5a43473a8671ad621fcead0246b2f126e9220c9cdc","ff61ec39435fcf9ba9d9697f8db110765cfa707ea9cc6b96bef4e9e2e5ee37de"],"calendarAddedServiceCount":0,"calendarRemovedServiceCount":2},"reliabilityBefore":{"phase":"before","windowStart":"2026-10-16","windowEnd":"2026-10-29","observations":8709,"serviceDays":14,"withinFiveMinutesPct":76.8,"averageDelaySeconds":212,"worstFiveInOneHundredDelaySeconds":673},"reliabilityAfter":{"phase":"after","windowStart":"2026-10-30","windowEnd":"2026-11-03","observations":2948,"serviceDays":5,"withinFiveMinutesPct":84.8,"averageDelaySeconds":157,"worstFiveInOneHundredDelaySeconds":444},"reliabilityComparisonReady":false,"scheduleComparisonQualification":"calendar_exception"},"meta":{"schema":"https://otranspo.ca/schemas/response-meta/v1","schemaVersion":1,"surface":"public.reliability-evidence","requestId":null,"requestIdState":"header_only_for_cacheable_compatibility","generatedAt":"2026-11-04T13:03:11.910Z","freshnessSeconds":475359,"sourceState":"current","qualityState":"complete","evidenceIds":[],"missingSources":[],"reasonCodes":[],"sources":[{"id":"realtime:gtfs-rt","version":1,"kind":"gtfs_realtime","operatorId":null,"owner":"not-recorded","publicUrl":null,"publicUrlState":"not_recorded","licence":"not-recorded","licenceState":"not_recorded","cadence":"not-recorded","cadenceState":"not_recorded","snapshotId":"srcsnap_1fa2c8d00cf1bdefb6252a63a165e7531287699c454fa85f7ec9363d9462cfb1","checkedAt":"2026-11-04T13:03:11.910Z","observedAt":"2026-11-04T13:02:50.000Z","freshnessSeconds":21,"freshnessState":"current","qualityState":"complete","reasonCodes":[]},{"id":"gtfs-static:oc_transpo","version":1,"kind":"gtfs_static","operatorId":"oc_transpo","owner":"OC Transpo","publicUrl":"https://oct-gtfs-emasagcnfmcgeham.z01.azurefd.net/public-access/GTFSExport.zip","publicUrlState":"recorded","licence":"not-recorded","licenceState":"not_recorded","cadence":"not-recorded","cadenceState":"not_recorded","snapshotId":"srcsnap_36f5225e05530e76b58f769c4e17556d8b022b1e7451eafaf1351b5f254e4874","checkedAt":"2026-11-04T06:01:26.466Z","observedAt":"2026-10-30T01:00:32.195Z","freshnessSeconds":475359,"freshnessState":"current","qualityState":"complete","reasonCodes":[]},{"id":"gtfs-static:sto","version":4,"kind":"gtfs_static","operatorId":"sto","owner":"STO","publicUrl":"https://contenu.sto.ca/GTFS/GTFS.zip","publicUrlState":"recorded","licence":"not-recorded","licenceState":"not_recorded","cadence":"not-recorded","cadenceState":"not_recorded","snapshotId":"srcsnap_4b91747a9a897f11a9016145bf913089b9770cf02dbe6e92f867ff2bf6b8e364","checkedAt":"2026-11-04T06:01:26.466Z","observedAt":"2026-11-04T06:00:08.184Z","freshnessSeconds":25383,"freshnessState":"current","qualityState":"complete","reasonCodes":[]}]}}