{"type":"object","properties":{"payload":{"type":"object","properties":{"edition":{"const":"prediction-comparison-evidence-v1"},"selection":{"type":"object","properties":{"period":{"type":"string","enum":["day","week","month"]},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"operator":{"type":"string","enum":["all","oc_transpo","sto"]}},"required":["period","date","operator"],"additionalProperties":false},"asOf":{"type":"string","format":"date-time","maxLength":32},"state":{"type":"string","enum":["replayable_comparison","replayable_refusal","unavailable"]},"unavailableReason":{"anyOf":[{"type":"string","enum":["source_grain_unavailable","invalid_or_over_bound_grain","published_comparison_mismatch","source_read_unavailable"]},{"type":"null"}]},"sourceReadConsistency":{"const":"captured_read_results_not_atomic_snapshot"},"claimScope":{"const":"prediction_adherence_only"},"code":{"type":"object","properties":{"kind":{"const":"measured_source_lf_sha256_manifest"},"files":{"type":"object","additionalProperties":{"type":"string","pattern":"^[a-f0-9]{64}$"}}},"required":["kind","files"],"additionalProperties":false},"inference":{"type":"object","properties":{"samplingUnit":{"const":"route_day_aggregate"},"uncertainty":{"const":"not_estimated"},"refusalReason":{"const":"dependence_and_cluster_assumptions_unverified"},"confidenceInterval":{"type":"null"},"physicalServiceClaimSupported":{"const":false,"type":"boolean"},"causalClaimSupported":{"const":false,"type":"boolean"},"equivalenceClaimSupported":{"const":false,"type":"boolean"},"modelEligibility":{"const":false,"type":"boolean"}},"required":["samplingUnit","uncertainty","refusalReason","confidenceInterval","physicalServiceClaimSupported","causalClaimSupported","equivalenceClaimSupported","modelEligibility"],"additionalProperties":false},"inputs":{"anyOf":[{"type":"object","properties":{"current":{"type":"array","items":{"type":"object","properties":{"serviceDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"routeId":{"type":"string","maxLength":512,"minLength":1},"label":{"type":"string","maxLength":512},"operatorId":{"type":"string","enum":["oc_transpo","sto"]},"observations":{"type":"integer","minimum":1,"maximum":9007199254740991},"onTimeArrivals":{"type":"integer","minimum":0,"maximum":9007199254740991},"purpose":{"type":"string","enum":["conventional","express","shopper_community","event","school","rapibus","unclassified"]},"comparable":{"const":true,"type":"boolean"},"scheduleCohort":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"scheduleFeedVersionId":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"evidenceBasis":{"anyOf":[{"type":"string","enum":["settled_provider_prediction","unknown"]},{"type":"null"}]},"rollupMethod":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"routeTimetableFingerprint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"scheduleMembershipVerified":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"scheduleDayOffset":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["serviceDate","routeId","label","operatorId","observations","onTimeArrivals","purpose","comparable","scheduleCohort","scheduleFeedVersionId","evidenceBasis","rollupMethod","routeTimetableFingerprint","scheduleMembershipVerified","scheduleDayOffset"],"additionalProperties":false},"maxItems":20000},"previous":{"type":"array","items":{"type":"object","properties":{"serviceDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"routeId":{"type":"string","maxLength":512,"minLength":1},"label":{"type":"string","maxLength":512},"operatorId":{"type":"string","enum":["oc_transpo","sto"]},"observations":{"type":"integer","minimum":1,"maximum":9007199254740991},"onTimeArrivals":{"type":"integer","minimum":0,"maximum":9007199254740991},"purpose":{"type":"string","enum":["conventional","express","shopper_community","event","school","rapibus","unclassified"]},"comparable":{"const":true,"type":"boolean"},"scheduleCohort":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"scheduleFeedVersionId":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"evidenceBasis":{"anyOf":[{"type":"string","enum":["settled_provider_prediction","unknown"]},{"type":"null"}]},"rollupMethod":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"routeTimetableFingerprint":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"scheduleMembershipVerified":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"scheduleDayOffset":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["serviceDate","routeId","label","operatorId","observations","onTimeArrivals","purpose","comparable","scheduleCohort","scheduleFeedVersionId","evidenceBasis","rollupMethod","routeTimetableFingerprint","scheduleMembershipVerified","scheduleDayOffset"],"additionalProperties":false},"maxItems":20000},"window":{"type":"object","properties":{"period":{"type":"string","enum":["day","week","month"]},"currentDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"previousDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"baselineKind":{"type":"string","enum":["same_weekday_prior_week","preceding_equal_window","previous_calendar_month","same_calendar_month_last_year"]},"routeServiceCalendar":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"routeId":{"type":"string","maxLength":512,"minLength":1},"provenance":{"const":"archived_gtfs_calendar_exceptions"},"currentScheduledDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"previousScheduledDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31}},"required":["routeId","provenance","currentScheduledDates","previousScheduledDates"],"additionalProperties":false},"maxItems":1000},{"type":"null"}]}},"required":["period","currentDates","previousDates","baselineKind","routeServiceCalendar"],"additionalProperties":false},"coverage":{"type":"object","properties":{"current":{"type":"object","properties":{"missingDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"partialDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"unaccountedDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"completedDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31}},"required":["missingDates","partialDates","unaccountedDates","completedDates"],"additionalProperties":false},"previous":{"type":"object","properties":{"missingDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"partialDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"unaccountedDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31},"completedDates":{"type":"array","items":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"maxItems":31}},"required":["missingDates","partialDates","unaccountedDates","completedDates"],"additionalProperties":false}},"required":["current","previous"],"additionalProperties":false}},"required":["current","previous","window","coverage"],"additionalProperties":false},{"type":"null"}]},"comparison":{"anyOf":[{"type":"object","properties":{"policyVersion":{"const":"prediction-comparison-v2"},"claimScope":{"const":"prediction_adherence_only"},"causalClaimSupported":{"const":false,"type":"boolean"},"equivalenceClaimSupported":{"const":false,"type":"boolean"},"state":{"type":"string","enum":["comparable","insufficient","incomparable"]},"reason":{"type":"string","enum":["comparable","missing_period","window_mismatch","route_cohort_changed","invalid_daily_rows","legacy_settled_grain","schedule_provenance_missing","schedule_changed","shared_support_missing","insufficient_matched_coverage"]},"method":{"type":"string","enum":["matched-route-weekday","common-route-weekday-weights"]},"baseline":{"type":"object","properties":{"kind":{"type":"string","enum":["same_weekday_prior_week","preceding_equal_window","previous_calendar_month","same_calendar_month_last_year"]},"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["kind","start","end"],"additionalProperties":false},"currentWindow":{"type":"object","properties":{"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"daysExpected":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["start","end","daysExpected"],"additionalProperties":false},"current":{"type":"object","properties":{"observations":{"type":"integer","minimum":0,"maximum":9007199254740991},"onTimeArrivals":{"type":"integer","minimum":0,"maximum":9007199254740991},"rawEligiblePct":{"anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]},"comparisonPct":{"anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]}},"required":["observations","onTimeArrivals","rawEligiblePct","comparisonPct"],"additionalProperties":false},"previous":{"type":"object","properties":{"observations":{"type":"integer","minimum":0,"maximum":9007199254740991},"onTimeArrivals":{"type":"integer","minimum":0,"maximum":9007199254740991},"rawEligiblePct":{"anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]},"comparisonPct":{"anyOf":[{"type":"number","minimum":0,"maximum":100},{"type":"null"}]}},"required":["observations","onTimeArrivals","rawEligiblePct","comparisonPct"],"additionalProperties":false},"weights":{"type":"array","items":{"type":"object","properties":{"routeId":{"type":"string","maxLength":512},"weekday":{"type":"integer","minimum":0,"maximum":6},"pooledObservations":{"type":"integer","minimum":0,"maximum":9007199254740991},"weight":{"type":"number","minimum":0,"maximum":1},"currentObservations":{"type":"integer","minimum":0,"maximum":9007199254740991},"previousObservations":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["routeId","weekday","pooledObservations","weight","currentObservations","previousObservations"],"additionalProperties":false},"maxItems":7000},"matchedPairs":{"type":"array","items":{"type":"object","properties":{"routeId":{"type":"string","maxLength":512},"currentDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"previousDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["routeId","currentDate","previousDate"],"additionalProperties":false},"maxItems":31000},"omitted":{"type":"array","items":{"type":"object","properties":{"routeId":{"type":"string","maxLength":512},"period":{"type":"string","enum":["current","previous"]},"serviceDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"reason":{"type":"string","enum":["missing","below_day_floor"]}},"required":["routeId","period","serviceDate","reason"],"additionalProperties":false},"maxItems":62000},"coverage":{"type":"array","items":{"type":"object","properties":{"routeId":{"type":"string","maxLength":512},"currentIncludedDays":{"type":"integer","minimum":0,"maximum":9007199254740991},"previousIncludedDays":{"type":"integer","minimum":0,"maximum":9007199254740991},"currentExpectedDays":{"type":"integer","minimum":0,"maximum":9007199254740991},"previousExpectedDays":{"type":"integer","minimum":0,"maximum":9007199254740991},"minimumCurrentRequiredDays":{"type":"integer","minimum":0,"maximum":9007199254740991},"minimumPreviousRequiredDays":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["routeId","currentIncludedDays","previousIncludedDays","currentExpectedDays","previousExpectedDays","minimumCurrentRequiredDays","minimumPreviousRequiredDays"],"additionalProperties":false},"maxItems":1000},"feedVersionIds":{"type":"object","properties":{"current":{"type":"array","items":{"type":"string","maxLength":512},"maxItems":1000},"previous":{"type":"array","items":{"type":"string","maxLength":512},"maxItems":1000}},"required":["current","previous"],"additionalProperties":false}},"required":["policyVersion","claimScope","causalClaimSupported","equivalenceClaimSupported","state","reason","method","baseline","currentWindow","current","previous","weights","matchedPairs","omitted","coverage","feedVersionIds"],"additionalProperties":false},{"type":"null"}]}},"required":["edition","selection","asOf","state","unavailableReason","sourceReadConsistency","claimScope","code","inference","inputs","comparison"],"additionalProperties":false},"checksum":{"type":"object","properties":{"algorithm":{"const":"sha256_canonical_json_v1"},"value":{"type":"string","pattern":"^[a-f0-9]{64}$"}},"required":["algorithm","value"],"additionalProperties":false}},"required":["payload","checksum"],"additionalProperties":false,"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://otranspo.ca/schemas/public-api/v1/prediction-comparison-evidence-v1","title":"prediction-comparison-evidence-v1 response schema","x-api-version":"1.0.0"}