Methodology
Where the numbers come from, how contracts are counted once, what the codes mean and what "late" means. Every rule here is applied by the pipeline in the site's repository; no figure is typed by hand.
Source
The Government of Canada dataset Proactive Publication - Contracts, resource "Contracts over $10,000" (contracts.csv), published on open.canada.ca under the Open Government Licence – Canada. The file used for this build was last modified Sat, 10 Oct 2026 06:53:53 GMT, is 641,790,933 bytes, and has SHA-256 6bc519ef20530cb8…. It has 1,313,289 rows, the same count the open.canada.ca API reports. Code meanings are quoted from the dataset's published data schema. Departments publish contracts and amendments quarterly under the Treasury Board Guide to the Proactive Publication of Contracts.
Every amount on this site links to the government record that states it: the record's page on the contracts search, or, for the few reference numbers containing a slash that the search cannot open, the open.canada.ca API query that returns that one record. "All records" links open the search's list of every record with the contract's procurement number.
Counting each contract once
The file has one row per report, not per contract: a contract appears again each time it is amended. Adding all rows would count amended contracts several times: all 1,313,289 rows together state $1212.5B. The rules:
- Standing offers and supply arrangements are left out. 69,986 rows have instrument type SOSA. The data dictionary says the value reported for them "is $0"; the call-ups made under them are reported as contracts and are counted.
- Rows with the same department and procurement number are one contract. 13,611 rows have a procurement number that cannot link rows (blank, no digit at all, or a placeholder such as NULL); each of those is its own contract.
- A contract's value is the total its latest record states. For records in the current format (instrument type C or A), the "Total Contract Value" of an amendment is the amended value of the whole contract, as the dictionary says ("For a contract amendment ... the amended contract value"). The latest record by reporting period is used. 723,836 contracts.
- Older records. Rows from before the current format (no instrument type, mostly before 2017-18) usually also restate the whole value, but not reliably in order. A contract with only such rows is valued at its largest row, which never adds rows together (22,544 contracts; 292,083 more have a single row). We tested the alternatives on 857 contracts where a later current-format amendment states the previous total: the largest older row matched it in 63% of cases, the latest older row in 56%, and the sum of older rows in 4%.
Result: 1,038,463 contracts worth $448.0B. The government's own contracts search groups records the same way (by procurement number) but computes a contract's total as the original value plus every amendment value; where departments restated values, that sum and the latest stated total differ. We use the latest stated total because it is a figure a record actually states. 8,384 contracts have a stated value of $0 and 140 a negative value; they are kept as stated.
Years
Years are federal fiscal years (April to March), assigned by the contract date of the contract's first record (its award). For an amendment, the dictionary asks departments to keep the original contract date, so amendments stay with the year of the award. 401 contracts dated before 2004-05 or with an unusable date are in the explorer under "earlier" and in all totals.
Solicitation procedure
As the data dictionary describes the field: "It is recommended that this field be populated with one of the five solicitation procedures listed below:"
- AC
- Advance Contract Award Notice
- OB
- Competitive – Open Bidding (GETS)
- ST
- Competitive – Selective Tendering
- TC
- Competitive – Traditional
- TN
- Non-Competitive
"Non-competitive" on this site means code TN, nothing else. ACAN (AC) contracts are not counted as non-competitive. The share of non-competitive value is calculated over contracts that state a procedure, and shown only for fiscal years in which at least 90% of contracts state one: older records mostly leave the field blank.
Limited tendering reason
As the dictionary lists the codes (a record may give several, separated by commas):
- 00
- None
- 05
- No response to bid solicitation
- 20
- Goods purchased on a commodity market
- 21
- Purchases made under exceptionally advantageous conditions
- 22
- Winner of an architectural design contest
- 23
- Consulting services regarding matters of a confidential nature (for contracts not covered by CETA, TCA ,WTO-GPA, CPTPP, CKFTA and CUFTA)
- 30
- Work on a property by a contractor according to a warranty or guarantee (for contracts that are only covered by the CFTA)
- 31
- Work on a leased building or related property performed only by the lessor (for contracts that are only covered by the CFTA)
- 32
- Subscriptions to newspapers, magazines, or other periodicals (for contracts that are only covered by the CFTA)
- 33
- Goods regarding matters of a confidential or privileged nature (for contracts that are only covered by the CFTA)
- 71
- Exclusive rights
- 72
- Prototype purchase
- 74
- Additional deliveries (formerly Interchangeable Parts)
- 81
- Extreme urgency
- 24
- Additional construction services (discontinued as of 2022-01-01)
- 25
- New construction services (discontinued as of 2022-01-01)
- 85
- Low dollar-value (discontinued as of 2022-01-01)
- 86
- Prices and/or sources fixed by government regulations (discontinued as of 2022-01-01)
- 87
- Government objectives representing best interests/value (discontinued as of 2022-01-01)
- 90
- Protection of human, animal, or plant Life or health (discontinued as of 2022-01-01)
Growth
Growth uses the latest current-format record of a contract, which states both "Original Contract Value" and "Total Contract Value". Growth is total minus original; the multiple is total divided by original, ranked only for contracts with an original value of at least $25,000 and a total of at least $1,000,000. The dictionary allows departments to report options when exercised, and contracts with task authorizations either at full potential value or as they are issued, so growth can reflect how a department reports as well as what changed. The record comments, quoted on each row, often say which.
Late disclosure
The Treasury Board guide sets the timing:
Quarterly proactive publication of contract data elements as detailed in Appendix A for contracts and positive and negative amendments over $10,000, within 30 days after the end of each of the first three quarters of a fiscal year (April to June, July to September and October to December) and within 60 days after the end of the fourth quarterGuide to the Proactive Publication of Contracts, section 4.4.3
A contract or amendment not reported in the reporting period in which it was awarded may be reported in the subsequent reporting period, or as soon as practicable. Any contract or amendment included in a reporting period after its publication, should clearly indicate the omission within the comments data elementGuide to the Proactive Publication of Contracts, section 4.4.5
The dataset does not record the date a row was posted, so lateness is measured in fiscal quarters: the reporting period of a contract's first published record, minus the fiscal quarter of its contract date. A contract awarded in 2022-23 Q2 and first published in the 2022-23 Q2 report is 0 quarters late; first published in the 2023-24 Q3 report, 5 quarters. Rules:
- The contract's first published record is used, because amendments keep the original contract date and would otherwise look late.
- Only contracts whose first record is the contract itself (instrument type C) with a valid "Reporting Period" field are measured (672,065 contracts). A contract that first appears as an amendment is not measured: it may have crossed the $10,000 threshold only when amended, or have been first reported in the older format. For older rows without a reporting period, the period in the reference number orders the rows but is not used to measure lateness.
- The rankings list contracts 4 or more quarters late (a year or more): 6,191 contracts, $20.1B at current value. At 1 or more quarters: 52,103 contracts, $72.5B.
- 4,498 contracts have a first reporting period earlier than their contract date (negative lateness); they are not ranked.
- The dictionary allows the contract date to be the "hard commitment date" or, for a confirming order, the date of the verbal contract, so a few quarters of difference can come from the department's dating practice.
51,850 rows carry the standard comment that the contract "was omitted from a previous" publication or disclosure.
An earlier note in our research mentioned "$18.4B" of late-disclosed contracts. We could not reproduce that figure with any definition above, and do not use it.
Vendor names
Vendor names are written by each department and vary in spelling. Names are grouped only when they become identical after ignoring case, accents, punctuation and spacing, writing "&" as "and", dropping a leading "The", and dropping legal-form words at the end of the name (Inc, Incorporated, Ltd, Limited, Limitée, Ltée, Corp, Corporation, Co, Company, LLC, LLP, LP, ULC, PLC, GmbH, SA, SAS, AG, AB, BV, NV, SpA, SENC, SENCRL, SRL, Pty, Cie, Enr). Nothing else is merged: "IBM Canada" and "IBM Corporation" stay separate, as do a company and its subsidiaries. Each vendor page lists the exact spellings it groups. The displayed name is the spelling used on the most contracts. 147,512 vendors result; 4,748 with contracts totalling $5,000,000 or more have a page.
Former public servants and ministers' offices
A contract is listed as with a former public servant when at least one of its records answers Y to "Former Public Servant in receipt of a PSSA pension". The flag is what the department reported; the site adds no information about any person.
Known data quality issues
- 277,666 rows have no valid reporting period (blank, or values such as "Q4", "A" or "C").
- 2 rows have a contract date that is missing or outside 1990 to 2030.
- Solicitation procedure, limited tendering reason and instrument type are blank on most rows published before 2017.
- Original contract values are sometimes restated between amendments of the same contract; growth uses the figures of one record so they are consistent with each other.
- The same procurement number is occasionally reused for different contracts by one department; those are grouped as one contract, and the "all records" link shows every row involved.
- Departments that report each task authorization separately, or report a standing offer's full potential value, make contracts look larger or smaller than what is spent. The dataset reports commitments, not payments.
- Contracts of $10,000 and under are not in this dataset; they are published only as yearly aggregates.
Comparison with official figures
See the repository's docs/official-totals.md: the row count matches the open.canada.ca API exactly, and totals are compared with the last Treasury Board Purchasing Activity Report (2016) and with the contracts search's own per-contract totals.
Updates
The data is refreshed monthly: departments publish quarterly, and late filings arrive at any time. This build: 2026-10-10. Mistakes can be reported on the corrections page.