Issues in software development contracts

Tata Consultancy v DBS [2024]

This case of a software development project that went off the rails, features a range of topics that are often at the core of the drafting, negotiation and interpretation of such contracts including clauses limiting liability and their scope and effectiveness

Facts:

The dispute arose out of a 2012 contract (the “Agreement”) related to the modernisation of an IT system by Tata for DBS (‘the Disclosure and Barring Service’). The Agreement was a version of the Office of Government Commerce Model ICT Contract. Tata had agreed to take over and run DBS’ legacy systems and manual processes whilst developing new digital services. From the outset, the project was affected by delays which ultimately led to revision of the contract milestones. Tata’s position was that DBS had caused the delays and, specifically that DBS’ IT hosting provider, Hewlett Packard Enterprises (HPE), had caused critical delays. DBS argued that the real reason for delay was that Tata’s software was not ready to be deployed on the infrastructure because of delays in its development and testing. DBS also argued that it was not responsible for the activities of HPE. Tata brought a claim for over £110 million in damages. Most of this claim related to the costs incurred as a result of the delays to the project.

Notice of 'Authority Cause'

Under the contract, Tata was entitled to compensation for delays that were caused by DBS only if it had followed set notice requirements. This included serving a notice of delay, followed by an ‘Exception Report’ within 5 days of becoming aware that it will not or is likely to not achieve a Milestone by the relevant Milestone Date. The contract specified what information needed to be included in the Exception Report, such as the consequences of the delay.

Ahead of its failure to achieve the main delivery milestone, Tata had written to DBS with a notice of delay. In this notice, Tata said it needed more information from DBS to complete the Exception Report. At this time, the parties were in the midst of a detailed replanning exercise and Tata said that because this was still ongoing it was unable to determine the detailed consequences of the delay. Tata therefore requested an extension to the 5-day period.

DBS subsequently responded with further detail about the replanning exercise but was silent on the need for an Exception Report or Tata’s extension request. The replanning exercise continued for several months. The discussions around this also involved commercial negotiations to settle disputes about the delay. These settlement negotiations eventually broke down without agreement.

Eight months after its notice of delay, Tata provided DBS with an Exception Report, although it still maintained it did not have enough information to complete this document fully. Both parties agreed that the clause in the contract requiring the Exception Report was a “condition precedent” that prevented Tata from claiming for delay if it failed to comply. Tata claimed, that despite this clause, the parties had been proceeding on a shared common assumption that there was no requirement to serve an Exception Report within 5 days, giving rise to an estoppel by convention.

Decision:

The Court considered the requirements for estoppel by convention. In particular, that the assumption must have been communicated between the parties (it must have “crossed the line”).

DBS’s initial response to the Tata notice requesting an extension was held not sufficient to show a communication by DBS of a common assumption. However, the broader context had to be considered including the numerous exchanges between the parties during the months of replanning and related commercial discussions.

In the context of these exchanges, the parties’ focus was on replanning the project and the importance of this superseded the importance of serving the draft Exception Report. The court concluded that the 5-day requirement was “simply not a live point” at this time and that both parties were working on the basis that the 5 day condition precedent had fallen away.

The court was also persuaded by the fact that DBS did not: (i) state explicitly that it was continuing to rely on the 5-day requirement; (ii) raise any issue against Tata for failing to serve the Exception Report on time; or (iii) reserve its position.

DBS was therefore [e]stopped from arguing that Tata had no entitlement to compensation for delay on account of its failure to comply with the 5-day period for serving the Exception Report. Tata’s claim was therefore not disqualified on this basis.

Effective cause of the delays

Provisions in the contract meant that Tata's delay claim could only succeed if it could show that it would have been able to achieve the contractual milestone dates in the absence of an “Authority Cause”. In other words, “but for” DBS’s delay, Tata would have achieved the milestone. This meant that the court not only had to consider delays to the project but also needed to determine which of these delays were on the “critical path”.

Decision

The delay analysis performed by the court involved:

The judge considered the delay and notice provisions and specifically the relief available to Tata if it was prevented from achieving a contractual milestone by an event that was an “Authority Cause”. The judge concluded that, on the wording of the Agreement, the causative element (i.e. an analysis of what was on the critical path) was an important and necessary feature of interpretation because, even if Tata had established it had been critically delayed by an “Authority Cause”, Tata also needed to show that, absent any delay caused by DBS, it would have met the milestone(s) by their due date. Therefore, much of the judgment is concerned with the critical path analysis. The judge rejected all the evidence of Tata’s experts and, save for a period of 3 months for which DBS was responsible, Tata’s delay claim was rejected in its entirety.

The DBS counterclaim claim for delay damages and poor quality software

Decision

The judge accepted Tata’s argument that DBS’ entitlement to recover damages for delay was also subject to a condition precedent, namely to “promptly issue a Non-conformance Report”. The judge held that the use of the words “if [a milestone is not achieved]”, [the Authority “shall”] in the clause dealing with Contractor delays and Authority remedies, created conditionality. As a result, because DBS had not served a Non-conformance Report, DBS was unable to claim either liquidated damages or general damages for the first six months of delay. This significantly reduced the value of its claim.

