The Government Publishes Two Lists of Itself. They Do Not Join.
Two authoritative files, no key
This series opened by counting the Canadian federal buyer universe from the Treasury Board's Inventory of Federal Organizations and Interests: 261 active domestic organizations across 11 institutional classes (Treasury Board of Canada Secretariat, 2026a). The obvious next question is who to call. Canada publishes that too — the Government of Canada Employee Contact Information dataset, better known as GEDS, maintained by Shared Services Canada under the Open Government Licence – Canada (Shared Services Canada, 2026).
I pulled it on 14 August 2026. It returns 194,647 employee records, and every record carries the organizational chain that employee sits in. Rolling those chains up to their top level yields 141 distinct root organizations (Shared Services Canada, 2026).
That single pair of numbers settles something before any matching is attempted, and it is worth stating on its own because it depends on no judgment at all. There are 261 organizations in the inventory. There are 141 root organizations in the directory. At most 141 of the 261 can be separately listed. At least 120 — 46% of the federal buyer universe — cannot be Sagentix GTM Methodology, 2026.
The spine. The two files that define the federal market do not share a key, and every way of joining them fails differently: loose name matching put the Business Development Bank of Canada inside a departmental branch called "Business Development"; exact name matching lost the Department of Finance, which is plainly in the directory as "Finance Canada." The join failure matters less than what it conceals — there are two entirely different reasons an organization is missing from your list, and only one is fixable by looking harder.
Four matching strategies, four different wrong answers
I want to show the failures rather than assert them, because the whole point of this piece is that the failure mode is invisible when you only see the output.
Loose matching over-counts, and is not even stable. Normalise both names, strip corporate suffixes and stopwords, then check whether one contains the other. I ran three implementations of exactly that description. They differ only in how each handles the hyphen in a bilingual title. They returned 88, 97 and 101 organizations as "nested somewhere inside the directory" — one line of regular expression, thirteen organizations' worth of spread, and nothing in any of the three outputs tells you which one you are holding.
Then audit any of them. The Business Development Bank of Canada "matched" a branch named simply Business Development — 63 records inside a department that is not BDC. The Canada Infrastructure Bank matched a unit named Infrastructure (95 records). The Canada Development Investment Corporation matched Development (30). Aéroports de Montréal matched a unit called MONTRÉAL; the Canada Foundation for Innovation matched one called INNOVATION CANADA (665 records). No entry anywhere in the directory, at any nesting level, contains either of those two organizations' actual names.
Strict exact matching under-counts. Require the full normalised token sequence to be identical and the over-counting stops — along with a set of organizations nobody would dispute are in the directory. Exact matching drops the Department of Finance and the Department of Justice, both plainly present: the inventory writes "Department of Finance Canada" while the directory writes "Finance Canada," and the directory holds 5,357 records under Justice.
Phrase-containment matching fails in both directions at once. Requiring a contiguous multi-word phrase fixes some of the loose-matching noise and introduces its own: the Canada–Newfoundland and Labrador Offshore Energy Regulator matched a branch called "Canada–United States Engagement Table," the Canadian Human Rights Commission matched "Human rights," and three separate port and airport authorities all matched their own city names.
Acronym matching manufactures false confidence. Of the 261 organizations, 129 carry an abbreviation in the inventory and 110 of those abbreviations appear somewhere in the directory. Thirteen of the 110 attach to a different organization entirely. The inventory's HC is the House of Commons; the directory's HC is Health Canada, with 10,570 records. CPC is Canada Post in one file and a Cyber Protection Centre in the other. CBC is the Canadian Broadcasting Corporation in one and Competition Bureau Canada in the other. FCC is Farm Credit Canada in one and Fire and Climate Change in the other.
Notice which organizations those are. Canada Post, the CBC and Farm Credit Canada are three of the organizations that turn out to have no directory presence at all. The acronym strategy does not merely miss them — it invents a presence for them and attaches it to somebody else's staff.
Four strategies, four different target lists, and no way to tell from any single output which one you are holding. This is the ordinary condition of public-sector market data, and it is why a federal target list assembled by script and never audited is a document with an unknown error rate rather than a plan.
The distinction the join failure hides
Set the matching aside and probe the raw directory text directly, which requires no join at all. Search all 194,647 records for a named organization in both official languages, count the hits, and inspect the organizational chain of each one. Do that and the missing organizations separate cleanly into two groups that behave nothing alike.
Group one is nested, not missing. These organizations are in the directory in force — they simply never appear as a root organization, only as a branch inside a parent:
| Organization | Records in GEDS | Appears under |
|---|---|---|
| Canadian Coast Guard | 4,484 | Fisheries and Oceans Canada |
| Canadian Intellectual Property Office | 1,478 | Innovation, Science and Economic Development Canada |
| Translation Bureau | 620 | Public Services and Procurement Canada |
| Measurement Canada | 320 | Innovation, Science and Economic Development Canada |
| Defence Research and Development Canada | 39 | National Defence |
(Shared Services Canada, 2026)
A note on method, since it is the kind of thing this piece is arguing you should always state: those counts are raw text matches across the whole record, so a small number are mentions rather than staff — 14 of the Coast Guard's 4,484 sit under a root other than Fisheries and Oceans. None of the five appears as a root organization anywhere in the directory.
The Coast Guard has more directory presence than most departments. It is a Special Operating Agency in the inventory and a branch in the directory, and any process that looks for it at the top level concludes it is not there. That is an artefact of two files organising the same government differently — nothing about the Coast Guard is hard to reach.
Group two is genuinely absent. These return zero records across all 194,647, searching both the English and French forms of the name:
| Organization | Records in GEDS |
|---|---|
| Canada Post / Postes Canada | 0 |
| Canadian Broadcasting Corporation | 0 |
| VIA Rail Canada | 0 |
| Bank of Canada / Banque du Canada | 0 |
| Export Development Canada | 0 |
| Farm Credit Canada | 0 |
| Destination Canada | 0 |
| Canada Deposit Insurance Corporation | 0 |
| Canada Pension Plan Investment Board | 0 |
(Shared Services Canada, 2026)
These are not small or obscure organizations. Several are among the largest employers in the federal family. They are simply outside this directory, and no amount of better matching will produce them.
The control that makes those zeros mean something
A zero is the most dangerous result in research, because a broken search and an empty subject produce the identical output. Before any of the table above could be published, the probe had to be shown to work.
So the same search, unchanged, was run against organizations of the same institutional class that ought to be present. Canada Mortgage and Housing Corporation returns 2,685 records. The Royal Canadian Mint returns 202. The Canadian Museum of Nature returns 81, Atomic Energy of Canada Limited 53, and the Canadian Museum of History 6 (Shared Services Canada, 2026). All are Crown corporations or shared-governance bodies — the same classes as the zeros — and the probe finds every one of them, including through the bilingual name forms.
The probe works. The zeros are therefore a property of the directory, not of my search. Without that control the same table would have been an unfalsifiable claim dressed as data, and I would have had no way to tell the difference from the inside.
The file that was empty and said nothing about it
One more finding, because it is the cheapest way this analysis could have gone wrong and it would have been invisible.
The GEDS dataset is published in two formats. I fetched the CSV distribution first. It returned HTTP 200, a valid ZIP archive, the correct 44-column schema — and zero data rows. The archive is 465 bytes. I fetched it twice, several minutes apart, with a browser user agent, and got the same result both times. The JSON distribution of the same dataset, fetched the same afternoon, returned 194,647 complete records across 697 MB (Shared Services Canada, 2026).
Nothing in the CSV response signals a problem. Status code fine, content type fine, headers fine, schema fine. An automated pipeline consuming that file would conclude that the Government of Canada employs nobody, and would report it with total confidence.
I kept checking. The CSV distribution was still 465 bytes and still header-only on 16 August and again on 17 August, and the file inside the archive carried a newer timestamp than my first pull — so it had been regenerated in the interim and regenerated empty. Three observations across four days and at least one rebuild, which makes this more durable than a transient blip. I am still describing what I observed on three dates rather than asserting a permanent state; check it yourself before relying on either distribution. The shape of the failure is the lesson either way: a successful fetch is not a successful result, and the only way to tell the difference is to check that what you received contains something you already know should be in it.
What the literature says about the visible half
There is a research finding that lands squarely on this. Anthony Flynn's systematic review of 119 academic articles on small and medium suppliers in public procurement — published open access in the Journal of Purchasing and Supply Management under a CC BY licence — identifies among the systemic barriers that "SMEs complain about poor visibility of contract opportunities, a problem that e-procurement has not entirely resolved" (Flynn, 2025).
Flynn's claim is about the visibility of opportunities. The literature has largely taken the buyer universe as settled and asked why suppliers cannot see the tenders inside it. What the two files above show is that the universe itself resists enumeration — which is a different and prior problem, and it is my reading of the open data rather than Flynn's finding Sagentix GTM Methodology, 2026. Flynn also notes that most studies in the field describe barriers rather than test their effect statistically, and that over 70% of the literature is European, British or North American in scope with Asia and Africa together just under 20% of output (Flynn, 2025).
Where this fits in how I work
Every federal target list I build gets audited against the source files rather than accepted from a matching script, because a list with an unknown error rate is worse than a shorter list with a known one Sagentix Phase 01 Market Intelligence, 2026. The full delivery system runs 6–8 weeks, draws on 727+ curated artifacts, and is priced between CA$4K and CA$50K depending on scope — with a Phase 1 money-back guarantee (subject to terms).
The habit underneath it is smaller than any engagement and costs nothing: before a negative result becomes a finding, run the same instrument against a case where you already know the answer.
Three ways to act on this
Run a positive control on your own list. Take whatever process produced your federal target list and point it at five organizations you are certain exist and five you are certain do not. If it cannot separate them, you do not have a target list — you have the output of a matcher whose error rate nobody has measured. This costs an hour and is the option I would take first.
Split your misses into nested and absent. For every organization missing from your list, establish which of the two groups it belongs to. Nested organizations are reachable today through a parent you may already cover. Genuinely absent ones need an introduction, because no directory will produce them. These are different problems with different costs and they are routinely funded as if they were one.
Bring in a structured market-intelligence pass when the target list is load-bearing — when it underwrites a hiring plan, a territory design, or a number a board has already seen. That is a Phase 01 engagement. I list it last deliberately: the two habits above are free, and they catch most of what goes wrong.
The federal market is not hidden. It is published twice, in two files that disagree about how the government is shaped — and the gap between them is where target lists quietly go wrong.
What is the last "we could not find any" finding you accepted without asking whether the search would have found it?
References
- Flynn, A. (2025). Research on SME involvement in public procurement: A review, critique and conceptual framework. Journal of Purchasing and Supply Management. https://doi.org/10.1016/j.pursup.2025.101052 (open access, CC BY; author copy at https://orca.cardiff.ac.uk/id/eprint/179001/)
- Shared Services Canada. (2026). Government of Canada Employee Contact Information (GEDS) [Data set]. Government of Canada. Open Government Licence – Canada.
- Treasury Board of Canada Secretariat. (2026a). Inventory of Federal Organizations and Interests (IFOI) [Data set]. GC InfoBase, Government of Canada. Open Government Licence – Canada.
Contains information licensed under the Open Government Licence – Canada.
Subscribe + get the workbook
The Bottom-Up TAM / SAM / SOM Workbook — free with your subscription
An 11-page tactical workbook with fillable worksheets — NAICS lookup, three-filter SAM test, Bull/Base/Bear SOM, and the diligence cross-checks. Not published anywhere else. Then get evidence-backed analysis every other Tuesday. No spam. Unsubscribe anytime. See past issues.

Stéphane Raby, CISSP, CMC, P.Eng., MBA
Founder & Principal — Sagentix Advisors
CMC | CISSP | P.Eng. | uOttawa Telfer Executive MBA — ranked #1 globally by CEO Magazine, 2023. 25+ years in technology strategy, cybersecurity, and management consulting.
Want This Evidence Applied to Your Market?
Phase 1 Market Intelligence starts at CA$4,000–CA$5,000 with a money-back guarantee.