Our data

CSV downloads with sources and stable ids.

Release 2026.09.12. 2,556 parents, 415 advertisers, 150 software products, 572 contract vendors, 2,026 grant recipients, 409 lobbying records. Method · Search owners.

The files

FileRowsSizeSHA-256
entities.csv2,556211 KB501919d6c716
advertisers.csv415146 KBbf5bc379726e
software.csv15042 KB0a9c67789f88
contracts.csv572263 KB55fd913f1793
grants.csv2,026962 KBefbd76547595
lobbying.csv40975 KB12ae22aff998
CHANGELOG.md11 KB1b07250b44fd

UTF-8 CSV. Lists use |. release.json records counts and SHA-256 hashes. Select a file to preview.

Rows in each file of this release

entities.csventities.csv: 2,556 rows2,556 grants.csvgrants.csv: 2,026 rows2,026 contracts.csvcontracts.csv: 572 rows572 advertisers.csvadvertisers.csv: 415 rows415 lobbying.csvlobbying.csv: 409 rows409 software.csvsoftware.csv: 150 rows150
Every row of the five smaller files points at a parent in entities.csv, which is why that file is the longest.

Software products by category

Hard to leaveMediumEasy

Switch cost breakdown. Design: 19 hard to leave, 10 medium, 3 easy; 32 total. Security: 4 hard to leave, 5 medium, 13 easy; 22 total. Media: 2 hard to leave, 1 medium, 15 easy; 18 total. Productivity: 2 hard to leave, 13 medium, 0 easy; 15 total. Communication: 4 hard to leave, 7 medium, 2 easy; 13 total. Development: 7 hard to leave, 5 medium, 0 easy; 12 total. Hosting: 3 hard to leave, 7 medium, 0 easy; 10 total. Finance: 2 hard to leave, 7 medium, 0 easy; 9 total. Marketing: 2 hard to leave, 7 medium, 0 easy; 9 total. Storage: 0 hard to leave, 5 medium, 0 easy; 5 total. AI: 0 hard to leave, 3 medium, 0 easy; 3 total. Other: 0 hard to leave, 1 medium, 1 easy; 2 total.

DesignDesign: 19 of 32 hard to leaveDesign: 10 of 32 mediumDesign: 3 of 32 easy32 SecuritySecurity: 4 of 22 hard to leaveSecurity: 5 of 22 mediumSecurity: 13 of 22 easy22 MediaMedia: 2 of 18 hard to leaveMedia: 1 of 18 mediumMedia: 15 of 18 easy18 ProductivityProductivity: 2 of 15 hard to leaveProductivity: 13 of 15 medium15 CommunicationCommunication: 4 of 13 hard to leaveCommunication: 7 of 13 mediumCommunication: 2 of 13 easy13 DevelopmentDevelopment: 7 of 12 hard to leaveDevelopment: 5 of 12 medium12 HostingHosting: 3 of 10 hard to leaveHosting: 7 of 10 medium10 FinanceFinance: 2 of 9 hard to leaveFinance: 7 of 9 medium9 MarketingMarketing: 2 of 9 hard to leaveMarketing: 7 of 9 medium9 StorageStorage: 5 of 5 medium5 AIAI: 3 of 3 medium3 OtherOther: 1 of 2 mediumOther: 1 of 2 easy2

All 150: 45 hard to leave, 71 medium, 34 easy.

Switch cost is the effort to leave a product, judged on the stack page. A replacement is a product with a parent outside the United States.

Release history

View release history

2026.09.12. Publish the reviewed ownership expansion and case study: 572 contract name groups, 2,026 grant name groups, 2,556 entities and 409 lobbying rows. Eleven contract ownership entries were downgraded to partial; nine unverified parent countries are unknown. Source snapshots, agreement values and stable ids are unchanged from the September 11 candidate. The case study preserves its original evidence snapshot, calculations and corrections.

