Open source

An open-source civic project. Not affiliated with the Government of Canada.

GitHub repo
Open NshipyardThe $800M Receipt

Open Nshipyard · Federal AI spending

Where Ottawa's AI money went.

Ottawa has spent more than $800M on AI since 2023, from ChatGPT subscriptions to a $350M payroll contract. The Canadian Press published the topline; nobody compiled the vendor list. This project matches every verifiable contract to its real owner, Canadian or foreign, and says exactly what it cannot show.

…

in tracked federal AI contracts and investments, 2023-2026 (the $800M+ topline is the context; this is the verifiable portion)

…

of tracked dollars to Canadian-owned vendors

…

of tracked dollars to foreign-owned vendors

…

verifiable contracts compiled from Order Paper responses, CanadaBuys, and press records

The receipt

Every vendor, one treemap.

Each block is a vendor, sized by dollars, colored by who really owns it. The $350M Dayforce payroll contract and the $240M Cohere investment dominate; the tail is where the Buy Canadian Policy gets tested.

…

Top vendors by tracked dollars

Canadian-owned in red, foreign-owned in ink. HQ country is the legal headquarters, not the billing address on the contract.

    What this does not show

    Read this before you share the chart.

    • 01

      This is a compiled sample of verifiable contracts, not the full $800M+. It covers the portion of the topline that could be verified from public sources at build time. The $800M+ figure itself comes from the Canadian Press, May 13, 2026.

    • 02

      The $240M Cohere item is a strategic investment in a Canadian company, not a procurement contract. Totals are reported both ways: combined for the full picture, and procurement-only when testing the Buy Canadian Policy against actual awards.

    • 03

      CSE and CSIS declined the MP's information request; the RCMP had no centralized data. The vendor split inherits this coverage gap, and anything those agencies signed is missing from both the topline and this receipt.

    • 04

      Vendor ownership coding is judgment-heavy. Every coding links to its evidence; vendors coded uncertain are shown separately and excluded from the Canadian and foreign shares.

    • 05

      Cohere used the federal investment to commission American-owned CoreWeave to build and operate its Canadian data centre (the Wire Report). Canadian ownership of the vendor does not mean every dollar stayed in Canada.

    Vendors

    Search every vendor.

    Search by vendor name above to browse the canonical vendor file. Each vendor carries its ownership coding, HQ country, and the evidence link behind the coding.

    Methodology

    How the receipt was built, and where it is weak.

    1. 01

      Sources: the Canadian Press topline (May 13, 2026, from MP Jagsharan Singh Mahal's written question to all departments, agencies, and Crown corporations); parliamentary Order Paper written-question responses; CanadaBuys contract award notices; and the Wire Report's Q-1229 investigation (Oct 1, 2026). Every contract row cites its source URL.

    2. 02

      Vendor entity resolution is deterministic and documented: names are uppercased, punctuation stripped, legal suffixes (Ltd, Inc, Corp and others) dropped, then exact-matched on the normalized key. Free-text variants from Order Paper tables merge into one canonical vendor; the merge table ships in vendors.csv.

    3. 03

      Ownership coding: each canonical vendor is coded Canadian-owned, foreign-owned, or uncertain by ultimate headquarters, with a public evidence link per vendor. Registered billing addresses on contracts are not ownership; the Procura case is why the distinction matters.

    4. 04

      The counting rule: the $240M Cohere item is an investment, not a procurement contract. The site reports the combined total and the procurement-only total side by side, so the Buy Canadian Policy test uses awards only.

    5. 05

      Amounts are award or announced values as published, not audited final payments. Multi-year awards appear in full in the award year.

    6. 06

      Coverage: this is the verifiable portion of the $800M+ topline, compiled from public sources at build time. It is a floor, not a census. Any AI contract not in a public response or notice is missing, including everything at CSE, CSIS, and the RCMP.

    7. 07

      Uncertain-ownership vendors are listed separately with their dollars, and excluded from both shares. The vendor table is versioned; new Order Paper responses will update it.

    For developers

    Query it from code, or from an agent.

    Three consumption paths, same canonical data. REST for applications, OpenAPI for integration, MCP tools over streamable HTTP for AI agents.

    Endpoints

    GET

    /api/v1/vendor/search?q=cohere&limit=3

    Search canonical AI vendors by name, ranked by total spend, with ownership coding

    {
      "q": "cohere",
      "limit": 3,
      "total": 1,
      "hits": [
        {
          "id": "V00002",
          "name": "Cohere Inc.",
          "hq_country": "Canada",
          "ownership": "canadian",
          "spend": 240000000,
          "contracts": 1
        }
      ]
    }
    Try it →

    GET

    /api/v1/vendor/lookup?vendor_id=V00002

    Full vendor record: ownership coding, HQ country, evidence link, contracts

    {
      "id": "V00002",
      "name": "Cohere Inc.",
      "hq_country": "Canada",
      "ownership": "canadian",
      "spend": 240000000, "contracts": 1,
      "variants": ["Cohere Inc.", "Cohere"],
      "ownership_evidence": "https://…",
      "contracts": [ { "amount_cad": 240000000,
        "kind": "investment", "department_short": "PSPC" } ]
    }
    Try it →

    GET

    /api/v1/summary

    Headline aggregates: tracked total, Canadian vs foreign vs uncertain split, by department and year

    { "tracked_spend": 655333098,
      "procurement_spend": 415333098,
      "investment_spend": 240000000,
      "canadian_spend": 638516107,
      "foreign_spend": 16411446,
      "uncertain_spend": 405545,
      "contract_count": 42, "vendor_count": 39,
      "by_department": [ … ] }
    Try it →

    GET

    /api/v1/contracts?ownership=foreign&limit=10

    Contract-by-contract list with ownership flags, largest first

    { "total": 2, "limit": 10,
      "contracts": [ { "amount_cad": 609761,
        "vendor_raw": "Teksystems Canada Corp",
        "department_short": "PSPC",
        "source_type": "press" } ] }
    Try it →

    Connect your agent

    Put this data to work inside your AI tools.

    Pick your harness, copy the prompt, send it to your agent. Your agent runs the setup itself.

    Copy and send this to Claude Code

    Set up the The $800M Receipt MCP server so I can query it from here.
    1. Run: claude mcp add --transport http ai-spending-receipt https://this-site.example/mcp
    2. Run `claude mcp list` to confirm it connected.
    3. Look up the biggest foreign-owned vendor and show its contracts, and show me the result.

    Data

    Take the files.

    The contract list, the canonical vendor table with ownership coding, and the aggregate summary, MIT licensed.

    contracts.csv

    Contract-by-contract list with vendor IDs, source URLs, and procurement vs investment flags

    Download
    vendors.csv

    Canonical vendors with ownership coding, HQ country, evidence links, and merged name variants

    Download
    summary.json

    Headline aggregates with the counting rule and caveats

    Download