{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://otranspo.ca/schemas/public-api/v1/prediction-calibration","type":"object","properties":{"schema":{"const":"https://otranspo.ca/schemas/public-api/v1/prediction-calibration"},"schemaVersion":{"const":"1.0.0"},"status":{"type":"string","enum":["observed","unavailable"]},"generatedAt":{"type":"string","format":"date-time"},"methodology":{"type":"object","properties":{"settledEvidence":{"type":"object","properties":{"method":{"const":"settled-v1"},"basis":{"const":"last_eligible_provider_prediction"},"independentlyMeasuredArrival":{"const":false},"description":{"type":"string"}},"required":["method","basis","independentlyMeasuredArrival","description"],"additionalProperties":true},"comparisonEvidence":{"type":"object","properties":{"basis":{"const":"prediction_to_last_eligible_provider_prediction"},"independentlyValidated":{"const":false},"description":{"type":"string"}},"required":["basis","independentlyValidated","description"],"additionalProperties":true},"grain":{"type":"string"},"outcome":{"type":"string"},"error":{"type":"string"},"coverage":{"type":"string"},"window":{"type":"string"},"context":{"type":"string"},"riderUse":{"type":"string"}},"required":["settledEvidence","comparisonEvidence","grain","outcome","error","coverage","window","context","riderUse"],"additionalProperties":true},"records":{"type":"array","items":{"type":"object","properties":{"comparisonBasis":{"const":"prediction_to_last_eligible_provider_prediction"},"independentlyValidated":{"const":false},"operatorId":{"type":"string","enum":["oc_transpo","sto"]},"routeId":{"type":"string"},"routeContext":{"type":"string","enum":["weekday_peak","weekday_offpeak","weekend"]},"horizonBucket":{"type":"string","enum":["0-5m","5-15m","15-30m","30-60m"]},"windowDays":{"type":"integer","minimum":0},"sampleSize":{"type":"integer","minimum":0},"settledArrivals":{"type":"integer","minimum":0},"coverage":{"type":"number","minimum":0,"maximum":1},"meanAbsoluteErrorSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"p90AbsoluteErrorSeconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"biasSeconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"method":{"type":"string"},"computedAt":{"type":"string","format":"date-time"}},"additionalProperties":true}}},"required":["schema","schemaVersion","status","generatedAt","methodology","records"],"additionalProperties":true,"title":"prediction-calibration response schema","x-api-version":"1.0.0"}