Did you get invoiced (and therefore pay) more than was agreed in the contract?
This is a real pain point for larger companies and government projects.
Why hasn’t this been solved?
Although spend is kept in a structured database, contracted rates are not. They’re part of the contract which is probably a PDF rotting in a SharePoint folder somewhere.
Until you build a contract database and capture the data and logic around fees, reconciling your spend vs the contract is going to be very tough.