Methods
How the corpus is compiled, normalized, and verified before any statistic appears on this site.
1. Compilation
Records enter the corpus from official public-disclosure publications of the covered jurisdictions — federal proactive disclosure, the Quebec public tender bulletin, Tribunal complaint records, and BC ministry award disclosures. Harvesting is automated and incremental: each run picks up new and amended records, so late-published amendments flow backward into earlier years. Nothing is hand-entered.
2. Normalization
- Vendor names are preserved as published. A merge pass collapses exact-duplicate punctuation and casing variants; deeper legal-entity resolution (e.g. "Irving Shipbuilding Inc" vs "Irving Shipbuilding Inc.", or one vendor reported under French and English forms) is tracked but not yet applied to published tables, so top-vendor lists slightly understate true concentration.
- Departments are mapped to stable bilingual registry codes (25 portfolios), keeping both the code and a display name.
- Dates and values are normalized to ISO dates and CAD. Quebec tender records resolve to award year where published; 312 BC awards carry no usable date and are excluded from year series rather than imputed.
- Geography: vendor postal data resolves 464,227 federal records to a home province, covering $765.5B of $1,212.3B total value. Unresolved records are dropped from geographic tables, never guessed.
3. Classification and derived layers
Quebec tenders are classified into three competition categories (works, services, goods) covering 373,663 tenders, and labelled with the published contract method on 400,081. Category classification follows the goods/services description of the tender record; tenders that cannot be classified are excluded from category tables and kept in the corpus totals — which is why denominators differ across tables and are always stated.
4. Verification
- Cross-footing: every published table is recomputed from the raw corpus at build time; this site is generated directly from those computations, so a number cannot drift from its underlying records.
- Reconciliation: corpus totals are reconciled per release against each layer's coverage counts — federal 1,313,281; Quebec 405,956; Tribunal 2,043, which the document-type mix sums to exactly; BC 15,068.
- Known-error review: suspicious artifacts — duplicated vendor strings, value-band anomalies, year steps — are flagged in release notes rather than silently corrected.
5. Refresh and versioning
The corpus refreshes on a rolling basis; findings, tools, and tables recompile per release. Every release carries a YYYY.NN tag (current: 2026.10) recorded on the releases page. Statistics cited from this site should carry the release tag. Prior-release figures are not silently revised — corrections are logged.
Known limitations (release 2026.10)
- Federal 2026 is a partial year (39,034 awards to date); all 2026 series are year-to-date.
- Only about 871K of 1.31M federal records carry a procedure label; the no-tender series uses the labelled subset only.
- Quebec tender volume steps up 2.6× in 2025 (108,260 vs 41,509 in 2024) — a coverage change in the source bulletin, not a market event; level comparisons across it are flagged where they appear.
- Vendor legal-name variants are not fully merged (see normalization); concentration ratios are floors.
- 312 BC awards are undated and excluded from the BC year series.