2026.09.11. This local checkpoint contains 2,556 entities, 415 advertisers, 150 software products, 572 contract vendors, 2,026 grant recipients and 409 lobbying rows. The register has 2,107 additional reserved ids; existing ids are retained. There are 1,777 newly active entities. ATCO Ltd. and the Nanji family leave the active parent file after correction to Sentgraf and LDC respectively; their ids remain reserved. All 300 contract and 200 grant rows from the previous release remain included. Independently reviewed ownership calls cover $379.12B of $502.70B in contracts (75.42%) and $564.00B of $860.45B in grants (65.55%). Reviewed names retain their original dollar ranks, including names below gaps in the research. Unverified drafts remain excluded. Corrections cover ATCO's verified Sentgraf holding company, the full Fisher, Illumina, Selex and Life Technologies legal names, Metro's LDC majority owner and successor name, and NextStar's completed March 31 acquisition of Stellantis's 49% interest; NextStar's LG Chem parent and South Korean country remain unchanged. Canadian public and nonprofit bodies use CA and international bodies use INT under the reviewed classification rule. Six conflicting grant disclosures remain unresolved, with all $3,104,530 retained in the denominator. The grants list searches the complete reviewed file on demand. Source snapshot dates remain unchanged. The original 85% coverage target remains unmet; Tyler chose this tested local checkpoint before further research. It has not been deployed. A fixed 12-record source check supported eight claims and left four inconclusive. Those four and seven related rows now read partial; nine JDI/Seaspan rows use unknown for the unverified ultimate-parent country. Bell gains matching CanadaBuys references, and Forillon no longer implies a separate 25% holding for each joint controller. Parent labels and stable ids are retained provisionally. Counts, agreement values and coverage are unchanged.

2026.09.10. The release contains 781 entities, 415 advertisers, 150 software products, 300 contract vendors, 200 grant recipients and 198 lobbying rows. Fifty-three entities are new to the release and every id was already in the register. The contract file goes from the 200 largest federal vendors to the 300 largest, which takes the share of the file carrying an ownership call from 66.9 to 71.7 per cent. Ninety-eight of the hundred new names were called by hand with cited sources; four agents drafted them and a fifth attacked the drafts, which found five rows that were wrong rather than thin. Peter Kiewit Sons cited a subsidiary list filed in 2006 that does not name the vendor, and General Electric Canada cited an exhibit that carries no Canadian entity at all; both now read partial. ADRM and Groupe Ocean each had two rows naming two different owners, and Corporations Canada and La Caisse settle both in favour of the people rather than the company. Teknion moves to unknown because neither source states its owner's nationality, and ONX reads mixed because TowerBrook runs from London and New York.

2026.09.09. The release contains 728 entities, 415 advertisers, 150 software products, 200 contract vendors, 200 grant recipients and 142 lobbying rows. No entity is new; every id in it was already in the register. Release 2026.09.07 was built and never deployed, so the live dataset goes from 2026.09.04 to this one. Citation repair from the overnight audit: every source URL in data/contract-owners.tsv was fetched and read. Eighteen returned 404, one answered 200 with the body "The specified connection was not found", one host no longer resolves, and the Internet Archive holds no capture of most of them, so those pages were never there. Fifteen rows cited the GLEIF home page, which names no company, and fifty-nine cited SEC browse-edgar, which serves an empty shell to a reader. All of them now point at a page that loads and that was read before it went in: the subsidiary list of the filer's newest annual report where it names the vendor, the LEI record for the entity otherwise, and a replacement source read by hand for the rest. Nine of the new GLEIF records name the same ultimate parent the row claims. Two rows cited two Wikipedia pages as if they were two independent records, which is what the file means by confirmed: rank 27 now cites the LEI record named "The Bell Telephone Company of Canada or Bell Canada", whose recorded ultimate parent is BCE Inc., and rank 43 cites BCE's own filing. Two rows still cite two pages on one website, Deloitte and MCW. In the grants file four rows cited two pages published by the owner itself and one cited a commercial contact-data site; all four now cite the LEI record, which names the same ultimate parent from a third party. The four government rows cited two pages on one website too. That was left standing on the reasoning that a province is not a registered company, which is wrong: Quebec, Saskatchewan, New Brunswick and the City of Ottawa each hold an active LEI recorded as a resident government entity, and each row now cites it. NextStar Energy read as though LG Energy Solution already owned all of it; the purchase of the Stellantis half was agreed on 2026-02-06 and is still subject to approvals, so the row says so. LG Energy Solution's existing 51 percent is why GLEIF records LG Chem as the ultimate parent, and the country code does not move. Five contract rows whose SEC filing did not name them now cite a record that does: DEW Engineering to a CoorsTek release naming "its subsidiary DEW Engineering & Development ULC"; Lockheed Martin Aeronautics to the 10-K that names it as one of four segments; Microsoft Licensing, GP to a Microsoft agreement filed with the SEC calling it "Microsoft Corporation's Subsidiary"; BMC Software Canada to a 2026-06-17 release stating KKR still owns BMC. The fifth was a rename, not a gap: Corporations Canada records Veritaaq Technology House Inc. as EXPERIS CANADA INC. since 2024-02-23, which is the name ManpowerGroup's subsidiary exhibit uses. Two published pages disagreed with each other: /contracts said 79 vendors and $145.55B beside a filter that said 80 and $147.39B, because the sentence was typed in and the filter is computed. It reads from the data now. /lobbying printed one shared reason once per registry client, up to fourteen times in a paragraph, and /data printed a heading twice under a repeated element id. /contracts also published its total with none of its own limits, because the revamp of 2026-09-06 cut the coverage line; one computed sentence is back under the treemap, naming the share of the file the 200 names hold, the smaller names that carry no call, and the two contracts held out as keying errors. No ownership call changed. The D and H Partnership row joins the Finastra merge group, since both rows are the same company under two disclosure spellings, which takes the contract file from 143 groups to 142.

