{"meta":{"platform":"Opportunity Exchange","canonical":"https://veilpoint.ca/sources.md","retrievedAt":"2026-07-27T08:25:16.783Z","dataStatus":"Factual metadata: this document describes the provenance and serving mode of every data source the platform serves. It is the machine twin of /about/data.","evidence":{"status":"published","truthState":"metadata","recordType":"metadata","isActionable":false,"synthetic":false,"confidence":null,"sourceKinds":[],"asOf":null,"qualification":"Factual self-description of the platform, current as served.","assumptions":[]},"citeAs":"Opportunity Exchange (VeilPoint), \"Data sources and serving status\", https://veilpoint.ca/sources.md, retrieved 2026-07-27."},"data":{"disclosure":{"headline":"This preview mixes published and synthetic data","summary":"4 of 11 sources currently serve published data: Geography, Trade, Wages & vacancies, Rents. 7 sources serve synthetic or placeholder data. Do not use placeholder figures for employment, investment, or policy decisions; check each record's provenance and /about/data.","realSourceCount":4,"placeholderSourceCount":7,"totalSourceCount":11,"realSourceLabels":["Geography","Trade","Wages & vacancies","Rents"],"placeholderSourceLabels":["Job postings","Cost of living","Municipal economics","Training catalogue","Talent signals","Business directory","Real estate"]},"sources":[{"id":"jobs","label":"Job postings","mode":"placeholder","health":"ok","upstream":"ESDC Job Bank partner XML feed","sourceKind":"placeholder","confidence":"D","licence":"ESDC Job Bank terms or Open Government licence, depending on feed.","refreshCadence":"Daily once the Job Bank feed is connected.","recordCount":1400,"freshness":{"state":"fresh","lastFetchedAt":"2026-07-27T08:25:16.783Z","maxAgeHours":24,"staleAt":"2026-07-28T08:25:16.783Z"},"validation":{"state":"unchecked","issues":[]},"readiness":"Awaiting Job Bank network approval. Adapter scaffolded in jobs/jobbank.ts; requires feed credentials and the posting-to-occupation mapping pass."},{"id":"cost-of-living","label":"Cost of living","mode":"placeholder","health":"ok","upstream":"CMHC Rental Market Survey · StatsCan CPI · municipal tax rolls","sourceKind":"placeholder","confidence":"D","licence":"CMHC and Statistics Canada terms, depending on input.","refreshCadence":"Monthly or annual by input series.","recordCount":20,"freshness":{"state":"not_applicable","maxAgeHours":720},"validation":{"state":"unchecked","issues":[]},"readiness":"Rent and vacancy figures are measured CMHC Rental Market Survey data (curated rents layer) for the communities CMHC surveys; remaining fields and unsurveyed communities are synthetic. Live adapter scaffolded in cost-of-living/cmhc.ts — requires StatsCan regional CPI series and municipal mill-rate collection. The forecasting model itself is complete and unit-tested."},{"id":"geolayer","label":"Municipal economics","mode":"placeholder","health":"ok","upstream":"GeoLayer economic protocol (sibling service)","sourceKind":"placeholder","confidence":"D","licence":"GeoLayer service terms.","refreshCadence":"Runtime request to the configured GeoLayer service.","recordCount":20,"freshness":{"state":"not_applicable","maxAgeHours":24},"validation":{"state":"unchecked","issues":[]},"readiness":"Live adapter is fully implemented — set OEX_GEOLAYER_BASE_URL to a running GeoLayer instance and OEX_GEOLAYER_PROVIDER=http. Note that GeoLayer GDP is synthetic in both modes by design."},{"id":"training","label":"Training catalogue","mode":"placeholder","health":"ok","upstream":"SaskPolytech · SIIT · Suncrest College · Great Plains College","sourceKind":"placeholder","confidence":"D","licence":"Institutional permission required for live intake and seat data.","refreshCadence":"Weekly once institutional rosters are connected.","recordCount":54,"freshness":{"state":"not_applicable","maxAgeHours":168},"validation":{"state":"unchecked","issues":[]},"readiness":"Synthetic catalogue derived from the occupation reference set. No provider has a public programs API — intake dates and seat availability require institutional agreements. Partnership dependency, not an engineering one."},{"id":"talent","label":"Talent signals","mode":"placeholder","health":"ok","upstream":"OEX seeker accounts","sourceKind":"placeholder","confidence":"D","licence":"First-party OEX user consent and platform privacy terms.","refreshCadence":"On profile change and account activity.","recordCount":339,"freshness":{"state":"not_applicable","maxAgeHours":24},"validation":{"state":"unchecked","issues":[]},"readiness":"Synthetic standalone population. Signed-in app flows now use @oex/db accounts, persistent disclosure grants and the access audit log; this provider remains as the zero-config corpus for demos and bootstrap seeding."},{"id":"businesses","label":"Business directory","mode":"placeholder","health":"ok","upstream":"Provincial business registry · ISC corporate registry","sourceKind":"placeholder","confidence":"D","licence":"Provincial registry terms or business-submitted data terms.","refreshCadence":"Monthly registry refresh once connected.","recordCount":1557,"freshness":{"state":"not_applicable","maxAgeHours":720},"validation":{"state":"unchecked","issues":[]},"readiness":"Synthetic directory. A live build ingests the provincial corporate registry for the roster and sector coding; featured placement is a platform-native paid product and needs the billing integration, not an external feed."},{"id":"real-estate","label":"Real estate","mode":"placeholder","health":"ok","upstream":"Saskatchewan REALTORS® Association MLS · CREA","sourceKind":"placeholder","confidence":"D","licence":"MLS/CREA or listing-provider permission required.","refreshCadence":"Daily once MLS or permitted listing feeds are connected.","recordCount":20,"freshness":{"state":"not_applicable","maxAgeHours":24},"validation":{"state":"unchecked","issues":[]},"readiness":"Synthetic housing market. A live build ingests the provincial MLS feed for prices, listings and velocity. The ownership model is complete and unit-tested — only the inputs are synthetic."},{"id":"geography","label":"Geography","mode":"curated","health":"ok","upstream":"AAFC Soils of Canada (Soil Landscapes of Canada) · Saskatchewan Detailed Soil Survey · Saskatchewan Geological Survey — Mineral Deposit Index (SMDI) · ECCC Canadian Climate Normals 1981–2010","sourceKind":"provincial","confidence":"B","licence":"Published government reference data licences.","refreshCadence":"Annual curated refresh, or when reference datasets are updated.","recordCount":126,"freshness":{"state":"unknown","maxAgeHours":8760},"validation":{"state":"passed","issues":[]},"readiness":"Real curated data: soil zone and agricultural capability per community, every current mineral operation in the province, and climate normals from the nearest ECCC station. Refreshed by re-running the recipes documented in the reference files."},{"id":"trade","label":"Trade","mode":"curated","health":"ok","upstream":"Statistics Canada — merchandise exports by product section, Saskatchewan, 2025 · Canadian Grain Commission — grain deliveries at prairie points, 2024–25","sourceKind":"statistics-canada","confidence":"A","licence":"Published Statistics Canada and Canadian Grain Commission data terms.","refreshCadence":"Annual curated refresh from published export and grain data.","recordCount":119,"freshness":{"state":"unknown","maxAgeHours":8760},"validation":{"state":"passed","issues":[]},"readiness":"Real curated data: provincial merchandise exports by product section and producer grain deliveries by delivery point. Annual refresh via the recipes in the data files; a WDS live adapter can replace the snapshot later."},{"id":"wages","label":"Wages & vacancies","mode":"curated","health":"ok","upstream":"Statistics Canada — employee wages by occupation (Labour Force Survey), 2025 · Statistics Canada — job vacancies and offered wages by occupation (JVWS), 2026 Q1","sourceKind":"statistics-canada","confidence":"A","licence":"Statistics Canada Open Licence.","refreshCadence":"Annual (LFS wages); quarterly (JVWS vacancies).","recordCount":3475,"freshness":{"state":"unknown"},"validation":{"state":"passed","issues":[]},"readiness":"Real curated data: LFS employee wages by occupation group × province (2025) and JVWS vacancies with offered wages by NOC unit group × province/territory (2026 Q1). Refresh via the wage recipes; a WDS live adapter can replace the snapshot later."},{"id":"rents","label":"Rents","mode":"curated","health":"ok","upstream":"CMHC Rental Market Survey — average rents by centre, October 2025 · CMHC Rental Market Survey — vacancy rates by centre, October 2025","sourceKind":"cmhc","confidence":"A","licence":"Statistics Canada Open Licence (CMHC RMS data as published by Statistics Canada).","refreshCadence":"Annual (October survey).","recordCount":330,"freshness":{"state":"unknown"},"validation":{"state":"passed","issues":[]},"readiness":"Real curated data: CMHC Rental Market Survey average rents by unit type and vacancy rates for every surveyed centre (October 2025). Annual refresh via the rent recipes; a WDS live adapter can replace the snapshot later."}]}}