← All challenges

Sole Source and Amendment Creep

A sole-source amendment is when a contract awarded without competition is later expanded or extended without a new bid. Alberta publishes enough disclosure data to show the shape of sole-source spending over time, but not enough to reconstruct individual amendment chains.

What this page shows now
Top sole-source vendors by spend, the multi-year sole-source trend across ministries, and per-vendor drill-downs based on the live contract disclosure feed.
What is missing to prove more
Amendments aren't linked back to their parent contracts in the public record, and the Alberta Purchasing Connection tender + award history isn't published in bulk — so individual creep events can't be pieced together end-to-end.
Why it matters
Sole-source spending and quiet amendments are where competitive procurement quietly turns non-competitive; the patterns are visible, but enforcement-grade evidence still requires data Alberta does not yet publish.

I

Headline signals

What scale is sole-source spending — and how concentrated?

Top 10 vendors · share of all sole-source dollars

23%

$4.21B of $18.71B across 4,798 sole-source vendors.

Top 10
$4.21B
All vendors
$18.71B

II

Yearly awards

Sole-source contracts awarded each fiscal year — bars sit on the year of award, not the years of work

  • 2015-2016: $1,179,870,670 across 3310 contracts.
  • 2016-2017: $1,344,485,428 across 2036 contracts.
  • 2017-2018: $3,695,945,707 across 1577 contracts.
  • 2018-2019: $1,341,806,905 across 2072 contracts.
  • 2019-2020: $1,024,770,387 across 1300 contracts.
  • 2020-2021: $2,988,160,952 across 1177 contracts.
  • 2021-2022: $1,213,323,479 across 1010 contracts.
  • 2022-2023: $539,029,274 across 820 contracts.
  • 2023-2024: $3,366,457,935 across 919 contracts.
  • 2024-2025: $1,003,463,087 across 766 contracts.
  • 2025-2026: $986,613,171 across 555 contracts.

III

Top 20 sole-source vendors · latest fiscal year

Of 4,798 lifetime sole-source vendors. Ranked by dollars awarded in the most recent FY — a current-state view, not a lifetime leaderboard.

The shape indicator on the right of each row shows lifetime ministry × contract count, so a one-shot mega-award (1m · 1c) and an operational embed (6m · 207c) are visually distinct.

FY 2025-2026 · ranked by sole-source dollars awarded that year

m = lifetime ministries · c = lifetime contracts · ochre = cross-ministry (≥3) · click any row for a summary

Browse all 4,798 sole-source vendors →

IV

Federal vs Alberta · data availability

The 8 procurement dataset classes that bear on this chapter, side-by-side

8 dataset classes · Federal vs Alberta

Federal

Bulk machine-readable
2
Available · no bulk export
0
Gated · account required
1
Partial coverage
2
Not published
3

Alberta

Bulk machine-readable
2
Available · no bulk export
0
Gated · account required
1
Partial coverage
0
Not published
5
  • Contract awards (proactive disclosure)
    FederalBulk
    Format
    Consolidated CSV (Proactive Contracts ≥$10k)
    Lag
    Quarterly
    License
    Open Government Licence — Canada
    Linkable ID
    Vendor name is free-text; no stable vendor key
    AlbertaBulk
    Format
    CSV via Alberta Open Data (`contracts`, `vendor_spending_summary`)
    Lag
    Annual snapshot, monthly delta on disclosure file
    License
    Open Government Licence — Alberta
    Linkable ID
    Vendor name is free-text upstream; resolved to a stable id after entity resolution (spec 043)
  • Sole-source / non-competitive subset
    FederalPartial
    Format
    NSC reason code in Proactive Contracts row; no separate dataset
    Lag
    Quarterly (inherits Proactive Contracts cadence)
    License
    Open Government Licence — Canada
    Linkable ID
    Joins back to the parent contract row by reference number
    AlbertaBulk
    Format
    Dedicated `sole_source_contracts` dataset
    Lag
    Annual
    License
    Open Government Licence — Alberta
    Linkable ID
    Sole-source flag explicit per row
  • Tender / award notices (full RFP cycle)
    FederalBulk
    Format
    CanadaBuys bulk CSV (notices + awards)
    Lag
    Live + bulk export
    License
    Open Government Licence — Canada
    Linkable ID
    Stable solicitation reference
    AlbertaGated
    Format
    Alberta Purchasing Connection — vendor account required (not open-data; portal access only)
    Lag
    Live (account)
    License
    Terms of use, no open licence
    Linkable ID
  • Contract amendments linked to parent
    Federal
    Format
    Lag
    License
    Linkable ID
    Note
    Reporting is inconsistent across departments — some publish each amendment as a separate row with no parent link, some only the final value.
    Alberta
    Format
    Lag
    License
    Linkable ID
    Note
    No parent_contract_id in source; amendments float free of the original.
  • Sole-source justification text (structured)
    FederalPartial
    Format
    NSC reason code only; no free-text justification
    Lag
    Quarterly
    License
    Open Government Licence — Canada
    Linkable ID
    Joins back to parent contract row
    Alberta
    Format
    Lag
    License
    Linkable ID
  • Bid histories (losing bidders, amounts)
    FederalGated
    Format
    ATIP-only — no public dataset
    Lag
    License
    Linkable ID
    Alberta
    Format
    Not collected
    Lag
    License
    Linkable ID
  • Unit prices / line-item detail
    Federal
    Format
    Not collected — total contract value only
    Lag
    License
    Linkable ID
    Alberta
    Format
    Not collected — total contract value only
    Lag
    License
    Linkable ID
  • Contract-splitting / amendment-inflation flags
    Federal
    Format
    Not produced; researchers compute from raw rows
    Lag
    License
    Linkable ID
    Alberta
    Format
    Not produced; researchers compute from raw rows
    Lag
    License
    Linkable ID

Legend bulk machine-readable available · no bulk export gated · account required partial coverage not published· click any row for license, lag, ID, source

V

What open data still can’t answer

4 questions this chapter raises that the public record doesn’t close — index format, no page reference because no page exists

  1. 01

    Contract amendments linked to parent

    The amendment-creep signal in the prompt — a small starter contract amended upward until it crosses competitive thresholds — can't be reconstructed at scale in either jurisdiction. Amendments are reported as separate rows with no structured link to the original.

  2. 02

    Bid histories (losing bidders, amounts)

    Without losing-bid amounts, there is no benchmark for whether the winning price is high or low. Federal access is ATIP-only; Alberta does not collect the data.

  3. 03

    Unit prices / line-item detail

    Total contract value alone can't surface the inflated-pricing signal in the prompt. Both jurisdictions disclose only contract totals.

  4. 04

    Contract-splitting / amendment-inflation flags

    Neither jurisdiction publishes these as a feature; any analysis is computed downstream from raw award rows.