2026.09.07. Adds grants.csv, the top 200 named non-individual recipients in the federal grants and contributions disclosure, resolved to a corporate parent where applicable. Source downloaded 2026-09-06. The release contains 728 entities (149 newly active), 415 advertisers, 150 software products, 200 contract vendors, 200 grant recipients and 142 lobbying rows. Correction: the Canadian Corps of Commissionaires, rank 44 of the contract vendors at $1.84B, carried the phrase "member divisions, not-for-profit" where a parent name goes and so read as a Canadian-owned company. Ranks 184 and 200 are the same organisation and already named it correctly with no owner. All three now resolve to Canadian Corps of Commissionaires with no owner, the entity member-divisions-not-for-profit leaves the release and its lobbying row merges, and its id stays reserved in the append-only register. Two more corrections from the same overnight sweep. I.M.P. Group International Inc. held two entity ids, i-m-p-group-international-inc and imp-group-international-inc, because rank 81 dropped the dots from a name Dun and Bradstreet records as I.M.P. Group International Incorporated; the three rows now share one id and the undotted id is reserved. The SNC-Lavalin PAE joint venture, owned across two countries, sat inside the merge group of its Canadian parent AtkinsRealis, so one group carried two bodies and two countries; it has its own group now, as every other joint venture in the file already did. No ownership call changed in that second one. Governments and nonprofits read none; international bodies read INT. Review corrected the draft NextStar call to LG Chem, South Korea, and separated Ontario's Ministry of Health from Tonga and Guyana. One retired draft joint-venture id remains reserved in the append-only register. The shared UTF-8 decoder fix changes aggregate grouping without changing ownership calls in the existing datasets. Source dates remain separate from this release's footer date. This release was built on 2026-09-07 and never deployed; the live dataset went from 2026.09.04 to 2026.09.09.

2026.09.04. Adds lobbying.csv, the 145 ultimate owners of the top 200 federal contract vendors checked against the Registry of Lobbyists, snapshot of 2026-08-31. 113 owners join. No other file changed except entities.csv, which now lists lobbying in datasets for those owners.

2026.09.03. First release. 579 parents, 415 advertisers, 150 software products, 200 contract vendors. Sixteen parents that the brand list and the software stack spelled differently now share one id.

Dated releases; ids are never reused. Download the change log.

Licence and citation

Tariffed ownership calls, ids, groupings and notes: CC BY 4.0, with attribution. Wikidata and GLEIF data: CC0. SEC filings: public domain. Government contract/grant data: Open Government Licence – Canada. Contains information licensed under the Open Data Licence Agreement — Office of the Commissioner of Lobbying.

To cite a release, name the version and the file hash from release.json:

Tariffed ownership dataset, release 2026.09.12, entities.csv (sha256 …). https://tariffed.ca/data
Fields

One id per parent

Join entity_id to the other files’ parent_entity_id.

Ids stay fixed through name changes and are never reused. Aliases share an id; new ids are appended.

