I used to work in customer service for a well known ISP. When we had missed Openreach appointments it was often our fault, not BT's.
The reason - poor software. Our appointment management system would fail to react correctly to OR's system when a booking was attempted. So on the surface it looked like an booking had been confirmed. In reality it had been rejected. In effect no appointment had been made. It often wasn't until the customer called to ask where their engineer was that it became apparent what had happened.
Now I know Openreach also miss appointments through their own incompetence. But a significant number of appointments are missed due to the ISP, at least in my experience. Of course it's very easy for the ISP to blame BT, especially as it fits into people's preconception that BT are incompetent.