Responsibility for a third party

Decision

Contracting parties involved in complex IT projects should ensure they fully understand who is responsible for the performance or non-performance of third parties and how this risk is allocated. Tata alleged that its performance had been impacted by a third party (HPE).

HPE only had a contractual relationship with DBS. There were therefore no express, direct, obligations on HPE under the Tata/DBS contract. Crucially, there were no express obligations on DBS to procure the performance of HPE.

DBS was under an express obligation to “collaborate in an environment of mutual respect and cooperation” and “co-operate in the provision of information necessary for the successful operation and assessment of performance of the Services.”

Tata also alleged that DBS was in breach of an implied term that it would either fulfil the function of systems integrator itself or appoint Tata or a third party as systems integrator. Tata argued that without this term, and in the absence of systems integration activities being performed on a timely basis, it was unable to discharge its responsibilities within the contractual timeframes.

Tata argued that because HPE was DBS’s contractor, and it was only DBS that had the right and power to procure HPE’s timely performance, DBS had breached its responsibilities by failing to ensure HPE did not delay the project.

Tata asserted that certain activities were outside the scope of its responsibilities “such as managing dependencies between DBS’s various suppliers or ensuring that suppliers and stakeholders all performed their responsibilities in accordance with a plan that permitted the project to proceed on schedule”. Tata claimed it was not obliged to provide systems integration services, that DBS was the “systems integrator” and that DBS was responsible for delays by HPE.

The judge considered the duties of cooperation and also what could amount to an “Authority Cause”:

The judge rejected Tata’s argument that the obligations for DBS to cooperate could amount to a warranty of HPE’s performance for Tata’s benefit;

He held there was no implied term that DBS would perform the functions of a systems integrator;

The judge accepted DBS’s position that “Authority Cause” meant a contractual breach by DBS. The judge accepted DBS’s case that in the absence of a breach of its contractual obligations, DBS was not responsible for any delays by HPE.

The general obligations on DBS to collaborate came “nowhere close” to imposing the obligations that Tata said had been breached.

The court declined to find an implied term in the contract regarding the systems integrator role. It rejected Tata’s argument that the term was necessary for the business efficacy of the agreement. It held that this was a “sophisticated contract”, there was no room for such an implied term and it would have contradicted other express terms of the contract.

Liability exclusions and limitations

The exclusion of liability provisions stated “neither party will be liable to the other party for any loss of profits, turnover… (whether direct or indirect).

Tata sought a sum quantified at just over £77million for “loss of revenue”, arguing that it had anticipated a reduction in costs over the course of the contract. DBS claimed that this was, in fact, a claim for lost profit and that the losses were therefore excluded by the Agreement. The judge applied the decision in Soteria Insurance v IBM [2022] and rejected Tata’s argument that it was entitled to advance a loss of profits claim in a way that was not caught by the words of the exclusion clause. He concluded that this claim for loss of anticipated savings was, in all but name, a loss of profits claim that was excluded by the Agreement.

There was also a question regarding the interpretation of the financial cap on Tata’s liability. The clause capping Tata’s (‘Contractor’s) liability provided that its "aggregate liability":

"in respect of all [other] claims, losses or damages, shall in no event exceed £10,000,000 (subject to indexation) or, if greater, an amount equivalent to 100% of the Charges paid under this Agreement during the 12 month period immediately preceding the date of the event giving rise to the claim under consideration less in all circumstances any amounts previously paid (as at the date of satisfaction of such liability) by the Contractor to the Authority in satisfaction of any liability under this Agreement."

The court held that the limitation of liability clause provided a single, aggregate cap that applied to all claims rather than multiple, separate caps because the words "the aggregate liability … in respect of all [other] claims, losses or damages shall in no event exceed" clearly indicated that the clause set out the Contractor's total liability irrespective of however many claims, losses or damages might exist. While the "claim under consideration" language suggested more than one claim might be possible, the netting off that followed demonstrated that the parties did not intend the capped sums to be additive.

The case recalls last year's High Court decision in Drax Energy Solutions v Wipro [2023] where the court decided that similar drafting should be interpreted as a single cap. As a result, Tata’s aggregate liability would have been capped at 100% of the Charges paid during the relevant 12 month period.

Separately, Tata’s total aggregate liability for “Delay Payments” was capped at 10% of “implementation Charges”. “Charges” was defined in the contract, but “implementation Charges” were not. Tata contended this wording should be equated with a defined term describing a delivery milestone and regarded as a reference to a subset of the Charges. The judge disagreed: it wasn’t possible to discern a clear or meaningful intention to identify a particular subset. Therefore, no sub-cap applied to further limit Tata’s liability for delays in implementation. This element of the clause in question was therefore effectively worthless.

Points to Note:

back to archive