Actually, yes, I could see how this would work. When a ticket is updated on ImIncidentTicket, the trigger will run. The trigger should check to see if the updated data is changing the 'resolved by' field, and populate a different table to store the actual close code from the pre written data. Then when the ticket gets closed the closed code will be overwritten but our other table can be reported against.
At least, 'resolved by' seems like a good thing to check against. Maybe not, though. I guess you could put the trigger on update to 'ReportProcess' and check to make sure it's setting PercentComplete to 100, but you'd want to also make sure it only tries on IM type processes.
Still, seems possible. Good idea, reecardo!