Wikidata, LEI and SEC identifiers are included where recorded.

entity_id,name,country,wikidata,lei,sec_cik,datasets,first_seen
microsoft-corporation,Microsoft Corporation,US,Q2283,,789019,advertisers|software,2026.09.03

entities.csv

entity_id
Stable id. Lowercase, hyphens, ASCII.
name
The parent's name as Tariffed records it.
country
ISO 3166 alpha-2 of the owner. Canadian public bodies and nonprofits use CA; international bodies use INT. mixed means control spans countries; unknown means the ultimate-parent country is unverified. none is reserved for a body without a country assignment.
wikidata, lei, sec_cik
External keys where a source gave one. Blank means Tariffed did not record one, not that none exists.
datasets
Files containing records linked to this entity.
first_seen
The release that introduced the id.

advertisers.csv

key, brand, domains
The brand as the ad filter matches it.
parent, parent_entity_id, parent_chain
The ultimate owner and the chain of owners between the brand and it, when there is one.
ownership_country, ownership_via
The call and which record supplied it.
tier
confirmed means two independent public records agree. curated means a person wrote the call from a named record because the registries could not answer. The method note explains the rule.
sources, source_urls, checked
Each record consulted, as registry:id, its URL, and the latest date a record was read.

software.csv

id, name, category, domain
The product.
parent, parent_entity_id, parent_country
The ultimate owner and its country.
monthly_cad, annual_cad, price_read_at
The list price Tariffed read for one seat, and the date it read it. Prices move. Treat these as a reading, not a quote.
switch_cost, replacement, replacement_country
How hard a move is, and a non-American product that does the same job, where Tariffed found one.

contracts.csv

rank, vendor_as_disclosed, total_cad, contracts
Reviewed vendor names in the federal proactive disclosure of contracts, with their original dollar rank, sum and count. A line break inside a disclosed name is written as a space.
group
A label shared by disclosed names that are one vendor under different spellings.
parent, parent_entity_id, parent_country, confidence
The proposed ultimate owner and country. partial means evidence is incomplete or conflicting; the name may identify only a supported affiliation. Read why for the unresolved claim.
reported_country
The country in the vendor's address as the department disclosed it, which is often not where the owner sits.
why, source_1, source_2
The reason for the call in one line, and the records behind it.

grants.csv

rank, recipient_as_disclosed, total_cad, agreements
Reviewed recipient names in the federal proactive disclosure of grants and contributions, with their original dollar rank, sum and count of agreements. Individuals and batch rows are left out. An amended agreement counts once, at its highest amendment number (largest value breaks a tie). These are agreement values across the disclosure history, not cash paid in one year. Generic ministry names are separated by reported jurisdiction before aggregation. Individually reviewed disclosures with conflicting recipient identities remain unresolved; their values stay in the coverage denominator.
group
A label shared by disclosed names that are one recipient under different spellings.
parent, parent_entity_id, parent_country, confidence
The ultimate owner, its country, and whether the call is confirmed or partial. Canadian governments, First Nations, universities and not-for-profits retain their own names and read CA. International bodies read INT; these codes do not imply a foreign owner.
reported_country, recipient_type, main_funder
The country and the recipient type the department disclosed, and the department that gave the most.
why, source_1, source_2
The reason for the call in one line, and the records behind it.

lobbying.csv

parent, parent_entity_id, parent_country
One row per ultimate owner in contracts.csv, joined or not.
vendor_ranks, contract_total_cad
The ranks this owner holds in contracts.csv, separated by |, and their dollars added up.
match
How the owner was found in the Registry of Lobbyists: client (a registry client carries one of the owner's names), parent (a registration lists the owner as the client's parent), subsidiary (a registration lists the owner as a subsidiary), or hand (matched by hand, reason in the repo). Empty means no match.
registry_clients, registry_client_count
The client names the owner matched, separated by |, and how many client profiles that is.
registrations, registrations_active, first_effective, last_effective
Registration records that count for the owner, how many were in force on the snapshot date, and the effective dates of the first and last.
communications, communications_12m, last_communication
Monthly communication reports with designated public office holders that count for the owner, how many fall in the twelve months before the snapshot, and the date of the last.
snapshot
The date the registry export was last modified.
note
Why an owner did not join, when Tariffed looked and found nothing.