@ormsbee - we greatly appreciate you pointing out these scenarios, we don't have much experience with all of the ins and outs of verified certs etc.

This is a great discussion.  I think the fundamental choice we are facing here is:

1) We try to figure out the correct semantics.  What does an "enrollment" mean exactly?  What happens when they upsell? etc
2) Provide "raw" data to the researchers and let them try to guess / figure out the semantics.  Much like we do with our request-logging middleware.

I think we probably want both - I'm thinking we should get the semantics right for enrollment, and I'll modify this patch to include "catch all" model change logging (at least for CourseEnrollment).  @rocha, @mikigoyal, @jtauber - what do you think?