Guide · snapshot 2026-10-14 · 1,363 procurements

Finding edtech contract renewals at English schools and academy trusts

School contracts for MIS, IT support, networks, devices, filtering and cloud licences are published as notices on two government sites, but not joined to the school and trust records sellers work from. School Signals does that join, estimates when each contract will be re-procured, and links every row back to the official notice.

58contracts with a named incumbent ending in the next 6 months (at 2026-10-14)
475incumbent suppliers
33live tenders and early-engagement notices
2,028open academy trusts; 22,981 open schools

Coverage warning. Partial coverage: only notices published on Contracts Finder or Find a Tender are included, and many school purchases are never published. Re-procurement windows are estimates (contract end minus 9 to 3 months), not published dates. Check the official notice before acting.

Where the data comes from

SourceWhat it contributesLicence
Contracts Finder (2019 onwards) and Find a Tender (2021 onwards), via the Open Contracting Data Registry bulk filesTenders, early-engagement notices and awards: buyer, title, CPV code, values, supplier, dates, extension optionsOGL v3.0
DfE Get Information about Schools (GIAS), two extracts 12 months apartOpen schools, academy trusts, trust membership and join dates; transfers, conversions and closuresOGL v3.0
DfE open academies and academy projects in developmentConverter and sponsored academy pipelineOGL v3.0
DfE Get help buying for schools: ICTDfE-listed buying options with provider, reference and expiry (snapshot only)OGL v3.0

DfE has said organisations need structured school and trust data for their own systems and otherwise scrape pages or process bulk CSV files; that is why it designed a read API for GIAS (DfE design history, 5 March 2026). GIAS and the contract notices stay free at source. What is sold here is the join, the categorisation and the renewal estimate.

How it is built

The 13 categories
  • CCTV, access & visitor management
  • Classroom AV & interactive displays
  • Cloud, licences & productivity
  • Cyber security, filtering & safeguarding tech
  • Devices & end-user hardware
  • IT managed services & support
  • Learning platforms, content & assessment
  • MIS & school administration software
  • Networks, Wi-Fi & connectivity
  • Parent communication, payments & cashless
  • Print & MFD
  • School websites & digital
  • Telephony

Free: search and sample

Find a buyer id and see how much evidence exists before paying:

curl "https://pay.adamhaleworks.workers.dev/api/school-signals/search?q=ACTIVATE%20LEARNING"

Real answer (first result, snapshot 2026-10-14):

{
  "id": "trust:15710",
  "name": "ACTIVATE LEARNING EDUCATION TRUST",
  "kind": "trust",
  "region": "South East",
  "local_authority": null,
  "evidence": {
    "published_contracts": 20,
    "renewals_next_12_months": 3,
    "live_tenders": 0,
    "trust_changes": 0
  },
  "brief_available": true
}

The South East sample (CSV zip) and its renewals report (PDF) show the full table format.

Paid: renewal queries, $0.03

GET /x402/v1/school-renewals returns up to 25 contracts with a named incumbent whose end date falls in your window, soonest first. Parameters: ending_within_months (1-24, default 12), include_recently_ended, category, region, supplier, buyer. If nothing matches you get a 404 and no payment request; the 402 carries X-Result-Count.

GET https://pay.adamhaleworks.workers.dev/x402/v1/school-renewals?ending_within_months=6&category=MIS+%26+school+administration+software

One real row from that query (13 matched at build time):

{
  "buyer": {
    "id": "trust:17050",
    "name": "ESTEEM MULTI-ACADEMY TRUST",
    "kind": "trust",
    "region": "East Midlands",
    "local_authority": null
  },
  "category": "MIS & school administration software",
  "title": "Procurement of Management Information System",
  "incumbent": "ARBOR EDUCATION PARTNERS LIMITED",
  "published_value_gbp": 99992.85,
  "awarded_value_gbp": 99992.85,
  "estimated_value_gbp": 99992.85,
  "award_date": "2023-10-24",
  "contract_start": "2024-01-01",
  "contract_end": "2026-12-31",
  "contract_end_basis": "published end date",
  "months_to_end": 2.4,
  "extension": {
    "possible": false,
    "max_extension_end": null,
    "note": null
  },
  "estimated_reprocurement_window": {
    "start": "2026-03-31",
    "end": "2026-09-30",
    "basis": "estimate: contract end minus 9 to 3 months, not a published date"
  },
  "procurement_method": "Call-off from a framework agreement",
  "frameworks_mentioned": "CCS G-Cloud",
  "possible_later_notice": null,
  "source": {
    "publisher": "Contracts Finder",
    "notice_type": "compiled",
    "published": "2023-11-23",
    "notice_url": "https://www.contractsfinder.service.gov.uk/Notice/25299b4e-8ee9-42bb-84ea-4619a80f3011",
    "record_api_url": "https://www.contractsfinder.service.gov.uk/api/rest/2/get_published_notice/json/25299b4e-8ee9-42bb-84ea-4619a80f3011"
  }
}

Paid: buyer brief, $0.20

GET /x402/v1/school-buyer-brief?buyer=<id> for one school (school:<URN>), trust (trust:<GIAS UID>) or council (org:<slug>): hierarchy, contracts and incumbents, upcoming renewals with windows, live tenders, trust changes in the last 12 months and source links. A school brief includes its trust's contracts. Ambiguous names get a 409 with candidates; buyers with no published evidence get a 404; neither is charged.

GET https://pay.adamhaleworks.workers.dev/x402/v1/school-buyer-brief?buyer=trust:15710

Summary block of that real brief:

{
  "published_contracts": 20,
  "with_named_incumbent": 17,
  "renewals_next_12_months": 3,
  "live_tenders": 0,
  "trust_changes": 0,
  "scope_note": "Includes contracts let by the trust's schools themselves."
}

Paid: England snapshot, 295 USDC

The whole England build as of 2026-10-14: an Excel workbook and 9 CSVs (renewals, 1,363 contracts, 33 live tenders, 1,123 trust changes, 2,028 trusts, 22,981 schools, incumbents, framework usage, DfE buying options), the data dictionary, methodology, licence, AI disclosure and a SHA-256 manifest. Immutable: no refreshes. Licence: 12 months internal use, up to 3 named users.

Attribution and freshness

Contains public sector information licensed under the Open Government Licence v3.0. (OGL v3.0). Snapshot date: 2026-10-14; every answer repeats it. Contract windows are computed against the day you ask. API terms: /terms/.