Good news : no more mismatch. Chess.com has removed detailed "games lost by..." info from the stats webpage, meaning it's not different from API anymore, even if we don't know how the API one is computed.
Mismatch between timeout rates in endpoints and webpage data

I'm short of time but are you saying the endpoint timeout rates now correspond to those in the equivalent webpages?

I'm not seeing that! ....
https://api.chess.com/pub/match/1664421
"mkias","rating":1460,"timeout_percent":45 https://www.chess.com/member/mkiasTimeouts: 25.64% Last 90 days

No, I'm saying that on the stats page the timeout information has been removed:
https://www.chess.com/stats/daily/chess/mkias

No, I'm saying that on the stats page the timeout information has been removed:
That's not where the information was being compared against. The API and profile mini-stats panel for Daily was used for matching.
There was a change in how that's handled in the front-end so the days pulled by the API is not matching the correct values at this point

The point being made, as I understand it, is that the %'s on the web page stats have been removed.
This seems to be the thought process.
This information is not consistant. ==> We won't fix it. ==> We will remove the one that is correct. ==> Then no one will know that the API details are wrong because there will be no comparison.
Stellar!

I know there is a project plan to revamp the Stats so it is possible that they were removed from there instead of development time being used to fix that. I have asked about it.

The point being made, as I understand it, is that the %'s on the web page stats have been removed. ....
Don't think so Richard....
https://www.chess.com/member/mkias
the "Timeouts 25.64% Last 90 days" is still very visible.
That's the one I go to if I need to check someone's timeout rate.

Thanks Stephen. I can still see it on the side panel for daily. However doesn't show in main stats page any longer.

Ok but the question is what data can we rely on and what should we be cautious of? The endpoints that contain timeout data are still incorrect I assume?

That is my understanding. For team matches I have a script that does the calculation from archives. It takes about 10 times longer to run than pulling TO from endpoint because of all the excess calls needed.

There seems to have been an update in the player stats endpoint but the TO still seems to be incorrect.

I'll double check but I think only the player stats endpoint has anything done. I assumed that endpoint was where the match one gets it's data but that doesn't appear to be correct.
Since there's ongoing work on the match endpoint, mentioned elsewhere, I'll double check it on it when that is available again to see if the new version also has the same problem.
Think the alternate code is working now. Need to fully check out the results as yet.
It was a big match. 754 members registered.
This usually takes about 20 seconds to get the teams with member stats including TO's
This first run with the extra 3770 API endpoint calls took over 30 minutes.
Just like to say thanks to the coder who couldn't be bothered to properly check the outputs before it went live.
Cheers.
And to Chess.com who no longer see API as worth the effort.