{"url":"https://www.servnetuk.com/research/uk-public-sector-it-contract-expiry-2026","slug":"uk-public-sector-it-contract-expiry-2026","study":"The UK public sector IT contract expiry cliff","question":"How much UK public sector IT contract value, across how many contracts and how many buyers, reaches its stated end date in the next 12 months, and which month is the biggest?","short_answer":"9,416 UK public sector IT contracts reach their stated end date in the 12 months to 24 September 2027, held by 1,430 distinct buyer names, with the biggest month being March 2027 at 2,082 contracts, 22.1% of the year. The 8,928 of them that state a positive sterling amount total GBP 130.13 bn as published. That figure is a floor, an over-count and not a measure of IT spend, all at once. A floor because zero-valued, non-sterling and unpublished values are excluded rather than estimated, and because Find a Tender records a contract end date only on notices published from 24 February 2025. An over-count because framework ceilings are counted alongside the call-offs placed under them. Not IT spend because the pre-registered any-CPV rule counts a contract whole on a single IT sub-code: 52.1% of that total sits on contracts whose PRIMARY CPV code is not an IT division. The largest single notice in the whole study is a GBP 51.00 bn Crown Commercial Service energy supply framework whose primary code is in CPV division 09, petroleum products, fuel, electricity and other sources of energy; it enters the IT basket on incidental sub-codes and is 39.2% of the sterling total on its own. On the pre-registered primary-CPV sensitivity the same window is GBP 62.09 bn. The value is also extremely concentrated: 94.0% of it sits in 100 notices and the median expiring contract is GBP 108,068. Lead on the count. Holding the IT basket still and changing only the field rule moves the count by 3.5% and divides the money by 2.1.","publisher":"Servnet","built":"2026-09-25T13:08:31Z","builder":"scripts/research/uk-public-sector-it-contract-expiry-2026/analyse.py","snapshot_as_at":"2026-09-25","window":{"from":"2026-09-25","to_inclusive":"2027-09-24","label":"25 September 2026 to 24 September 2027 inclusive"},"as_at_line":"Contracts Finder and Find a Tender, snapshot 2026-09-25. n = 9,416 expiring IT contracts (a population of published notices, not a sample).","snapshot_date_note":"The study is dated by the day the data was retrieved, 2026-09-25, not by the day it was commissioned. Every retrieval timestamp in the harvest carries that date and the 12-month window is anchored to it. Measured on the published dataset, 121 contracts end in the first five days of the window and 37 in the last five, so moving the anchor by a working week moves that many across an edge. The anchor is stated rather than assumed.","dataset":{"csv":"/research/uk-public-sector-it-contract-expiry-2026.csv","readme":"/research/uk-public-sector-it-contract-expiry-2026-README.txt","rows":9416,"unit":"one expiring IT contract, on the pre-registered headline cut","csv_sha256":"15572c9f8b3193f104b36f93847893023d0ce50e5d7236a26ed595bbf26af309","readme_sha256":"d29d3391116bb0b15572802f0bbf835e0b6dadd8775977d177be9ce6f1a283ca","licence":"Open Government Licence v3.0","attribution":"Contains public sector information licensed under the Open Government Licence v3.0.","compilation_licence":"CC BY 4.0","personal_data_sweep":{"email_addresses_found":0,"email_address_columns":{},"telephone_numbers_found_in_free_text":0,"telephone_columns":{},"free_text_columns_swept_for_telephone_numbers":["buyer_name","title","primary_cpv_description","procurement_route","aggregated_award_basis"],"supplier_name_columns_in_the_file":[],"contact_columns_in_the_file":[],"individual_name_columns_in_the_file":[],"note":"Buyer names are organisations. No supplier column was carried out of the raw notices into any derived table, and suppliers_named_on_notice is a count, not a name. Supplier names do appear inside notice titles where the buyer typed one, because titles are reproduced exactly as published; all of those seen here are corporate entities, not individuals."}},"population":{"definition":"Every award or signed-contract notice published on Contracts Finder or the Find a Tender Service whose stated contract period ends inside the 12-month window, filtered to IT by the pre-registered CPV rule and deduplicated within and across the two services.","contracts_finder_harvest":{"award_rows_in_normalised_table":459650,"rows_dropped_for_publisher_column_shift":95,"rows_with_no_ocid":23,"distinct_ocids":431793,"contract_rows_after_ocid_dedup":438221,"duplicate_rows_removed_by_ocid_dedup":21311,"contracts_with_a_readable_end_date":438213,"contracts_with_no_readable_end_date":8,"end_date_already_passed":366576,"end_date_beyond_the_window":42670,"rows_ending_in_the_window_before_ocid_dedup":30307,"ending_inside_the_window_all_cpv":28967,"ending_inside_the_window_core_it_basket":6819,"diagnostics":{"contracts_with_no_primary_cpv":12240,"contracts_whose_only_cpv_is_an_excluded_mixed_header":2251,"contracts_with_no_cpv_anywhere":2}},"find_a_tender_harvest":{"rows_in_the_expiry_view":17040,"rows_outside_the_window_on_recheck":0,"ending_inside_the_window_all_cpv":17040,"ending_inside_the_window_core_it_basket":2606,"basket_flags_rederived_here_vs_the_collection_stream":{"agree":17040}},"after_cross_service_deduplication":9416,"all_cpv_ending_in_the_window_after_deduplication":45403,"funnel_in_one_line":"459,650 Contracts Finder award rows and 17,040 Find a Tender expiry rows -> 28,967 + 17,040 ending in the window on all CPV divisions (45,403 of them after deduplication) -> 6,819 + 2,606 in the core IT basket -> 9,416 after cross-service deduplication."},"definitions":{"expiring_contract":"A published award or signed-contract notice whose stated contract period ends inside the window. Not a prediction, not a re-procurement, not a pipeline notice.","it":"Defined by the pre-registered CPV rule, not by judgement. A notice is IT if any CPV code recorded anywhere on it falls in the core basket of 702 CPV 2008 codes.","buyer":"A distinct normalised buyer name inside the expiring set.","value":"The amount the buyer published, excluding VAT, in GBP. Never converted, never estimated, never inferred.","aggregated_award":"A framework agreement, dynamic purchasing system or multi-supplier lot award, whose stated value is a ceiling shared across suppliers.","floor":"Every GBP figure in this study is a floor on published, valued, sterling notices. It is not an estimate of total public sector IT spend reaching renewal."},"preRegisteredMetrics":[{"id":"expiring_contracts","statement":"UK public sector IT contracts whose stated contract end date falls in the 12 months from 2026-09-25.","value":9416,"unit":"contracts","denominator":null,"denominator_label":"a count, not a share","how_to_recompute":"CSV: count all rows. Every row in the published CSV is one expiring IT contract on the headline cut.","tolerance":"exact"},{"id":"expiring_buyers","statement":"Distinct buyers holding at least one of those contracts.","value":1430,"unit":"buyers (distinct normalised buyer names)","how_to_recompute":"CSV: count distinct buyer_name_key.","tolerance":"exact","note":"Not expressed as a fraction of the 7,753-row Cabinet Office register. 7,753 counts registrations, not organisations, and the register is not a superset of the bodies that publish notices. The register's own identifier does appear on notices and does resolve, but on too few rows and too often against a different registered name to serve as a denominator."},{"id":"gbp_total_as_published","statement":"Stated value of those contracts, summed exactly as published, GBP only, positive amounts only. A FLOOR and an over-count at the same time: a floor because zero-valued, non-GBP and unpublished values are excluded and Find a Tender records a contract end date only on notices published from 24 February 2025; an over-count because framework ceilings are not committed spend.","value":130127298368.08,"value_bn":130.13,"unit":"GBP","denominator":9416,"denominator_label":"summed over the 8,928 of 9,416 contracts that state a positive GBP amount","how_to_recompute":"CSV: sum value_amount_gbp where value_used_in_gbp_total == 1.","tolerance":"exact"},{"id":"biggest_month","statement":"The calendar month in which most of those contracts end.","value":"2027-03","contracts":2082,"share_of_all_expiring":{"n":2082,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":22.11,"small_n":false},"how_to_recompute":"CSV: group by expiry_month, take the largest.","tolerance":"exact"},{"id":"biggest_single_day","statement":"The single calendar date on which most of them end.","value":"2027-03-31","contracts":1405,"how_to_recompute":"CSV: group by contract_end_date, take the largest.","tolerance":"exact"},{"id":"primary_cpv_sensitivity_gbp","statement":"The same headline computed on the pre-registered primary-CPV sensitivity instead of the any-CPV field rule.","value":62094690309.6,"value_bn":62.09,"contracts":9085,"how_to_recompute":"CSV: sum value_amount_gbp where value_used_in_gbp_total == 1 and in_core_primary_cpv_rule == 1.","tolerance":"exact"}],"page":{"title":"The UK public sector IT contract expiry cliff","standfirst":"Every award notice on Contracts Finder and the Find a Tender Service that a pre-registered CPV rule counts as IT and whose published end date falls in the 12 months to 24 September 2027, taken from the full published history of both services. 9,416 contracts, 1,430 distinct buyer names, and one month that carries 22.1% of them.","headline":"9,416 UK public sector IT contracts reach their stated end date in the 12 months to 24 September 2027, held by 1,430 distinct buyer names, with the biggest month being March 2027 at 2,082 contracts, 22.1% of the year. The 8,928 of them that state a positive sterling amount total GBP 130.13 bn as published. That figure is a floor, an over-count and not a measure of IT spend, all at once. A floor because zero-valued, non-sterling and unpublished values are excluded rather than estimated, and because Find a Tender records a contract end date only on notices published from 24 February 2025. An over-count because framework ceilings are counted alongside the call-offs placed under them. Not IT spend because the pre-registered any-CPV rule counts a contract whole on a single IT sub-code: 52.1% of that total sits on contracts whose PRIMARY CPV code is not an IT division. The largest single notice in the whole study is a GBP 51.00 bn Crown Commercial Service energy supply framework whose primary code is in CPV division 09, petroleum products, fuel, electricity and other sources of energy; it enters the IT basket on incidental sub-codes and is 39.2% of the sterling total on its own. On the pre-registered primary-CPV sensitivity the same window is GBP 62.09 bn. The value is also extremely concentrated: 94.0% of it sits in 100 notices and the median expiring contract is GBP 108,068. Lead on the count. Holding the IT basket still and changing only the field rule moves the count by 3.5% and divides the money by 2.1.","as_at_line":"Contracts Finder and Find a Tender, snapshot 2026-09-25. n = 9,416 expiring IT contracts.","wording_rules":["Every sentence about money says it is a floor AND says it is inflated by framework ceilings. The two caveats travel together or neither is printed.","Never call the sterling total 'UK public sector IT contract value' without saying what is in it: most of it sits on contracts whose primary CPV code is not an IT division, and the largest single item is an energy supply framework. Print the primary-CPV figure beside it or print the composition.","Never say this is the total value of expiring public sector IT contracts. It is the value stated on published notices that state one.","Never write 'M of the 7,753 registered public buyers'. 7,753 counts registrations, not organisations, and the register is not a superset of notice publishers. Do not say the identifiers cannot join either - the register's own GB-SRS identifier appears on about a quarter of the rows here, under both of the register's own namespaces, and every one of them resolves. Do not say it is published 'on a small minority of rows'. It is not a denominator because the register is not a superset of notice publishers, because the registered name often differs from the name on the notice, and because 7,753 counts registrations.","Say 'stated end date' every time, never 'expires' on its own. A stated end date is not the date a contract ends.","Find a Tender's limit is a PUBLICATION limit: it records a contract end date only on notices published from 24 February 2025. Never write 'signed before', and never write 'however large' - the dataset holds 19 Find a Tender rows signed before that date, the earliest in 2012.","Say no supplier COLUMN, no supplier ranking and no supplier total. Do not say no supplier is named anywhere: buyers write supplier names into notice titles, which are reproduced as published.","Name no supplier, rank no incumbent, predict no re-procurement.","Never write 'first ever', and never imply no one publishes a forward expiry view. Commercial services do: name them and state the narrow, checkable difference instead.","Lead on the contract count, not the pounds - but scope the claim. Holding the CPV basket still and changing only the field rule moves the count by 3.5% and divides the money by 2.1. Widening or narrowing the basket changes what is being counted and moves the count a great deal, so never write 'the count holds on every cut'.","Never mix pipeline notices with expiring contracts. They are opposite things."],"headlines":[{"id":"expiring_contracts","label":"IT contracts reaching their stated end date in the next 12 months","value":"9,416","n":9416,"denominator":9416,"denominator_label":"a count of contracts, not a share; drawn from 45,403 contracts of every kind ending in the same window, deduplicated the same way (the raw sum of the two services, before any deduplication beyond OCID, is 46,007)","long":"9,416 published UK public sector IT contracts state an end date in the window 25 September 2026 to 24 September 2027 inclusive. 6,819 come from Contracts Finder and 2,597 from Find a Tender."},{"id":"expiring_buyers","label":"distinct buyer names holding at least one of them","value":"1,430","n":1430,"denominator":9416,"denominator_label":"across the 9,416 expiring IT contracts","long":"1,430 distinct buyer names, counted by normalised name, hold at least one expiring IT contract; those normalise from 1,613 spellings as published. 896 of them match a name on the Cabinet Office buyer register, which lists 7,753 registrations covering 7,337 distinct names as published, 7,132 after the same normalisation. That match rate errs in both directions and is context, not a denominator."},{"id":"biggest_month","label":"the biggest single month","value":"March 2027","n":2082,"denominator":9416,"denominator_label":"of the 9,416 expiring IT contracts","long":"2,082 of 9,416 expiring IT contracts (22.1%) state an end date in March 2027, more than twice the monthly average. 1,405 of them fall on 2027-03-31 alone - the last day of the UK financial year."},{"id":"gbp_as_published","label":"stated value reaching its end date, summed as published","value":"GBP 130.13 bn","n":8928,"denominator":9416,"denominator_label":"summed over the 8,928 of 9,416 expiring IT contracts that state a positive sterling amount (94.8%)","long":"GBP 130.13 bn as published. On the pre-registered primary-CPV sensitivity the same window is GBP 62.09 bn; with framework and multi-supplier ceilings removed it is GBP 97.12 bn; with in-notice repeats collapsed GBP 124.02 bn. The median expiring contract is GBP 108,068.","caveat":"A floor and an over-count at the same time, and not a measure of IT spend: 52.1% of it sits on contracts whose primary CPV code is not an IT division, and the single largest notice in it is a GBP 51.00 bn Crown Commercial Service energy supply framework classified to CPV division 09. Print all three or print none."}],"sections":[{"id":"how-much-and-how-many","heading":"How much, how many, and how many buyers","lead":"9,416 published UK public sector IT contracts state an end date in the 12 months to 24 September 2027. They are held by 1,430 distinct buyers. The 8,928 of them that state a positive sterling amount total GBP 130.13 bn as published - a figure that is simultaneously a floor and an over-count, for reasons set out below.","findings":{"contracts":{"n":9416,"denominator":null,"denominator_label":"a count, not a share"},"buyers":{"n":1430,"denominator":9416,"denominator_label":"across the 9,416 expiring IT contracts"},"value_coverage":{"n":8928,"denominator":9416,"denominator_label":"all 9,416 contracts in this cut","pct":94.82,"small_n":false},"by_service":{"contracts-finder":6819,"find-a-tender":2597},"median_contract_gbp":108068.5,"quantiles_gbp":{"n":8928,"min":0.01,"p25":44286,"median":108068.5,"p75":354000,"max":51000000000,"mean":14575190.23,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."}},"caveats":["A stated end date is not the date a contract ends. Extensions, options and early termination are invisible in published notices.","The buyer count is of distinct names inside the expiring set. It is not a fraction of the Cabinet Office register."]},{"id":"the-march-cliff","heading":"One month carries the cliff, and one day inside it","lead":"2,082 of 9,416 expiring IT contracts (22.1%) end in March 2027, against an average of 787 across the eleven whole months in the window - September 2026 and September 2027 are part-months and are left out of that average. 1,405 of those - 67.5% of the month and 14.9% of the whole year - state 2027-03-31 as their end date. That is the last day of the UK financial year. The clustering is consistent with buyers aligning contract periods to the financial year, which would make the date a publishing convention as much as an operational one; this study cannot observe when a contract in practice ends, so that reading is an inference from the dates, not a measurement.","findings":{"by_expiry_month_contracts":{"2026-09":511,"2026-10":721,"2026-11":637,"2026-12":813,"2027-01":630,"2027-02":612,"2027-03":2082,"2027-04":663,"2027-05":609,"2027-06":665,"2027-07":688,"2027-08":537,"2027-09":248},"by_expiry_month_gbp":{"2026-09":756025546.26,"2026-10":7914830555.54,"2026-11":6392421287.3,"2026-12":5514081404.98,"2027-01":1126902506.83,"2027-02":61916542258.93,"2027-03":5049229111.07,"2027-04":1707976543.95,"2027-05":2226437685.6,"2027-06":1596288023.34,"2027-07":26851468646.59,"2027-08":7768082125.61,"2027-09":1307012672.08},"biggest_month":{"month":"2027-03","contracts":2082},"biggest_single_date":{"date":"2027-03-31","contracts":1405},"monthly_average_contracts_whole_months_only":787,"whole_months_used_for_that_average":11,"partial_months_excluded_from_that_average":["2026-09","2027-09"],"biggest_month_share":{"n":2082,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":22.11,"small_n":false},"biggest_day_share_of_month":{"n":1405,"denominator":2082,"denominator_label":"the 2,082 contracts ending in March 2027","pct":67.48,"small_n":false},"biggest_month_on_every_cut":{"narrow|any_cpv":"2027-03","narrow|primary_cpv":"2027-03","core|any_cpv":"2027-03","core|primary_cpv":"2027-03","core_plus_adjacent|any_cpv":"2027-03","core_plus_adjacent|primary_cpv":"2027-03","wide|any_cpv":"2027-03","wide|primary_cpv":"2027-03"}},"caveats":["The first and last months of the window are partial: the window opens on 2026-09-25 and closes on 2027-09-24, so September 2026 and September 2027 each hold a part-month and must not be compared with a whole one.","The biggest month is the same on all eight CPV basket and field-rule cuts, which is why it is reported as a finding rather than an artefact of the IT definition."]},{"id":"why-the-pounds-move","heading":"Why the pounds move so much more than the count","lead":"Changing the IT definition from the pre-registered any-CPV rule to its primary-CPV sensitivity changes the contract count by 331 (3.5%) but the money from GBP 130.13 bn to GBP 62.09 bn. The reason is concentration. Both of those sterling figures are a floor and an over-count at the same time: a floor because contracts stating zero, a negative amount, another currency or nothing are excluded rather than estimated and Find a Tender records a contract end date only on notices published from 24 February 2025; an over-count because framework ceilings are counted alongside the call-offs placed under them. The largest single notice alone is 39.19% of the total; 3 notices carry half of it and 54 carry nine tenths. Remove the largest 1% of rows and GBP 130.13 bn becomes GBP 8.41 bn. The median expiring contract is GBP 108,068. A total or a mean describes a handful of central frameworks, not the estate, which is why this study leads on the contract count. That is a claim about this pair of cuts, not about every cut: widening or narrowing the CPV basket changes what is being counted and moves the count a great deal, as the sensitivity table below shows.","findings":{"value_variants":{"v1_as_published":{"definition":"Every deduplicated row that states a positive GBP amount, summed exactly as the buyer published it. This is the pre-registered headline basis.","gbp":130127298368.08,"gbp_bn":130.13,"rows":8928},"v2_in_notice_repeats_collapsed":{"definition":"v1 with rows that simply restate another row inside the same notice removed: one award or contracts block per appointed supplier, each restating the same value and the same contract period. A row counts as a repeat where another row in the same notice states an identical value, an identical contract start date and an identical contract end date; the first in publication order is kept. Rebuild it from the CSV by summing value_amount_gbp where value_used_in_gbp_total = 1 and in_notice_repeat = 0.","gbp":124021584692.97,"gbp_bn":124.02,"rows":8835,"rows_removed":93,"rows_flagged_in_notice_repeat_including_unvalued":94},"v3_aggregated_awards_excluded":{"definition":"v2 with framework agreements, dynamic purchasing systems and multi-supplier lot awards removed, because their stated value is a ceiling shared across suppliers and is not additive with the call-offs placed under it. This is CUMULATIVE: it is in-notice repeats collapsed AND aggregated awards excluded, not an independent cut of v1.","gbp":97121555323.32,"gbp_bn":97.12,"rows":8716,"rows_removed":119,"rows_flagged_aggregated_including_unvalued":138,"rebuild_from_the_csv":"this cut is CUMULATIVE on v2, not an independent cut of v1: sum value_amount_gbp where value_used_in_gbp_total = 1 AND in_notice_repeat = 0 AND aggregated_award = 0. Applying aggregated_award = 0 on its own gives a different, larger figure.","known_incompleteness":"Contracts Finder publishes no framework flag of its own, so on that service this rests on notice titles and supplier counts alone and is certainly incomplete. The single largest expiring row in the study is not caught by it."},"v4_largest_one_percent_excluded":{"definition":"v1 with the largest 1% of rows by value removed. Purely mechanical: it needs no classifier and no judgement. 1% is rounded DOWN to a whole number of rows, so on this cut the largest 89 of 8,928 valued rows are dropped, not 90.","gbp":8409602277.54,"gbp_bn":8.41,"rows_removed":89,"rounding_rule":"the number of rows removed is floor(n / 100), never fewer than one: floor(8928 / 100) = 89","rows":8839},"v5_primary_cpv_field_rule":{"definition":"The pre-registered sensitivity: the same window and basket, but a notice counts as IT only on its primary CPV code, not on any code recorded anywhere on it.","gbp":62094690309.6,"gbp_bn":62.09,"rows":8628,"contracts":9085}},"concentration":{"top_1_share_pct":39.19,"top_5_share_pct":60.77,"top_10_share_pct":71.32,"top_20_share_pct":81.14,"top_50_share_pct":89.31,"top_100_share_pct":94,"contracts_carrying_50pct_of_the_value":3,"contracts_carrying_80pct_of_the_value":19,"contracts_carrying_90pct_of_the_value":54,"contracts_carrying_95pct_of_the_value":136,"contracts_carrying_99pct_of_the_value":1148,"contracts_with_a_value":8928},"quantiles_gbp":{"n":8928,"min":0.01,"p25":44286,"median":108068.5,"p75":354000,"max":51000000000,"mean":14575190.23,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"largest_expiring_contracts":[{"gbp":51000000000,"gbp_bn":51,"source_service":"contracts-finder","ocid":"ocds-b5fd17-67975862-493d-437b-9397-64b7062aefb5","buyer_name":"Crown Commercial Service","title":"Supply of Energy 2","contract_end":"2027-02-26","primary_cpv":"09000000","primary_cpv_description":"Petroleum products, fuel, electricity and other sources of energy","core_basket_codes_on_this_notice":"30237475|48000000|72300000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":10000000000,"gbp_bn":10,"source_service":"contracts-finder","ocid":"ocds-b5fd17-c40718f7-fae9-4e3b-a2cf-c125f634c8c1","buyer_name":"Countess of Chester Hospital NHS Foundation Trust","title":"National Framework Agreement for the Provision of Digital Enablement and Transformation Solutions","contract_end":"2027-02-08","primary_cpv":"30200000","primary_cpv_description":"Computer equipment and supplies","core_basket_codes_on_this_notice":"30200000|72000000","aggregated_award":1,"aggregated_award_basis":"notice title states a framework agreement or dynamic purchasing system"},{"gbp":6700000000,"gbp_bn":6.7,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04fb0d","buyer_name":"Crown Commercial Service","title":"Digital Outcomes and Specialists 7","contract_end":"2027-07-29","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 1792 suppliers named on the notice"},{"gbp":6373000000,"gbp_bn":6.37,"source_service":"contracts-finder","ocid":"ocds-b5fd17-02d75d7e-429c-42a1-a972-a02c5976e8ec","buyer_name":"Crown Commercial Service","title":"Network Services 3 Award  Notice for Lot 1a, Lot 1b, Lot 2a, Lot 3a, Lot 3b, Lot 4a, Lot 4b, Lot 4c, Lot 4d and Lot 4e","contract_end":"2027-07-17","primary_cpv":"31000000","primary_cpv_description":"Electrical machinery, apparatus, equipment and consumables; lighting","core_basket_codes_on_this_notice":"48000000|72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":5000000000,"gbp_bn":5,"source_service":"contracts-finder","ocid":"ocds-b5fd17-38fcffec-7067-4bf4-87eb-52584453365f","buyer_name":"Crown Commercial Service","title":"Back Office Software 2","contract_end":"2027-08-17","primary_cpv":"48000000","primary_cpv_description":"Software package and information systems","core_basket_codes_on_this_notice":"48000000|72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":3240000000,"gbp_bn":3.24,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04fb0d","buyer_name":"Crown Commercial Service","title":"Digital Outcomes and Specialists 7","contract_end":"2027-07-29","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 1792 suppliers named on the notice"},{"gbp":3200000000,"gbp_bn":3.2,"source_service":"contracts-finder","ocid":"ocds-b5fd17-939ec7c1-bb0c-4fb5-adb7-a21db1867c4f","buyer_name":"Crown Commercial Service","title":"Digital and Legacy Application Services (DALAS)","contract_end":"2027-07-26","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":2800000000,"gbp_bn":2.8,"source_service":"contracts-finder","ocid":"ocds-b5fd17-22295424-0a07-423a-adea-2e727ec96833","buyer_name":"Crown Commercial Service","title":"Digital and Legacy Application Services (DALAS) Lots 1, 4a & 4b","contract_end":"2027-07-24","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":2500000000,"gbp_bn":2.5,"source_service":"contracts-finder","ocid":"ocds-b5fd17-97ef0691-9349-4ddd-9e97-e1f389d45f72","buyer_name":"Crown Commercial Service","title":"Mobile Voice and Data Services","contract_end":"2026-12-12","primary_cpv":"31712112","primary_cpv_description":"SIM cards","core_basket_codes_on_this_notice":"48620000|72150000|72212730|72220000|72590000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":2000000000,"gbp_bn":2,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04fb0d","buyer_name":"Crown Commercial Service","title":"Digital Outcomes and Specialists 7","contract_end":"2027-07-29","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 1792 suppliers named on the notice"}],"aggregated_awards_flagged":172,"gbp_on_aggregated_awards_bn":32.93,"aggregated_award_basis_counts":{"notice title states a framework agreement or dynamic purchasing system":117,"publisher's own framework flag on the notice":18,"more than one supplier named on the notice":50},"cpv_basket_sensitivity":{"narrow|any_cpv":{"contracts":4764,"gbp_bn":123.22,"buyers":1073},"narrow|primary_cpv":{"contracts":4104,"gbp_bn":36.17,"buyers":964},"core|any_cpv":{"contracts":9416,"gbp_bn":130.13,"buyers":1430},"core|primary_cpv":{"contracts":9085,"gbp_bn":62.09,"buyers":1389},"core_plus_adjacent|any_cpv":{"contracts":9729,"gbp_bn":131.18,"buyers":1445},"core_plus_adjacent|primary_cpv":{"contracts":9388,"gbp_bn":64.65,"buyers":1406},"wide|any_cpv":{"contracts":9945,"gbp_bn":130.94,"buyers":1472},"wide|primary_cpv":{"contracts":9612,"gbp_bn":62.95,"buyers":1429}}},"caveats":["The CPV rule was written and hashed before any expiring value was computed and has not been changed since. The any-CPV field rule is over-inclusive by construction - a large non-IT contract carrying one IT sub-code counts whole - and that bias is in the pre-registration, not a discovery.","Contracts Finder publishes no framework flag, so the aggregated-award count is a floor on that service and the excluded-ceilings total is an upper bound on what remains."]},{"id":"what-the-two-services-can-and-cannot-see","heading":"What the two services can and cannot see","lead":"6,819 of the 9,416 expiring IT contracts come from Contracts Finder and 2,597 from Find a Tender. That split is not a measure of where UK procurement happens. Find a Tender states a contract end date only on notices PUBLISHED from 24 February 2025, when the Procurement Act 2023 regime began. A contract signed earlier reaches the dataset only if a later notice under that regime restates it - 19 rows here do, the earliest signed 2012-06-30 - so most of what expires in 2026-27 is visible only through Contracts Finder. That is why the whole published back catalogue was harvested rather than a guessed window.","findings":{"by_service":{"contracts-finder":6819,"find-a-tender":2597},"service_shape":{"contracts_finder":{"contracts":6819,"share":{"n":6819,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":72.42,"small_n":false},"publication_window_of_the_harvest":"2014-12-17 to 2026-09-23"},"find_a_tender":{"contracts":2597,"share":{"n":2597,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":27.58,"small_n":false},"structural_limit":"Find a Tender states a contract end date only on Procurement Act 2023 notices (UK5/UK6/UK7). All 95,660 legacy TED contract award notices on the service carry a conclusion date and a total value but no contract period at all. The limit is therefore a PUBLICATION limit, not a signature one: no expiring contract in this study comes from a Find a Tender notice PUBLISHED before 24 February 2025 (the earliest in the dataset is 2025-03-04), but a contract signed years earlier reaches the dataset whenever a later Procurement Act notice restates it - 19 rows in the published dataset carry a signature date before 24 February 2025, the earliest 2012-06-30. What the service cannot see is a contract whose only notice predates the regime, and Contracts Finder supplies that history.","rows_signed_before_24_february_2025":19,"earliest_signature_date_in_the_dataset":"2012-06-30","earliest_notice_publication_date_in_the_dataset":"2025-03-04"},"expiring_contracts_by_notice_publication_year":{"2016":4,"2017":12,"2018":4,"2019":16,"2020":27,"2021":111,"2022":425,"2023":789,"2024":2045,"2025":2175,"2026":3808},"gap_between_notice_publication_and_stated_end_date":{"under 1 year":3291,"1 to 3 years":4545,"3 to 6 years":1509,"6 to 10 years":65,"over 10 years":6}},"cross_service_duplication":{"method":"OCID first (it can only deduplicate within a service, because the two services' OCID ranges cannot intersect), then the published secondary rule below.","ocid_prefix_contracts_finder":"ocds-b5fd17","ocid_prefix_find_a_tender":"ocds-h6vhtk","ocid_can_match_across_services":false,"strict_rule":"either key A - normalised buyer name + normalised title + value in whole units + contract start date + contract end date, all five present - or key B - normalised title + contract end date + value in whole units, ignoring the buyer name, which is the field that differs between the two services","strict_rule_key_a":"normalised buyer name + normalised title + value in whole units + contract start date + contract end date","strict_rule_key_b":"normalised title + contract end date + value in whole units, buyer name ignored","loose_rule":"normalised buyer name + normalised title + contract end date","find_a_tender_rows_tested":16777,"contracts_finder_rows_tested":28688,"find_a_tender_rows_in_this_cut":2606,"strict_matches":9,"strict_matches_key_a":4,"strict_matches_key_b":9,"loose_key_matches":13,"loose_only_matches_flagged_and_kept":7,"rows_removed":9,"keep_rule":"the Contracts Finder row is kept; the Find a Tender row is removed. Rows matching only the loose key are flagged and kept, because that key ignores the stated value.","rows_removed_by_the_within_service_rule_first":542,"contracts_finder_rows_in_this_cut":6819,"test_population_note":"The test is run ONCE, over the whole all-CPV expiring set of each service after the within-service rules, and every CPV basket cut below reuses these flags. The rows_tested figures are therefore the same in every cut; the match counts are the matches that fall inside the cut being reported.","cut":"the headline cut only (core IT basket, any-CPV field rule)"},"cross_service_duplication_all_cpv":{"method":"OCID first (it can only deduplicate within a service, because the two services' OCID ranges cannot intersect), then the published secondary rule below.","ocid_prefix_contracts_finder":"ocds-b5fd17","ocid_prefix_find_a_tender":"ocds-h6vhtk","ocid_can_match_across_services":false,"strict_rule":"either key A - normalised buyer name + normalised title + value in whole units + contract start date + contract end date, all five present - or key B - normalised title + contract end date + value in whole units, ignoring the buyer name, which is the field that differs between the two services","strict_rule_key_a":"normalised buyer name + normalised title + value in whole units + contract start date + contract end date","strict_rule_key_b":"normalised title + contract end date + value in whole units, buyer name ignored","loose_rule":"normalised buyer name + normalised title + contract end date","find_a_tender_rows_tested":16777,"contracts_finder_rows_tested":28688,"find_a_tender_rows_in_this_cut":16777,"strict_matches":62,"strict_matches_key_a":38,"strict_matches_key_b":62,"loose_key_matches":77,"loose_only_matches_flagged_and_kept":30,"rows_removed":62,"keep_rule":"the Contracts Finder row is kept; the Find a Tender row is removed. Rows matching only the loose key are flagged and kept, because that key ignores the stated value.","rows_removed_by_the_within_service_rule_first":542,"contracts_finder_rows_in_this_cut":28688,"test_population_note":"The test is run ONCE, over the whole all-CPV expiring set of each service after the within-service rules, and every CPV basket cut below reuses these flags. The rows_tested figures are therefore the same in every cut; the match counts are the matches that fall inside the cut being reported."}},"caveats":["OCID cannot deduplicate across the two services. Contracts Finder issues ocds-b5fd17-... and Find a Tender ocds-h6vhtk-...; because the two ranges cannot intersect, joining on OCID across the services returns zero matches whatever the real overlap is. That result must never be cited as evidence the two sets do not overlap - it is why the secondary rule exists.","The measured overlap under the published secondary rule is small, but a strict key finding nothing is evidence about the key as much as about the overlap. The buyer-independent key B exists because the buyer name is the field that differs between the services, and the loose rule is published beside both because it ignores the stated value and so cannot tell a duplicate from a renewal at a different price."]},{"id":"who-the-buyers-are","heading":"Who the buyers are, and why there is no 'M of 7,753'","lead":"1,430 distinct buyer names hold at least one expiring IT contract. 896 of them (62.66%) match a name on the Cabinet Office buyer register. The register cannot be used as a denominator: it holds 7,753 registrations, not organisations, resolving to 7,132 distinct names, and it is not a superset of the bodies that publish procurement notices.","findings":{"distinct_buyers":1430,"distinct_raw_buyer_names":1613,"buyers_on_both_services":329,"register_context":{"registrations_on_the_cabinet_office_register":7753,"currently_registered":7736,"de_registered":17,"distinct_names_on_the_register_as_published":7337,"distinct_normalised_names_on_the_register":7132,"normalisation_note":"The register as published holds 7,337 distinct buyer names; 7,132 is the count after the same normalisation used to match buyers (lower case, '&' spelled out, punctuation collapsed). Both sides of the match use that one rule.","names_holding_more_than_one_registration":491,"expiring_set_buyer_names_matching_a_register_name":896,"expiring_set_buyer_names_not_matching":534,"match_rate":{"n":896,"denominator":1430,"denominator_label":"the 1,430 distinct buyer names in the expiring set","pct":62.66,"small_n":false},"why_this_is_not_a_denominator":"7,753 is a count of registrations, not of organisations: it resolves to 7,337 distinct names as published, 7,132 after normalisation, and 17 of the registrations are de-registered. The register is also not a superset of notice publishers - bodies that publish procurement notices without being registered appear in the notices and not in the register. Matching is by name because most notices publish no buyer identifier at all, and where the register's own identifier IS published it joins but often resolves to a different registered name. A matched fraction therefore errs in both directions and is reported as context, never as 'M of 7,753'."},"register_identifier_join":{"rows_carrying_the_registers_own_identifier":2340,"rows_total":9416,"share_of_rows_pct":24.9,"namespaces_tested":["supplierregistration.cabinetoffice.gov.uk/","sid4gov.cabinetoffice.gov.uk/"],"rows_by_namespace":{"supplierregistration.cabinetoffice.gov.uk":408,"sid4gov.cabinetoffice.gov.uk":1932},"distinct_identifiers":381,"distinct_identifiers_found_in_the_register":381,"distinct_buyer_names_carrying_one":386,"scheme":"GB-SRS","rows_where_the_registered_name_differs_from_the_notice_name":185,"bodies_where_the_registered_name_differs":40,"buyers_the_identifier_join_adds_that_the_name_match_misses":17,"what_this_means":"The register's identifier namespace is NOT one neither service uses. Where a notice publishes a buyer identifier under scheme GB-SRS it is the register's own URL-shaped corporate identifier, under one of the two hosts the register itself uses, and every one of those identifiers resolves in the register file. It is published on about a quarter of the rows here, so 'published too rarely to join' is not the reason it is not a denominator. The reasons are that the register is not a superset of the bodies that publish notices; that where the identifier is published the registered name often differs from the name on the notice, so an identifier join and a name join do not return the same set - the identifier on the largest expiring notice resolves to 'GOVERNMENT COMMERCIAL AGENCY' while the notice names Crown Commercial Service; and that the register counts registrations, not organisations."},"top_buyers_by_contract_count":[{"buyer":"MINISTRY OF DEFENCE","contracts":176,"gbp":970854115.18,"on_register":true},{"buyer":"UK SHARED BUSINESS SERVICES LIMITED","contracts":168,"gbp":91919822.95,"on_register":true},{"buyer":"Home Office","contracts":139,"gbp":943602040.15,"on_register":true},{"buyer":"UK Research and Innovation","contracts":136,"gbp":15176867.42,"on_register":true},{"buyer":"NHS England","contracts":131,"gbp":734061217.51,"on_register":true},{"buyer":"NHS SOUTH, CENTRAL AND WEST COMMISSIONING SUPPORT UNIT","contracts":92,"gbp":22357169.62,"on_register":true},{"buyer":"H M REVENUE & CUSTOMS","contracts":91,"gbp":2789548742,"on_register":true},{"buyer":"BANK OF ENGLAND","contracts":84,"gbp":236957742.82,"on_register":true},{"buyer":"Crown Commercial Service","contracts":82,"gbp":90638914382.18,"on_register":false},{"buyer":"Department for Work and Pensions","contracts":79,"gbp":670690406.48,"on_register":true},{"buyer":"Met Office","contracts":71,"gbp":25346135.32,"on_register":true},{"buyer":"Ministry of Justice","contracts":68,"gbp":367281576.73,"on_register":true},{"buyer":"UK Research and Innovation (UKRI)","contracts":66,"gbp":9476235.23,"on_register":false},{"buyer":"Office for National Statistics","contracts":61,"gbp":18144115.38,"on_register":true},{"buyer":"UK Health Security Agency","contracts":59,"gbp":115342076.44,"on_register":true},{"buyer":"CAMBRIDGE UNIVERSITY HOSPITALS NHS FOUNDATION TRUST","contracts":59,"gbp":2403983.53,"on_register":true},{"buyer":"Department for Education","contracts":57,"gbp":267025834.72,"on_register":true},{"buyer":"National Highways Limited","contracts":56,"gbp":18584062.32,"on_register":true},{"buyer":"Financial Conduct Authority","contracts":54,"gbp":598705269.8,"on_register":false},{"buyer":"DVLA - Driver & Vehicle Licensing Agency","contracts":53,"gbp":34225587.11,"on_register":false},{"buyer":"Department for Business & Trade","contracts":50,"gbp":37344822.39,"on_register":true},{"buyer":"City of Bradford Metropolitan District Council","contracts":48,"gbp":18233288.67,"on_register":true},{"buyer":"POLICE DIGITAL SERVICE","contracts":46,"gbp":9557598.79,"on_register":true},{"buyer":"University of the West of England","contracts":45,"gbp":2336560.81,"on_register":true},{"buyer":"DfTc - Department for Transport","contracts":45,"gbp":91716818.73,"on_register":false}],"top_buyers_by_value":[{"buyer":"Crown Commercial Service","contracts":82,"gbp":90638914382.18,"share_of_the_gbp_total_pct":69.7},{"buyer":"Countess Of Chester Hospital NHS Foundation Trust","contracts":4,"gbp":10080053612,"share_of_the_gbp_total_pct":7.7},{"buyer":"enFrame CIC","contracts":18,"gbp":4250000000,"share_of_the_gbp_total_pct":3.3},{"buyer":"GUY'S AND ST THOMAS' NHS FOUNDATION TRUST","contracts":8,"gbp":3000909445,"share_of_the_gbp_total_pct":2.3},{"buyer":"H M REVENUE & CUSTOMS","contracts":91,"gbp":2789548742,"share_of_the_gbp_total_pct":2.1}],"by_primary_cpv_division":[{"division":"48","official_description":"Software package and information systems","contracts":4282,"gbp":12133509373.87,"gbp_bn":12.13,"share_of_the_gbp_total_pct":9.3,"is_an_it_division":true,"share":{"n":4282,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":45.48,"small_n":false}},{"division":"72","official_description":"IT services: consulting, software development, Internet and support","contracts":4104,"gbp":36170549085.93,"gbp_bn":36.17,"share_of_the_gbp_total_pct":27.8,"is_an_it_division":true,"share":{"n":4104,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":43.59,"small_n":false}},{"division":"32","official_description":"Radio, television, communication, telecommunication and related equipment","contracts":400,"gbp":526978129.89,"gbp_bn":0.53,"share_of_the_gbp_total_pct":0.4,"is_an_it_division":true,"share":{"n":400,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":4.25,"small_n":false}},{"division":"30","official_description":"Office and computing machinery, equipment and supplies except furniture and software packages","contracts":360,"gbp":13459145817.42,"gbp_bn":13.46,"share_of_the_gbp_total_pct":10.3,"is_an_it_division":true,"share":{"n":360,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":3.82,"small_n":false}},{"division":"71","official_description":"Architectural, construction, engineering and inspection services","contracts":68,"gbp":2453918099.16,"gbp_bn":2.45,"share_of_the_gbp_total_pct":1.9,"is_an_it_division":false,"share":{"n":68,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.72,"small_n":false}},{"division":"79","official_description":"Business services: law, marketing, consulting, recruitment, printing and security","contracts":26,"gbp":3227729.83,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":26,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.28,"small_n":false}},{"division":"44","official_description":"Construction structures and materials; auxiliary products to construction (except electric apparatus)","contracts":22,"gbp":6493447.41,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":22,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.23,"small_n":false}},{"division":"66","official_description":"Financial and insurance services","contracts":17,"gbp":2613750829.16,"gbp_bn":2.61,"share_of_the_gbp_total_pct":2,"is_an_it_division":false,"share":{"n":17,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.18,"small_n":false}},{"division":"22","official_description":"Printed matter and related products","contracts":14,"gbp":98673839.7,"gbp_bn":0.1,"share_of_the_gbp_total_pct":0.1,"is_an_it_division":false,"share":{"n":14,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.15,"small_n":false}},{"division":"38","official_description":"Laboratory, optical and precision equipments (excl. glasses)","contracts":12,"gbp":1192526.75,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":12,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.13,"small_n":false}},{"division":"50","official_description":"Repair and maintenance services","contracts":12,"gbp":113655537.26,"gbp_bn":0.11,"share_of_the_gbp_total_pct":0.1,"is_an_it_division":false,"share":{"n":12,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.13,"small_n":false}},{"division":"73","official_description":"Research and development services and related consultancy services","contracts":11,"gbp":8819766.54,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":11,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.12,"small_n":false}},{"division":"34","official_description":"Transport equipment and auxiliary products to transportation","contracts":11,"gbp":3383876.66,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":11,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.12,"small_n":false}},{"division":"64","official_description":"Postal and telecommunications services","contracts":10,"gbp":1562941253.48,"gbp_bn":1.56,"share_of_the_gbp_total_pct":1.2,"is_an_it_division":false,"share":{"n":10,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.11,"small_n":false}},{"division":"35","official_description":"Security, fire-fighting, police and defence equipment","contracts":9,"gbp":36934112.82,"gbp_bn":0.04,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":9,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.1,"small_n":false}},{"division":"09","official_description":"Petroleum products, fuel, electricity and other sources of energy","contracts":7,"gbp":51288062101.06,"gbp_bn":51.29,"share_of_the_gbp_total_pct":39.4,"is_an_it_division":false,"share":{"n":7,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.07,"small_n":false}},{"division":"80","official_description":"Education and training services","contracts":7,"gbp":40588700,"gbp_bn":0.04,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":7,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.07,"small_n":false}},{"division":"33","official_description":"Medical equipments, pharmaceuticals and personal care products","contracts":6,"gbp":470375,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":6,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.06,"small_n":false}},{"division":"42","official_description":"Industrial machinery","contracts":5,"gbp":2142781,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":5,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.05,"small_n":false}},{"division":"31","official_description":"Electrical machinery, apparatus, equipment and consumables; lighting","contracts":5,"gbp":8874649904,"gbp_bn":8.87,"share_of_the_gbp_total_pct":6.8,"is_an_it_division":false,"share":{"n":5,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.05,"small_n":false}},{"division":"98","official_description":"Other community, social and personal services","contracts":4,"gbp":19165780.98,"gbp_bn":0.02,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":4,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.04,"small_n":false}},{"division":"45","official_description":"Construction work","contracts":4,"gbp":484904,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":4,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.04,"small_n":false}},{"division":"85","official_description":"Health and social work services","contracts":3,"gbp":6519686.12,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"03","official_description":"Agricultural, farming, fishing, forestry and related products","contracts":3,"gbp":895695.04,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"39","official_description":"Furniture (incl. office furniture), furnishings, domestic appliances (excl. lighting) and cleaning products","contracts":3,"gbp":1151230,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"92","official_description":"Recreational, cultural and sporting services","contracts":2,"gbp":2045235,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"51","official_description":"Installation services (except software)","contracts":2,"gbp":6650000,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"70","official_description":"Real estate services","contracts":2,"gbp":656850,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"55","official_description":"Hotel, restaurant and retail trade services","contracts":1,"gbp":151700,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"15","official_description":"Food, beverages, tobacco and related products","contracts":1,"gbp":90000,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"60","official_description":"Transport services (excl. Waste transport)","contracts":1,"gbp":5400000,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"18","official_description":"Clothing, footwear, luggage articles and accessories","contracts":1,"gbp":250000000,"gbp_bn":0.25,"share_of_the_gbp_total_pct":0.2,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"75","official_description":"Administration, defence and social security services","contracts":1,"gbp":435000000,"gbp_bn":0.43,"share_of_the_gbp_total_pct":0.3,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}}],"by_primary_cpv_division_ranked_by_value":[{"division":"09","official_description":"Petroleum products, fuel, electricity and other sources of energy","contracts":7,"gbp":51288062101.06,"gbp_bn":51.29,"share_of_the_gbp_total_pct":39.4,"is_an_it_division":false,"share":{"n":7,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.07,"small_n":false}},{"division":"72","official_description":"IT services: consulting, software development, Internet and support","contracts":4104,"gbp":36170549085.93,"gbp_bn":36.17,"share_of_the_gbp_total_pct":27.8,"is_an_it_division":true,"share":{"n":4104,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":43.59,"small_n":false}},{"division":"30","official_description":"Office and computing machinery, equipment and supplies except furniture and software packages","contracts":360,"gbp":13459145817.42,"gbp_bn":13.46,"share_of_the_gbp_total_pct":10.3,"is_an_it_division":true,"share":{"n":360,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":3.82,"small_n":false}},{"division":"48","official_description":"Software package and information systems","contracts":4282,"gbp":12133509373.87,"gbp_bn":12.13,"share_of_the_gbp_total_pct":9.3,"is_an_it_division":true,"share":{"n":4282,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":45.48,"small_n":false}},{"division":"31","official_description":"Electrical machinery, apparatus, equipment and consumables; lighting","contracts":5,"gbp":8874649904,"gbp_bn":8.87,"share_of_the_gbp_total_pct":6.8,"is_an_it_division":false,"share":{"n":5,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.05,"small_n":false}},{"division":"66","official_description":"Financial and insurance services","contracts":17,"gbp":2613750829.16,"gbp_bn":2.61,"share_of_the_gbp_total_pct":2,"is_an_it_division":false,"share":{"n":17,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.18,"small_n":false}},{"division":"71","official_description":"Architectural, construction, engineering and inspection services","contracts":68,"gbp":2453918099.16,"gbp_bn":2.45,"share_of_the_gbp_total_pct":1.9,"is_an_it_division":false,"share":{"n":68,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.72,"small_n":false}},{"division":"64","official_description":"Postal and telecommunications services","contracts":10,"gbp":1562941253.48,"gbp_bn":1.56,"share_of_the_gbp_total_pct":1.2,"is_an_it_division":false,"share":{"n":10,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.11,"small_n":false}},{"division":"32","official_description":"Radio, television, communication, telecommunication and related equipment","contracts":400,"gbp":526978129.89,"gbp_bn":0.53,"share_of_the_gbp_total_pct":0.4,"is_an_it_division":true,"share":{"n":400,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":4.25,"small_n":false}},{"division":"75","official_description":"Administration, defence and social security services","contracts":1,"gbp":435000000,"gbp_bn":0.43,"share_of_the_gbp_total_pct":0.3,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"18","official_description":"Clothing, footwear, luggage articles and accessories","contracts":1,"gbp":250000000,"gbp_bn":0.25,"share_of_the_gbp_total_pct":0.2,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"50","official_description":"Repair and maintenance services","contracts":12,"gbp":113655537.26,"gbp_bn":0.11,"share_of_the_gbp_total_pct":0.1,"is_an_it_division":false,"share":{"n":12,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.13,"small_n":false}},{"division":"22","official_description":"Printed matter and related products","contracts":14,"gbp":98673839.7,"gbp_bn":0.1,"share_of_the_gbp_total_pct":0.1,"is_an_it_division":false,"share":{"n":14,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.15,"small_n":false}},{"division":"80","official_description":"Education and training services","contracts":7,"gbp":40588700,"gbp_bn":0.04,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":7,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.07,"small_n":false}},{"division":"35","official_description":"Security, fire-fighting, police and defence equipment","contracts":9,"gbp":36934112.82,"gbp_bn":0.04,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":9,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.1,"small_n":false}},{"division":"98","official_description":"Other community, social and personal services","contracts":4,"gbp":19165780.98,"gbp_bn":0.02,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":4,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.04,"small_n":false}},{"division":"73","official_description":"Research and development services and related consultancy services","contracts":11,"gbp":8819766.54,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":11,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.12,"small_n":false}},{"division":"51","official_description":"Installation services (except software)","contracts":2,"gbp":6650000,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"85","official_description":"Health and social work services","contracts":3,"gbp":6519686.12,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"44","official_description":"Construction structures and materials; auxiliary products to construction (except electric apparatus)","contracts":22,"gbp":6493447.41,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":22,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.23,"small_n":false}},{"division":"60","official_description":"Transport services (excl. Waste transport)","contracts":1,"gbp":5400000,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"34","official_description":"Transport equipment and auxiliary products to transportation","contracts":11,"gbp":3383876.66,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":11,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.12,"small_n":false}},{"division":"79","official_description":"Business services: law, marketing, consulting, recruitment, printing and security","contracts":26,"gbp":3227729.83,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":26,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.28,"small_n":false}},{"division":"42","official_description":"Industrial machinery","contracts":5,"gbp":2142781,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":5,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.05,"small_n":false}},{"division":"92","official_description":"Recreational, cultural and sporting services","contracts":2,"gbp":2045235,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"38","official_description":"Laboratory, optical and precision equipments (excl. glasses)","contracts":12,"gbp":1192526.75,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":12,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.13,"small_n":false}},{"division":"39","official_description":"Furniture (incl. office furniture), furnishings, domestic appliances (excl. lighting) and cleaning products","contracts":3,"gbp":1151230,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"03","official_description":"Agricultural, farming, fishing, forestry and related products","contracts":3,"gbp":895695.04,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"70","official_description":"Real estate services","contracts":2,"gbp":656850,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"45","official_description":"Construction work","contracts":4,"gbp":484904,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":4,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.04,"small_n":false}},{"division":"33","official_description":"Medical equipments, pharmaceuticals and personal care products","contracts":6,"gbp":470375,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":6,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.06,"small_n":false}},{"division":"55","official_description":"Hotel, restaurant and retail trade services","contracts":1,"gbp":151700,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"15","official_description":"Food, beverages, tobacco and related products","contracts":1,"gbp":90000,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}}]},"caveats":["Buyer names are matched by normalisation, which misses wording variants (Wirral Borough Council against Wirral Council) and cannot tell an aggregator buying on another body's behalf from the body itself.","Buyers are ranked by how many contracts they publish, which is a measure of publishing behaviour as much as of buying behaviour. A central purchasing body publishing one framework for hundreds of bodies appears once."]}],"caveats":[{"id":"floor","caveat":"Every GBP figure is a floor on published, valued, sterling notices. 8,928 of 9,416 expiring IT contracts state a positive sterling amount; the rest state zero, a negative figure, another currency or nothing, and are excluded rather than estimated.","must_travel_with":"every rendering of the GBP figure"},{"id":"over_count","caveat":"The same figure is also an over-count of committed spend. A framework agreement states a ceiling shared across every appointed supplier, and the call-offs placed under it are published separately and counted too, so the figures are not additive.","must_travel_with":"every rendering of the GBP figure"},{"id":"concentration","caveat":"The largest single notice is 39.19% of the GBP 130.13 bn stated on the 8,928 valued contracts, and the largest ten are 71.32%. One buyer, Crown Commercial Service, carries 69.7% of it. The median of those 8,928 valued contracts is GBP 108,068. Any total or mean describes the frameworks, not the estate.","must_travel_with":"any total or mean"},{"id":"stated_end_date","caveat":"A stated contract end date is not the date a contract ends. Extensions, options and early termination are invisible in published notices. The study measures what buyers published.","must_travel_with":"every use of the word expiry"},{"id":"find_a_tender_blind_spot","caveat":"Find a Tender records a contract end date only on notices PUBLISHED from 24 February 2025, so its contribution is built on 19 months of publishing. That is a publication limit, not a signature one: 19 rows in the dataset were signed before that date and reached it through a later Procurement Act notice. What the service cannot see is a contract whose only notice predates the regime.","must_travel_with":"any per-service comparison"},{"id":"buyer_denominator","caveat":"The buyer count is of distinct NORMALISED names: 1,613 spellings as published collapse to 1,430 keys. The Cabinet Office register holds 7,753 registrations covering 7,337 distinct names as published (7,132 after the same normalisation), and is not a superset of notice publishers, so 'M of the 7,753 registered public buyers' cannot be supported and is not claimed. The register's own identifier does appear on notices and does resolve - 2,340 rows carry one and all of them join - but it is published too rarely, and too often against a different registered name, to be a denominator either.","must_travel_with":"the buyer count"},{"id":"any_cpv_bias","caveat":"The pre-registered any-CPV field rule counts a large non-IT contract whole if it carries a single IT sub-code, and that is most of the money: 52.1% of the stated total sits on 270 contracts whose PRIMARY CPV code is outside CPV divisions 30, 32, 48 and 72, the largest being a Crown Commercial Service electricity and gas supply framework classified to CPV division 09. This pushes the total up, the opposite direction from the floor caveat. The primary-CPV sensitivity bounds it at GBP 62.09 bn and is reported beside the headline.","must_travel_with":"the IT definition and every rendering of the GBP figure"},{"id":"publisher_data_quality","caveat":"The published data contains impossible figures that were counted, not silently kept. Across the whole Contracts Finder harvest: 51 award rows state a contract end date after 2060 and 6 before 2000, and 23 state a negative award value, the largest minus GBP 30,000,000,000 - the minus GBP 4bn row is simply the one that falls inside this window and basket. 18 bulk files are served by the publisher as a saved error page, and 38 notices are published as malformed XML - 34 of them truncated at source and unrecoverable, 4 repaired by adding the namespace declaration the publisher omitted.","must_travel_with":"any claim about completeness"},{"id":"snapshot_anchor","caveat":"The window is anchored to the retrieval date, 2026-09-25. Moving it by a few days moves contracts across its edges.","must_travel_with":"the window"},{"id":"not_a_pipeline","caveat":"Pipeline notices - planned future procurement under the Procurement Act 2023 - are the opposite of an expiring contract. 10,413 were found and every one was kept out.","must_travel_with":"any comparison with published pipelines"}],"method":{"what_was_measured":"Every award or signed-contract notice published on Contracts Finder or the Find a Tender Service whose stated contract period ends in the 12 months after the snapshot date, filtered to IT by a pre-registered CPV rule, deduplicated within and across the two services, and aggregated by month, by buyer and by CPV division.","when":"Snapshot 2026-09-25. Contracts Finder harvested in full 2014-12-17 to 2026-09-23 (4,107 daily bulk files, 666,127 rows, plus 69 OCDS API pages repairing 20 days the publisher serves broken). Find a Tender harvested in full 2021-01-01 to 2026-09-24 (2,006 daily ZIPs, 325,944 notice files).","how":["Both services were harvested from their bulk files on data.gov.uk, published by Crown Commercial Service, not through their OCDS APIs. The APIs are rate limited at 12 requests per two minutes - measured, not assumed - so a full harvest through them is neither viable nor polite. They were used only to repair 20 broken publication days and for spot checks, at one request every 11 seconds.","robots.txt was read for every host before any request. The CKAN API behind data.gov.uk disallows /api/, so the file index was built from the human-readable dataset pages instead, which robots.txt permits. Fetching was capped at three requests a second with at most two in flight, under an identifying User-Agent, and every response was cached to a dated snapshot directory.","Personal data was stripped at source: 1,547,565 non-empty contactPoint cells dropped from the Contracts Finder CSVs before writing, 5,667 contactPoint objects deleted from the API releases, 264,270 contactPoint objects in the Find a Tender corpus never read, and 17 e-mail addresses that buyers had typed into free-text fields scrubbed. A regex sweep of every published output confirms none remains.","Notices were normalised to one row per award or signed-contract block. Planning, tender and pipeline notices carry no award block and never enter.","Deduplicated within each service by OCID - Contracts Finder republishes an amended contract under the same OCID, which removed 21,311 rows here.","Deduplicated within each service a second time, because OCID cannot see the same contract republished under a NEW OCID. The secondary rule is normalised buyer name + normalised title + stated value in whole units + contract end date, across different OCIDs, keeping the earliest-published; it removed 542 further rows. A buyer-independent version of that key would remove 23 more and is deliberately not applied, because inside one service it also matches genuinely different buyers; its size is published instead.","Filtered to IT by the pre-registered CPV rule: the core basket of 702 CPV 2008 codes, counting a notice as IT if any code recorded anywhere on it is in the basket. The rule was written from the official vocabulary and hashed before any expiring value or count existed (2026-09-25T09:21:52Z, sha256 7da4db343cfe2aa3f02a6fa150a2f43ab412007d1e403ff3daaa56722adf74d7). It has not been changed since.","Filtered to contracts whose stated end date falls inside the window.","Deduplicated across the two services by a published secondary rule, because Contracts Finder issues ocds-b5fd17-... and Find a Tender ocds-h6vhtk-... and the two ranges cannot intersect, so an OCID join across them returns zero matches whatever the real overlap is. Two strict keys are used: key A carries the buyer name, key B drops it and requires an exact stated value instead, because the buyer name is the field the two services record differently. On the headline cut key A matched 4 rows and key B 9, 9 in total, out of 16,777 Find a Tender rows tested; a further 7 matched only the loose key, which ignores the value, and were flagged and kept. The test runs once over the whole all-CPV expiring set of each service and every basket cut reuses the flags, so the rows tested are the all-CPV sets, not the IT basket, and the match counts are the matches falling inside the cut.","The Contracts Finder side was re-derived for this analysis from the normalised award table rather than copied from the collection stream's own funnel file, so the two can be compared. Every comparison is published, agreement and disagreement alike."],"funnel":{"contracts_finder_award_rows":459650,"contracts_finder_after_ocid_dedup":438221,"contracts_finder_ending_in_window_all_cpv":28967,"contracts_finder_ending_in_window_core_it":6819,"find_a_tender_expiry_rows":17040,"find_a_tender_ending_in_window_all_cpv":17040,"find_a_tender_ending_in_window_core_it":2606,"all_cpv_ending_in_window_after_cross_service_dedup":45403,"published_after_cross_service_dedup":9416},"limits":["A stated end date is not the date a contract ends.","Only notices that were published can be counted. Below-threshold and exempt contracting is not in scope of either service's publication duty.","Value is what the buyer published. It is never converted, estimated or inferred.","The IT definition is a CPV rule. A buyer who codes an IT purchase to a general office code is invisible to it, and that was accepted in writing in advance.","Contracts Finder publishes no framework flag in its bulk files, so aggregated awards can only be partly identified on that service.","The pre-registered any-CPV field rule is over-inclusive on value by construction: a contract whose primary code is not an IT one counts at its full stated value if a single IT sub-code appears anywhere on the notice. Most of the sterling total is on such contracts, and the primary-CPV variant is published beside the headline so the effect can be read off.","Deduplication within a service is by OCID and then by buyer name, title, value and end date. A body publishing the same contract twice under two OCIDs AND two different names is not caught; a buyer-independent key would catch it but would also merge genuinely different buyers, so its measured size is disclosed rather than acted on.","Four of the eight CPV cuts cannot be rebuilt from the published CSV: core_plus_adjacent and wide, under both field rules. That file is the core cut, so in_core, in_core_plus_adjacent and in_wide all read 1 on every row in it and the extra rows the two wider baskets add are not in the file at all. The other four - narrow and core, under both field rules - do rebuild from it, using in_narrow, in_core and in_core_primary_cpv_rule. Rerun the analysis script for the wider two."],"not_done":["No supplier column, no supplier ranking and no supplier-level total. Buyers do write supplier names into their own notice titles, which are reproduced as published.","No prediction of what will be re-procured or re-competed.","No mixing of pipeline notices with expiry data.","No bulk harvesting through the rate-limited APIs.","No claim that this is the total value of expiring public sector IT contracts."]},"sources":[{"name":"Contracts Finder notices, daily bulk flattened-OCDS CSVs","publisher":"Cabinet Office / Crown Commercial Service","url":"https://www.data.gov.uk/search?q=%22Contracts+Finder+Notices%22","what_was_taken":"Every daily CSV linked from the 172 monthly dataset pages: 4,107 files, 666,127 OCDS releases, 2014-12-17 to 2026-09-23.","retrieved":"2026-09-25","licence":"Open Government Licence v3.0","licence_evidence":"Declared in the license and publicationPolicy columns inside every CSV: license = the National Archives OGL v3.0 URL, publicationPolicy = gov.uk/government/publications/open-contracting. The data.gov.uk dataset pages themselves read 'Licence: Not set'; the only licence statement there is the site-wide footer, so the evidence that matters is the one inside the file.","attribution":"Contains public sector information licensed under the Open Government Licence v3.0.","robots":"www.data.gov.uk disallows only /v1; the S3 file host serves no robots.txt."},{"name":"Contracts Finder OCDS API","publisher":"Cabinet Office / Crown Commercial Service","url":"https://www.contractsfinder.service.gov.uk/Published/Notices/OCDS/Search","what_was_taken":"69 pages, 5,667 releases, used only to repair the 20 publication days the bulk route cannot supply, and for spot checks.","retrieved":"2026-09-25","licence":"Open Government Licence v3.0","licence_evidence":"Declared inside the payload.","attribution":"Contains public sector information licensed under the Open Government Licence v3.0.","rate_limit":"Measured: 'Rate limit of 12 exceeded. Please retry after 120 seconds.' Requests were spaced at one every 11 seconds and no rate-limit response was returned."},{"name":"UK Public Procurement Notices (Find a Tender Service), daily bulk XML","publisher":"Crown Commercial Service","url":"https://www.data.gov.uk/search?q=UK+Public+Procurement+Notices","what_was_taken":"2,006 daily ZIPs from 70 monthly datasets: 325,944 notice files, 2021-01-01 to 2026-09-24.","retrieved":"2026-09-25","licence":"Open Government Licence v3.0","licence_evidence":"The bulk files are TED R2.0.9 XML and declare no licence element at all, and the data.gov.uk dataset pages read 'Licence: Not set'. OGL v3.0 rests on three things instead: the data.gov.uk site-wide statement, the publisher being Crown Commercial Service, and the same notices carrying license = the National Archives OGL v3.0 URL and publicationPolicy = gov.uk/government/publications/open-contracting when served through the Find a Tender OCDS API (checked 25 September 2026).","attribution":"Contains public sector information licensed under the Open Government Licence v3.0."},{"name":"Find a Tender Service OCDS API","publisher":"Crown Commercial Service","url":"https://www.find-tender.service.gov.uk/api/1.0/ocdsReleasePackages","what_was_taken":"A 100-release sample used to establish where each service records CPV, and single-notice spot checks.","retrieved":"2026-09-25","licence":"Open Government Licence v3.0","attribution":"Contains public sector information licensed under the Open Government Licence v3.0."},{"name":"UK buyer identifier register","publisher":"Cabinet Office","url":"https://supplierregistration.cabinetoffice.gov.uk/notices/buyers.csv","what_was_taken":"7,753 buyer registrations: name, corporate identifier, registration status. No personal data; the file contains none.","retrieved":"2026-09-25","licence":"Open Government Licence v3.0","licence_evidence":"Via the Open Contracting publication policy.","attribution":"Contains public sector information licensed under the Open Government Licence v3.0.","used_for":"Context for the buyer count. Never as a denominator."},{"name":"Common Procurement Vocabulary, Annex I to Regulation (EC) No 2195/2002 as amended, in assimilated UK law","publisher":"The National Archives / legislation.gov.uk","url":"https://www.legislation.gov.uk/eur/2002/2195/annex/I/data.xml","what_was_taken":"All 9,454 CPV 2008 codes with their official English descriptions.","retrieved":"2026-09-25","licence":"Commission Decision 2011/833/EU (EUR-Lex re-use), via legislation.gov.uk","licence_url":"https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A32011D0833","attribution":"© European Union, https://eur-lex.europa.eu, 1998-2026.","licence_evidence":"NOT OGL v3.0, and the difference matters because the CPV description is the one field in the published CSV copied verbatim from a source. legislation.gov.uk states in its footer: 'All content is available under the Open Government Licence v3.0 except where otherwise stated. This site additionally contains content derived from EUR-Lex, reused under the terms of the Commission Decision 2011/833/EU on the reuse of documents from the EU institutions.' This item carries the banner 'This item of legislation originated from the EU', so the EUR-Lex basis applies, not the OGL. Checked 25 September 2026.","note":"The CPV vocabulary is cited to legislation.gov.uk rather than simap.ted.europa.eu because ted.europa.eu, simap.ted.europa.eu and eur-lex.europa.eu all answer automated requests with an empty HTTP 202 challenge. The same 9,454 codes were obtained independently from the EU Publications Office SPARQL endpoint and agree on 9,450 of 9,454 English descriptions; the four differences are two CO2 subscript rendering artefacts and two modernisations of wording in UK law ('handicapped' to 'disabled'), none in CPV divisions 30, 32, 48 or 72. The OGL statement on this page covers the notice data and the buyer register, not the CPV vocabulary."}],"disagreements":[{"what":"Two artefacts of the Contracts Finder collection stream give different totals for the same 6,837 expiring contracts - which are the 6,819 Contracts Finder rows published here plus the 18 the second within-service rule removes.","figure_a":{"source":"normalised/cf_it_funnel.json","gbp":114455079057.91},"figure_b":{"source":"a naive sum of every award_value_amount in normalised/cf_it_expiring_12m.csv","gbp":110455079057.91},"resolution":"Not a bug in either file. One Contracts Finder notice states an award value of minus 4,000,000,000 GBP - a framework for ICT goods and services to the education sector, ending 2 October 2026. The funnel excludes non-positive amounts; a naive sum of the extract does not, and lands exactly 4bn lower. This analysis excludes non-positive amounts and counts them: 6 negative award values among the Contracts Finder rows ending in this window, 1 of them inside the headline cut, and 23 across the whole Contracts Finder harvest, the largest minus GBP 30,000,000,000. The row stays in the published dataset with its value as published and a reason code, so nothing is hidden.","reported_because":"the study reports disagreements rather than picking a winner"},{"what":"The brief expected value to be missing on about 17% of notices. Neither service behaves that way.","measured":{"find_a_tender":"every expiring row states value/amountGross and 86.7% state value/amount excluding VAT","contracts_finder":"a value field is present on effectively every award row; the real gap is that 20,665 award rows across the harvest state zero"},"resolution":"The figures are still a floor, but for two different reasons, and both are stated: on Contracts Finder because zero-valued and non-GBP rows are excluded, and on Find a Tender because the service records a contract end date only on notices published from 24 February 2025."},{"what":"The build plan named cross-service duplication as the biggest arithmetic risk. It is not the biggest, and it is not the only one.","measured":{"cross_service_strict_matches":62,"cross_service_strict_matches_key_a":38,"cross_service_strict_matches_key_b":62,"cross_service_loose_key_matches":77,"cross_service_loose_only_matches_flagged_and_kept":30,"find_a_tender_rows_tested":16777,"within_service_rows_removed":542,"in_notice_repeat_rows_flagged":760},"resolution":"Measured on the all-CPV expiring sets of both services, cross-service duplication is small - but the first version of this study measured it with a key that carried the buyer name, and the buyer name is exactly what the two services record differently. Adding a buyer-independent strict key roughly doubled it. Two larger duplications sit elsewhere and are now handled explicitly: the same contract republished under a second OCID inside one service, which OCID deduplication cannot see; and one award block per appointed supplier inside a single notice, each restating the same ceiling. The last of those is the biggest by money: one Contracts Finder notice restates a GBP 250 m education ICT framework ceiling once per appointed supplier."}],"prior_art":[{"work":"Contracts Finder and Find a Tender themselves","what_they_measure":"Both publish and index notices as they are published, and both can be searched or filtered by publication date.","how_this_differs":"Neither publishes a forward view of contracts about to reach their stated end date, and neither combines the two services. This study inverts the axis from publication date to stated end date."},{"work":"Cabinet Office and departmental commercial pipelines","what_they_measure":"Planned future procurement: what buyers intend to go to market for.","how_this_differs":"The opposite direction. Pipeline notices are excluded here by design; 10,413 were identified on Find a Tender and none enters any figure."},{"work":"PSIP, Contract Expiry Tracker","url":"https://psip.co.uk/features/contract-expiry-tracker","what_they_measure":"A live forward expiry view of exactly this kind: UK public sector contracts reaching their published end date in the next 30, 90, 180 or 365 days, aggregated from five portals - Find a Tender, Contracts Finder, Public Contracts Scotland, Sell2Wales and eTendersNI - filterable by CPV code, buyer name, source portal and contract value, and quoting 56,000-plus contracts expiring in the next 12 months. A subscription service from GBP 199 a month (checked 25 September 2026).","how_this_differs":"Wider coverage than this study on portals; narrower on method disclosure. What this study adds is the parts a reader can check: an IT definition pre-registered and hashed before any result existed, published narrow and wide sensitivities around it, a published deduplication rule with its measured duplicate counts, five published ways of totalling the same pounds, and the row-level dataset itself under an open licence."},{"work":"Stotles, public notice explorer (expiring-contracts view)","url":"https://www.stotles.com/explore/notices/topics/software?type=expiring_contracts","what_they_measure":"A free-to-view, paginated browser of UK public sector contracts by expiry date, including a software cut, each entry showing an expiry date and a stated value, drawn from Contracts Finder among other sources (checked 25 September 2026).","how_this_differs":"That view is a browsable list, one notice at a time. This study is an aggregate with the arithmetic shown: a stated IT definition rather than a topic label, a deduplication rule between the two UK-wide services with its duplicate count published, and a downloadable dataset that reproduces every figure on the page."},{"work":"Tussell, with the Institute for Government and AutogenAI, on UK government IT contracts expiring during this Parliament (September 2024); Tussell's published strategic-supplier expiry totals","url":"https://www.tussell.com/insights/uk-government-strategic-suppliers","what_they_measure":"Forward expiry value at the level of central government IT and of the government's strategic suppliers - GBP 23.4 bn of UK government IT contracts due to end during the Parliament, and GBP 41.7 bn of live strategic supplier contracts set to expire in the remainder of it. Supplier-led, over a parliamentary term.","how_this_differs":"A different population and a different clock: all UK public sector buyers rather than central government or strategic suppliers, a fixed 12-month window rather than a Parliament, buyers and timing rather than suppliers, and a CPV rule fixed in advance rather than a sector label. It names no supplier at all."},{"work":"Servnet, 'UK public sector and VMware after Broadcom: a contract-notice tracker'","what_they_measure":"One vendor's footprint in the same notice family, by publication over time.","how_this_differs":"A different cut of the same sources: all IT by CPV, forward expiry rather than vendor mention. The two do not overlap and this one links to that rather than repeating it."}],"novelty":"Forward expiry views of these feeds already exist. PSIP sells one across five UK portals, filterable by CPV code and buyer; Stotles publishes a free browsable expiring-contracts list including a software cut; Tussell, with the Institute for Government, has published forward IT expiry totals for central government over a Parliament. Neither the data nor the idea is new here. What this study adds is the method in the open: an IT definition pre-registered and hashed before any result existed and published with narrow and wide sensitivities, a deduplication rule stated in full with the number of duplicates it removed, five published ways of totalling the same pounds rather than one, and the row-level dataset under an open licence so every figure on this page can be recomputed - or contradicted - from bulk files anyone can download.","dataset":{"csv":"/research/uk-public-sector-it-contract-expiry-2026.csv","readme":"/research/uk-public-sector-it-contract-expiry-2026-README.txt","rows":9416,"licence":"Open Government Licence v3.0","attribution":"Contains public sector information licensed under the Open Government Licence v3.0."}},"data":{"headline_cut":{"label":"core IT basket, any-CPV field rule, 12-month window","contracts":9416,"small_n":false,"distinct_buyers_by_normalised_name":1430,"distinct_buyer_records_by_service":{"contracts-finder":2147,"find-a-tender":638},"distinct_buyer_names_by_service":{"contracts-finder":1102,"find-a-tender":657},"by_service":{"contracts-finder":6819,"find-a-tender":2597},"gbp_total_as_published":130127298368.08,"gbp_total_as_published_bn":130.13,"rows_in_the_gbp_total":8928,"rows_excluded_from_the_gbp_total":{"value stated as zero":131,"no value stated":294,"value stated in USD, not converted":44,"value stated as a negative amount":1,"value stated in EUR, not converted":18},"value_coverage":{"n":8928,"denominator":9416,"denominator_label":"all 9,416 contracts in this cut","pct":94.82,"small_n":false},"value_quantiles_gbp":{"n":8928,"min":0.01,"p25":44286,"median":108068.5,"p75":354000,"max":51000000000,"mean":14575190.23,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":39.19,"top_5_share_pct":60.77,"top_10_share_pct":71.32,"top_20_share_pct":81.14,"top_50_share_pct":89.31,"top_100_share_pct":94,"contracts_carrying_50pct_of_the_value":3,"contracts_carrying_80pct_of_the_value":19,"contracts_carrying_90pct_of_the_value":54,"contracts_carrying_95pct_of_the_value":136,"contracts_carrying_99pct_of_the_value":1148,"contracts_with_a_value":8928},"by_expiry_month_contracts":{"2026-09":511,"2026-10":721,"2026-11":637,"2026-12":813,"2027-01":630,"2027-02":612,"2027-03":2082,"2027-04":663,"2027-05":609,"2027-06":665,"2027-07":688,"2027-08":537,"2027-09":248},"by_expiry_month_gbp":{"2026-09":756025546.26,"2026-10":7914830555.54,"2026-11":6392421287.3,"2026-12":5514081404.98,"2027-01":1126902506.83,"2027-02":61916542258.93,"2027-03":5049229111.07,"2027-04":1707976543.95,"2027-05":2226437685.6,"2027-06":1596288023.34,"2027-07":26851468646.59,"2027-08":7768082125.61,"2027-09":1307012672.08},"biggest_month_by_contract_count":{"month":"2027-03","contracts":2082},"biggest_single_end_date":{"date":"2027-03-31","contracts":1405},"biggest_month_by_gbp":{"month":"2027-02","gbp":61916542258.93},"by_primary_cpv_division":[{"division":"48","official_description":"Software package and information systems","contracts":4282,"gbp":12133509373.87,"gbp_bn":12.13,"share_of_the_gbp_total_pct":9.3,"is_an_it_division":true,"share":{"n":4282,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":45.48,"small_n":false}},{"division":"72","official_description":"IT services: consulting, software development, Internet and support","contracts":4104,"gbp":36170549085.93,"gbp_bn":36.17,"share_of_the_gbp_total_pct":27.8,"is_an_it_division":true,"share":{"n":4104,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":43.59,"small_n":false}},{"division":"32","official_description":"Radio, television, communication, telecommunication and related equipment","contracts":400,"gbp":526978129.89,"gbp_bn":0.53,"share_of_the_gbp_total_pct":0.4,"is_an_it_division":true,"share":{"n":400,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":4.25,"small_n":false}},{"division":"30","official_description":"Office and computing machinery, equipment and supplies except furniture and software packages","contracts":360,"gbp":13459145817.42,"gbp_bn":13.46,"share_of_the_gbp_total_pct":10.3,"is_an_it_division":true,"share":{"n":360,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":3.82,"small_n":false}},{"division":"71","official_description":"Architectural, construction, engineering and inspection services","contracts":68,"gbp":2453918099.16,"gbp_bn":2.45,"share_of_the_gbp_total_pct":1.9,"is_an_it_division":false,"share":{"n":68,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.72,"small_n":false}},{"division":"79","official_description":"Business services: law, marketing, consulting, recruitment, printing and security","contracts":26,"gbp":3227729.83,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":26,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.28,"small_n":false}},{"division":"44","official_description":"Construction structures and materials; auxiliary products to construction (except electric apparatus)","contracts":22,"gbp":6493447.41,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":22,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.23,"small_n":false}},{"division":"66","official_description":"Financial and insurance services","contracts":17,"gbp":2613750829.16,"gbp_bn":2.61,"share_of_the_gbp_total_pct":2,"is_an_it_division":false,"share":{"n":17,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.18,"small_n":false}},{"division":"22","official_description":"Printed matter and related products","contracts":14,"gbp":98673839.7,"gbp_bn":0.1,"share_of_the_gbp_total_pct":0.1,"is_an_it_division":false,"share":{"n":14,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.15,"small_n":false}},{"division":"38","official_description":"Laboratory, optical and precision equipments (excl. glasses)","contracts":12,"gbp":1192526.75,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":12,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.13,"small_n":false}},{"division":"50","official_description":"Repair and maintenance services","contracts":12,"gbp":113655537.26,"gbp_bn":0.11,"share_of_the_gbp_total_pct":0.1,"is_an_it_division":false,"share":{"n":12,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.13,"small_n":false}},{"division":"73","official_description":"Research and development services and related consultancy services","contracts":11,"gbp":8819766.54,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":11,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.12,"small_n":false}},{"division":"34","official_description":"Transport equipment and auxiliary products to transportation","contracts":11,"gbp":3383876.66,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":11,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.12,"small_n":false}},{"division":"64","official_description":"Postal and telecommunications services","contracts":10,"gbp":1562941253.48,"gbp_bn":1.56,"share_of_the_gbp_total_pct":1.2,"is_an_it_division":false,"share":{"n":10,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.11,"small_n":false}},{"division":"35","official_description":"Security, fire-fighting, police and defence equipment","contracts":9,"gbp":36934112.82,"gbp_bn":0.04,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":9,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.1,"small_n":false}},{"division":"09","official_description":"Petroleum products, fuel, electricity and other sources of energy","contracts":7,"gbp":51288062101.06,"gbp_bn":51.29,"share_of_the_gbp_total_pct":39.4,"is_an_it_division":false,"share":{"n":7,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.07,"small_n":false}},{"division":"80","official_description":"Education and training services","contracts":7,"gbp":40588700,"gbp_bn":0.04,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":7,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.07,"small_n":false}},{"division":"33","official_description":"Medical equipments, pharmaceuticals and personal care products","contracts":6,"gbp":470375,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":6,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.06,"small_n":false}},{"division":"42","official_description":"Industrial machinery","contracts":5,"gbp":2142781,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":5,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.05,"small_n":false}},{"division":"31","official_description":"Electrical machinery, apparatus, equipment and consumables; lighting","contracts":5,"gbp":8874649904,"gbp_bn":8.87,"share_of_the_gbp_total_pct":6.8,"is_an_it_division":false,"share":{"n":5,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.05,"small_n":false}},{"division":"98","official_description":"Other community, social and personal services","contracts":4,"gbp":19165780.98,"gbp_bn":0.02,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":4,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.04,"small_n":false}},{"division":"45","official_description":"Construction work","contracts":4,"gbp":484904,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":4,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.04,"small_n":false}},{"division":"85","official_description":"Health and social work services","contracts":3,"gbp":6519686.12,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"03","official_description":"Agricultural, farming, fishing, forestry and related products","contracts":3,"gbp":895695.04,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"39","official_description":"Furniture (incl. office furniture), furnishings, domestic appliances (excl. lighting) and cleaning products","contracts":3,"gbp":1151230,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":3,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.03,"small_n":false}},{"division":"92","official_description":"Recreational, cultural and sporting services","contracts":2,"gbp":2045235,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"51","official_description":"Installation services (except software)","contracts":2,"gbp":6650000,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"70","official_description":"Real estate services","contracts":2,"gbp":656850,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":2,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.02,"small_n":false}},{"division":"55","official_description":"Hotel, restaurant and retail trade services","contracts":1,"gbp":151700,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"15","official_description":"Food, beverages, tobacco and related products","contracts":1,"gbp":90000,"gbp_bn":0,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"60","official_description":"Transport services (excl. Waste transport)","contracts":1,"gbp":5400000,"gbp_bn":0.01,"share_of_the_gbp_total_pct":0,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"18","official_description":"Clothing, footwear, luggage articles and accessories","contracts":1,"gbp":250000000,"gbp_bn":0.25,"share_of_the_gbp_total_pct":0.2,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}},{"division":"75","official_description":"Administration, defence and social security services","contracts":1,"gbp":435000000,"gbp_bn":0.43,"share_of_the_gbp_total_pct":0.3,"is_an_it_division":false,"share":{"n":1,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":0.01,"small_n":false}}],"by_primary_cpv_division_gbp":{"15":90000,"18":250000000,"22":98673839.7,"30":13459145817.42,"31":8874649904,"32":526978129.89,"33":470375,"34":3383876.66,"35":36934112.82,"38":1192526.75,"39":1151230,"42":2142781,"44":6493447.41,"45":484904,"48":12133509373.87,"50":113655537.26,"51":6650000,"55":151700,"60":5400000,"64":1562941253.48,"66":2613750829.16,"70":656850,"71":2453918099.16,"72":36170549085.93,"73":8819766.54,"75":435000000,"79":3227729.83,"80":40588700,"85":6519686.12,"92":2045235,"98":19165780.98,"09":51288062101.06,"03":895695.04},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":62290182407.11,"gbp_on_other_primary_divisions":67837115960.97,"share_of_total_on_other_primary_divisions_pct":52.1,"rows_on_other_primary_divisions":270,"largest_other_division":{"division":"09","gbp":51288062101.06,"share_of_total_pct":39.4},"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}},"value_variants":{"v1_as_published":{"definition":"Every deduplicated row that states a positive GBP amount, summed exactly as the buyer published it. This is the pre-registered headline basis.","gbp":130127298368.08,"gbp_bn":130.13,"rows":8928},"v2_in_notice_repeats_collapsed":{"definition":"v1 with rows that simply restate another row inside the same notice removed: one award or contracts block per appointed supplier, each restating the same value and the same contract period. A row counts as a repeat where another row in the same notice states an identical value, an identical contract start date and an identical contract end date; the first in publication order is kept. Rebuild it from the CSV by summing value_amount_gbp where value_used_in_gbp_total = 1 and in_notice_repeat = 0.","gbp":124021584692.97,"gbp_bn":124.02,"rows":8835,"rows_removed":93,"rows_flagged_in_notice_repeat_including_unvalued":94},"v3_aggregated_awards_excluded":{"definition":"v2 with framework agreements, dynamic purchasing systems and multi-supplier lot awards removed, because their stated value is a ceiling shared across suppliers and is not additive with the call-offs placed under it. This is CUMULATIVE: it is in-notice repeats collapsed AND aggregated awards excluded, not an independent cut of v1.","gbp":97121555323.32,"gbp_bn":97.12,"rows":8716,"rows_removed":119,"rows_flagged_aggregated_including_unvalued":138,"rebuild_from_the_csv":"this cut is CUMULATIVE on v2, not an independent cut of v1: sum value_amount_gbp where value_used_in_gbp_total = 1 AND in_notice_repeat = 0 AND aggregated_award = 0. Applying aggregated_award = 0 on its own gives a different, larger figure.","known_incompleteness":"Contracts Finder publishes no framework flag of its own, so on that service this rests on notice titles and supplier counts alone and is certainly incomplete. The single largest expiring row in the study is not caught by it."},"v4_largest_one_percent_excluded":{"definition":"v1 with the largest 1% of rows by value removed. Purely mechanical: it needs no classifier and no judgement. 1% is rounded DOWN to a whole number of rows, so on this cut the largest 89 of 8,928 valued rows are dropped, not 90.","gbp":8409602277.54,"gbp_bn":8.41,"rows_removed":89,"rounding_rule":"the number of rows removed is floor(n / 100), never fewer than one: floor(8928 / 100) = 89","rows":8839},"v5_primary_cpv_field_rule":{"definition":"The pre-registered sensitivity: the same window and basket, but a notice counts as IT only on its primary CPV code, not on any code recorded anywhere on it.","gbp":62094690309.6,"gbp_bn":62.09,"rows":8628,"contracts":9085}},"cpv_sensitivities":{"narrow|any_cpv":{"label":"narrow basket, any_cpv field rule","contracts":4764,"small_n":false,"distinct_buyers_by_normalised_name":1073,"distinct_buyer_records_by_service":{"contracts-finder":1357,"find-a-tender":515},"distinct_buyer_names_by_service":{"contracts-finder":781,"find-a-tender":527},"by_service":{"contracts-finder":3182,"find-a-tender":1582},"gbp_total_as_published":123219884114.95,"gbp_total_as_published_bn":123.22,"rows_in_the_gbp_total":4487,"rows_excluded_from_the_gbp_total":{"value stated as zero":63,"value stated as a negative amount":1,"no value stated":190,"value stated in EUR, not converted":8,"value stated in USD, not converted":15},"value_coverage":{"n":4487,"denominator":4764,"denominator_label":"all 4,764 contracts in this cut","pct":94.19,"small_n":false},"value_quantiles_gbp":{"n":4487,"min":0.01,"p25":49956,"median":129000,"p75":519645,"max":51000000000,"mean":27461529.78,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":41.39,"top_5_share_pct":64.17,"top_10_share_pct":75.32,"top_20_share_pct":84.95,"top_50_share_pct":92.46,"top_100_share_pct":95.94,"contracts_carrying_50pct_of_the_value":3,"contracts_carrying_80pct_of_the_value":14,"contracts_carrying_90pct_of_the_value":38,"contracts_carrying_95pct_of_the_value":76,"contracts_carrying_99pct_of_the_value":496,"contracts_with_a_value":4487},"by_expiry_month_contracts":{"2026-09":267,"2026-10":382,"2026-11":319,"2026-12":418,"2027-01":303,"2027-02":286,"2027-03":1060,"2027-04":363,"2027-05":330,"2027-06":317,"2027-07":333,"2027-08":260,"2027-09":126},"by_expiry_month_gbp":{"2026-09":646850902.86,"2026-10":7097995883.45,"2026-11":5408327152.57,"2026-12":3734755346.72,"2027-01":425160492.85,"2027-02":61782154057.58,"2027-03":4060025660.86,"2027-04":1435162510.98,"2027-05":1733166684.36,"2027-06":1398627007.38,"2027-07":26715761226.05,"2027-08":7552231602.65,"2027-09":1229665586.64},"biggest_month_by_contract_count":{"month":"2027-03","contracts":1060},"biggest_single_end_date":{"date":"2027-03-31","contracts":757},"biggest_month_by_gbp":{"month":"2027-02","gbp":61782154057.58},"by_primary_cpv_division":{"22":6,"30":32,"31":4,"32":34,"33":2,"34":7,"35":7,"38":7,"39":2,"42":1,"44":9,"45":4,"48":394,"50":8,"51":2,"55":1,"60":1,"64":8,"66":16,"70":2,"71":65,"72":4104,"73":10,"75":1,"79":16,"80":7,"85":1,"92":2,"98":4,"09":4,"03":3},"by_primary_cpv_division_gbp":{"22":97306779.7,"30":11591822653.7,"31":8874480515,"32":309745504.43,"33":470371,"34":2626908.66,"35":34066814,"38":589166.75,"39":913150,"42":248900,"44":2748452.72,"45":484904,"48":9205590538.38,"50":45729623.46,"51":6650000,"55":151700,"60":5400000,"64":926129.48,"66":2613587345.56,"70":656850,"71":2453588475.16,"72":36170549085.93,"73":8789873.54,"75":435000000,"79":2064962.46,"80":40588700,"85":6000000,"92":2045235,"98":19165780.98,"09":51287000000,"03":895695.04},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":57277707782.44,"gbp_on_other_primary_divisions":65942176332.51,"share_of_total_on_other_primary_divisions_pct":53.5,"rows_on_other_primary_divisions":200,"largest_other_division":{"division":"09","gbp":51287000000,"share_of_total_pct":41.6},"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}},"narrow|primary_cpv":{"label":"narrow basket, primary_cpv field rule","contracts":4104,"small_n":false,"distinct_buyers_by_normalised_name":964,"distinct_buyer_records_by_service":{"contracts-finder":1213,"find-a-tender":469},"distinct_buyer_names_by_service":{"contracts-finder":698,"find-a-tender":481},"by_service":{"contracts-finder":2789,"find-a-tender":1315},"gbp_total_as_published":36170549085.93,"gbp_total_as_published_bn":36.17,"rows_in_the_gbp_total":3875,"rows_excluded_from_the_gbp_total":{"value stated as zero":50,"value stated as a negative amount":1,"no value stated":158,"value stated in EUR, not converted":8,"value stated in USD, not converted":12},"value_coverage":{"n":3875,"denominator":4104,"denominator_label":"all 4,104 contracts in this cut","pct":94.42,"small_n":false},"value_quantiles_gbp":{"n":3875,"min":0.01,"p25":50000,"median":130000,"p75":523764,"max":6700000000,"mean":9334335.25,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":18.52,"top_5_share_pct":49.6,"top_10_share_pct":62.46,"top_20_share_pct":70.43,"top_50_share_pct":84.97,"top_100_share_pct":90.09,"contracts_carrying_50pct_of_the_value":6,"contracts_carrying_80pct_of_the_value":35,"contracts_carrying_90pct_of_the_value":99,"contracts_carrying_95pct_of_the_value":264,"contracts_carrying_99pct_of_the_value":978,"contracts_with_a_value":3875},"by_expiry_month_contracts":{"2026-09":239,"2026-10":330,"2026-11":267,"2026-12":367,"2027-01":272,"2027-02":242,"2027-03":928,"2027-04":319,"2027-05":294,"2027-06":267,"2027-07":276,"2027-08":203,"2027-09":100},"by_expiry_month_gbp":{"2026-09":637600706.79,"2026-10":7008627721.64,"2026-11":901522939.72,"2026-12":510725103.01,"2027-01":283937180.23,"2027-02":420071849.67,"2027-03":3137772948.07,"2027-04":1121575446.91,"2027-05":1091955868.4,"2027-06":905856500.83,"2027-07":18441826749.35,"2027-08":582416330.8,"2027-09":1126659740.51},"biggest_month_by_contract_count":{"month":"2027-03","contracts":928},"biggest_single_end_date":{"date":"2027-03-31","contracts":669},"biggest_month_by_gbp":{"month":"2027-07","gbp":18441826749.35},"by_primary_cpv_division":{"72":4104},"by_primary_cpv_division_gbp":{"72":36170549085.93},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":36170549085.93,"gbp_on_other_primary_divisions":0,"share_of_total_on_other_primary_divisions_pct":0,"rows_on_other_primary_divisions":0,"largest_other_division":null,"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}},"core|any_cpv":{"label":"core basket, any_cpv field rule","contracts":9416,"small_n":false,"distinct_buyers_by_normalised_name":1430,"distinct_buyer_records_by_service":{"contracts-finder":2147,"find-a-tender":638},"distinct_buyer_names_by_service":{"contracts-finder":1102,"find-a-tender":657},"by_service":{"contracts-finder":6819,"find-a-tender":2597},"gbp_total_as_published":130127298368.08,"gbp_total_as_published_bn":130.13,"rows_in_the_gbp_total":8928,"rows_excluded_from_the_gbp_total":{"value stated as zero":131,"value stated as a negative amount":1,"no value stated":294,"value stated in USD, not converted":44,"value stated in EUR, not converted":18},"value_coverage":{"n":8928,"denominator":9416,"denominator_label":"all 9,416 contracts in this cut","pct":94.82,"small_n":false},"value_quantiles_gbp":{"n":8928,"min":0.01,"p25":44286,"median":108068.5,"p75":354000,"max":51000000000,"mean":14575190.23,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":39.19,"top_5_share_pct":60.77,"top_10_share_pct":71.32,"top_20_share_pct":81.14,"top_50_share_pct":89.31,"top_100_share_pct":94,"contracts_carrying_50pct_of_the_value":3,"contracts_carrying_80pct_of_the_value":19,"contracts_carrying_90pct_of_the_value":54,"contracts_carrying_95pct_of_the_value":136,"contracts_carrying_99pct_of_the_value":1148,"contracts_with_a_value":8928},"by_expiry_month_contracts":{"2026-09":511,"2026-10":721,"2026-11":637,"2026-12":813,"2027-01":630,"2027-02":612,"2027-03":2082,"2027-04":663,"2027-05":609,"2027-06":665,"2027-07":688,"2027-08":537,"2027-09":248},"by_expiry_month_gbp":{"2026-09":756025546.26,"2026-10":7914830555.54,"2026-11":6392421287.3,"2026-12":5514081404.98,"2027-01":1126902506.83,"2027-02":61916542258.93,"2027-03":5049229111.07,"2027-04":1707976543.95,"2027-05":2226437685.6,"2027-06":1596288023.34,"2027-07":26851468646.59,"2027-08":7768082125.61,"2027-09":1307012672.08},"biggest_month_by_contract_count":{"month":"2027-03","contracts":2082},"biggest_single_end_date":{"date":"2027-03-31","contracts":1405},"biggest_month_by_gbp":{"month":"2027-02","gbp":61916542258.93},"by_primary_cpv_division":{"15":1,"18":1,"22":14,"30":360,"31":5,"32":400,"33":6,"34":11,"35":9,"38":12,"39":3,"42":5,"44":22,"45":4,"48":4282,"50":12,"51":2,"55":1,"60":1,"64":10,"66":17,"70":2,"71":68,"72":4104,"73":11,"75":1,"79":26,"80":7,"85":3,"92":2,"98":4,"09":7,"03":3},"by_primary_cpv_division_gbp":{"15":90000,"18":250000000,"22":98673839.7,"30":13459145817.42,"31":8874649904,"32":526978129.89,"33":470375,"34":3383876.66,"35":36934112.82,"38":1192526.75,"39":1151230,"42":2142781,"44":6493447.41,"45":484904,"48":12133509373.87,"50":113655537.26,"51":6650000,"55":151700,"60":5400000,"64":1562941253.48,"66":2613750829.16,"70":656850,"71":2453918099.16,"72":36170549085.93,"73":8819766.54,"75":435000000,"79":3227729.83,"80":40588700,"85":6519686.12,"92":2045235,"98":19165780.98,"09":51288062101.06,"03":895695.04},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":62290182407.11,"gbp_on_other_primary_divisions":67837115960.97,"share_of_total_on_other_primary_divisions_pct":52.1,"rows_on_other_primary_divisions":270,"largest_other_division":{"division":"09","gbp":51288062101.06,"share_of_total_pct":39.4},"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}},"core|primary_cpv":{"label":"core basket, primary_cpv field rule","contracts":9085,"small_n":false,"distinct_buyers_by_normalised_name":1389,"distinct_buyer_records_by_service":{"contracts-finder":2079,"find-a-tender":622},"distinct_buyer_names_by_service":{"contracts-finder":1072,"find-a-tender":638},"by_service":{"contracts-finder":6578,"find-a-tender":2507},"gbp_total_as_published":62094690309.6,"gbp_total_as_published_bn":62.09,"rows_in_the_gbp_total":8628,"rows_excluded_from_the_gbp_total":{"value stated as zero":113,"value stated as a negative amount":1,"no value stated":281,"value stated in USD, not converted":44,"value stated in EUR, not converted":18},"value_coverage":{"n":8628,"denominator":9085,"denominator_label":"all 9,085 contracts in this cut","pct":94.97,"small_n":false},"value_quantiles_gbp":{"n":8628,"min":0.01,"p25":43990.53,"median":107075.52,"p75":350000,"max":10000000000,"mean":7196881.12,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":16.1,"top_5_share_pct":45.32,"top_10_share_pct":59.72,"top_20_share_pct":71.09,"top_50_share_pct":83.19,"top_100_share_pct":89.19,"contracts_carrying_50pct_of_the_value":7,"contracts_carrying_80pct_of_the_value":41,"contracts_carrying_90pct_of_the_value":117,"contracts_carrying_95pct_of_the_value":388,"contracts_carrying_99pct_of_the_value":2169,"contracts_with_a_value":8628},"by_expiry_month_contracts":{"2026-09":494,"2026-10":686,"2026-11":613,"2026-12":788,"2027-01":614,"2027-02":586,"2027-03":2014,"2027-04":648,"2027-05":592,"2027-06":640,"2027-07":665,"2027-08":511,"2027-09":234},"by_expiry_month_gbp":{"2026-09":751177313.27,"2026-10":7868698854,"2026-11":6270486511.27,"2026-12":1402437992.75,"2027-01":1005367191.74,"2027-02":10912004990.11,"2027-03":4205431935.52,"2027-04":1401170857.11,"2027-05":1377158179.78,"2027-06":1148046304.29,"2027-07":18711984096.27,"2027-08":5783184117.07,"2027-09":1257541966.42},"biggest_month_by_contract_count":{"month":"2027-03","contracts":2014},"biggest_single_end_date":{"date":"2027-03-31","contracts":1360},"biggest_month_by_gbp":{"month":"2027-07","gbp":18711984096.27},"by_primary_cpv_division":{"30":329,"32":370,"48":4282,"72":4104},"by_primary_cpv_division_gbp":{"30":13379337327.91,"32":411294521.89,"48":12133509373.87,"72":36170549085.93},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":62094690309.6,"gbp_on_other_primary_divisions":0,"share_of_total_on_other_primary_divisions_pct":0,"rows_on_other_primary_divisions":0,"largest_other_division":null,"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}},"core_plus_adjacent|any_cpv":{"label":"core_plus_adjacent basket, any_cpv field rule","contracts":9729,"small_n":false,"distinct_buyers_by_normalised_name":1445,"distinct_buyer_records_by_service":{"contracts-finder":2194,"find-a-tender":653},"distinct_buyer_names_by_service":{"contracts-finder":1115,"find-a-tender":669},"by_service":{"contracts-finder":7023,"find-a-tender":2706},"gbp_total_as_published":131180470994.4,"gbp_total_as_published_bn":131.18,"rows_in_the_gbp_total":9218,"rows_excluded_from_the_gbp_total":{"value stated as zero":138,"value stated as a negative amount":1,"no value stated":309,"value stated in USD, not converted":44,"value stated in EUR, not converted":19},"value_coverage":{"n":9218,"denominator":9729,"denominator_label":"all 9,729 contracts in this cut","pct":94.75,"small_n":false},"value_quantiles_gbp":{"n":9218,"min":0.01,"p25":44000,"median":108000,"p75":352807,"max":51000000000,"mean":14230903.77,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":38.88,"top_5_share_pct":60.28,"top_10_share_pct":70.75,"top_20_share_pct":80.49,"top_50_share_pct":88.6,"top_100_share_pct":93.47,"contracts_carrying_50pct_of_the_value":3,"contracts_carrying_80pct_of_the_value":20,"contracts_carrying_90pct_of_the_value":58,"contracts_carrying_95pct_of_the_value":153,"contracts_carrying_99pct_of_the_value":1216,"contracts_with_a_value":9218},"by_expiry_month_contracts":{"2026-09":520,"2026-10":743,"2026-11":660,"2026-12":836,"2027-01":648,"2027-02":631,"2027-03":2147,"2027-04":691,"2027-05":634,"2027-06":685,"2027-07":722,"2027-08":556,"2027-09":256},"by_expiry_month_gbp":{"2026-09":756323152.4,"2026-10":7999793814.46,"2026-11":6400111275.04,"2026-12":5528040469.78,"2027-01":1141546508.62,"2027-02":61927982157.93,"2027-03":5137888481.51,"2027-04":1722712735.94,"2027-05":2351441123.27,"2027-06":1612358417.22,"2027-07":27520208077.54,"2027-08":7774019142.89,"2027-09":1308045637.8},"biggest_month_by_contract_count":{"month":"2027-03","contracts":2147},"biggest_single_end_date":{"date":"2027-03-31","contracts":1448},"biggest_month_by_gbp":{"month":"2027-02","gbp":61927982157.93},"by_primary_cpv_division":{"15":1,"18":1,"22":14,"30":361,"31":5,"32":404,"33":10,"34":13,"35":14,"38":27,"39":3,"42":8,"44":23,"45":22,"48":4282,"50":113,"51":15,"55":1,"60":1,"64":149,"66":17,"70":2,"71":68,"72":4104,"73":11,"75":1,"79":27,"80":12,"85":3,"90":1,"92":2,"98":4,"09":7,"03":3},"by_primary_cpv_division_gbp":{"15":90000,"18":250000000,"22":98673839.7,"30":13459145817.42,"31":8874649904,"32":527120453.22,"33":1624177,"34":50848291.66,"35":37342832.48,"38":2779427.63,"39":1151230,"42":2338076.31,"44":6574447.41,"45":646413530.1,"48":12133509373.87,"50":167932676.51,"51":17492453.44,"55":151700,"60":5400000,"64":1822849419.83,"66":2613750829.16,"70":656850,"71":2453918099.16,"72":36170549085.93,"73":8819766.54,"75":435000000,"79":3318689.83,"80":71681150,"85":6519686.12,"90":375,"92":2045235,"98":19165780.98,"09":51288062101.06,"03":895695.04},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":62290324730.44,"gbp_on_other_primary_divisions":68890146263.96,"share_of_total_on_other_primary_divisions_pct":52.5,"rows_on_other_primary_divisions":578,"largest_other_division":{"division":"09","gbp":51288062101.06,"share_of_total_pct":39.1},"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}},"core_plus_adjacent|primary_cpv":{"label":"core_plus_adjacent basket, primary_cpv field rule","contracts":9388,"small_n":false,"distinct_buyers_by_normalised_name":1406,"distinct_buyer_records_by_service":{"contracts-finder":2128,"find-a-tender":634},"distinct_buyer_names_by_service":{"contracts-finder":1088,"find-a-tender":647},"by_service":{"contracts-finder":6777,"find-a-tender":2611},"gbp_total_as_published":64654174580.25,"gbp_total_as_published_bn":64.65,"rows_in_the_gbp_total":8908,"rows_excluded_from_the_gbp_total":{"value stated as zero":119,"value stated as a negative amount":1,"no value stated":298,"value stated in USD, not converted":44,"value stated in EUR, not converted":18},"value_coverage":{"n":8908,"denominator":9388,"denominator_label":"all 9,388 contracts in this cut","pct":94.89,"small_n":false},"value_quantiles_gbp":{"n":8908,"min":0.01,"p25":43858.7,"median":106229.2,"p75":350000,"max":10000000000,"mean":7257989.96,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":15.47,"top_5_share_pct":43.52,"top_10_share_pct":58.23,"top_20_share_pct":69.92,"top_50_share_pct":82.07,"top_100_share_pct":88.67,"contracts_carrying_50pct_of_the_value":7,"contracts_carrying_80pct_of_the_value":44,"contracts_carrying_90pct_of_the_value":125,"contracts_carrying_95pct_of_the_value":399,"contracts_carrying_99pct_of_the_value":2220,"contracts_with_a_value":8908},"by_expiry_month_contracts":{"2026-09":502,"2026-10":705,"2026-11":636,"2026-12":814,"2027-01":631,"2027-02":606,"2027-03":2073,"2027-04":675,"2027-05":618,"2027-06":658,"2027-07":699,"2027-08":528,"2027-09":243},"by_expiry_month_gbp":{"2026-09":751447922.41,"2026-10":7875417697.92,"2026-11":6278391946.83,"2026-12":2978458350.55,"2027-01":1020011193.53,"2027-02":10923708594.11,"2027-03":4330567665.84,"2027-04":1415867826.94,"2027-05":1502271217.05,"2027-06":1162948054.6,"2027-07":19367306288.52,"2027-08":5789127889.81,"2027-09":1258649932.14},"biggest_month_by_contract_count":{"month":"2027-03","contracts":2073},"biggest_single_end_date":{"date":"2027-03-31","contracts":1398},"biggest_month_by_gbp":{"month":"2027-07","gbp":19367306288.52},"by_primary_cpv_division":{"30":329,"32":370,"33":2,"35":3,"38":18,"42":3,"45":16,"48":4282,"50":97,"51":12,"64":149,"72":4104,"80":3},"by_primary_cpv_division_gbp":{"30":13379337327.91,"32":411294521.89,"33":133802,"35":223435.93,"38":1783209.88,"42":195295.31,"45":645721629.1,"48":12133509373.87,"50":76863529.7,"51":10771498.9,"64":1822849419.83,"72":36170549085.93,"80":942450},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":62094690309.6,"gbp_on_other_primary_divisions":2559484270.65,"share_of_total_on_other_primary_divisions_pct":4,"rows_on_other_primary_divisions":303,"largest_other_division":{"division":"64","gbp":1822849419.83,"share_of_total_pct":2.8},"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}},"wide|any_cpv":{"label":"wide basket, any_cpv field rule","contracts":9945,"small_n":false,"distinct_buyers_by_normalised_name":1472,"distinct_buyer_records_by_service":{"contracts-finder":2248,"find-a-tender":656},"distinct_buyer_names_by_service":{"contracts-finder":1138,"find-a-tender":676},"by_service":{"contracts-finder":7215,"find-a-tender":2730},"gbp_total_as_published":130936117092.15,"gbp_total_as_published_bn":130.94,"rows_in_the_gbp_total":9420,"rows_excluded_from_the_gbp_total":{"value stated as zero":146,"value stated as a negative amount":1,"no value stated":311,"value stated in USD, not converted":45,"value stated in EUR, not converted":22},"value_coverage":{"n":9420,"denominator":9945,"denominator_label":"all 9,945 contracts in this cut","pct":94.72,"small_n":false},"value_quantiles_gbp":{"n":9420,"min":0.01,"p25":44795,"median":109777,"p75":360000,"max":51000000000,"mean":13899800.12,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":38.95,"top_5_share_pct":60.39,"top_10_share_pct":70.88,"top_20_share_pct":80.64,"top_50_share_pct":88.76,"top_100_share_pct":93.5,"contracts_carrying_50pct_of_the_value":3,"contracts_carrying_80pct_of_the_value":19,"contracts_carrying_90pct_of_the_value":57,"contracts_carrying_95pct_of_the_value":157,"contracts_carrying_99pct_of_the_value":1292,"contracts_with_a_value":9420},"by_expiry_month_contracts":{"2026-09":537,"2026-10":763,"2026-11":672,"2026-12":871,"2027-01":668,"2027-02":641,"2027-03":2204,"2027-04":692,"2027-05":640,"2027-06":694,"2027-07":725,"2027-08":574,"2027-09":264},"by_expiry_month_gbp":{"2026-09":780259655.54,"2026-10":7974885327.78,"2026-11":6403907577.71,"2026-12":5564342760.13,"2027-01":1153534802.4,"2027-02":62055299519.04,"2027-03":5294877839.9,"2027-04":1722011333.31,"2027-05":2244581647.5,"2027-06":1655685377.97,"2027-07":26922033222.75,"2027-08":7855067728.34,"2027-09":1309630299.78},"biggest_month_by_contract_count":{"month":"2027-03","contracts":2204},"biggest_single_end_date":{"date":"2027-03-31","contracts":1492},"biggest_month_by_gbp":{"month":"2027-02","gbp":62055299519.04},"by_primary_cpv_division":{"14":1,"15":1,"18":3,"22":30,"24":4,"30":647,"31":11,"32":579,"33":6,"34":11,"35":16,"37":8,"38":12,"39":7,"42":8,"44":24,"45":5,"48":4282,"50":14,"51":2,"55":1,"60":1,"64":10,"66":18,"70":2,"71":69,"72":4104,"73":11,"75":1,"79":26,"80":7,"85":4,"92":4,"98":5,"09":8,"03":3},"by_primary_cpv_division_gbp":{"14":372000,"15":90000,"18":252070000,"22":141866839.7,"24":16000000,"30":13870665629.29,"31":8876533171.55,"32":774064578.54,"33":470375,"34":3383876.66,"35":40523004.34,"37":5833334,"38":1192526.75,"39":41181230,"42":2483558.12,"44":7337303.41,"45":624904,"48":12133509373.87,"50":145132874.62,"51":6650000,"55":151700,"60":5400000,"64":1562941253.48,"66":2613840829.16,"70":656850,"71":2456918099.16,"72":36170549085.93,"73":8819766.54,"75":435000000,"79":3227729.83,"80":40588700,"85":6719686.12,"92":2495235,"98":19795780.98,"09":51288132101.06,"03":895695.04},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":62948788667.63,"gbp_on_other_primary_divisions":67987328424.52,"share_of_total_on_other_primary_divisions_pct":51.9,"rows_on_other_primary_divisions":333,"largest_other_division":{"division":"09","gbp":51288132101.06,"share_of_total_pct":39.2},"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}},"wide|primary_cpv":{"label":"wide basket, primary_cpv field rule","contracts":9612,"small_n":false,"distinct_buyers_by_normalised_name":1429,"distinct_buyer_records_by_service":{"contracts-finder":2180,"find-a-tender":637},"distinct_buyer_names_by_service":{"contracts-finder":1108,"find-a-tender":654},"by_service":{"contracts-finder":6990,"find-a-tender":2622},"gbp_total_as_published":62948788667.63,"gbp_total_as_published_bn":62.95,"rows_in_the_gbp_total":9116,"rows_excluded_from_the_gbp_total":{"value stated as zero":128,"value stated as a negative amount":1,"no value stated":300,"value stated in USD, not converted":45,"value stated in EUR, not converted":22},"value_coverage":{"n":9116,"denominator":9612,"denominator_label":"all 9,612 contracts in this cut","pct":94.84,"small_n":false},"value_quantiles_gbp":{"n":9116,"min":0.01,"p25":44477,"median":108000,"p75":351627,"max":10000000000,"mean":6905308.1,"convention":"order statistics, not interpolated: the value at index floor(n * p) of the sorted list. With an even n the reported median is therefore the UPPER of the two middle observations, not their mid-point."},"value_concentration":{"top_1_share_pct":15.89,"top_5_share_pct":44.7,"top_10_share_pct":58.91,"top_20_share_pct":70.12,"top_50_share_pct":82.06,"top_100_share_pct":88.35,"contracts_carrying_50pct_of_the_value":7,"contracts_carrying_80pct_of_the_value":44,"contracts_carrying_90pct_of_the_value":134,"contracts_carrying_95pct_of_the_value":434,"contracts_carrying_99pct_of_the_value":2386,"contracts_with_a_value":9116},"by_expiry_month_contracts":{"2026-09":516,"2026-10":726,"2026-11":651,"2026-12":844,"2027-01":657,"2027-02":617,"2027-03":2120,"2027-04":678,"2027-05":625,"2027-06":672,"2027-07":701,"2027-08":548,"2027-09":257},"by_expiry_month_gbp":{"2026-09":773615130.79,"2026-10":7926415791.24,"2026-11":6283410247.74,"2026-12":1452507534.79,"2027-01":1152301937.32,"2027-02":11050935006.69,"2027-03":4401557374.23,"2027-04":1423071028.61,"2027-05":1398999602.68,"2027-06":1176900240.99,"2027-07":18781204032.51,"2027-08":5818998307.42,"2027-09":1308872432.62},"biggest_month_by_contract_count":{"month":"2027-03","contracts":2120},"biggest_single_end_date":{"date":"2027-03-31","contracts":1426},"biggest_month_by_gbp":{"month":"2027-07","gbp":18781204032.51},"by_primary_cpv_division":{"30":647,"32":579,"48":4282,"72":4104},"by_primary_cpv_division_gbp":{"30":13870665629.29,"32":774064578.54,"48":12133509373.87,"72":36170549085.93},"value_by_whether_the_primary_code_is_an_it_division":{"it_divisions":["30","32","48","72"],"gbp_on_it_primary_divisions":62948788667.63,"gbp_on_other_primary_divisions":0,"share_of_total_on_other_primary_divisions_pct":0,"rows_on_other_primary_divisions":0,"largest_other_division":null,"note":"A notice enters the study on ANY IT code recorded on it, which is the pre-registered field rule. Where the notice's PRIMARY code sits outside CPV divisions 30, 32, 48 and 72, the whole stated value of a contract that is mostly not IT enters the total. This block measures how much of the total that is."}}},"buyers":{"unit":"a distinct buyer name, normalised, inside the expiring set","distinct_buyers":1430,"distinct_raw_buyer_names":1613,"counting_note":"1,430 is a count of distinct NORMALISED buyer names: the 1,613 spellings published across the two services collapse to that many keys under the study's normaliser.","distinct_buyers_appearing_on_both_services":329,"distinct_buyer_records_contracts_finder":2147,"distinct_buyer_records_find_a_tender":638,"distinct_buyer_names_by_service":{"contracts-finder":1102,"find-a-tender":657},"why_the_two_counts_differ":"Counting by the identifier each service issues gives 2,147 buyer records on Contracts Finder, but those resolve to only 1,102 distinct organisation names: Contracts Finder issues its own GB-CFS record to buyers who never registered centrally, and the same body can hold several. An identifier-level count roughly doubles the buyer figure. This study reports the name-level count, which is the conservative one, and publishes both so the gap is visible. The name-level count errs the other way where one body publishes under two spellings.","identifier_note":"The two services issue identifiers under different schemes (Contracts Finder GB-CFS / GB-SRS / GB-GOR / GB-LAE, Find a Tender GB-PPON / GB-COH / GB-NHS), and most rows carry none at all, so the cross-service buyer count is by normalised name. The Cabinet Office register's own identifier does appear in the data and does join: 2,340 of the 9,416 rows (24.9%) publish a GB-SRS identifier in one of the register's own two namespaces, covering 386 buyer names and 381 register entries, and all 381 of those entries are in the register file. It is still not a denominator, but not because it is published too rarely: on 185 of those rows, covering 40 bodies, the registered name differs from the name on the notice, and the register is not a superset of the bodies that publish notices.","register_identifier_join":{"rows_carrying_the_registers_own_identifier":2340,"rows_total":9416,"share_of_rows_pct":24.9,"namespaces_tested":["supplierregistration.cabinetoffice.gov.uk/","sid4gov.cabinetoffice.gov.uk/"],"rows_by_namespace":{"supplierregistration.cabinetoffice.gov.uk":408,"sid4gov.cabinetoffice.gov.uk":1932},"distinct_identifiers":381,"distinct_identifiers_found_in_the_register":381,"distinct_buyer_names_carrying_one":386,"scheme":"GB-SRS","rows_where_the_registered_name_differs_from_the_notice_name":185,"bodies_where_the_registered_name_differs":40,"buyers_the_identifier_join_adds_that_the_name_match_misses":17,"what_this_means":"The register's identifier namespace is NOT one neither service uses. Where a notice publishes a buyer identifier under scheme GB-SRS it is the register's own URL-shaped corporate identifier, under one of the two hosts the register itself uses, and every one of those identifiers resolves in the register file. It is published on about a quarter of the rows here, so 'published too rarely to join' is not the reason it is not a denominator. The reasons are that the register is not a superset of the bodies that publish notices; that where the identifier is published the registered name often differs from the name on the notice, so an identifier join and a name join do not return the same set - the identifier on the largest expiring notice resolves to 'GOVERNMENT COMMERCIAL AGENCY' while the notice names Crown Commercial Service; and that the register counts registrations, not organisations."},"register_context":{"registrations_on_the_cabinet_office_register":7753,"currently_registered":7736,"de_registered":17,"distinct_names_on_the_register_as_published":7337,"distinct_normalised_names_on_the_register":7132,"normalisation_note":"The register as published holds 7,337 distinct buyer names; 7,132 is the count after the same normalisation used to match buyers (lower case, '&' spelled out, punctuation collapsed). Both sides of the match use that one rule.","names_holding_more_than_one_registration":491,"expiring_set_buyer_names_matching_a_register_name":896,"expiring_set_buyer_names_not_matching":534,"match_rate":{"n":896,"denominator":1430,"denominator_label":"the 1,430 distinct buyer names in the expiring set","pct":62.66,"small_n":false},"why_this_is_not_a_denominator":"7,753 is a count of registrations, not of organisations: it resolves to 7,337 distinct names as published, 7,132 after normalisation, and 17 of the registrations are de-registered. The register is also not a superset of notice publishers - bodies that publish procurement notices without being registered appear in the notices and not in the register. Matching is by name because most notices publish no buyer identifier at all, and where the register's own identifier IS published it joins but often resolves to a different registered name. A matched fraction therefore errs in both directions and is reported as context, never as 'M of 7,753'."},"top_buyers_by_contract_count":[{"buyer":"MINISTRY OF DEFENCE","contracts":176,"gbp":970854115.18,"on_register":true},{"buyer":"UK SHARED BUSINESS SERVICES LIMITED","contracts":168,"gbp":91919822.95,"on_register":true},{"buyer":"Home Office","contracts":139,"gbp":943602040.15,"on_register":true},{"buyer":"UK Research and Innovation","contracts":136,"gbp":15176867.42,"on_register":true},{"buyer":"NHS England","contracts":131,"gbp":734061217.51,"on_register":true},{"buyer":"NHS SOUTH, CENTRAL AND WEST COMMISSIONING SUPPORT UNIT","contracts":92,"gbp":22357169.62,"on_register":true},{"buyer":"H M REVENUE & CUSTOMS","contracts":91,"gbp":2789548742,"on_register":true},{"buyer":"BANK OF ENGLAND","contracts":84,"gbp":236957742.82,"on_register":true},{"buyer":"Crown Commercial Service","contracts":82,"gbp":90638914382.18,"on_register":false},{"buyer":"Department for Work and Pensions","contracts":79,"gbp":670690406.48,"on_register":true},{"buyer":"Met Office","contracts":71,"gbp":25346135.32,"on_register":true},{"buyer":"Ministry of Justice","contracts":68,"gbp":367281576.73,"on_register":true},{"buyer":"UK Research and Innovation (UKRI)","contracts":66,"gbp":9476235.23,"on_register":false},{"buyer":"Office for National Statistics","contracts":61,"gbp":18144115.38,"on_register":true},{"buyer":"UK Health Security Agency","contracts":59,"gbp":115342076.44,"on_register":true},{"buyer":"CAMBRIDGE UNIVERSITY HOSPITALS NHS FOUNDATION TRUST","contracts":59,"gbp":2403983.53,"on_register":true},{"buyer":"Department for Education","contracts":57,"gbp":267025834.72,"on_register":true},{"buyer":"National Highways Limited","contracts":56,"gbp":18584062.32,"on_register":true},{"buyer":"Financial Conduct Authority","contracts":54,"gbp":598705269.8,"on_register":false},{"buyer":"DVLA - Driver & Vehicle Licensing Agency","contracts":53,"gbp":34225587.11,"on_register":false},{"buyer":"Department for Business & Trade","contracts":50,"gbp":37344822.39,"on_register":true},{"buyer":"City of Bradford Metropolitan District Council","contracts":48,"gbp":18233288.67,"on_register":true},{"buyer":"POLICE DIGITAL SERVICE","contracts":46,"gbp":9557598.79,"on_register":true},{"buyer":"University of the West of England","contracts":45,"gbp":2336560.81,"on_register":true},{"buyer":"DfTc - Department for Transport","contracts":45,"gbp":91716818.73,"on_register":false}],"top_buyers_by_value":[{"buyer":"Crown Commercial Service","contracts":82,"gbp":90638914382.18,"share_of_the_gbp_total_pct":69.7},{"buyer":"Countess Of Chester Hospital NHS Foundation Trust","contracts":4,"gbp":10080053612,"share_of_the_gbp_total_pct":7.7},{"buyer":"enFrame CIC","contracts":18,"gbp":4250000000,"share_of_the_gbp_total_pct":3.3},{"buyer":"GUY'S AND ST THOMAS' NHS FOUNDATION TRUST","contracts":8,"gbp":3000909445,"share_of_the_gbp_total_pct":2.3},{"buyer":"H M REVENUE & CUSTOMS","contracts":91,"gbp":2789548742,"share_of_the_gbp_total_pct":2.1}],"buyer_value_concentration_note":"Value is more concentrated by buyer than by notice. The single largest buyer by stated value carries 69.7% of the sterling total, on framework ceilings that are shared across every appointed supplier and sit alongside the call-offs placed under them."},"largest_expiring_contracts":[{"gbp":51000000000,"gbp_bn":51,"source_service":"contracts-finder","ocid":"ocds-b5fd17-67975862-493d-437b-9397-64b7062aefb5","buyer_name":"Crown Commercial Service","title":"Supply of Energy 2","contract_end":"2027-02-26","primary_cpv":"09000000","primary_cpv_description":"Petroleum products, fuel, electricity and other sources of energy","core_basket_codes_on_this_notice":"30237475|48000000|72300000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":10000000000,"gbp_bn":10,"source_service":"contracts-finder","ocid":"ocds-b5fd17-c40718f7-fae9-4e3b-a2cf-c125f634c8c1","buyer_name":"Countess of Chester Hospital NHS Foundation Trust","title":"National Framework Agreement for the Provision of Digital Enablement and Transformation Solutions","contract_end":"2027-02-08","primary_cpv":"30200000","primary_cpv_description":"Computer equipment and supplies","core_basket_codes_on_this_notice":"30200000|72000000","aggregated_award":1,"aggregated_award_basis":"notice title states a framework agreement or dynamic purchasing system"},{"gbp":6700000000,"gbp_bn":6.7,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04fb0d","buyer_name":"Crown Commercial Service","title":"Digital Outcomes and Specialists 7","contract_end":"2027-07-29","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 1792 suppliers named on the notice"},{"gbp":6373000000,"gbp_bn":6.37,"source_service":"contracts-finder","ocid":"ocds-b5fd17-02d75d7e-429c-42a1-a972-a02c5976e8ec","buyer_name":"Crown Commercial Service","title":"Network Services 3 Award  Notice for Lot 1a, Lot 1b, Lot 2a, Lot 3a, Lot 3b, Lot 4a, Lot 4b, Lot 4c, Lot 4d and Lot 4e","contract_end":"2027-07-17","primary_cpv":"31000000","primary_cpv_description":"Electrical machinery, apparatus, equipment and consumables; lighting","core_basket_codes_on_this_notice":"48000000|72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":5000000000,"gbp_bn":5,"source_service":"contracts-finder","ocid":"ocds-b5fd17-38fcffec-7067-4bf4-87eb-52584453365f","buyer_name":"Crown Commercial Service","title":"Back Office Software 2","contract_end":"2027-08-17","primary_cpv":"48000000","primary_cpv_description":"Software package and information systems","core_basket_codes_on_this_notice":"48000000|72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":3240000000,"gbp_bn":3.24,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04fb0d","buyer_name":"Crown Commercial Service","title":"Digital Outcomes and Specialists 7","contract_end":"2027-07-29","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 1792 suppliers named on the notice"},{"gbp":3200000000,"gbp_bn":3.2,"source_service":"contracts-finder","ocid":"ocds-b5fd17-939ec7c1-bb0c-4fb5-adb7-a21db1867c4f","buyer_name":"Crown Commercial Service","title":"Digital and Legacy Application Services (DALAS)","contract_end":"2027-07-26","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":2800000000,"gbp_bn":2.8,"source_service":"contracts-finder","ocid":"ocds-b5fd17-22295424-0a07-423a-adea-2e727ec96833","buyer_name":"Crown Commercial Service","title":"Digital and Legacy Application Services (DALAS) Lots 1, 4a & 4b","contract_end":"2027-07-24","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":2500000000,"gbp_bn":2.5,"source_service":"contracts-finder","ocid":"ocds-b5fd17-97ef0691-9349-4ddd-9e97-e1f389d45f72","buyer_name":"Crown Commercial Service","title":"Mobile Voice and Data Services","contract_end":"2026-12-12","primary_cpv":"31712112","primary_cpv_description":"SIM cards","core_basket_codes_on_this_notice":"48620000|72150000|72212730|72220000|72590000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":2000000000,"gbp_bn":2,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04fb0d","buyer_name":"Crown Commercial Service","title":"Digital Outcomes and Specialists 7","contract_end":"2027-07-29","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 1792 suppliers named on the notice"},{"gbp":1840000000,"gbp_bn":1.84,"source_service":"contracts-finder","ocid":"ocds-b5fd17-d196af8d-c159-43a8-90b0-272a20972b3a","buyer_name":"Crown Commercial Service","title":"Vertical Application Solutions","contract_end":"2027-03-06","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":1700000000,"gbp_bn":1.7,"source_service":"contracts-finder","ocid":"ocds-b5fd17-f72d46c7-ca51-470f-aae3-abbc579ef2e1","buyer_name":"Crown Commercial Service","title":"Management Consultancy Framework Four (MCF4)","contract_end":"2027-07-28","primary_cpv":"66121000","primary_cpv_description":"Mergers and acquisition services","core_basket_codes_on_this_notice":"72000000","aggregated_award":1,"aggregated_award_basis":"notice title states a framework agreement or dynamic purchasing system"},{"gbp":1599999995,"gbp_bn":1.6,"source_service":"contracts-finder","ocid":"ocds-b5fd17-faf9fdfb-336d-4d88-897b-8f61fd24a49c","buyer_name":"N H S Shared Business Services","title":"NHS SBS HEALTHCARE PLANNING, CONSTRUCTION CONSULTANCY AND ANCILLARY SERVICES (HPCCAS) (SBS 10190)","contract_end":"2027-08-13","primary_cpv":"71000000","primary_cpv_description":"Architectural, construction, engineering and inspection services","core_basket_codes_on_this_notice":"72224000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":1561919689,"gbp_bn":1.56,"source_service":"contracts-finder","ocid":"ocds-b5fd17-2c99abd8-95fb-48de-9b37-c277fc9868b6","buyer_name":"ATAMIS LTD","title":"Provision of a Telecommunications service for the Emergency Services of England, Scotland and Wales","contract_end":"2026-12-31","primary_cpv":"64200000","primary_cpv_description":"Telecommunications services","core_basket_codes_on_this_notice":"32412000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":1305000000,"gbp_bn":1.3,"source_service":"contracts-finder","ocid":"ocds-b5fd17-7306c227-84b3-460f-bb5f-cb08bccaae2a","buyer_name":"Crown Commercial Service","title":"Cloud Compute 2","contract_end":"2026-11-27","primary_cpv":"30211100","primary_cpv_description":"Super computer","core_basket_codes_on_this_notice":"30211100|30211300|48000000|72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":1000000000,"gbp_bn":1,"source_service":"contracts-finder","ocid":"ocds-b5fd17-1296c461-59fb-4ddb-98cd-548254b4664d","buyer_name":"Crown Commercial Service","title":"G-Cloud 14 Lot 4 extension","contract_end":"2026-10-28","primary_cpv":"72000000","primary_cpv_description":"IT services: consulting, software development, Internet and support","core_basket_codes_on_this_notice":"72000000","aggregated_award":0,"aggregated_award_basis":""},{"gbp":1000000000,"gbp_bn":1,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04eae7","buyer_name":"GUY'S AND ST THOMAS' NHS FOUNDATION TRUST","title":"Framework for Workforce Technology Systems","contract_end":"2026-11-18","primary_cpv":"48000000","primary_cpv_description":"Software package and information systems","core_basket_codes_on_this_notice":"48000000|72000000|72246000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 32 suppliers named on the notice; notice title states a framework agreement or dynamic purchasing system"},{"gbp":1000000000,"gbp_bn":1,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04eae7","buyer_name":"GUY'S AND ST THOMAS' NHS FOUNDATION TRUST","title":"Framework for Workforce Technology Systems","contract_end":"2026-11-18","primary_cpv":"48000000","primary_cpv_description":"Software package and information systems","core_basket_codes_on_this_notice":"48000000|72000000|72246000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 32 suppliers named on the notice; notice title states a framework agreement or dynamic purchasing system"},{"gbp":1000000000,"gbp_bn":1,"source_service":"find-a-tender","ocid":"ocds-h6vhtk-04eae7","buyer_name":"GUY'S AND ST THOMAS' NHS FOUNDATION TRUST","title":"Framework for Workforce Technology Systems","contract_end":"2026-11-18","primary_cpv":"48000000","primary_cpv_description":"Software package and information systems","core_basket_codes_on_this_notice":"48000000|72000000|72246000","aggregated_award":1,"aggregated_award_basis":"publisher's own framework flag on the notice; 32 suppliers named on the notice; notice title states a framework agreement or dynamic purchasing system"},{"gbp":766000000,"gbp_bn":0.77,"source_service":"contracts-finder","ocid":"ocds-b5fd17-865a58e8-a127-439a-8afe-59d6b60cc157","buyer_name":"The Hillingdon Hospitals NHS Foundation Trust","title":"New Hospital Programme - Hospital 2.0 Alliance (H2A) Framework  Call-Off Contract for Hillingdon Hospital Redevelopment","contract_end":"2027-03-31","primary_cpv":"71300000","primary_cpv_description":"Engineering services","core_basket_codes_on_this_notice":"48000000|48100000|72224100","aggregated_award":0,"aggregated_award_basis":""}],"aggregated_awards":{"rows_flagged":172,"rows_flagged_share":{"n":172,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":1.83,"small_n":false},"gbp_on_flagged_rows":32933795562.65,"gbp_on_flagged_rows_bn":32.93,"gbp_on_flagged_rows_share_of_total":{"n":32933795562,"denominator":130127298368,"denominator_label":"the stated value of all expiring IT contracts, as published","pct":25.31,"small_n":false},"basis_counts":{"notice title states a framework agreement or dynamic purchasing system":117,"publisher's own framework flag on the notice":18,"more than one supplier named on the notice":50},"rule":"A row is flagged where the publisher's own framework flag is set (Find a Tender only), or more than one supplier is named on the notice, or the title states a framework agreement or dynamic purchasing system and the notice is not itself a call-off.","known_incompleteness":"Contracts Finder publishes no framework flag and no supplier count in its flattened OCDS bulk files, so on that service the flag rests on titles alone. It is demonstrably incomplete: the single largest expiring contract in the study is a central framework whose title does not say so."},"deduplication":{"within_each_service_beyond_ocid":{"contracts_finder":{"rule":"normalised buyer name + normalised title + stated value in whole units + contract end date, across different OCIDs inside one service; the earliest-published OCID is kept","why_ocid_is_not_enough":"OCID deduplication removes republished amendments, which carry the same OCID. It cannot see the same contract published a second time under a NEW OCID.","rows_removed":279,"gbp_removed":20776658685,"residual_not_acted_on":{"rule":"normalised title + contract end date + stated value in whole units, ignoring the buyer name","further_rows_it_would_remove":17,"gbp_on_those_rows":32129097,"groups_whose_buyer_names_differ":17,"why_not_applied":"Inside one service this key matches contracts held by genuinely different buyers - two NHS trusts buying the same analytics platform for the same money on the same date, two district councils sharing a footfall-data contract - as well as one body publishing under two spellings. It is measured and disclosed rather than applied."},"rows_removed_in_the_core_it_basket":18},"find_a_tender":{"rule":"normalised buyer name + normalised title + stated value in whole units + contract end date, across different OCIDs inside one service; the earliest-published OCID is kept","why_ocid_is_not_enough":"OCID deduplication removes republished amendments, which carry the same OCID. It cannot see the same contract published a second time under a NEW OCID.","rows_removed":263,"gbp_removed":92399064,"residual_not_acted_on":{"rule":"normalised title + contract end date + stated value in whole units, ignoring the buyer name","further_rows_it_would_remove":6,"gbp_on_those_rows":575395,"groups_whose_buyer_names_differ":5,"why_not_applied":"Inside one service this key matches contracts held by genuinely different buyers - two NHS trusts buying the same analytics platform for the same money on the same date, two district councils sharing a footfall-data contract - as well as one body publishing under two spellings. It is measured and disclosed rather than applied."},"rows_removed_in_the_core_it_basket":37},"rows_removed":542,"gbp_removed_in_the_core_it_basket":130907599.22},"across_the_two_services_headline_cut":{"method":"OCID first (it can only deduplicate within a service, because the two services' OCID ranges cannot intersect), then the published secondary rule below.","ocid_prefix_contracts_finder":"ocds-b5fd17","ocid_prefix_find_a_tender":"ocds-h6vhtk","ocid_can_match_across_services":false,"strict_rule":"either key A - normalised buyer name + normalised title + value in whole units + contract start date + contract end date, all five present - or key B - normalised title + contract end date + value in whole units, ignoring the buyer name, which is the field that differs between the two services","strict_rule_key_a":"normalised buyer name + normalised title + value in whole units + contract start date + contract end date","strict_rule_key_b":"normalised title + contract end date + value in whole units, buyer name ignored","loose_rule":"normalised buyer name + normalised title + contract end date","find_a_tender_rows_tested":16777,"contracts_finder_rows_tested":28688,"find_a_tender_rows_in_this_cut":2606,"strict_matches":9,"strict_matches_key_a":4,"strict_matches_key_b":9,"loose_key_matches":13,"loose_only_matches_flagged_and_kept":7,"rows_removed":9,"keep_rule":"the Contracts Finder row is kept; the Find a Tender row is removed. Rows matching only the loose key are flagged and kept, because that key ignores the stated value.","rows_removed_by_the_within_service_rule_first":542,"contracts_finder_rows_in_this_cut":6819,"test_population_note":"The test is run ONCE, over the whole all-CPV expiring set of each service after the within-service rules, and every CPV basket cut below reuses these flags. The rows_tested figures are therefore the same in every cut; the match counts are the matches that fall inside the cut being reported.","cut":"the headline cut only (core IT basket, any-CPV field rule)"},"across_the_two_services_all_cpv":{"method":"OCID first (it can only deduplicate within a service, because the two services' OCID ranges cannot intersect), then the published secondary rule below.","ocid_prefix_contracts_finder":"ocds-b5fd17","ocid_prefix_find_a_tender":"ocds-h6vhtk","ocid_can_match_across_services":false,"strict_rule":"either key A - normalised buyer name + normalised title + value in whole units + contract start date + contract end date, all five present - or key B - normalised title + contract end date + value in whole units, ignoring the buyer name, which is the field that differs between the two services","strict_rule_key_a":"normalised buyer name + normalised title + value in whole units + contract start date + contract end date","strict_rule_key_b":"normalised title + contract end date + value in whole units, buyer name ignored","loose_rule":"normalised buyer name + normalised title + contract end date","find_a_tender_rows_tested":16777,"contracts_finder_rows_tested":28688,"find_a_tender_rows_in_this_cut":16777,"strict_matches":62,"strict_matches_key_a":38,"strict_matches_key_b":62,"loose_key_matches":77,"loose_only_matches_flagged_and_kept":30,"rows_removed":62,"keep_rule":"the Contracts Finder row is kept; the Find a Tender row is removed. Rows matching only the loose key are flagged and kept, because that key ignores the stated value.","rows_removed_by_the_within_service_rule_first":542,"contracts_finder_rows_in_this_cut":28688,"test_population_note":"The test is run ONCE, over the whole all-CPV expiring set of each service after the within-service rules, and every CPV basket cut below reuses these flags. The rows_tested figures are therefore the same in every cut; the match counts are the matches that fall inside the cut being reported."},"all_cpv_ending_in_the_window_after_all_deduplication":45403},"in_notice_repeats":{"rule":"A row is an in-notice repeat where another row in the same notice (same source service, same OCID) states an identical value, an identical contract start date and an identical contract end date. The first such row in publication order is kept; the rest are flagged. Rows are flagged, never deleted.","contracts_finder_rows_flagged":97,"find_a_tender_rows_flagged":663,"rows_flagged_by_the_identical_restatement_rule":448,"rows_flagged_by_the_publisher_s_own_grouping":312},"titles_that_name_a_company":{"rows":44,"of_rows":9416,"note":"This study carries no supplier column, ranks no supplier and publishes no supplier-level total. It cannot stop a buyer typing a supplier's name into its own notice title: this many titles match the regular expression \\b(?:Ltd|Limited|PLC|LLP|Inc|GmbH)\\b, case-sensitively, against the title exactly as published. The same search ignoring case returns more, because 'inc' and 'plc' occur inside ordinary words. Titles are reproduced exactly as published, under OGL v3.0.","pattern":"\\b(?:Ltd|Limited|PLC|LLP|Inc|GmbH)\\b","case_sensitive":true},"service_shape":{"contracts_finder":{"contracts":6819,"share":{"n":6819,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":72.42,"small_n":false},"publication_window_of_the_harvest":"2014-12-17 to 2026-09-23"},"find_a_tender":{"contracts":2597,"share":{"n":2597,"denominator":9416,"denominator_label":"all 9,416 expiring IT contracts","pct":27.58,"small_n":false},"structural_limit":"Find a Tender states a contract end date only on Procurement Act 2023 notices (UK5/UK6/UK7). All 95,660 legacy TED contract award notices on the service carry a conclusion date and a total value but no contract period at all. The limit is therefore a PUBLICATION limit, not a signature one: no expiring contract in this study comes from a Find a Tender notice PUBLISHED before 24 February 2025 (the earliest in the dataset is 2025-03-04), but a contract signed years earlier reaches the dataset whenever a later Procurement Act notice restates it - 19 rows in the published dataset carry a signature date before 24 February 2025, the earliest 2012-06-30. What the service cannot see is a contract whose only notice predates the regime, and Contracts Finder supplies that history.","rows_signed_before_24_february_2025":19,"earliest_signature_date_in_the_dataset":"2012-06-30","earliest_notice_publication_date_in_the_dataset":"2025-03-04"},"expiring_contracts_by_notice_publication_year":{"2016":4,"2017":12,"2018":4,"2019":16,"2020":27,"2021":111,"2022":425,"2023":789,"2024":2045,"2025":2175,"2026":3808},"gap_between_notice_publication_and_stated_end_date":{"under 1 year":3291,"1 to 3 years":4545,"3 to 6 years":1509,"6 to 10 years":65,"over 10 years":6}},"cross_checks_against_the_collection_streams":[{"check":"Contracts Finder core IT contracts expiring in the window","this_analysis":6819,"collection_stream":6837,"agree":false,"explained":true,"stream_source":"normalised/cf_it_funnel.json","note":"Reconciled exactly, not a discrepancy. The collection stream deduplicates by OCID only. This analysis applies a second within-service rule on top, because OCID cannot see the same contract republished under a NEW OCID; it removed 18 core IT rows here. 6,837 - 18 = 6,819."},{"check":"Contracts Finder core IT stated GBP in the window","this_analysis":114326835535.25,"collection_stream":114455079057.91,"agree":false,"explained":true,"stream_source":"normalised/cf_it_funnel.json","note":"Both exclude zero, negative and non-GBP amounts. The difference of GBP 128,243,522.66 is the stated value on the 18 core IT rows the within-service secondary rule removes here and the stream, which deduplicates by OCID only, keeps."},{"check":"Contracts Finder award rows after OCID deduplication","this_analysis":438221,"collection_stream":438221,"agree":true,"stream_source":"normalised/cf_it_funnel.json","note":""},{"check":"Contracts Finder rows ending in the window before the IT filter","this_analysis":28967,"collection_stream":30307,"agree":false,"explained":true,"stream_source":"the collection stream's own count list","note":"Reconciled, not a discrepancy. The collection stream reported 30,307 award rows ending in the window; that is the count BEFORE deduplication by OCID. After keeping only the latest release per OCID - which is mandatory before any total, because an amended contract is republished under the same OCID - it is 28,967. The difference of 1,340 rows is republished amendments of contracts already counted."},{"check":"Find a Tender core IT contracts expiring in the window","this_analysis":2606,"collection_stream":2643,"agree":false,"explained":true,"stream_source":"evidence/fts_it_expiry_by_basket.json","note":"Reconciled exactly. The collection stream deduplicates by OCID and contract block only; this analysis applies the within-service secondary rule as well, which removed 37 core IT rows. 2,643 - 37 = 2,606."},{"check":"Find a Tender core IT stated GBP, every row summed","this_analysis":15806662611.28,"collection_stream":15923523055.94,"agree":false,"explained":true,"stream_source":"evidence/fts_it_expiry_by_basket.json","note":"A deliberate methodological difference, not a data disagreement. Find a Tender publishes two amounts: value/amount excluding VAT and value/amountGross including it. The collection stream fell back to the gross figure where the net one was absent, which mixes the two bases. This analysis uses the VAT-exclusive figure only, on both services, because Contracts Finder publishes no gross field at all and mixing them would make the two services non-comparable. The difference is GBP 116,860,444.66 across the rows where only a gross figure exists; both numbers are published so either can be reproduced."}]},"series_and_revisions":{"revisions":"Both services revise notices in place. Contracts Finder republishes an amended contract under the same OCID with an 'awardUpdate' tag; this study keeps the latest release per OCID, which removed 21,311 rows. The API serves the current state of a notice while a bulk file is a snapshot of its publication day; on a 95-notice spot check the contract end dates agreed on all 95 and one award value differed.","series_breaks":[{"break":"24 February 2025, Find a Tender","what":"The Procurement Act 2023 regime begins. Only notices under it (UK5/UK6/UK7) state a contract end date; all 95,660 legacy TED award notices on the service state none. No expiring contract in this study comes from a Find a Tender notice published earlier.","effect":"The Find a Tender contribution is built on 19 months of publishing, not on the full 2021-2026 series. Contracts Finder carries the older history."},{"break":"1 January 2016, Contracts Finder","what":"Notices before 2016 are served only from legacy links, not from the S3 bucket. The harvest covers both and starts 2014-12-17, not November 2016 as the brief assumed.","effect":"Negligible for this window: of the contracts expiring in it, 98.4% were published within six years of their stated end date."},{"break":"15 September 2008, CPV","what":"CPV 2008 replaced CPV 2003. It predates the first notice on either service, so no legacy-code handling is needed.","effect":"Six codes across the whole Contracts Finder harvest, 220 occurrences, are retired CPV 2003 codes. Counted, not dropped."}]},"verification":{"rule":"Any pre-registered headline that does not reproduce from the published CSV is cut, not caveated.","no_network_at_analysis_time":true,"default_tolerance":"exact, on counts and on summed pence","how_to_check":["Rerun scripts/research/uk-public-sector-it-contract-expiry-2026/analyse.py against the stored data in data/research/uk-public-sector-it-contract-expiry-2026/. It makes no network request. The CSV and README must come back byte-identical and match the csv_sha256 and readme_sha256 in the dataset block; this JSON must come back identical apart from its 'built' timestamp.","Re-derive the headline from the bulk files with independent code, not from this script's intermediate files: read the daily Contracts Finder CSVs and the Find a Tender ZIPs, apply the pre-registered CPV rule, and confirm the contract count, the buyer count, the GBP total and the biggest month.","Confirm the CPV rule file still hashes to 7da4db343cfe2aa3f02a6fa150a2f43ab412007d1e403ff3daaa56722adf74d7 and that its pre-registration timestamp precedes every figure it decides.","Recompute every pre-registered metric from the published CSV alone using the recompute recipe printed with it, and check each percentage against the denominator printed beside it.","Confirm the deduplication rate: within Contracts Finder by OCID, and across the two services by the published strict and loose secondary rules. Confirm that no cross-service OCID join is used or cited anywhere, since the prefixes are disjoint and such a join is meaningless.","Check that the floor caveat AND the over-count caveat travel with every rendering of the GBP figure - in the page title, the meta description, every headline card, every FAQ answer, the schema and the dataset README. A rendering that carries one but not the other is a defect.","Confirm no percentage anywhere in this file is reported on a denominator below 10 without a small_n flag.","Confirm the published CSV contains no supplier name, no contact field, no email address and no telephone number; the personal_data_sweep block records the result of that check at build time.","Confirm no pipeline notice appears in the dataset: every row must carry an award or signed-contract block, and the UK1 pipeline form must appear nowhere.","Confirm there is no supplier column, no supplier ranking and no supplier-level total in the JSON or the CSV, and that no sentence predicts what will be re-procured. Supplier names DO appear inside notice titles where the buyer typed one; count them and check the claim on the page says 'no supplier column', not 'no supplier is named anywhere'.","Try to break the biggest-month finding by changing the CPV basket and the field rule; it holds on all eight cuts and that is published. If it does not hold on a rerun, the finding is wrong. Note that four of the eight are rebuildable from the published CSV - narrow and core, under both field rules, from in_narrow, in_core and in_core_primary_cpv_rule - and four are not: core_plus_adjacent and wide under both field rules, because that file is the core cut and the rows those wider baskets add are not in it. Rerun the analysis script for those four.","Check that the count claim is scoped. 'The count holds and the money does not' is true when the CPV basket is held still and only the field rule changes. It is false across baskets: on the narrow basket the count roughly halves while the money barely moves. Any sentence that drops the scope is a defect.","Check the register match rate is computed with ONE normaliser on both sides. The register writes 'H M REVENUE & CUSTOMS'; a normaliser that does not spell out '&' makes every such name unmatchable and understates the rate."],"population_anchors":{"expiring_it_contracts":9416,"rows_in_published_csv":9416,"distinct_buyers":1430,"gbp_total_as_published":130127298368.08,"rows_in_the_gbp_total":8928,"biggest_month":{"month":"2027-03","contracts":2082},"biggest_single_end_date":{"date":"2027-03-31","contracts":1405},"cross_service_strict_matches":9,"cross_service_loose_only_matches_flagged_and_kept":7},"preregistered_metrics":["expiring_contracts","expiring_buyers","gbp_total_as_published","biggest_month","biggest_single_day","primary_cpv_sensitivity_gbp"],"things_a_checker_should_try_to_break":["The GBP total. It is dominated by a handful of central frameworks; confirm the concentration figures and confirm every variant is published, not just the convenient one.","The IT filter. Confirm the CPV rule predates the answer, that the core basket is 702 codes, and that the four mixed header codes 30000000, 32000000, 32200000 and 32230000 are excluded as the pre-registration says.","The buyer count. Confirm it is a count inside the expiring set and that no sentence anywhere expresses it as a fraction of 7,753.","The cross-service deduplication. Confirm the strict rule was published before it was run and that a low match count is reported as evidence about the key as much as about the overlap.","The window. Confirm the first and last months are treated as partial."],"known_limits":["The Find a Tender contribution is structurally incomplete before 24 February 2025.","Contracts Finder publishes no framework flag, so aggregated awards are only partly identifiable there.","Buyer matching is by normalised name, because most notices publish no buyer identifier at all and the two services use different schemes. The Cabinet Office register's own identifier does appear on a minority of rows and does resolve; it is not usable as a denominator because it is published too rarely and often against a different registered name."]},"caveats":[{"id":"floor","caveat":"Every GBP figure is a floor on published, valued, sterling notices. 8,928 of 9,416 expiring IT contracts state a positive sterling amount; the rest state zero, a negative figure, another currency or nothing, and are excluded rather than estimated.","must_travel_with":"every rendering of the GBP figure"},{"id":"over_count","caveat":"The same figure is also an over-count of committed spend. A framework agreement states a ceiling shared across every appointed supplier, and the call-offs placed under it are published separately and counted too, so the figures are not additive.","must_travel_with":"every rendering of the GBP figure"},{"id":"concentration","caveat":"The largest single notice is 39.19% of the GBP 130.13 bn stated on the 8,928 valued contracts, and the largest ten are 71.32%. One buyer, Crown Commercial Service, carries 69.7% of it. The median of those 8,928 valued contracts is GBP 108,068. Any total or mean describes the frameworks, not the estate.","must_travel_with":"any total or mean"},{"id":"stated_end_date","caveat":"A stated contract end date is not the date a contract ends. Extensions, options and early termination are invisible in published notices. The study measures what buyers published.","must_travel_with":"every use of the word expiry"},{"id":"find_a_tender_blind_spot","caveat":"Find a Tender records a contract end date only on notices PUBLISHED from 24 February 2025, so its contribution is built on 19 months of publishing. That is a publication limit, not a signature one: 19 rows in the dataset were signed before that date and reached it through a later Procurement Act notice. What the service cannot see is a contract whose only notice predates the regime.","must_travel_with":"any per-service comparison"},{"id":"buyer_denominator","caveat":"The buyer count is of distinct NORMALISED names: 1,613 spellings as published collapse to 1,430 keys. The Cabinet Office register holds 7,753 registrations covering 7,337 distinct names as published (7,132 after the same normalisation), and is not a superset of notice publishers, so 'M of the 7,753 registered public buyers' cannot be supported and is not claimed. The register's own identifier does appear on notices and does resolve - 2,340 rows carry one and all of them join - but it is published too rarely, and too often against a different registered name, to be a denominator either.","must_travel_with":"the buyer count"},{"id":"any_cpv_bias","caveat":"The pre-registered any-CPV field rule counts a large non-IT contract whole if it carries a single IT sub-code, and that is most of the money: 52.1% of the stated total sits on 270 contracts whose PRIMARY CPV code is outside CPV divisions 30, 32, 48 and 72, the largest being a Crown Commercial Service electricity and gas supply framework classified to CPV division 09. This pushes the total up, the opposite direction from the floor caveat. The primary-CPV sensitivity bounds it at GBP 62.09 bn and is reported beside the headline.","must_travel_with":"the IT definition and every rendering of the GBP figure"},{"id":"publisher_data_quality","caveat":"The published data contains impossible figures that were counted, not silently kept. Across the whole Contracts Finder harvest: 51 award rows state a contract end date after 2060 and 6 before 2000, and 23 state a negative award value, the largest minus GBP 30,000,000,000 - the minus GBP 4bn row is simply the one that falls inside this window and basket. 18 bulk files are served by the publisher as a saved error page, and 38 notices are published as malformed XML - 34 of them truncated at source and unrecoverable, 4 repaired by adding the namespace declaration the publisher omitted.","must_travel_with":"any claim about completeness"},{"id":"snapshot_anchor","caveat":"The window is anchored to the retrieval date, 2026-09-25. Moving it by a few days moves contracts across its edges.","must_travel_with":"the window"},{"id":"not_a_pipeline","caveat":"Pipeline notices - planned future procurement under the Procurement Act 2023 - are the opposite of an expiring contract. 10,413 were found and every one was kept out.","must_travel_with":"any comparison with published pipelines"}],"licence":{"source_data":{"licence":"Open Government Licence v3.0","url":"https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/","attribution":"Contains public sector information licensed under the Open Government Licence v3.0."},"this_compilation":{"licence":"CC BY 4.0","url":"https://creativecommons.org/licenses/by/4.0/","note":"Applies to this compilation and the derived columns. The underlying notice data remains under OGL v3.0 and must keep its attribution."},"cite_as":"Servnet, 'The UK public sector IT contract expiry cliff', snapshot 2026-09-25, servnetuk.com/research/uk-public-sector-it-contract-expiry-2026."}}