There's a few options here depending on the business need (just replying with one solution for now):
If the Contracted Price will always supersede the price rule(s):
- Add a 'Price Condition': [![Price Condition for Price Rule][1]][1] [1]: https://i.sstatic.net/SUQo3.png
- This will ensure the Price Action will only fire if the 'Contracted Price' (API: SBQQ__ContractedPrice__c - Quote Line) is blank.
I'll stop there for now in case that resolves the issue but this is highly dependent on the complexity of the CPQ configuration.