another basic approach is to standardize and etablish a policy for your cost violation fields
you can then build your report based on this policy
eg.
service type A can have a violation cost of 1000 where service type B cost will be 10000
now with this method you can establish by reporting convention what Service Type have violate and by calculation assume a cost.
Of course the sequence need to be made large enough as this will condition the number of violation you can report. in my case you can report a maximum of 9 violation for service type A prior those are crossing over and make this technic wrong.
Hope that give you some idea.
/J