Maintenance contracts go back and forth, with most of the time spent on response times and on-site days. Two-hour response or four, how many days a week on site — all spelled out clearly. One thing is routinely missing, and after being burned we add it proactively every time: who supplies the external data.
The case was a monthly report. The system had run fine for over half a year, then one day the numbers all came back empty. We checked the code, the scheduled jobs, the database connection — two days of digging — and found the upstream Excel hadn't been updated in three weeks. That file was manually exported by another department weekly and dropped on a shared drive; the person responsible was on maternity leave and nobody had taken over. The system wasn't broken. There was nothing to cook with.
The contract said nothing about it, so who owned those two days of labor — and whether to bill extra — got argued over at length. Not much money involved, but the atmosphere soured.
Since then we fix a clause into the appendix: an inventory of every external data source the system depends on, item by item — name, provider, update frequency, format, where it's delivered, and who to call when it breaks. That time it listed 4 items: 3 Excel files and 1 CSV exported from their ERP. Each item followed by a person's name and a mobile number.
And one line in plain language: if the data doesn't arrive, the system isn't to blame — but we must notify the responsible person within one business day. Notifying is our job; supplying the data is theirs. Keep the two straight.
This clause carries no SLA, promises no percentages, and takes half a page to write. When something actually goes wrong, it's more useful than all those numbers above it.
Now, when signing a maintenance contract, we make a habit of showing this list to the other side first. Some people finish reading and say, "I didn't know we depended on that." Good — knowing early beats finding out late.

