It can be done, based on the NotReady statistic, with Filters applied for each type of disposition code (Reason for NotReady);
GAD, GAD>TServer, Reporting>StatServer (Filters), DMA Layouts (Filters) and CCPulse (Filters) would need to be updated and/or created for each disposition code.
You could perform a quick check to see if the disposition codes exist already by applying a single Filter to your StatServer Options (using your example);
CME>Applications>"ReportingStatServer">Options>Filters>Option Name: disposition ex sales complete & Option Value: Reason = "ex.sales complete"
Then create an Agent template/view in CCPulse, using NotReady and the Filter created above (disposition ex sales complete).
[b]If [/b] the statistic increments, then all you need to do is add all of the Filters to your Reporting StatServer and apply the Filters to the Notready statistic for Agents in CCPulse for real-time reporting. For historical reporting, you would need to create a DMA Layout for Agents and create the Filters, then apply them to the NotReady statistic, for each disposition type.
If it [b]doesn't[/b] increment, then you have some more work to do on GAD, to ensure it passes your disposition codes via the TServer, before you can achieve any of the above...
Tony