Case Study

Regulatory Delivery in UK Telecoms: Getting a National Fibre Operator TSA-Compliant on Time

Change SquadsRegulatory Compliance

The Challenge

A leading UK full-fibre network operator, one of the country’s largest broadband infrastructure providers, was working towards a mandatory regulatory deadline. Under the UK’s Telecommunications Security Act (TSA), enforced by Ofcom, telecoms providers must safeguard their networks, supply chains and services against security threats, with compliance requirements phased through to 2028. The regulations are extensive and not one-size-fits-all. Each provider has to work through the full list, determine which measures apply to their organisation and evidence compliance across governance, cybersecurity, legal contracts, procurement, architecture and third-party risk.

Our client had the framework on its roadmap, but lacked two critical ingredients to hit Phase 1:

  • Dedicated resource to analyse the regulations in depth and map them to the client’s specific operating model.
  • Coordination capability to pull together a wide set of internal stakeholders — PMO, governance, architecture & engineering, InfoSec, procurement, and legal, alongside external security partners, into a single, structured delivery.

Without that coordinating layer, Phase 1 milestones and the accompanying Section 135 submission to Ofcom (the formal response to the regulator’s compliance questions) were at real risk of slipping.

Having already demonstrated regulatory delivery capability on the client’s previous piece of work, BDUK (Building Digital UK) programme, Perform Partners were the natural choice to support the operator.

The Perform Way

We combined Business Analysis and Project Management in a single flexible resource model:

  • Regulation-by-regulation analysis: We worked through the TSA measures line by line, identifying which applied and what evidence was required to demonstrate compliance.
  • Cross-functional workshop design: We scheduled and facilitated the right stakeholders at the right time; legal for contractual obligations, InfoSec and Architecture & Engineering for technical controls, procurement for third-party management, and governance for oversight, including external security consultants where specialist input was needed.
  • Evidence consolidation and gap mitigation: Evidence was spread across the organisation. We pulled it together into a single compliance picture, identified gaps and defined mitigations and timescales for each.
  • Programme and project planning: The client held the high-level programme plan; we owned the detailed project layer, including phased delivery plans, RAID logs, slide decks, and milestone tracking, filling the project management gap.
  • Third-party risk integration: We extended the lens beyond the client’s boundary, supporting the reverse-engineering of existing contracts to embed TSA clauses at renewal and feeding into their wider third-party risk approach.

Supporting People Through Change

The TSA touches almost every corner of a telecoms business, so helping people adapt to the change was just as important as the technical analysis. Here’s how we supported the teams:

  • One coordinating point of contact: Teams already running at full capacity didn’t have to chase each other; we convened the right groups, chaired the workshops and kept momentum.
  • Flexible, continuous cover: As the engagement evolved from analysis-heavy to delivery-heavy, we flexed our resource accordingly, our lead consultant driving the early BA and PM coordination, with a second consultant stepping in to continue the project management work seamlessly as the programme matured.
  • Embedding new ways of working: The TSA became a catalyst for wider improvement. We helped the client identify process gaps and stand up new procedures and updated policies (for example, around offshore working and third-party risk grading) that will continue to serve the business well beyond Phase 1.
  • Building confidence with leadership: By the time Phase 1 landed, the programme sponsor was able to point to an Ofcom-accepted submission delivered with confidence and control.

 

01
02
03
04
05

Need help with regulatory change? Let's talk...

// Function to create HubSpot form with custom styles and scrolling fix function createCustomForm() { // Create the HubSpot form hbspt.forms.create({ region: "na1", portalId: "6882211", formId: "c08eb813-4605-441b-b923-dbfe6422f092", onFormReady: function ($form) { // Define custom styles var customStyles = ` /* Adjusting height and padding for form fields */ .hs-form input[type="text"], .hs-form textarea, .hs-form input[type="email"] { height: 80px; padding-right: 20px; background-color: rgba(32, 48, 49, .05); /* Set background color */ border: none; /* Remove border */ }/* Adjusting height and padding for the "How can we help" textarea */ .hs-form textarea.hs-input { min-height: 257px; padding: 32px 20px; background-color: rgba(32, 48, 49, .05); /* Set background color */ border: none; /* Remove border */ }/* Making the submit button span the full width */ .hs-form .actions input[type="submit"] { width: 100%; background-color: #203031; /* Charleston Green */ color: white; border: none; /* Remove border */ padding: 20px; border-radius: 40px; /* Set border radius */ cursor: pointer; position: relative; /* Set position to relative to position the arrow */ z-index: 1; /* Ensure the button sits above the arrow */ }/* Apply sticky positioning */ .hs-form.sticky { position: sticky; top: 0; z-index: 9999; }/* Placeholder for fixed form position */ .form-placeholder { display: none; } `;// Create a style element var styleElement = document.createElement('style'); styleElement.innerHTML = customStyles;// Insert the style element $form.prepend(styleElement);// Create a placeholder element var placeholder = $('
').css({ height: $form.outerHeight() }); $form.before(placeholder);// Function to handle scrolling function handleScroll() { var formOffset = $form.offset().top; var scrollPos = $(window).scrollTop(); if (scrollPos > formOffset) { $form.addClass('sticky'); placeholder.show(); } else { $form.removeClass('sticky'); placeholder.hide(); } }// Call handleScroll on page load handleScroll();// Add scroll event listener to fix scrolling glitch $(window).on('scroll', handleScroll); } }); }// Call function to create custom form createCustomForm();