Terminating software agreements when they fail to deliver software deliverables on time
Topalsson GmbH v Rolls-Royce Motor Cars Limited  EWHC 1765 (TCC)
How did the court determine: (1) whether a software implementation timeline agreed by the parties was binding; (2) when implementation was considered complete; and (3) in what circumstances did failing to complete implementation by the contractual deadlines entitle the customer to terminate the contract?
The key takeaway
In this particular case, the court found that milestone dates contained in an agreed implementation plan (revised from those contained in the tender documentation implementation plan) constituted contractually binding delivery dates. While there was no express definition of “Technical Go-Live” in the contract, based on wording contained in the contract and the sequencing of project activities set out in the agreed implementation plan, the court found that Technical Go-Live required the successful completion of systems integration and user acceptance testing, and not just delivery of broadly functioning software.
In October 2019, following a tender process, Rolls-Royce contracted with software developer Topalsson to develop a new digital visualisation tool allowing prospective customers to see photo-realistic renderings of Rolls-Royce cars with different custom configurations, before purchasing.
Under the services agreement (the Agreement), Topalsson was obliged to meet milestone dates contained in an agreed implementation plan, which gave a detailed breakdown of the project programme (the December Plan). It soon became evident that the December Plan dates could not be achieved. A revised plan was agreed, with later delivery dates for “Technical Go-Live” (the March Plan). Technical issues and delays continued and Rolls-Royce lost confidence in Topalsson's ability to deliver the project to the new agreed timeline. Despite agreeing the revised March Plan, Rolls-Royce served a termination notice on Topalsson (the First Termination Notice) relying on Topalsson's repudiatory breach for its failure to meet the December Plan dates. Topalsson rejected the First Termination
Notice and affirmed the Agreement, denying that the December Plan dates were contractually binding.
Rolls-Royce then served a further notice (the Second Termination Notice), again purporting to terminate the Agreement both: (i) for repudiatory breach, but this time for missing the March Plan deadlines; and (ii) under clause 13.11 of the Agreement, which permitted immediate termination if Topalsson failed to meet the agreed delivery or milestone dates. Topalsson rejected the Second Termination Notice too, alleging that Rolls-Royce was itself in repudiatory breach of the Agreement and purporting to accept that repudiatory breach to bring the Agreement to an end.
Topalsson brought proceedings against Rolls-Royce, asserting that Topalsson was not in breach, as it had achieved Technical Go-Live for some deliverables and would have completed the others but for Rolls-Royce's termination; or alternatively there were no contractually binding delivery dates and time was not of the essence, and Rolls-Royce was partly to blame for the delays.
Rolls-Royce counterclaimed, arguing that the December Plan and subsequently the March Plan dates were contractually binding, and Topalsson was responsible for having missed them.
There were several key issues to be decided:
Did Topalsson just have to deliver and install the software within a “reasonable time”, or did it have to comply with specific milestone dates?
The court found that the December Plan dates were contractually binding on Topalsson. Topalsson itself had proposed the December Plan timeline to Rolls-Royce, it knew that the timeframes were commercially sensitive and that the software was needed in time for the planned launch, and the parties had agreed those dates.
The court also held that, properly construed, the express terms of the Agreement made time of the essence in respect of the dates in the December Plan.
As to the March Plan, Topalsson asserted that the dates had no binding contractual effect and it just had to deliver within a “reasonable time”. The court disagreed: Topalsson had agreed to the March Plan dates in circumstances where it had already failed to meet the December Plan and where Rolls-Royce had expressly stated that Topalsson meeting the March Plan dates was “a condition of our ongoing contractual relationship”. Accordingly, the March Plan was a relaxation and/or extension of time under the binding December Plan. The March Plan dates were therefore binding on Topalsson and time was also of the essence in achieving them.
Had Topalsson met the contractual milestone dates?
By the time Rolls-Royce sent its Second Termination Notice, the Technical Go-Live milestone dates for two deliverables had passed and it was accepted that the third milestone date was not going to be met. There was, however, no express definition of “Technical Go-Live” in the Agreement and Topalsson asserted that it had either achieved Technical Go-Live or would have but for Rolls-Royce terminating the Agreement, on the basis that not all testing had to be completed and that the existence of open defects did not preclude Technical Go-Live being achieved. In other words, delivery of broadly functioning software was sufficient.
Based on the wording of the Agreement and the sequencing of project activities set out in the December Plan, the court again disagreed: Technical Go-Live required the successful completion of systems integration and user acceptance testing. The court also found that Topalsson had accordingly failed to achieve Technical Go-Live by the March Plan deadlines that had already passed and was so far behind schedule that it would not have met the final deadline even if the Agreement had continued.
Was Topalsson responsible for failing to meet the March Plan milestones, or was it impeded by Rolls-Royce?
Topalsson argued that the delays were not its fault because:
- its subcontractor, to which it had been introduced by Rolls-Royce, had performed poorly;
- Rolls-Royce itself had delayed the start of the project and failed to provide Topalsson with the necessary systems access and software licences;
- Rolls-Royce had introduced changes to the requirements and/or scope creep; and
- Rolls-Royce had imposed a waterfall project management methodology, despite Topalsson having strongly pushed for a purely agile approach.
The court rejected those arguments, finding that Topalsson's own commercial decisions were the most likely cause of the delays including that Topalsson had chosen to engage the subcontractor and was responsible for its performance, and that Topalsson had contractually agreed to a hybrid agile/waterfall methodology. Ultimately, either “Topalsson took on a project that simply was beyond its capabilities, or ... it struggled to recruit and retain the necessary staffing levels”.
Was Rolls-Royce in repudiatory breach by giving the Termination Notices?
The court found that Rolls-Royce's First Termination Notice was erroneous because it relied on Topalsson missing the original December Plan deadlines, when the revised March Plan deadlines had already been agreed. This was, however, ultimately immaterial as Topalsson had affirmed the Agreement in response.
As to the Second Termination Notice, this was based on Topalsson's failure to achieve the milestone dates set out in the March Plan and relied upon:
- a contractual right to terminate for failure to meet milestone dates pursuant to clause 13.11 of the Agreement; and/or
- the common law right to terminate for repudiatory breach on the basis that time was of the essence in respect of achieving the milestone dates and Topalsson had breached this obligation.
There was a key difference between the two termination avenues available to Rolls-Royce: case law is clear that the contractual termination right under clause 13.11 could only be exercised in respect of a significant or substantial breach justifying termination; whereas under clause 5.8, the parties had agreed that time for delivery deadlines was “of the essence”, ie a condition of the Agreement, any breach of which (irrespective of severity) would in principle amount to a repudiatory breach and justify termination. On the facts, the court found that Rolls-Royce had been entitled to rely on either avenue as Topalsson's delays were significant and “could not be described as a ‘near miss’”. The Second Termination Notice was therefore valid.
Why is this important?
The decision highlights that key requirements and deadlines should be clearly defined and recorded in the contract (or it should provide clear mechanisms for agreeing them later) to avoid subsequent confusion and disputes arising as to whether deadlines are binding and when they have been achieved. It also underlines the need for careful consideration when drafting termination notices to ensure they are not defective and in themselves repudiatory.
Any practical tips?
Parties should define and make use of contractual change control mechanisms – whether relating to scope, delivery dates or other requirements - to give clarity about the contractual status of any variations agreed.
Parties seeking to terminate for repudiatory breach or based on a contractual right should, in the notice of termination, take care to rely on valid legal and factual bases to do so, or else risk being in repudiatory breach themselves. For example, if contractual timelines or scope have been varied by agreement, failure to meet the original requirements may no longer justify termination. In addition, specific requirements for written notices as set out in the contract should be strictly observed.
While a minor breach of a condition (ie a term which “goes to the root of the contract”) may be enough for termination, breaches of other contractual terms giving rise to an express right to terminate may still need to be sufficiently significant in the circumstances to warrant termination.
Consider whether time is expressed to be of the essence in the contract. Making time of the essence for performance is (usually) sufficient to constitute a term essential and render any delay (even if only by a few hours) repudiatory. The repudiation can be accepted by the innocent party and they can seek damages for loss of the bargain resulting from the termination of the agreement even where the failure to perform the obligation on time is relatively minor.